Escolar Documentos
Profissional Documentos
Cultura Documentos
CiA 301
Versão 4.2.0
21 de fevereiro de 2011
HISTÓRIA
Encontro Mudanças
A conversão causou pequenas diferenças de layout para o documento predecessor em “formato doc”. O conteúdo técnico palavra
por palavra é o mesmo.
CAN in AUTOMATION (CiA) chama a atenção para a possibilidade de alguns dos elementos desta especificação CiA estarem sujeitos a
direitos de patente. A CiA não será responsável por identificar nenhum ou todos esses direitos de patente.
Como esta especificação é licenciada gratuitamente, não há garantia para esta especificação, na extensão permitida pela lei aplicável.
Exceto quando declarado de outra forma por escrito, o detentor dos direitos autorais e/ou outras partes fornecem esta especificação
"como está" sem garantia de qualquer tipo, expressa ou implícita, incluindo, mas não se limitando às garantias implícitas de
comercialização e adequação a uma finalidade específica . Todo o risco quanto à exatidão e integridade da especificação é com você.
Se esta especificação provar falhas, você assume o custo de todos os serviços, reparos ou correções necessários.
A CiA tem o compromisso de usar linguagem inclusiva em suas especificações e relatórios técnicos. Os documentos da CiA serão
atualizados com os termos inclusivos. Uma lista dos termos inclusivos e os termos que eles substituem é fornecida no documento
de estilo da casa da CiA; fornecido no site da CiA (https://can-cia.org/s/housestyle).
Marcas registradas
CANopen e CiA são marcas registradas da comunidade CAN in Automation. O uso é restrito para membros da CiA ou proprietários de
ID de fornecedor CANopen®. Termos mais detalhados para o uso estão disponíveis na CiA.
© CiA 2011
Todos os direitos reservados. A menos que especificado de outra forma, nenhuma parte desta publicação pode ser reproduzida
ou utilizada de qualquer forma ou por qualquer meio, eletrônico ou mecânico, incluindo fotocópia e microfilme, sem permissão por
escrito da CiA no endereço abaixo.
CAN em Automação e. V.
Jardim Kontumaz 3
DE - 90429 Nuremberga, Alemanha
Tel.: +49-911-928819-0
Fax: +49-911-928819-79
URL: www.can-cia.org
E-mail: sede@can-cia.org
CONTEÚDO
7.2.4.3.16 Algoritmo de cálculo CRC para verificar a transferência do bloco SDO ..................................... 60
7.2.4.3.17 Protocolo SDO abortar transferência ........................................ ....................................... 61
Visão geral de objetos de dicionário de objetos para comunicação .................................. ....................... 148
Tabelas
Carregamento de SDO de serviço ............................................. .................................................. ......... 41 Tabela 11: Início de upload de
SDO de serviço ........................ .................................................. ......................... 42 Tabela 12: Segmento de upload de SDO de
Tabela 17: Carregamento do bloco SDO de serviço ............................................. .................................................. ........ 45 Tabela 18:
Inicialização do upload do bloco SDO do serviço ....................... .................................................. ....... 46 Tabela 19: Sub-bloco de upload
do bloco SDO de serviço ....................... .................................................. ... 46 Tabela 20: Fim do upload do bloco SDO do
Tabela 25: Classes de código de erro de emergência ............................................. .................................................. 64 Tabela 26: Códigos
Tabela 29: Nó remoto de parada de serviço ............................................. .................................................. ......... 69 Tabela 30: Entrada de
Tabela 33: Evento de proteção do nó de serviço ............................................. .................................................. .... 71 Tabela 34: Evento
Tabela 36: Evento de inicialização do serviço ............................................. .................................................. ................ 72 Tabela 37:
Estados NMT e objetos de comunicação ........................ .................................................. ..... 80 Tabela 38: Objetos de broadcast do
conjunto de conexão predefinido genérico ....................... .................. 81 Tabela 39: Objetos ponto a ponto do conjunto de conexões
Tabela 41: Estrutura do dicionário de objetos ............................................. .................................................. ....... 82 Tabela 42: Definições
de objetos do Dicionário de Objetos................................... .................................................. ... 84 Tabela 43: Atributos de acesso para
Tabela 46: Registro de parâmetros de comunicação PDO ........................................ ......................... 88 Tabela 47: Registro de parâmetros
Tabela 52: Formato de uma descrição de objeto ............................................. .................................................. .. 90 Tabela 53: Formato de
descrição do valor do objeto ........................................ .................................................. ... 91 Tabela 54: Estrutura do registro de
Tabela 58: Descrição do TIME COB-ID........................................ .................................................. .....105 Tabela 59: Descrição do EMCY
Tabela 64: Descrição do servidor SDO COB-ID................................................ ............................................. 125 Tabela 65: Descrição do
cliente SDO COB-ID ............................................. .......................................... 128 Tabela 66: Descrição de RPDO COB-
ID .............................................. ......................................... 130 Tabela 67: Conjunto de conexão predefinido genérico para
RPDO ......................... .......................130 Tabela 68: Descrição do tipo de transmissão RPDO........... .................................................. .........131
Tabela 69: Valores de mapeamento de RPDO........................... .................................................. .......................134 Tabela 70: Descrição
do TPDO COB-ID ............ .................................................. ..............................137 Tabela 71: Conjunto de conexões predefinidos genéricos
para TPDO...... ........... .................................................. ..137 Tabela 72: Descrição do tipo de transmissão
Figuras
Inicialização NMT simples .......... .................................................. ......................................... 77 Figura 48: Diagrama de estado NMT de
Inicialização ............ .................................................. ......... 79 Figura 50: Esquema de alocação de CAN-ID para o conjunto de conexão
predefinido genérico .............. ......... 80 Figura 51: Sub-índice de estrutura FFh ........................ .................................................. ..............................
88 Figura 52: Estrutura do parâmetro tipo de dispositivo .......... .................................................. .......... 92 Figura 53: Estrutura do campo
restauração .................. .................................................. .............................................103 Figura 59: Restaurar o acesso de leitura padrão
revisão ....................... .................................................. ......................... 110 Figura 64: Estrutura do EMCY COB-
TPDO .................................................. .................................................. ..143 Figura 75: Entrada de objetos da lista do scanner de
1 Escopo
Esta especificação especifica a camada de aplicação CANopen. Isso inclui os tipos de dados, regras de
codificação e objetos de dicionário de objetos, bem como os serviços e protocolos de comunicação CANopen.
Além disso, esta especificação especifica os serviços e protocolos de gerenciamento de rede CANopen.
Esta especificação especifica o perfil de comunicação CANopen, por exemplo, a camada física, o conjunto de
conexão do identificador de objeto de comunicação pré-definido e o conteúdo dos objetos de comunicação de
Emergência, Carimbo de Tempo e Sincronização.
2 Referências
/ISO8859/ ISO 8859, Tecnologia da informação – conjuntos de caracteres gráficos codificados de byte único de 8 bits
/ISO11898-1/ ISO 11898-1, Veículos rodoviários – Rede de área do controlador (CAN) – Parte 1: Camada de enlace de dados e
sinalização física
/ISO11898-2/ ISO 11898-2, Veículos rodoviários – Rede de área do controlador (CAN) – Parte 2: Unidade de acesso médio de alta
velocidade
/ISO11898-3/ ISO 11898-3, Veículos rodoviários – Rede de área do controlador (CAN) – Parte 3: Interface de baixa velocidade,
tolerante a falhas e dependente do meio
/ISO10646/ ISO 10646, Tecnologia da informação – Conjunto universal de caracteres codificados com vários octetos
(UCS)
3 Abreviaturas e definições
3.1 Abreviações
CSDO Cliente-SDO
MPDO Multiplexado-PDO
ID do nó Identificador de nó
TAMBÉM
Interconexão de sistemas abertos
RPDO Receber-PDO
SSDO Servidor-SDO
TPDO Transmitir-PDO
3.2 Definições
mensagem que contém até 8 bytes e é identificada por 11 bits conforme definido em /ISO11898-1/
mensagem que contém até 8 bytes e é identificada por 29 bits conforme definido em /ISO11898-1/
CAN-ID
identificador para dados CAN e frames remotos conforme definido em /ISO11898-1/
COB-ID
identificador que contém o CAN-ID e bits de controle adicionais
Entidade
coisa particular, como uma pessoa, lugar, processo, conceito, associação ou evento
FSA
modelo de computação que consiste em um conjunto de estados, um estado inicial, um alfabeto de entrada e uma função de
transição que mapeia símbolos de entrada e estados atuais para um próximo estado; a computação começa no estado inicial
com uma string de entrada; muda para novos estados dependendo da função de transição
Dispositivo de campo
2. entidade que executa funções de controle, atuação e/ou detecção e interfaces para outros
entidades dentro de um sistema de automação
Dispositivo lógico
representação de um dispositivo de campo em termos de seus objetos e comportamento de acordo com um modelo de dispositivo
de campo que descreve os dados e o comportamento do dispositivo como visualizados através de uma rede
ID do nó
Objeto
entidade com um limite bem definido e identidade que encapsula estado e comportamento
Dispositivo virtual
4 Modelagem
O dispositivo de campo mostrado na Figura 1 deve possuir pelo menos um dispositivo CANopen. Cada dispositivo CANopen dentro do
dispositivo de campo deve ter pelo menos uma interface de rede associada compreendendo um protocolo de camada de enlace de dados
(consulte a cláusula 6) e uma definição de camada física (consulte a cláusula 5), um ID de nó e pelo menos um FSA de comunicação. O
primeiro FSA de comunicação contém a máquina de estado escravo NMT (consulte a subcláusula 7.3.2). FSAs de comunicação adicionais
contêm uma máquina de estado de emergência (ver subcláusula 7.2.7) e outras. A definição de FSAs de comunicação adicionais não se
enquadra no escopo desta especificação. A definição é feita nos chamados frameworks. Um dispositivo CANopen deve ter no mínimo
um e até oito dispositivos lógicos e não deve ser distribuído para vários dispositivos de campo. Cada dispositivo lógico pode conter vários
dispositivos virtuais e, opcionalmente, um dispositivo lógico FSA. Um dispositivo lógico não deve ser distribuído para vários dispositivos
CANopen. A definição de um dispositivo lógico não se enquadra no escopo desta especificação. A definição é feita nos chamados perfis
de dispositivos (ver subcláusula 4.5.1). Um dispositivo virtual contém um FSA de dispositivo virtual e não é distribuído para vários
dispositivos lógicos.
A definição de um dispositivo virtual não se enquadra no escopo desta especificação. A definição é feita nos chamados perfis de aplicação
(ver subcláusula 4.5.2). O dispositivo de campo mínimo é mostrado na Figura 2.
4.2.1 Geral
O conceito de comunicação está em conformidade com o modelo de referência ISO-OSI (lado esquerdo da Figura 3;
consulte /ISO7498-1/).
4.2.2.1 Geral
A camada de aplicação descreve um conceito para configurar e comunicar dados em tempo real, bem como os mecanismos
de sincronização entre dispositivos CANopen. A funcionalidade que a camada de aplicativo oferece a um aplicativo é
dividida logicamente em diferentes objetos de serviço na camada de aplicativo. Um objeto de serviço oferece uma
funcionalidade específica e todos os serviços relacionados. Esses serviços são descritos na especificação de serviço desse
objeto de serviço.
Um aplicativo interage chamando serviços de um objeto de serviço na camada de aplicativo. Para realizar esses serviços,
esse objeto troca dados por meio da camada de enlace de dados com (um) objeto(s) de serviço de mesmo nível por meio
de um protocolo. Esse protocolo é descrito na especificação de protocolo desse objeto de serviço.
As primitivas de serviço são os meios pelos quais o aplicativo e a camada de aplicativo interagem. Existem quatro primitivas
diferentes:
• Uma solicitação é emitida pelo aplicativo para a camada de aplicativo para solicitar um serviço.
• Uma indicação é emitida pela camada do aplicativo ao aplicativo para relatar um evento interno
detectado pela camada de aplicação ou indicar que um serviço é solicitado.
• Uma resposta é emitida pelo aplicativo para a camada de aplicativo para responder a um recebimento anterior
indicação.
• Uma confirmação é emitida pela camada do aplicativo para o aplicativo para relatar o resultado de uma
solicitação previamente emitida.
Um serviço de camada de aplicativo define as primitivas que são trocadas entre a camada de aplicativo e os aplicativos
cooperantes para um serviço específico de um objeto de serviço. Os serviços da camada de aplicação suportados pelo
CANopen são mostrados na Figura 4.
• Um serviço local envolve apenas o objeto de serviço local. O aplicativo emite uma solicitação para seu objeto de serviço local
que executa o serviço solicitado sem se comunicar com (um) objeto(s) de serviço de mesmo nível.
• Um serviço iniciado pelo provedor envolve apenas o objeto de serviço local. O objeto de serviço (sendo o provedor de
serviço) detecta um evento não solicitado por um serviço solicitado. Este evento é então indicado para a aplicação.
• Um serviço não confirmado envolve um ou mais objetos de serviço de mesmo nível. O aplicativo emite uma solicitação para
seu objeto de serviço local. Essa solicitação é transferida para o(s) objeto(s) de serviço de mesmo nível que cada um a
passa para seu aplicativo como uma indicação. O resultado não é confirmado de volta.
• Um serviço confirmado envolve apenas um objeto de serviço de mesmo nível. O aplicativo emite uma solicitação para seu
objeto de serviço local. Essa solicitação é transferida para o objeto de serviço de mesmo nível que a passa para o outro
aplicativo como uma indicação. O outro aplicativo emite uma resposta que é transferida para o objeto de serviço de
origem que a transmite como uma confirmação para o aplicativo solicitante.
Serviços não confirmados e confirmados são chamados coletivamente de serviços remotos.
4.3.1 Geral
• Dicionário de objetos – O dicionário de objetos é uma coleção de todos os itens de dados que influenciam o comportamento
dos objetos de aplicação, os objetos de comunicação e a máquina de estado usada neste dispositivo.
• Aplicativo – O aplicativo compreende a funcionalidade do dispositivo no que diz respeito à interação com o ambiente do
processo.
Assim, o dicionário de objetos serve como uma interface entre a comunicação e a aplicação.
Máquina de estado
Inscrição
objeto
Entrada 1
Entrada 2 Inscrição
Com.
objeto
objeto
Com. :::
objeto Inscrição
objeto
Com.
objeto Entrada n
Com. Inscrição
objeto objeto
Rede Processo
4.4.1 Geral
Mestre Escravos
solicitar
dados
indicação
indicação
indicação
solicitar
dados
indicação
resposta
confirmação dados
solicitar
dados
indicação
indicação
indicação
O dicionário de objetos é essencialmente um agrupamento de objetos acessíveis através da rede de uma forma
ordenada pré-definida. Cada objeto dentro do dicionário de objetos é endereçado usando um índice de 16 bits e um
subíndice de 8 bits.
Um perfil de dispositivo é uma descrição dos objetos do dicionário de objetos de um dispositivo lógico que compreende
um dispositivo virtual. Esta descrição inclui uma descrição funcional dos objetos e uma descrição formal dos objetos.
A descrição funcional define o comportamento de um objeto dentro do dicionário de objetos. A descrição formal define
se um objeto deve ser implementado ou pode ser implementado, bem como o acesso de e para a rede CANopen. O
acesso depende do método de como um objeto é acessado.
O perfil do aplicativo é uma descrição dos objetos do dicionário de objetos de um dispositivo virtual e inclui uma
configuração de rede de todos os dispositivos CANopen. Esta descrição inclui uma descrição funcional dos objetos e
uma descrição formal dos objetos. A descrição funcional define o comportamento de um objeto dentro do dicionário de
objetos. A descrição formal define se um objeto deve ser implementado ou pode ser implementado, bem como o
acesso de e para a rede. O acesso depende do método de como um índice e um subíndice são acessados.
5 Camada física
De acordo com o modelo de referência OSI, a camada física (mostrada na Figura 11) é dividida em três subcamadas:
PLS
Codificação/decodificação de bits
Tempo de bits
Sincronização
PMA
Características do driver/receptor
MDI
Conectores
O meio físico para um dispositivo CANopen deve ser uma linha de barramento de dois fios acionada diferencialmente com
retorno comum de acordo com a especificação de transmissão de alta velocidade em /ISO11898-2/.
NOTA Outras tecnologias de acesso ao meio físico como /ISO11898-3/ podem ser usadas.
Usando o transceptor de alta velocidade de acordo com /ISO11898-2/ a classificação máxima para VCAN_H e VCAN_L
deve ser +16V. O isolamento galvânico entre dispositivos CANopen é opcional. Recomenda-se usar um transceptor que
seja capaz de sustentar a desconexão de qualquer um dos fios do conector, incluindo as tensões V+ opcionais de até 30
V.
1 Mbit/s 25 m
800 kbit/s 50 m
50 kbit/s 1.000 m
20 kbit/s 2.500m
10 kbit/s 5.000 m
6.1 Geral
As redes descritas devem ser baseadas em uma camada de enlace de dados e suas subcamadas de acordo com /ISO11898-
1/.
Esta especificação é baseada nos frames base CAN com CAN-ID de 11 bits. Não é necessário suportar o quadro estendido
CAN com campo identificador de 29 bits.
NOTA: No entanto, como certas aplicações exigem o uso do quadro estendido CAN com CAN-ID de 29 bits, a rede também é
operada neste modo se for suportada em todos os dispositivos CANopen.
7 Camada de aplicação
Para poder trocar dados significativos pela rede, é necessário que o formato desses dados e seu significado sejam
conhecidos pelo produtor e consumidor(es). Esta especificação modela isso pelo conceito de tipos de dados.
As regras de codificação definem a representação de valores de tipos de dados e a sintaxe de transferência para o
representações. Os valores são representados como sequências de bits. As sequências de bits são transferidas em
sequências de octetos (bytes). Para tipos de dados numéricos, a codificação é estilo little endian.
Os aplicativos geralmente exigem tipos de dados além dos tipos de dados básicos. Usando o mecanismo de tipo de dados
composto, é possível estender a lista de tipos de dados disponíveis. Alguns tipos de dados estendidos gerais são definidos
como “Cadeia Visível” ou “Hora do Dia”, por exemplo (ver subcláusula 7.1.6.3 e subcláusula 7.1.6.5). Os tipos de dados
compostos são um meio para implementar “DEFTYPES” definidos pelo usuário na terminologia desta especificação e não
“DEFSTRUCTS”.
Um tipo de dados determina uma relação entre valores e codificação para dados desse tipo. Os nomes são atribuídos aos
tipos de dados em suas definições de tipo. A sintaxe de definições de dados e tipos de dados é a seguinte (consulte /
EN61131-3/).
O tipo de dados definido por type_definition é chamado básico (res.~compound) quando o construtor é basic_constructor
(res. composto_constructor).
Um bit deve ter os valores 0 ou 1. Uma sequência de bits b é um conjunto ordenado de 0 ou mais bits. Se uma sequência de
bits b contém mais de 0 bits, eles são denotados como bj, j > 0. Sejam b0, ..., bn-1 bits, n um inteiro positivo.
Então
b = b0 b1 ... bn-1
é chamada de sequência de bits de comprimento |b| = n. A sequência de bits vazia de comprimento 0 é denotada por H.
a sequência de bits
b = b0 b1 ... bn-1
Aqui 0 = 1 e 1 = 0 em bits.
Para transmissão pela rede, uma sequência de bits é reordenada em uma sequência de octetos. Aqui e na seguinte notação
hexadecimal é usada para octetos. Seja b = b0...bn-1 uma sequência de bits com n < 64. Denote k um inteiro não negativo
tal que 8(k - 1) < n < 8k. Então b é transferido em k octetos montados conforme especificado na Figura 12. Os bits bi, i > n do
octeto numerado mais alto são bits "do not care".
Octeto 1 é transmitido primeiro e octeto k é transmitido por último. Portanto, a sequência de bits é transferida da seguinte
maneira pela rede:
número do octeto 1. 2. k.
Exemplo:
2h 1h Canal
= 21 canais
A sequência de bits b = b0 .. b9 = 0011 1000 01b representa um UNSIGNED10 com o valor 21Ch e é transferido em
dois octetos:
Primeiro 1Ch e depois 02h.
7.1.4.1 Geral
Para tipos de dados básicos “type_name” é igual à string literal do construtor associado (aka symbol_name), por exemplo,
BOOLEAN BOOLEAN
7.1.4.2 NIL
7.1.4.3 Booleano
Os dados do tipo de dados básico BOOLEAN atingem os valores TRUE ou FALSE. Os valores são representados como
sequências de bits de comprimento 1. O valor TRUE (res. FALSE) é representado pela sequência de bits 1 (res. 0).
7.1.4.4 Nulo
Os dados do tipo de dados básico VOIDn são representados como sequências de bits de comprimento n bits. O valor dos
dados do tipo VOIDn é indefinido. Os bits na seqüência de dados do tipo VOIDn devem ser especificados explicitamente ou
marcados como "do not care".
Dados do tipo VOIDn são úteis para campos reservados e para alinhar componentes de valores compostos em limites de
octetos.
Os dados do tipo de dados básico UNSIGNEDn possuem valores nos inteiros não negativos. O intervalo de valores é 0, ...,
2n-1. Os dados são representados como sequências de bits de comprimento n. A sequência de bits
b = b0 ...bn-1
é atribuído o valor
Observe que a sequência de bits começa à esquerda com o byte menos significativo.
Exemplo: O valor 266 = 10Ah com tipo de dados UNSIGNED16 é transferido em dois octetos pelo barramento,
primeiro 0Ah e depois 01h.
número do octeto 1. 2. 3. 4. 5. 6. 7. 8.
NÃO ASSINADO8 b7..b0
Os dados do tipo de dados básico INTEGERn possuem valores nos inteiros. O intervalo de valores é de -2n-1 a 2n-1-
1. Os dados são representados como sequências de bits de comprimento n. A sequência de bits
b = b0 .. bn-1
é atribuído o valor
Observe que a sequência de bits começa à esquerda com o bit menos significativo.
Exemplo: O valor –266 = FEF6h com tipo de dados INTEGER16 é transferido em dois octetos pelo barramento, primeiro F6h
e depois FEh.
número do octeto 1. 2. 3. 4. 5. 6. 7. 8.
INTEIRO8 b7..b0
INTEIRO 16 b7..b0 b15..b8
INTEIRO 24 b7..b0 b15..b8 b23..b16
INTEIRO32 b7..b0 b15..b8 b23..b16 b31..b24
INTEIRO 40 b7..b0 b15..b8 b23..b16 b31..b24 b39..b32
INTEIRO 48 b7..b0 b15..b8 b23..b16 b31..b24 b39..b32 b47..b40
INTEIRO 56 b7..b0 b15..b8 b23..b16 b31..b24 b39..b32 b47..b40 b55..b48
INTEIRO 64 b7..b0 b15..b8 b23..b16 b31..b24 b39..b32 b47..b40 b55..b48 b63..b56
Os dados dos tipos de dados básicos REAL32 e REAL64 têm valores nos números reais.
O tipo de dados REAL32 é representado como uma sequência de bits de comprimento 32. A codificação dos valores segue /IEEE754/. A
sintaxe de transferência é especificada na Figura 15.
O tipo de dados REAL64 é representado como uma sequência de bits de comprimento 64. A codificação dos valores segue /IEEE754/.
Uma sequência de bits de comprimento 32 tem um valor (número real finito diferente de zero, +0, + _) ou é NaN (não é um
número). A sequência de bits
b = b0 … b31
S = b31 é o sinal.
Observe que a sequência de bits começa à esquerda com o bit menos significativo.
Exemplo:
S E F
6,25 = b0 .. b31 = 0000 0000 0000 0000 0001 0011 0000 0010b
número do octeto 1. 2. 3. 4.
As definições de tipo de tipos de dados compostos se expandem para uma lista exclusiva de definições de tipo envolvendo apenas
tipos de dados básicos. Correspondentemente, os dados do tipo composto ´type_name´ são listas ordenadas de dados do
componente denominados ´component_name_i´ do tipo básico ´basic_type_i´.
ESTRUTURA DE
basic_type_1 nome_componente_1,
basic_type_2 nome_componente_2,
… …
basic_type_N nome_componente_N
type_name
A sequência de bits que representa os dados do tipo composto é obtida pela concatenação das sequências de bits que representam
os dados do componente.
Suponha que os componentes ´component_name_i´ sejam representados por suas seqüências de bits
Exemplo:
Considere o tipo de dados
ESTRUTURA DE
INTEIRO 10 x,
NÃO ASSINADO5 dentro
Novos dados
Suponha que x = - 423 = 259h eu = 30 = 1Eh. Sejam b(x) e b(u) as seqüências de bits que representam os valores de x e u,
respectivamente. Então:
O valor da estrutura é transferido com dois octetos, primeiro 59h e depois 7Ah.
7.1.6.1 Geral
Os tipos de dados estendidos consistem nos tipos de dados básicos e nos tipos de dados compostos definidos nas subseções a seguir.
O tipo de dados VISIBLE_STRINGlength é definido abaixo. Os valores admissíveis de dados do tipo VISIBLE_CHAR são 0h e o intervalo
de 20h a 7Eh. Os dados são interpretados como ISO 646-1973(E) 7-
caracteres codificados por bits. length é o comprimento da string visível.
NÃO ASSINADO8 VISIBLE_CHAR
O tipo de dados TIME_OF_DAY representa o tempo absoluto. Segue da definição e das regras de codificação que TIME_OF_DAY é
representado como uma sequência de bits de comprimento 48.
O componente ms é o tempo em milissegundos após a meia-noite. Dias componentes é o número de dias desde 1º de janeiro de 1984.
ESTRUTURA DE
HORA DO DIA
O tipo de dados TIME_DIFFERENCE representa uma diferença de tempo. Segue da definição e das regras de codificação que
TIME_DIFFERENCE é representado como uma sequência de bits de comprimento 48.
As diferenças de tempo são somas de números de dias e milissegundos. O componente ms é o número de milissegundos. Dias
componentes é o número de dias.
ESTRUTURA DE
7.1.6.7 Domínio
Os domínios são usados para transferir um grande bloco arbitrário de dados de um cliente para um servidor e vice-versa.
O conteúdo de um bloco de dados é específico da aplicação e não se enquadra no escopo desta especificação.
7.2.1 Geral
7.2.2.1 Geral
A transferência de dados em tempo real é realizada por meio de "Process Data Objects (PDO)". A transferência de PDO é
realizada sem sobrecarga de protocolo.
O PDO corresponde aos objetos do dicionário de objetos e fornece a interface para os objetos da aplicação. O tipo de dados e
o mapeamento de objetos de aplicativo em um PDO são determinados por uma estrutura de mapeamento de PDO padrão
correspondente dentro do dicionário de objetos. Se o mapeamento de PDO variável for suportado, o número de PDO e o
mapeamento de objetos de aplicação em um PDO podem ser transmitidos para um dispositivo CANopen durante o processo de
configuração (ver cláusula 7.3.1) aplicando os serviços SDO aos objetos correspondentes do dicionário de objetos .
O número e o comprimento do PDO de um dispositivo CANopen são específicos do aplicativo e podem ser especificados no
perfil do dispositivo ou no perfil do aplicativo.
Existem dois tipos de uso para PDO. A primeira é a transmissão de dados e a segunda a recepção de dados. Distingue-se em
Transmitir-PDO (TPDO) e Receber-PDO (RPDO). Dispositivos CANopen que suportam TPDO são produtores de PDO e
dispositivos CANopen que suportam RPDO são chamados de consumidores de PDO. PDO são descritos pelo parâmetro de
comunicação PDO e pelo parâmetro de mapeamento PDO. A estrutura desses tipos de dados é explicada na cláusula 7.4.8. O
parâmetro de comunicação PDO descreve as capacidades de comunicação do PDO. O parâmetro de mapeamento PDO contém
informações sobre o conteúdo do PDO.
Para cada PDO é obrigatório o par de parâmetros de comunicação e mapeamento. Os objetos apresentados acima são descritos
na cláusula 7.4.
A definição de PDO dentro de um perfil de dispositivo sempre se refere ao 1º dispositivo lógico dentro de um dispositivo
CANopen. Se as definições forem usadas para o 2º dispositivo lógico, o número PDO no dispositivo CANopen utilizado deve ser
o número PDO definido no perfil do dispositivo acrescido do valor de 64 (40h) conforme definido na Tabela 3.
NOTA: O número de PDOs não é limitado para um dispositivo lógico, por exemplo, um dispositivo CANopen com apenas um
dispositivo lógico pode ter 512 PDOs.
Dispositivo lógico em
Número PDO no dispositivo CANopen Número PDO no perfil do dispositivo
dispositivo CANopen
Para sincronizar os dispositivos CANopen, um objeto de sincronização (objeto SYNC) é transmitido periodicamente por
um aplicativo de sincronização. O objeto SYNC é representado por um objeto de comunicação pré-definido (ver subcláusula
7.2.5). Na Figura 16 é mostrado o princípio da transmissão síncrona e acionada por eventos. Os PDOs síncronos são
transmitidos dentro de uma janela de tempo pré-definida imediatamente após o objeto SYNC.
Síncrono Síncrono
comprimento da janela comprimento da janela
Tempo
O parâmetro de tipo de transmissão de um PDO especifica o modo de transmissão, bem como o modo de disparo.
Para TPDOs síncronos, o tipo de transmissão também especifica a taxa de transmissão na forma de um fator baseado no
período básico de transmissão do objeto SYNC. Um tipo de transmissão de 0 significa que a mensagem deve ser
transmitida após a ocorrência do SYNC, mas acíclica (não periodicamente), somente se um evento ocorreu antes do
SYNC. O tipo de transmissão 1 significa que a mensagem deve ser transmitida com cada objeto SYNC. Um tipo de
transmissão de n significa que a mensagem deve ser transmitida com cada n-ésimo objeto SYNC. TPDOs acionados por
eventos são transmitidos sem qualquer relação com o objeto SYNC.
Os dados dos RPDOs síncronos recebidos após a ocorrência do objeto SYNC são passados para a aplicação com a ocorrência do
seguinte SYNC, independente da taxa de transmissão especificada pelo tipo de transmissão. Os dados de RPDOs controlados por
eventos são passados diretamente para o aplicativo.
A transmissão da mensagem é acionada pela ocorrência de um evento específico do aplicativo especificado no perfil do
dispositivo, perfil do aplicativo ou específico do fabricante, ou se um tempo especificado (evento-tempo) tiver decorrido sem a
ocorrência de um evento.
- Solicitado remotamente
A transmissão de um PDO acionado por evento é iniciada no recebimento de um RTR iniciado por um PDO
consumidor.
7.2.2.4.1 Geral
- Número PDO: Número PDO [1..512] para cada tipo de usuário no dispositivo local
A escrita do serviço PDO está de acordo com o modelo push. Há zero ou mais consumidores do DOP.
A DOP deverá ter exatamente um produtor.
Através deste serviço o produtor do PDO envia os dados dos objetos de aplicação mapeados para o(s) consumidor(es). Os parâmetros
para este serviço são definidos na Tabela 4.
Argumento Obrigatoriedade
Número PDO
obrigatoriedade
Dados
obrigatoriedade
A leitura do serviço PDO está de acordo com o modelo pull. Há um ou mais consumidores da DOP.
A DOP deverá ter exatamente um produtor.
Através deste serviço o consumidor do PDO solicita ao produtor que forneça os dados dos objetos de aplicação mapeados. O serviço está
confirmado. O parâmetro de resultado remoto confirmará o valor. Os parâmetros para este serviço são definidos na Tabela 5.
Argumento Obrigatoriedade
Dados obrigatoriedade
A solicitação de gravação do serviço PDO não está confirmada. O produtor de PDO deve enviar os dados do processo dentro de um PDO
para a rede. Pode haver de 0 a n consumidores de PDO. No(s) consumidor(es) de DOP é indicada a recepção de um DOP válido. A Figura 17
define o protocolo de gravação PDO.
O serviço para uma solicitação de leitura de PDO é confirmado. Um ou mais consumidores PDO devem transmitir um RTR
para a rede. Na recepção do RTR, o produtor de DOP para o DOP solicitado deverá transmitir o DOP. Em todos os
consumidores de DOP para este DOP deverá ser indicada a recepção. Pode haver de 1 a n consumidores de PDO. O serviço
de leitura é opcional e depende dos recursos de hardware. Figura 18
especifica o protocolo de leitura PDO.
7.2.3.1 Geral
Um MPDO fornece acesso direto de gravação a objetos do dicionário de objetos de um dispositivo CANopen. O tamanho dos
dados desses objetos é limitado a um máximo de 4 bytes.
Existem dois tipos de uso para o MPDO. O primeiro é o modo de endereço de destino (DAM) MPDO e o segundo é o modo
de endereço de origem (SAM) MPDO. Os dispositivos CANopen que suportam a recepção de MPDOs são consumidores de
MPDO e os dispositivos CANopen que suportam a transmissão de MPDOs são produtores de MPDO.
Os MPDOs correspondem a objetos no dicionário de objetos e fornecem a interface para os objetos de aplicação.
Um multiplexador (ver 7.2.3.4.1) identifica o objeto no dicionário de objetos do consumidor MPDO. Um MPDO DAM pode
ser recebido por todos os consumidores desse MPDO simultaneamente ou por um único consumidor. Como o serviço de
gravação usado não é confirmado, uma mensagem EMCY é gerada se o objeto não existir.
A transmissão de um MPDO no produtor MPDO deve ser acionada por eventos e não por temporizador, solicitada
remotamente, acionada de forma síncrona.
Um multiplexador do MPDO refere-se ao produtor do MPDO. Apenas um produtor de MPDO deste tipo é permitido para cada
dispositivo CANopen. A transmissão deve ser acionada por eventos e não deve ser acionada por temporizador, solicitada
remotamente, acionada de forma síncrona. O produtor de MPDO pode utilizar uma lista de scanners para saber qual objeto
deve ser enviado. Os consumidores de MPDO podem usar uma lista de despachantes para saber qual multiplexador de
origem faz referência a qual multiplexador de destino.
7.2.3.3.1 Geral
- Número PDO: Número PDO [1..512] para cada tipo de usuário no dispositivo local
usuário: - multiplexador: contendo índice e subíndice do tipo STRUCTURE OF UNSIGNED16, UNSIGNED8, com índice
especificando um objeto do dicionário de objetos do dispositivo CANopen e subíndice
especificando um componente do objeto do dicionário de objetos de um dispositivo CANopen
A escrita do serviço MPDO está de acordo com o modelo push. Há zero ou mais consumidores do MPDO. O MPDO terá exatamente um
produtor.
Argumento Obrigatoriedade
Número PDO
obrigatoriedade
A solicitação de gravação do serviço MPDO não está confirmada. O produtor de MPDO deve enviar os dados do processo dentro de um
MPDO para a rede. Pode haver de 0 a n consumidores de MPDO, dependendo do ID de nó fornecido. No(s) consumidor(es) do MPDO
deverá ser indicado o recebimento de um DOP válido. Figura 19
especifica o protocolo de gravação MPDO.
solicitar
f endereço m d
7 6 .. 0 0 0
indicação
0 1 34 7
indicação
indicação
• f: tipo de endereço
0: endereçamento de origem
1: Endereçamento de destino
• m: multiplexador. Representa o índice/sub-índice dos dados do processo a serem transferidos pelo MPDO. Dependendo do tipo de
endereço, o índice/sub-índice deve ser usado para identificar os dados do dispositivo CANopen transmissor (endereçamento de
origem) ou para identificar os dados no dispositivo CANopen receptor (endereçamento de destino).
• d: dados do processo. O comprimento de dados inferior a 4 bytes é preenchido para caber em 32 bits.
Figura 19: Gravação do protocolo MPDO
7.2.4.1 Geral
Um SDO está fornecendo acesso direto às entradas de objetos do dicionário de objetos de um dispositivo CANopen. Como essas
entradas de objetos podem conter dados de tamanho e tipo de dados arbitrários. Os SDOs podem ser usados para transferir vários
conjuntos de dados (cada um contendo um grande bloco arbitrário de dados) de um cliente para um servidor e vice-versa.
O cliente deve controlar através de um multiplexador (índice e sub-índice do dicionário de objetos) qual conjunto de dados deve ser
transferido. O conteúdo do conjunto de dados é definido no dicionário de objetos.
Basicamente, um SDO é transferido como uma sequência de segmentos. Antes de transferir os segmentos há uma fase de inicialização
onde cliente e servidor se preparam para transferir os segmentos. Para SDOs, também é possível transferir um conjunto de dados de até
quatro bytes durante a fase de inicialização. Esse mecanismo é chamado de transferência acelerada SDO.
Opcionalmente, um SDO pode ser transferido como uma sequência de blocos onde cada bloco pode consistir em uma sequência de até
127 segmentos contendo um número de sequência e os dados. Antes da transferência dos blocos deve haver uma fase de inicialização
onde cliente e servidor podem se preparar para transferir os blocos e negociar o número de segmentos em um bloco. Após a transferência
dos blocos haverá uma fase de finalização onde cliente e servidor poderão verificar a correção da transferência de dados anterior
comparando checksums derivados do conjunto de dados. O tipo de transferência mencionado acima é chamado de transferência de
bloco SDO, que é mais rápido que a transferência segmentada para um grande conjunto de dados.
No upload de bloco SDO, é possível que o tamanho do conjunto de dados não justifique o uso de uma transferência de bloco devido à
sobrecarga de protocolo implícita. Nesses casos, pode ser implementado um suporte para um fallback para a transferência SDO normal
(segmentada) ou SDO acelerada na fase de inicialização. Como a suposição do tamanho mínimo do conjunto de dados para o qual uma
transferência de bloco SDO supera os outros tipos de transferência depende de vários parâmetros, o cliente indica esse valor limite em
bytes para o servidor na fase de inicialização.
Para a transferência de bloco SDO, um esquema Go-Back-n ARQ é usado para confirmar cada bloco:
• Após o download do bloco SDO, o servidor indica ao cliente o último segmento recebido com sucesso desta transferência de bloco
SDO, reconhecendo o número de sequência deste segmento. Ao fazer isso, o servidor reconhece implicitamente todos os segmentos
anteriores a esse segmento. O cliente deve iniciar o seguinte
Transferência de bloco SDO com retransmissão de todos os dados não reconhecidos. Além disso, o servidor deve indicar
o número de segmentos por bloco SDO para a próxima transferência de bloco SDO.
• Após o upload do bloco SDO, o cliente indica ao servidor o último segmento recebido com sucesso da transferência do bloco
SDO, reconhecendo este número de sequência de segmento. Fazendo isso, o cliente reconhece implicitamente todos os
segmentos anteriores a este segmento. O servidor deve iniciar a seguinte transferência de blocos SDO com a
retransmissão de todos os dados não reconhecidos. Adicionalmente, o cliente deverá indicar o número de segmentos por
bloco SDO para a próxima transferência de bloco SDO.
Sempre o cliente inicia uma transferência SDO para qualquer tipo de transferência. O proprietário do dicionário de objetos
acessados é o servidor do SDO. Tanto o cliente quanto o servidor podem tomar a iniciativa de abortar a transferência de um
SDO.
Por meio de um SDO é estabelecido um canal de comunicação peer-to-peer entre dois dispositivos CANopen. Um dispositivo
CANopen pode suportar mais de um SDO. Um servidor-SDO suportado é o caso padrão (SDO padrão).
SDOs são descritos pelo registro de parâmetro de comunicação SDO. A estrutura deste tipo de dados é explicada na
subcláusula 7.4.8. O parâmetro de comunicação SDO descreve os recursos de comunicação do SSDO e do CSDO.
Para cada SDO os parâmetros de comunicação são obrigatórios. Se existir apenas um SSDO, os parâmetros de comunicação
podem ser omitidos. Os objetos mencionados acima estão descritos na subcláusula 7.4.
7.2.4.2.1 Geral
O modelo para a comunicação SDO é o modelo Cliente/Servidor conforme descrito na subcláusula 4.4.3.
Atributos:
- Número SDO: Número SDO [1..128] para cada tipo de usuário no dispositivo local
- tipo de um dos valores {cliente, servidor}
usuário: - tipo de dados mux: multiplexador contendo índice e subíndice do tipo STRUCTURE OF UNSIGNED16,
UNSIGNED8, com índice especificando um objeto do dicionário de objetos do
dispositivo CANopen e subíndice especificando um componente do objeto do dicionário
de objetos de um dispositivo CANopen
- tipo de transferência: depende do comprimento dos dados a serem transferidos: acelerado,
normal (segmentado) ou bloco para até 4 bytes de dados; normal (segmentado)
ou bloco para mais de 4 bytes de dados
- tipo de dados: de acordo com o índice referenciado e sub-índice
Os seguintes serviços podem ser aplicados em um SDO, dependendo dos requisitos do aplicativo:
• Download SDO, que é subdividido em
- Início de download SDO
Ao utilizar os serviços de download SDO normal (segmentado) e upload SDO normal (segmentado), o software de comunicação
será responsável por transferir o SDO como uma sequência de segmentos.
A transferência acelerada SDO deve ser suportada. A transferência segmentada SDO deve ser suportada se objetos maiores
que 4 Bytes forem suportados. Opcionalmente, os seguintes serviços SDO para fazer uma transferência de bloco SDO com
maior utilização de barramento e desempenho para um grande tamanho de conjunto de dados podem ser implementados:
• Download do bloco SDO, que é subdividido em
- Início do download do bloco SDO
- Bloco de download do bloco SDO
- Fim do download do bloco SDO
Ao utilizar os serviços de download de blocos SDO e upload de blocos SDO, o software de comunicação será responsável por transferir os
dados como uma sequência de blocos.
No protocolo de upload de bloco SDO, um suporte para uma mudança para protocolo de upload SDO no início do upload de bloco SDO pode
ser implementado para aumentar o desempenho da transferência para dados cujo tamanho não justifique o uso da sobrecarga de protocolo
do protocolo de upload de bloco SDO.
Para abortar uma transferência de bloco SDO, o serviço de transferência de abortar SDO é usado.
O cliente está utilizando o serviço SDO download para transferir dados do cliente para o servidor (proprietário do dicionário de objetos). Os
dados, o multiplexador (índice e subíndice) do conjunto de dados e seu tamanho são indicados ao servidor. Os parâmetros para este serviço
são definidos na Tabela 7.
O serviço está confirmado. O parâmetro de resultado remoto indicará o sucesso ou falha da solicitação. Em caso de falha, opcionalmente o
motivo é confirmado.
O download de SDO consiste no mínimo no serviço de início de download de SDO e, opcionalmente, nos serviços de segmento de download
de SDO (comprimento de dados > 4 bytes).
Argumento Obrigatoriedade
Número SDO obrigatoriedade
Multiplexador obrigatoriedade
Tamanho opcional
Dados obrigatoriedade
Sucesso seleção
Falha seleção
Razão opcional
O cliente solicita que o servidor prepare o download de dados usando o serviço de início de download SDO. Opcionalmente, o tamanho dos
dados a serem baixados é indicado ao servidor. Os parâmetros para este serviço são definidos na Tabela 8.
O multiplexador do conjunto de dados e o tipo de transferência são indicados ao servidor. No caso de download acelerado de SDO, os dados
do conjunto de dados identificado pelo multiplexador e tamanho são indicados ao servidor.
Argumento Obrigatoriedade
Número SDO obrigatoriedade
Multiplexador obrigatoriedade
Normal seleção
seleção
Acelerado
Tamanho opcional
Dados obrigatoriedade
Obrigatoriedade
Sucesso
O serviço está confirmado. O parâmetro de resultado remoto indicará o sucesso da solicitação. Em caso de falha, uma solicitação de transferência
de abortamento SDO deve ser iniciada. No caso de um download rápido SDO bem sucedido de um DOMÍNIO multiplexado, este serviço conclui o
download do conjunto de dados identificado pelo multiplexador.
O cliente transfere os dados segmentados para o servidor usando o serviço de download SDO. Os dados do segmento e opcionalmente seu
tamanho são indicados ao servidor. O parâmetro continue indica ao servidor se ainda há mais segmentos a serem baixados ou se este foi o último
segmento a ser baixado. Os parâmetros para este serviço são definidos na Tabela 9.
Argumento Obrigatoriedade
Continuar obrigatoriedade
Mais seleção
Último seleção
Tamanho obrigatoriedade
Dados obrigatoriedade
Obrigatoriedade
Sucesso
O serviço está confirmado. O parâmetro de resultado remoto indicará o sucesso da solicitação. Em caso de falha, uma solicitação de transferência
de abortamento SDO deve ser iniciada. Em caso de sucesso, o servidor aceitou os dados do segmento e está pronto para aceitar o próximo
segmento. Deve haver no máximo um serviço de segmento de download SDO pendente para uma transferência SDO.
Um serviço de início de download SDO bem-sucedido com tipo de transferência segmentada deve ter sido executado antes desse serviço.
O cliente está utilizando o serviço de upload SDO para transferir os dados do servidor (proprietário do dicionário de objetos) para o
cliente. O multiplexador (índice e subíndice) do conjunto de dados é indicado ao servidor. Os parâmetros para este serviço são definidos
na Tabela 10.
O upload de SDO consiste em pelo menos o serviço de inicialização de upload de SDO e opcional de serviços de segmento de upload
de SDO (comprimento de dados > 4 bytes).
Argumento Obrigatoriedade
Multiplexador obrigatoriedade
Sucesso seleção
Tamanho opcional
Dados obrigatório
Falha seleção
Razão opcional
O serviço está confirmado. O parâmetro de resultado remoto indicará o sucesso ou falha da solicitação. Em caso de falha, opcionalmente
o motivo é confirmado. Em caso de sucesso, os dados e seu tamanho são confirmados.
O cliente solicita que o servidor prepare os dados para upload usando o serviço de inicialização de upload SDO. O multiplexador (índice
e subíndice) do conjunto de dados cujo upload é iniciado é indicado ao servidor. Os parâmetros para este serviço são definidos na Tabela
11.
O serviço está confirmado. O parâmetro de resultado remoto indicará o sucesso da solicitação. Em caso de falha, uma solicitação de
transferência de abortamento SDO deve ser executada. Em caso de sucesso, o tamanho dos dados é confirmado. Em caso de
carregamento rápido SDO bem sucedido, este serviço conclui o carregamento do conjunto de dados identificado pelo multiplexador e os
dados correspondentes são confirmados.
Argumento Obrigatoriedade
Multiplexador obrigatório
Sucesso Obrigatório
Obrigatório
Multiplexador
Normal seleção
seleção
Acelerado
Tamanho opcional
Dados obrigatório
O cliente solicita ao servidor que forneça os dados do próximo segmento usando o serviço de segmento de upload SDO. O parâmetro continue
indica ao cliente se ainda há mais segmentos a serem carregados ou se este foi o último segmento a ser carregado. Deve haver no máximo
um serviço de segmento de upload SDO pendente para um SDO. Os parâmetros para este serviço são definidos na Tabela 12.
O serviço está confirmado. O parâmetro de resultado remoto indicará o sucesso da solicitação. Em caso de falha, uma solicitação de
transferência de abortamento SDO deve ser iniciada. Em caso de sucesso, os dados do segmento e, opcionalmente, seu tamanho são
confirmados.
Um serviço de início de upload de SDO bem-sucedido com tipo de transferência normal (segmentado) deve ser executado antes desse serviço.
Argumento Obrigatoriedade
Número SDO
obrigatoriedade
Sucesso Obrigatório
Continuar Obrigatório
Mais seleção
Último seleção
Tamanho obrigatoriedade
Dados obrigatoriedade
O cliente está utilizando o serviço de download do bloco SDO para transferir os dados do cliente para o servidor (proprietário do dicionário
de objetos). Os dados, o multiplexador (índice e sub-índice) do conjunto de dados e opcionalmente seu tamanho são indicados ao
servidor. Os parâmetros para este serviço são definidos na Tabela 13.
O serviço está confirmado. O parâmetro de resultado remoto indicará o sucesso ou falha da solicitação. Em caso de falha, opcionalmente
o motivo é confirmado.
Argumento Obrigatório
Número SDO Obrigatório
Multiplexador Obrigatório
Tamanho Obrigatório
Dados Obrigatório
Sucesso seleção
Falha seleção
Razão opcional
O cliente solicita que o servidor se prepare para download usando o serviço de início de download de bloco SDO. Os parâmetros para
este serviço são definidos na Tabela 14.
Tanto o cliente quanto o servidor estão indicando sua capacidade e demanda para verificar a transferência completa com uma soma de
verificação no final do download do bloco SDO.
Argumento Obrigatoriedade
Multiplexador obrigatório
Tamanho opcional
Sucesso Obrigatório
O serviço está confirmado. O parâmetro de resultado remoto indicará o sucesso da solicitação, o número de segmentos por bloco que o servidor
pode receber e sua capacidade e demanda para verificar a transferência completa com uma soma de verificação. Em caso de falha, um serviço
de transferência de aborto SDO deve ser iniciado.
O cliente transfere os dados do próximo bloco para o servidor usando o serviço de subbloco de download de bloco SDO. Os dados do bloco são
transferidos para o servidor por uma sequência de segmentos. Cada segmento consiste nos dados e um número de sequência começando em 1,
que é aumentado para cada segmento em 1 até blksize. O parâmetro blksize é negociado entre servidor e cliente no serviço de início de download
de bloco SDO e pode ser alterado pelo servidor a cada confirmação de transferência de bloco. O parâmetro continue indica se o servidor deve
permanecer na fase de sub-bloco de download do bloco SDO ou mudar na fase final de download do bloco SDO. Os parâmetros para este serviço
são definidos na Tabela 15.
Argumento Obrigatoriedade
Número SDO obrigatoriedade
Continuar obrigatoriedade
Mais seleção
Último seleção
Dados obrigatoriedade
Sucesso obrigatoriedade
obrigatoriedade
Ackseq
obrigatoriedade
Tamanho preto
O serviço está confirmado. O parâmetro de resultado remoto indicará o sucesso da solicitação. Em caso de sucesso, o parâmetro ackseq indica o
número de sequência do último segmento que o servidor recebeu com sucesso. Se este número não corresponder ao número de sequência do
último segmento enviado pelo cliente durante esta transferência de bloco, o cliente deverá retransmitir todos os segmentos descartados pelo
servidor na próxima transferência de bloco. Em caso de falha fatal, um serviço de transferência de aborto SDO deve ser iniciado. Em caso de
sucesso, o servidor aceitou todos os dados de segmento reconhecidos e está pronto para aceitar o próximo bloco. Deve haver no máximo um
serviço de sub-bloco de download de bloco SDO pendente para uma transferência SDO.
Um serviço de início de download de bloco SDO bem-sucedido deve ser executado antes desse serviço.
O cliente indica o fim da transferência para o servidor usando o serviço final de download do bloco SDO. O número de bytes que não contém
dados válidos nos últimos segmentos transmitidos é indicado ao servidor. Os parâmetros para este serviço são definidos na Tabela 16.
Se tanto o servidor quanto o cliente indicaram sua capacidade e demanda para verificar a transferência completa com um checksum no bloco de
download SDO, o cliente indica o checksum dos dados transferidos para o servidor. O servidor também deve gerar o checksum que deve ser
comparado com o gerado pelo cliente.
Argumento Obrigatoriedade
Valid_data obrigatoriedade
Sucesso obrigatoriedade
O serviço está confirmado. O parâmetro de resultado remoto indicará o sucesso da solicitação (correspondência de somas de verificação
entre cliente e servidor, se negociado) e conclui o download do conjunto de dados. Em caso de falha, um serviço de transferência de aborto
SDO deve ser iniciado.
O cliente está utilizando o serviço de upload de bloco SDO para transferir os dados do servidor (proprietário do dicionário de objetos) para o
cliente. O multiplexador (índice e subíndice) do conjunto de dados solicitado é indicado ao servidor. Os parâmetros para este serviço são
definidos na Tabela 17.
O serviço está confirmado. O parâmetro de resultado remoto indicará o sucesso ou falha da solicitação. Em caso de falha, opcionalmente o
motivo é confirmado. Em caso de sucesso, os dados e opcionalmente seu tamanho são confirmados.
Argumento Obrigatoriedade
Número SDO obrigatoriedade
Multiplexador obrigatoriedade
Sucesso seleção
Tamanho opcional
Dados obrigatoriedade
Falha seleção
Razão opcional
O cliente solicita que o servidor se prepare para fazer upload de dados usando o serviço de inicialização de upload de bloco SDO. O
multiplexador do conjunto de dados cujo upload é iniciado e o número de segmentos que o cliente pode receber são indicados ao servidor.
Os parâmetros para este serviço são definidos na Tabela 18.
Um valor de limite de troca de protocolo é indicado para o servidor. Se o número de bytes que devem ser carregados for menor ou igual a
este valor o servidor poderá confirmar esta transferência de dados com o serviço de upload SDO conforme descrito na subcláusula 7.2.4.2.5.
Tanto o cliente quanto o servidor estão indicando sua capacidade e demanda para verificar a transferência completa por meio de uma soma
de verificação. Opcionalmente, o tamanho do upload
dados são indicados ao cliente.
Argumento Obrigatoriedade
Número SDO obrigatório
Sim seleção
Não seleção
Multiplexador obrigatório
Limite obrigatório
Sucesso obrigatório
Sim seleção
Não seleção
Tamanho opcional
O serviço está confirmado. Em caso de falha, um serviço de transferência de aborto SDO deve ser iniciado. Em caso de sucesso o
tamanho dos dados é opcionalmente indicado ao cliente.
Este serviço é iniciado pelo cliente com o serviço de inicialização de upload de SDO anterior ou o serviço de sub-bloco de upload de
bloco de SDO anterior. O servidor transfere os dados do próximo bloco para o cliente usando o serviço de sub-bloco de upload de bloco
SDO. Os dados do bloco são indicados ao cliente por uma sequência de segmentos. Cada segmento consiste nos dados do segmento e
um número de sequência começando em 1, que é aumentado para cada segmento em 1 até blksize. O parâmetro blksize é indicado pelo
cliente ao servidor durante o serviço de início de upload de bloco SDO e pode ser alterado pelo cliente a cada confirmação de
transferência de bloco. O parâmetro continue indica ao cliente se deve permanecer na fase de upload do bloco SDO ou mudar na fase
final de upload do bloco SDO. Os parâmetros para este serviço são definidos na Tabela 19.
Argumento Obrigatoriedade
Continuar obrigatório
Mais seleção
Último seleção
Dados obrigatoriedade
Sucesso obrigatório
Ackseq obrigatório
O serviço está confirmado. O parâmetro de resultado remoto indicará o sucesso da solicitação. Em caso de sucesso, o parâmetro ackseq indica o
número de sequência do último segmento que o cliente recebeu com sucesso. Se este número não corresponder ao número de sequência do
último segmento enviado pelo servidor durante esta transferência de bloco, o servidor deverá retransmitir todos os segmentos descartados pelo
cliente na próxima transferência de bloco. Em caso de falha fatal, um serviço de transferência de aborto SDO deve ser iniciado. Em caso de
sucesso, o cliente aceitou todos os dados do segmento reconhecidos e está pronto para aceitar o próximo bloco. Deve haver no máximo um
serviço de sub-bloco de upload de bloco SDO pendente para uma transferência SDO.
Um serviço de inicialização de upload de bloco SDO bem-sucedido deve ser executado antes desse serviço.
O servidor indica o fim da transferência para o cliente usando o serviço final de upload de bloco SDO.
O número de bytes que não contém dados válidos nos últimos segmentos transmitidos é indicado ao cliente. Os parâmetros para este serviço são
definidos na Tabela 20.
Se tanto o servidor quanto o cliente indicaram sua capacidade e demanda para verificar a transferência completa usando checksum durante o
carregamento do bloco SDO, este checksum é indicado ao cliente pelo servidor. O cliente também deve gerar o checksum que deve ser comparado
com o gerado pelo servidor.
Argumento Obrigatoriedade
Valid_data obrigatoriedade
O serviço está confirmado. O parâmetro de resultado remoto indicará o sucesso da solicitação (correspondência de somas de verificação entre
cliente e servidor, se negociado) e conclui o download do conjunto de dados. Em caso de falha, um serviço de transferência de aborto SDO deve
ser iniciado.
O serviço de transferência de aborto de SDO aborta o serviço de upload de SDO ou o serviço de download de SDO de um SDO referenciado por
seu número. O motivo é indicado. O serviço não está confirmado. Tanto o cliente quanto o servidor de um SDO podem executar o serviço a
qualquer momento. Se o cliente de um SDO tiver um serviço confirmado pendente, a indicação do aborto é considerada a confirmação desse
serviço. Os parâmetros para este serviço são definidos na Tabela 21.
Argumento Obrigatoriedade
Multiplexador obrigatoriedade
Razão obrigatoriedade
7.2.4.3.1 Geral
Seis serviços confirmados (download de SDO, upload de SDO, início de upload de SDO, início de download de SDO,
segmento de download de SDO e segmento de upload de SDO) e um serviço não confirmado (transferência de
aborto de SDO) são definidos para SDOs fazendo o SDO normal (segmentado) e SDO acelerado transferir.
Oito serviços confirmados (download de bloco SDO, upload de bloco SDO, início de upload de bloco SDO, início de
download de bloco SDO, sub-bloco de download de bloco SDO, sub-bloco de upload de bloco SDO, fim de upload de
bloco SDO e fim de download de bloco SDO) e um não confirmado service (transferência de aborto SDO) são
definidos para SDOs fazendo a transferência de bloco SDO opcional.
Este protocolo (especificado na Figura 20) deve ser usado para implementar o serviço de download SDO. Os SDOs
são baixados como uma sequência de zero ou mais serviços de segmento de download de SDO precedidos por um
serviço de início de download de SDO. A sequência é terminada por:
• Uma solicitação/indicação de início de download de SDO com o e-bit definido como 1 seguido por uma resposta/
confirmação de início de download de SDO, indicando a conclusão bem-sucedida de uma sequência de download
acelerada.
• Uma resposta/confirmação de segmento de download SDO com o bit c definido como 1, indicando a conclusão bem-
sucedida de uma sequência de download normal.
• Uma solicitação/indicação de transferência de aborto de SDO, indicando a conclusão malsucedida do download
seqüência.
O protocolo conforme definido na Figura 21 deve ser usado para implementar o serviço de início de download SDO.
Cliente Servidor
solicitar
cc = 1 x n e s m d
7 .. 5 4 3 .. 2 1 0 0 0
indicação
0 134 7
resposta
sc = 3 x m reservado
confirmação 7 .. 5 4 .. 0 0 0
0 134 7
• n: válido somente se e = 1 e s = 1, caso contrário 0. Se válido indica o número de bytes em d que não contém dados. Bytes [8-n, 7] não
contêm dados.
• e: tipo de transferência
0: transferência normal
1: transferência acelerada
• s: indicador de tamanho
O protocolo conforme definido na Figura 22 deve ser usado para implementar o serviço de segmento de download SDO.
Cliente Servidor
solicitar
cc = 0 t n c dados de segmento
7 .. 5 4 3 .. 1 0 0
indicação
0 1 7
resposta
sc = 1 t x reservado
confirmação 7 .. 5 4 3 .. 0 0
0 1 7
• seg-data: no máximo 7 bytes de dados de segmento a serem baixados. A codificação depende do tipo de dados referenciados por
índice e subíndice
• n: indica o número de bytes em seg-data que não contém dados de segmento. Bytes [8-n, 7] não contêm dados de segmento. Se n = 0
bytes 1 a 7 devem conter dados de segmento.
NOTA: Se o tamanho na iniciação for indicado, isso se aplica aos dados gerais transferidos.
• c: indica se ainda há mais segmentos a serem baixados.
• t: bit de alternância. Este bit deve alternar para cada segmento subsequente que é baixado. O primeiro segmento deve ter o bit de
alternância definido como 0. O bit de alternância deve ser igual para a solicitação e a mensagem de resposta.
Este protocolo (especificado na Figura 23) deve ser usado para implementar o serviço de upload SDO. Os SDOs são carregados como
uma sequência de zero ou mais serviços de segmento de carregamento de SDO precedidos por um serviço de inicialização de
carregamento de SDO. A sequência é terminada por:
• Uma resposta/confirmação de inicialização de upload SDO com o e-bit definido como 1, indicando a conclusão bem-sucedida de uma
sequência de upload acelerada.
• Uma resposta/confirmação do segmento de upload SDO com o bit c definido como 1, indicando a conclusão bem-sucedida de uma
sequência de upload normal.
• Uma nova solicitação/indicação de início de upload de SDO, indicando a conclusão malsucedida da sequência de upload e o início de
uma nova sequência.
Se no upload de dois segmentos consecutivos o bit de alternância não for alterado, o conteúdo do último segmento deve ser ignorado.
Se tal erro for relatado ao aplicativo, o aplicativo pode decidir abortar o upload.
O protocolo conforme definido na Figura 24 deve ser usado para implementar o serviço de inicialização de upload SDO.
Cliente Servidor
solicitar
cc = 2 x m reservado
7 .. 5 4 .. 0 0 0
indicação
0 134 7
resposta
sc = 2 x n e s m d
confirmação 7 .. 5 4 3 .. 2 1 0 0 0
0 134 7
• n: válido somente se e = 1 e s = 1, caso contrário 0. Se válido indica o número de bytes em d que não
conter dados. Bytes [8-n, 7] não contêm dados de segmento.
• e: tipo de transferência
0: transferência normal
1: transferência acelerada
• s: indicador de tamanho
O protocolo conforme definido na Figura 25 deve ser usado para implementar o serviço de segmento de upload SDO.
Cliente Servidor
solicitar
cc = 3 t x reservado
7 .. 5 4 3 .. 0 0
indicação
0 1 7
resposta
sc = 0 t n c dados de segmento
confirmação 7 .. 5 4 3 .. 1 0 0
0 1 7
• t: bit de alternância. Este bit deve alternar para cada segmento subsequente que é carregado. O primeiro segmento deve ter o bit de
alternância definido como 0. O bit de alternância deve ser igual para a solicitação e a mensagem de resposta.
• seg-data: no máximo 7 bytes de dados de segmento a serem carregados. A codificação depende do tipo de dados referenciados por
índice e subíndice
• n: indica o número de bytes em seg-data que não contém dados de segmento. Bytes [8-n, 7] não contêm dados de segmento. Se n = 0
bytes 1 a 7 devem conter dados de segmento.
NOTA: Se o tamanho na iniciação for indicado, isso se aplica aos dados gerais transferidos.
(normal)
(normal)
(último)
Este protocolo (especificado na Figura 26) deve ser usado para implementar um serviço de download de blocos SDO.
Os SDOs são baixados como uma sequência de serviços de sub-bloco de download de bloco SDO precedidos por um serviço de início
de download de bloco SDO. A sequência de sub-blocos de download do bloco SDO é encerrada por:
• Um segmento baixado dentro de um bloco com o c-bit definido como 1, indicando a conclusão do
Sequência de download do bloco SDO.
• Uma solicitação/indicação de interrupção de transferência de SDO, indicando a conclusão malsucedida da sequência de download.
O serviço de download de bloco SDO é encerrado com o serviço final de download de bloco SDO. Se tanto o cliente quanto o servidor
tiverem indicado a capacidade de gerar um CRC durante o serviço de início de download do bloco SDO, o servidor deverá gerar o CRC
nos dados recebidos. Se este CRC for diferente do CRC gerado pelo cliente, o servidor deve indicar isso com uma indicação de
transferência de abortar SDO.
O protocolo conforme definido na Figura 27 deve ser usado para implementar o serviço de início de download do bloco SDO.
Cliente Servidor
solicitar
cc = 6 x cc s cs=0 m Tamanho
7 .. 5 4 .. 3 2 1 0 0 0
indicação
0 134 7
resposta
0 13 4 5 7
• s: indicador de tamanho
• blksize: Número de segmentos por bloco que deve ser utilizado pelo cliente para o bloco seguinte
baixar com 0 < blksize < 128
O protocolo conforme definido na Figura 28 deve ser usado para implementar o serviço de sub-bloco de download de bloco
SDO.
Cliente Servidor
solicitar
0 1 7
c sequência dados de segmento
c sequência dados de segmento
7 c 6 ..sequência
0 0
7 6 .. 0
dados de segmento
0 indicação
7 6 .. 0 0
resposta
0 1 2 3 7
• blksize: Número de segmentos por bloco que deve ser utilizado pelo cliente para o bloco seguinte
baixe com 0 < blksize < 128.
O protocolo conforme definido na Figura 29 deve ser usado para implementar o serviço final de download do bloco SDO.
n: indica o número de bytes no último segmento do último bloco que não contém dados. Bytes [8-n, 7] não contêm dados de segmento.
crc: soma de verificação de redundância cíclica de 16 bits (CRC) para o conjunto de dados. O algoritmo para geração do CRC está descrito
na subcláusula 7.2.4.3.16. CRC só é válido se no bloco SDO iniciar o download cc e sc forem definidos como 1, caso contrário, CRC deve
ser definido como 0.
(normal)
(último)
Este protocolo (especificado na Figura 30) deve ser usado para implementar um serviço de upload de bloco SDO que começa com o
serviço de inicialização de upload de bloco SDO. O cliente pode indicar um valor limite para o servidor que é o valor mínimo em bytes
para aumentar o desempenho da transferência usando o protocolo de upload de bloco SDO em vez do protocolo de upload SDO. Se o
tamanho do conjunto de dados for menor ou igual a esse valor, o servidor poderá continuar com a transferência normal ou acelerada do
protocolo de upload de bloco SDO.
Caso contrário, os SDOs são carregados como uma sequência de serviços de sub-bloco de carregamento de bloco SDO. A sequência
de sub-blocos de upload de bloco SDO é encerrada por:
• Um segmento carregado dentro de um bloco com o c-bit definido como 1, indicando a conclusão do SDO
seqüência de sub-bloco de upload de bloco.
• UMA solicitação/indicação de transferência de aborto SDO está indicando a conclusão malsucedida do upload
seqüência.
O serviço de upload de bloco SDO é encerrado com o serviço final de upload de bloco SDO. Se tanto o cliente quanto o servidor tiverem
indicado a capacidade de gerar um CRC durante o serviço de inicialização do upload do bloco SDO, o cliente deverá gerar o CRC nos
dados recebidos. Se este CRC for diferente do CRC gerado pelo servidor, o cliente deverá indicá-lo com uma indicação SDO abort
transfer.
O protocolo conforme definido na Figura 31 deve ser usado para implementar o serviço de inicialização de upload de bloco SDO.
Se o valor do parâmetro de limite de troca de protocolo indicado pelo cliente na primeira solicitação for menor ou igual ao tamanho do
conjunto de dados a ser carregado, o servidor pode continuar com o carregamento do protocolo SDO conforme descrito na subcláusula
7.2.4.3.5.
• s: indicador de tamanho
0: o tamanho do conjunto de dados não é indicado
O protocolo conforme definido na Figura 32 deve ser usado para implementar o serviço de sub-bloco de upload de bloco SDO.
Cliente Servidor
solicitar
0 1 7
c sequência dados de segmento
c sequência dados de segmento
indicação 7
7
c 6 ..sequência
0
6 .. 0
0
dados de segmento
0
7 6 .. 0 0
resposta
0 1 2 3 7
1: não há mais segmentos a serem carregados, entre na fase 'End block upload'
• ackseq: número seqüencial do último segmento recebido com sucesso durante o último upload do bloco. Se ackseq for definido como
0, o cliente indica ao servidor que o segmento com o número de sequência 1 não foi recebido corretamente e todos os segmentos
devem ser retransmitidos pelo servidor.
• blksize: Número de segmentos por bloco que deve ser usado pelo servidor para o seguinte upload de bloco com 0 < blksize < 128.
O protocolo conforme definido na Figura 33 deve ser usado para implementar o serviço final de upload do bloco SDO.
• n: indica o número de bytes no último segmento do último bloco que não contém dados.
Bytes [8-n, 7] não contêm dados de segmento.
crc: soma de verificação de redundância cíclica de 16 bits (CRC) do conjunto de dados. O algoritmo para geração do CRC está descrito na
cláusula 7.2.4.3.16. CRC só é válido se em SDO bloco upload iniciar cc e sc forem definidos como 1, caso contrário, crc deve ser definido
como 0.
Para verificar a exatidão de um cliente e servidor de upload de bloco SDO e download de bloco SDO calculando um CRC que é trocado e
verificado durante o final do download do bloco SDO e o protocolo final do upload do bloco SDO. O CRC deve ter os seguintes parâmetros:
O protocolo conforme definido na Figura 34 deve ser usado para implementar o serviço de transferência de aborto SDO.
solicitar
cs = 4 x m d
7 .. 5 4 .. 0 0 0 indicação
0 134 7
0604 0042h O número e o comprimento dos objetos a serem mapeados excederiam o comprimento do PDO.
0607 0010h O tipo de dados não corresponde, o parâmetro de duração do serviço não corresponde
0607 0012h O tipo de dados não corresponde, parâmetro de duração do serviço muito alto
0607 0013h O tipo de dados não corresponde, parâmetro de duração do serviço muito baixo
0800 0021h Os dados não podem ser transferidos ou armazenados no aplicativo devido ao controle local.
0800 0022h Os dados não podem ser transferidos ou armazenados no aplicativo devido ao estado atual do dispositivo.
0800 0023h A geração dinâmica do dicionário de objetos falha ou nenhum dicionário de objetos está presente (p.
dicionário de objetos é gerado a partir do arquivo e a geração falha devido a um erro de arquivo).
7.2.5.1 Geral
O produtor SYNC transmite o objeto de sincronização periodicamente. Este SYNC fornece o mecanismo básico de sincronização de
rede. O período de tempo entre os SYNCs é especificado pelo período do ciclo de comunicação do parâmetro padrão (ver subcláusula
7.5.2.6), que pode ser escrito por uma ferramenta de configuração nos dispositivos CANopen durante o processo de inicialização.
Pode haver um jitter de tempo na transmissão pelo produtor SYNC correspondendo aproximadamente à latência devido a alguma
outra mensagem sendo transmitida imediatamente antes do SYNC. O consumidor SYNC pode utilizar o período do ciclo de
comunicação específico do fabricante.
O contador de parâmetros opcional é usado para definir um relacionamento explícito entre o ciclo SYNC atual e a transmissão PDO
(consulte o valor inicial SYNC do parâmetro de comunicação PDO na subseção 7.5.2.37).
Para garantir o acesso oportuno à rede, o SYNC recebe um CAN-ID de altíssima prioridade (consulte a subcláusula 7.5.2.5).
Dispositivos CANopen que operam de forma síncrona podem usar o objeto SYNC para sincronizar seu próprio tempo com o do
produtor do objeto de sincronização. Os detalhes dessa sincronização são específicos do aplicativo e não se enquadram no escopo
desta especificação.
7.2.5.2.1 Geral
A transmissão SYNC segue o modelo push produtor/consumidor conforme descrito na cláusula 4.4.4. O serviço não está confirmado.
Atributos:
Para o serviço de gravação SYNC, o modelo push é válido. Há zero ou mais consumidores para SYNC. O SYNC tem exatamente um
produtor. O parâmetro para este serviço é definido na Tabela 23.
Através deste serviço o produtor do SYNC envia um evento de disparo ao(s) consumidor(es).
Argumento Obrigatoriedade
contador opcional
O serviço não está confirmado. O contador de parâmetros opcional deve ser incrementado em 1 a cada transmissão. O
valor máximo deve ser o valor atual conforme definido no valor de estouro do contador síncrono (ver subcláusula
7.5.2.22). Caso o valor máximo seja atingido, o contador deve ser ajustado para 1 na próxima transmissão. O valor
inicial do contador após a inicialização do serviço NMT deve ser 1. O valor do contador deve ser redefinido para 1 se o
dispositivo CANopen transitar do estado NMT parado para o estado NMT pré-operacional ou para o estado NMT
operacional .
Este protocolo conforme definido na Figura 35 deve ser usado para implementar o serviço SYNC write.
solicitar
Contador
indicação
0ÿLÿ1
indicação
indicação
7.2.6.1 Geral
O produtor TIME transmite o objeto timestamp. Este TIME fornece o relógio de rede simples.
Pode haver um jitter de tempo na transmissão pelo produtor TIME correspondendo aproximadamente à latência devido
a alguma outra mensagem sendo transmitida imediatamente antes do TIME.
Para garantir o acesso oportuno à rede, o TIME recebe um CAN-ID de altíssima prioridade (ver subcláusula 7.5.2.15).
Dispositivos CANopen que operam um relógio local podem usar o objeto TIME para ajustar sua própria base de tempo
àquela do produtor do objeto time stamp. Os detalhes desse mecanismo são específicos da implementação e não se
enquadram no escopo desta especificação.
7.2.6.2.1 Geral
A transmissão do objeto time stamp segue o produtor/consumidor conforme descrito na subcláusula 4.4.4.
O serviço não está confirmado.
Atributos:
Para o serviço de gravação TIME, o modelo push é válido. Há zero ou mais consumidores de um TIME. A TIME tem
exatamente um produtor. O parâmetro para este serviço é definido na Tabela 24.
Através deste serviço o produtor de uma HORA envia a hora atual para o(s) consumidor(es).
Argumento Obrigatoriedade
Dados obrigatoriedade
Este protocolo conforme definido na Figura 36 deve ser utilizado para implementar o serviço TIME write.
solicitar
Carimbo de hora
indicação
0 5
indicação
indicação
Objetos de emergência são acionados pela ocorrência de uma situação de erro interno do dispositivo CANopen e são transmitidos de
um produtor de emergência no dispositivo CANopen. Objetos de emergência são adequados para alertas de erro do tipo interrupção. Um
objeto de emergência é transmitido apenas uma vez por 'evento de erro'. Nenhum outro objeto de emergência deve ser transmitido desde
que não ocorram novos erros em um dispositivo CANopen.
Zero ou mais consumidores de emergência podem receber o objeto de emergência. A reação no(s) consumidor(es) de emergência não
é especificada e não se enquadra no escopo desta especificação.
Por meio desta especificação são especificadas as classes de códigos de erro de emergência (Tabela 25), os códigos de erro de
emergência (Tabela 26) e o registro de erro (ver subcláusula 7.5.2.2). Informações adicionais específicas do aplicativo no byte inferior do
código de erro de emergência e a condição de emergência não se enquadram no escopo desta especificação. Códigos de erro adicionais
são definidos por outras especificações de perfil.
20xxh Atual
30xxh Tensão
40xxh Temperatura
80xxh Monitoramento
81xxh Comunicação
O objeto de emergência é opcional. Se um dispositivo CANopen suporta o objeto de emergência, ele deve suportar pelo menos os dois
códigos de erro 0000h e 1000h. Todos os outros códigos de erro são opcionais.
Um dispositivo CANopen deve estar em um dos dois estados de emergência (Figura 37). Dependendo das transições, os objetos de
emergência devem ser transmitidos. As ligações entre a máquina de estado de erro e a máquina de estado NMT são definidas pelo objeto
1029h (ver subcláusula 7.5.2.32).
0. Após a inicialização, o dispositivo CANopen entra no estado livre de erros se nenhum erro for detectado. Não
mensagem de erro é enviada.
1. O dispositivo CANopen detecta um erro interno indicado nos três primeiros bytes do
mensagem de emergência (código de erro e registro de erro). O dispositivo CANopen entra no estado de erro. Um objeto
de emergência com o código de erro e registro de erro apropriados é transmitido.
O código de erro é preenchido na localização do objeto 1003h (campo de erro pré-definido).
2. Um, mas nem todos os motivos de erro desapareceram. Uma mensagem de emergência contendo o código de erro 0000h
(Error reset) pode ser transmitido juntamente com os erros restantes no registro de erros e no campo de erro específico do
fabricante.
3. Ocorre um novo erro no dispositivo CANopen. O dispositivo CANopen permanece em estado de erro e transmite um objeto de
emergência com o código de erro apropriado. O novo código de erro é preenchido no topo da matriz de códigos de erro (1003h).
Deve ser garantido que os códigos de erro sejam classificados em tempo hábil (erro mais antigo - subíndice mais alto, ver
objeto 1003h).
4. Todos os erros são reparados. O dispositivo CANopen entra no estado livre de erros e transmite um
objeto de emergência com o código de erro 'reset error/no error'.
5. Reinicie ou desligue.
7.2.7.2.1 Geral
Para o serviço de gravação EMCY, o modelo push é válido. Há zero ou mais consumidores para EMCY.
EMCY tem exatamente um produtor. O parâmetro para este serviço é definido na Tabela 27.
Através deste serviço, o produtor do EMCY envia os dados de emergência atuais ao(s) consumidor(es).
Argumento Obrigatoriedade
Dados obrigatoriedade
Este protocolo conforme definido na Figura 38 deve ser usado para implementar o serviço de gravação EMCY.
solicitar
eec é msef
indicação
0 123 7
indicação
indicação
Um RTR não tem permissão para solicitar uma transmissão de emergência. Um RTR recebido não deve ser respondido.
7.2.8.1 Geral
O gerenciamento de rede (NMT) é orientado a dispositivos CANopen e segue uma estrutura mestre-escravo.
Os objetos NMT são usados para executar serviços NMT. Através dos serviços NMT, os dispositivos CANopen são inicializados,
iniciados, monitorados, resetados ou parados. Todos os dispositivos CANopen são considerados escravos NMT. Um escravo NMT
é identificado exclusivamente na rede por seu node-ID, um valor na faixa de [1..127].
NMT requer que um dispositivo CANopen na rede cumpra a função do mestre NMT.
7.2.8.2.1.1 Geral
Por meio de serviços de controle de nó, o mestre NMT controla o estado NMT dos escravos NMT. O atributo de estado NMT é um
dos valores {Parado, Pré-operacional, Operacional, Inicialização}. Os serviços de controle de nós podem ser executados com um
determinado dispositivo CANopen ou com todos os dispositivos CANopen simultaneamente. O mestre NMT controla sua própria
máquina de estado NMT por meio de serviços locais, que dependem da implementação. Os serviços de controle de nó podem ser
iniciados pelo aplicativo local.
O mestre NMT usa o nó remoto de início de serviço NMT para alterar o estado NMT dos escravos NMT selecionados. O novo estado
NMT deve ser o estado NMT operacional. Os parâmetros para este serviço são definidos na Tabela 28.
Argumento Obrigatoriedade
ID do nó seleção
Tudo seleção
O mestre NMT usa o nó remoto de parada de serviço NMT para alterar o estado NMT dos escravos NMT selecionados. O novo
estado NMT deve ser o estado NMT parado. Os parâmetros para este serviço são definidos na Tabela 29.
Argumento Obrigatoriedade
ID do nó seleção
Tudo seleção
O mestre NMT usa o serviço NMT para entrar em pré-operacional para alterar o estado NMT dos escravos NMT selecionados. O novo
estado NMT deve ser o estado NMT pré-operacional. Os parâmetros para este serviço são definidos na Tabela 30.
Argumento Obrigatoriedade
ID do nó seleção
Tudo seleção
O mestre NMT usa o nó de reinicialização do serviço NMT para alterar o estado NMT dos escravos NMT selecionados. O novo estado
NMT deve ser o aplicativo de redefinição do subestado NMT. Os parâmetros para este serviço são definidos na Tabela 31.
Argumento Obrigatoriedade
ID do nó seleção
Tudo seleção
O mestre NMT usa a comunicação de reinicialização do serviço NMT para alterar o estado NMT dos escravos NMT selecionados. O
novo estado NMT deve ser a comunicação de reinicialização do subestado NMT. Os parâmetros para este serviço são definidos na
Tabela 32.
Argumento Obrigatoriedade
ID do nó seleção
Tudo seleção
Os serviços de controle de erros são usados para detectar falhas em uma rede baseada em CAN.
Erros locais em um dispositivo CANopen podem, por exemplo, levar a um reset ou mudança de estado. A definição desses erros locais
não se enquadra no escopo desta especificação.
Os serviços de controle de erros são realizados principalmente através da transmissão periódica de mensagens por um dispositivo
CANopen. Existem duas possibilidades para realizar o controle de erros.
A guarda é conseguida transmitindo pedidos de guarda (protocolo de guarda de nó) pelo mestre NMT. Se um escravo NMT não
respondeu dentro de um intervalo de tempo definido (tempo de vida do nó) ou se o status de comunicação do escravo NMT mudou, o
mestre NMT informa seu aplicativo mestre NMT sobre esse evento.
Se a proteção de vida (o escravo NMT protegendo o mestre NMT) for suportada, o escravo NMT usa o tempo de guarda e o fator de
tempo de vida de seu dicionário de objetos para determinar o tempo de vida do nó. Se o escravo NMT não for protegido durante seu
tempo de vida, o escravo NMT informará seu aplicativo local sobre esse evento. Se o tempo de guarda e o fator de tempo de vida forem
0 (valores padrão), o escravo NMT não protege o mestre NMT.
A guarda começa para o escravo NMT quando o primeiro RTR para seu CAN-ID de guarda é recebido. Isso pode ser durante a fase de
inicialização ou mais tarde.
O mecanismo de pulsação para um dispositivo CANopen é estabelecido pela transmissão cíclica da mensagem de pulsação pelo produtor
de pulsação. Um ou mais dispositivos CANopen na rede estão cientes desta mensagem de pulsação. Se o ciclo de pulsação falhar para
o produtor de pulsação, o aplicativo local no consumidor de pulsação será informado sobre esse evento.
OBSERVAÇÃO: Embora Heartbeat e Guarding estejam desabilitados por padrão, é recomendável usar mecanismos de controle de erros.
Por meio deste serviço, o provedor de serviços NMT no mestre NMT indica que ocorreu um erro remoto ou foi resolvido para o dispositivo
CANopen remoto identificado pelo node-ID. Os parâmetros para este serviço são definidos na Tabela 33.
• quando após a ocorrência do evento com a mudança de estado de razão, o estado esperado é recebido, ou
• quando após o evento ocorreu com o motivo time out uma das indicações remotas subsequentes
está confirmado.
Parâmetro Indicação
Argumento Obrigatoriedade
ID do nó obrigatoriedade
Estado obrigatoriedade
Ocorreu seleção
Resolvido seleção
Razão opcional
seleção
Mudança de estado
Por meio desse serviço, o provedor de serviços NMT em um escravo NMT indica que ocorreu um erro remoto ou foi resolvido. Os
parâmetros para este serviço são definidos na Tabela 34.
O evento resolvido é indicado quando, após a ocorrência do evento, uma solicitação remota subsequente é recebida.
Parâmetro Indicação
Argumento Obrigatoriedade
Estado obrigatoriedade
Ocorreu seleção
Resolvido seleção
Através deste serviço, o consumidor de heartbeat deverá indicar que ocorreu ou foi solucionado um erro de heartbeat ou ocorreu uma
mudança de estado NMT para o dispositivo CANopen identificado pelo node-ID.
Os parâmetros para este serviço são definidos na Tabela 35.
O evento resolvido é indicado quando após a ocorrência do evento uma indicação remota subsequente é recebida.
Parâmetro Indicação
Argumento Obrigatoriedade
ID do nó obrigatório
Estado obrigatório
Ocorreu seleção
Resolvido seleção
Razão obrigatoriedade
Através deste serviço, o escravo NMT indica que ocorreu uma transição de estado local do estado NMT Inicialização para o estado NMT
Pré-operacional. O parâmetro para este serviço é definido na Tabela 36.
Parâmetro Indicação
Argumento Obrigatório
ID do nó obrigatório
O protocolo conforme definido na Figura 39 deve ser usado para implementar o nó remoto de início de serviço NMT.
solicitar CAN-ID = 0
cs = 1 ID do nó
indicação
0 1
indicação
indicação
O protocolo conforme definido na Figura 40 deve ser usado para implementar o nó remoto de parada de serviço NMT.
solicitar CAN-ID = 0
cs = 2 ID do nó
indicação
0 1
indicação
indicação
2: parar
Figura 40: Nó remoto de parada de protocolo
O protocolo conforme definido na Figura 41 deve ser utilizado para implementar o serviço NMT no pré-operacional.
solicitar CAN-ID = 0
cs = 128 ID do nó
indicação
0 1
indicação
indicação
O protocolo conforme definido na Figura 42 deve ser usado para implementar o nó de reinicialização do serviço NMT.
solicitar CAN-ID = 0
cs = 129 ID do nó
indicação
0 1
indicação
indicação
O protocolo conforme definido na Figura 43 deve ser usado para implementar a comunicação de reinicialização do serviço NMT.
solicitar CAN-ID = 0
cs = 130 ID do nó
indicação
0 1
indicação
indicação
O protocolo conforme definido na Figura 44 deve ser usado para detectar erros remotos na rede. Cada escravo NMT serve um RTR para
o protocolo de guarda de nó. Este protocolo implementa os serviços de controle de erros iniciados pelo provedor.
O mestre NMT sonda cada escravo NMT em intervalos de tempo regulares. Este intervalo de tempo é chamado de
tempo de guarda e pode ser diferente para cada escravo NMT. A resposta do escravo NMT contém o estado NMT
desse escravo NMT. O tempo de vida do nó é dado pelo tempo de guarda multiplicado pelo fator de tempo de vida. O
tempo de vida do nó pode ser diferente para cada escravo NMT. Se o escravo NMT não tiver sido consultado durante
sua vida útil, um erro de nó remoto será indicado através do evento de proteção de vida de serviço NMT.
Um erro de nó remoto é indicado por meio do evento de proteção do nó de serviço NMT se
• O RTR não é confirmado dentro do tempo de vida do nó
O protocolo de pulsação conforme definido na Figura 45 define um serviço de controle de erros sem necessidade de RTRs.
Um produtor de pulsação transmite uma mensagem de pulsação ciclicamente. Um ou mais consumidores de pulsação
recebem a indicação. A relação entre produtor e consumidor é configurável através do dicionário de objetos. O consumidor
de pulsação protege a recepção da pulsação dentro do tempo do consumidor de pulsação. Se a pulsação não for recebida
dentro do tempo do consumidor de pulsação, um evento de pulsação será gerado.
produtor consumidores
0 indicação
batimentos
cardíacos
produtor
Tempo
de
do
indicação Tempo
solicitar indicação
Consumidor
batimentos
cardíacos
de
r s
7 6 .. 0
0 indicação
indicação Tempo
indicação
Consumidor
batimentos
cardíacos
de
Evento de pulsação
• r: reservado (sempre 0)
• s: o estado do produtor de batimentos cardíacos
0: Inicialização
4: Parou
5: Operacional
127: Pré-operacional
Figura 45: Pulsação do protocolo
Se o horário do produtor de pulsação estiver configurado em um dispositivo CANopen, o protocolo de pulsação será
iniciado imediatamente. Se um dispositivo CANopen iniciar com um valor para o tempo produtor de pulsação diferente de
0, o protocolo de pulsação inicia na transição do estado NMT Inicialização para o estado NMT Pré operacional. Neste caso,
a mensagem de inicialização é considerada como a primeira mensagem de pulsação. Não é permitido usar os dois
mecanismos de controle de erro que guardam o protocolo e o protocolo de pulsação em um escravo NMT ao mesmo
tempo. Se o tempo do produtor de pulsação for diferente de 0, o protocolo de pulsação será usado.
O protocolo conforme definido na Figura 46 deve ser usado para sinalizar que um escravo NMT entrou no estado NMT Pré-operacional
após a inicialização do estado NMT. O protocolo usa o mesmo CAN-ID dos protocolos de controle de erros.
0
indicação
0
Um exemplo de inicialização NMT simplificada é mostrado na Figura 47. A definição do processo de inicialização NMT não se enquadra
no escopo desta especificação.
Na Figura 48 é especificado o diagrama de estado NMT de um dispositivo CANopen. Os dispositivos CANopen entram no estado NMT
Pré-operacional diretamente após terminar a inicialização dos dispositivos CANopen. Durante este estado NMT, é possível a
parametrização do dispositivo CANopen e a alocação de CAN-ID via SDO (por exemplo, usando uma ferramenta de configuração). Em
seguida, os dispositivos CANopen podem ser comutados diretamente para o estado NMT Operacional.
A máquina de estado NMT determina o comportamento da unidade de função de comunicação (ver subcláusula 4.3). O acoplamento da
máquina de estado de aplicação à máquina de estado NMT depende do dispositivo CANopen e se enquadra no escopo de perfis de
dispositivo e perfis de aplicação.
(2) Estado NMT Inicialização concluída - entrar no estado NMT Pré-operacional automaticamente
A inicialização do estado NMT deve ser dividida em três subestados NMT (especificados na Figura 49) para permitir um reset completo
ou parcial de um dispositivo CANopen.
1. Inicializando: Este é o primeiro subestado NMT que o dispositivo CANopen entra após a inicialização ou reinicialização do hardware.
Depois de terminar a inicialização básica do dispositivo CANopen, o dispositivo CANopen entra de forma autônoma na aplicação de
reset de subestado NMT.
2. Aplicação de reset: Neste subestado NMT, os parâmetros da área de perfil específica do fabricante e da área de perfil do dispositivo
padronizado são ajustados para seus valores de inicialização. Após o ajuste dos valores de inicialização, a comunicação de
reinicialização do subestado NMT é inserida de forma autônoma.
3. Reinicializar a comunicação: Neste subestado NMT, os parâmetros da área do perfil de comunicação são ajustados para seus
valores de inicialização. Depois disso, a inicialização do estado NMT é concluída e o dispositivo CANopen executa a gravação de
inicialização do serviço NMT e entra no estado NMT Pré-operacional.
Os valores de inicialização são os últimos parâmetros armazenados. Se o armazenamento não for suportado ou não tiver sido executado
ou se a reinicialização for precedida pelo comando restaurar padrões (consulte a cláusula 7.5.2.14), os valores de inicialização são os
valores padrão de acordo com as especificações de comunicação e perfil do dispositivo.
(1)
Inicializando
(15)
Inicialização
Redefinir aplicativo
(16)
(11)
(14) (9)
(2)
(13)
(12)
(2) Estado NMT Inicialização concluída - entrar no estado NMT Pré-operacional automaticamente
(15) Inicialização do subestado NMT concluída – o aplicativo de redefinição do subestado NMT é inserido de
forma autônoma
No estado NMT Pré-operacional, a comunicação via SDOs é possível. PDOs não existem, então a comunicação PDO não é permitida. A
configuração de PDOs, parâmetros e também a alocação de objetos de aplicação (mapeamento de PDO) pode ser realizada por um
aplicativo de configuração.
O dispositivo CANopen pode ser comutado para o estado NMT Operacional diretamente enviando o nó remoto de início de serviço NMT
ou por meio de controle local.
No estado NMT Operacional todos os objetos de comunicação estão ativos. A transição para o estado NMT Operacional cria todos os
PDOs; o construtor usa os parâmetros conforme descrito no dicionário de objetos. O acesso ao dicionário de objetos via SDO é possível.
Aspectos de implementação ou a máquina de estado do aplicativo, no entanto, podem exigir a limitação do acesso a certos objetos
enquanto estiverem no estado NMT Operacional, por exemplo, um objeto pode conter o programa do aplicativo que não pode ser alterado
durante a execução.
Ao mudar um dispositivo CANopen para o estado NMT Stopped, ele é forçado a parar a comunicação completamente (exceto proteção
de nó e heartbeat, se ativo). Além disso, esse estado NMT pode ser usado para obter determinado comportamento do aplicativo. A
definição desse comportamento se enquadra no escopo de perfis de dispositivos e perfis de aplicativos.
Se houver mensagens EMCY acionadas neste estado NMT, elas estão pendentes. O motivo EMCY ativo mais recente pode ser
transmitido após o dispositivo CANopen transitar para outro estado NMT.
NOTA: O histórico de erros pode ser lido acessando o objeto 1003h, se implementado.
DOP X
SDO X X
SINCRONIZAR X X
TEMPO X X
EMCY X X
Controle de nós e
X X X
controle de erros
• serviços de controle de nós iniciados localmente por eventos de aplicativos, definidos por perfis de dispositivos e
perfis de aplicativos
10 9 8 7 6 5 4 3 2 1 0
CAN-ID
Código de função ID do nó
MSB LSB
Código de
COB CAN-ID resultante
função
TEMPO
0010b 256 (100h)
Código de
COB função
CAN-IDs resultantes
O conjunto de conexão predefinido específico deve substituir o conjunto de conexão predefinido genérico para dispositivos
CANopen que seguem um perfil de aplicação. A definição do conjunto de conexão pré-definido específico não se enquadra no
escopo desta especificação; ele se enquadra no escopo do perfil de aplicativo apropriado.
Qualquer CAN-ID listado na Tabela 40 é de uso restrito. Esse CAN-ID restrito não deve ser usado como CAN-ID por nenhum
objeto de comunicação configurável, nem para SYNC, TIME, EMCY, PDO e SDO.
0 (000h) NMT
Índice Objeto
O dicionário de objetos contém no máximo 65.536 objetos que devem ser endereçados por meio de um índice de 16 bits e até
256 subíndices por objeto, que devem ser endereçados por meio de um subíndice de 8 bits.
Os tipos de dados estáticos em índices de 0001h a 001Fh devem conter definições de tipo para tipos de dados padrão como
BOOLEAN, INTEGER, UNSIGNED, ponto flutuante, string, etc.
Tipos de dados complexos em índices de 0020h a 003Fh devem ser estruturas pré-definidas que são compostas por tipos de
dados padrão e são comuns a todos os dispositivos CANopen.
Tipos de dados complexos específicos do fabricante em índices de 0040h a 005Fh devem ser estruturas compostas de tipos
de dados padrão, mas são específicos para um determinado dispositivo CANopen.
Os perfis de dispositivo podem definir tipos de dados adicionais específicos para seu tipo de dispositivo. Os tipos de dados
estáticos e os tipos de dados complexos definidos pelo perfil do dispositivo devem ser listados em índices de 0060h a 025Fh.
Um dispositivo CANopen pode opcionalmente fornecer a estrutura dos tipos de dados complexos suportados (índices
de 0020h a 005Fh e de 0060h a 025Fh) no acesso de leitura ao índice correspondente. O subíndice 0 deve fornecer o subíndice
mais alto suportado neste índice, e os seguintes subíndices devem conter o tipo de dados codificado como UNSIGNED16 de
acordo com a Tabela 44.
A área do perfil de comunicação nos índices de 1000h a 1FFFh deverá conter os parâmetros específicos de comunicação.
Esses objetos são comuns a todos os dispositivos CANopen.
A área de perfil padronizada nos índices de 6000h a 9FFFh deve conter todos os objetos de dados comuns a uma classe de
dispositivos CANopen que podem ser lidos ou escritos via rede. Os perfis de dispositivos podem usar objetos de 6000h a
9FFFh para descrever parâmetros e funcionalidades.
O conceito de dicionário de objetos atende a recursos opcionais, o que significa que um fabricante pode não fornecer certas
funcionalidades estendidas em seus dispositivos CANopen, mas se desejar fazê-lo, deve fazê-lo de maneira pré-definida. O
espaço é deixado no dicionário de objetos em índices de 2000h a 5FFFh para uma funcionalidade verdadeiramente específica
do fabricante.
As variáveis de rede nos índices de A000h a AFFFh devem conter variáveis de entrada e variáveis de saída, que fazem parte
de um dispositivo CANopen programável. A definição dessas variáveis de rede não se enquadra no escopo deste documento
e fazem parte de perfis e frameworks futuros.
As variáveis do sistema nos índices de B000h a BFFFh devem conter variáveis de entrada e saída
variáveis, que fazem parte de uma rede CANopen subjacente em um sentido hierárquico. A definição dessas variáveis de
sistema não se enquadra no escopo deste documento e fazem parte de perfis e frameworks futuros.
Um índice de 16 bits é usado para endereçar todos os objetos dentro do dicionário de objetos. No caso de uma variável
simples, o índice referencia o valor dessa variável diretamente. No caso de registros e arrays, no entanto, o índice aborda toda
a estrutura de dados.
Para permitir que elementos individuais de estruturas de dados sejam acessados através da rede, um subíndice é definido.
Para objetos de dicionário de objeto único, como UNSIGNED8, BOOLEAN, INTEGER32 etc., o valor do subíndice é sempre
00h. Para objetos de dicionário de objetos complexos, como matrizes ou registros com vários campos de dados, o subíndice
faz referência a campos dentro de uma estrutura de dados apontada pelo índice principal. Os campos acessados pelo subíndice
podem ser de diferentes tipos de dados.
O código do objeto deve denotar que tipo de objeto está naquele índice específico dentro do dicionário de objetos.
As seguintes definições são usadas:
Comentários
Nome do objeto Código
do objeto
As informações de tipo de dados de um objeto incluem os seguintes tipos predefinidos: BOOLEAN, FLOAT, UNSIGNED, INTEGER,
VISIBLE/OCTET STRING, TIME_OF_DAY, TIME_DIFFERENCE e DOMAIN (ver subcláusula 7.1). Ele também inclui o mapeamento PDO
de tipo de dados complexo predefinido e também pode incluir outros que são específicos do fabricante, específicos do perfil do dispositivo
ou específicos do perfil do aplicativo. Não é possível definir registros de registros, matrizes de registros ou registros com matrizes como
campos desse registro. No caso de um objeto ser um array ou um registro, o subíndice é usado para referenciar um campo de dados
dentro do objeto.
O Atributo define os direitos de acesso para um determinado objeto. O ponto de vista é da rede para o dispositivo CANopen.
Descrição
Atributo
A categoria e a categoria de entrada definem se o objeto é obrigatório, opcional ou condicional. Um objeto obrigatório deve ser
implementado em um dispositivo CANopen. Um objeto opcional pode ser implementado em um dispositivo CANopen. O suporte
de determinados objetos ou recursos, no entanto, pode exigir a implementação de objetos relacionados. Neste caso, as relações
são descritas na especificação detalhada do objeto e o objeto é definido como um objeto condicional.
7.4.7.1 Geral
Os tipos de dados estáticos são colocados no dicionário de objetos apenas para fins de definição. Índices na faixa de 0001h a
0007h, 0010h, de 0012h a 0016h e de 0018h a 001Bh podem ser mapeados para definir o espaço apropriado no RPDO como
não sendo utilizado por este dispositivo CANopen (não importa). Outros objetos do código de objeto DEFTYPE e DEFSTRUCT
não devem ser mapeados em RPDOs.
Objeto Nome
Índice
Objeto Nome
Índice
000Eh reservado
0017h reservado
0060h – 007Fh DEFTYPE Perfil de dispositivo específico Tipos de dados padrão 1º dispositivo lógico
0080h – 009Fh DEFSTRUCT Perfil de dispositivo específico Tipos de dados complexos 1º dispositivo lógico
00A0h – 00BFh DEFTYPE Perfil de dispositivo específico Tipos de dados padrão 2º dispositivo lógico
00C0h – 00DFh DEFSTRUCT Perfil de dispositivo específico Tipos de dados complexos 2º dispositivo lógico
00E0h – 00FFh DEFTYPE Perfil de dispositivo específico Tipos de dados padrão 3º dispositivo lógico
0100h – 011Fh DEFSTRUCT Perfil de dispositivo específico Tipos de dados complexos 3º dispositivo lógico
0120h – 013Fh DEFTYPE Perfil de dispositivo específico Tipos de dados padrão 4º dispositivo lógico
0140h – 015Fh DEFSTRUCT Perfil de dispositivo específico Tipos de dados complexos 4º dispositivo lógico
0160h – 017Fh DEFTYPE Perfil de dispositivo específico Tipos de dados padrão 5º dispositivo lógico
0180h – 019Fh DEFSTRUCT Perfil de dispositivo específico Tipos de dados complexos 5º dispositivo lógico
01A0h – 01BFh DEFTYPE Perfil de dispositivo específico Tipos de dados padrão 6º dispositivo lógico
Objeto Nome
Índice
01C0h – 01DFh DEFSTRUCT Perfil de dispositivo específico Tipos de dados complexos 6º dispositivo lógico
01E0h – 01FFh DEFTYPE Perfil de dispositivo específico Tipos de dados padrão 7º dispositivo lógico
0200h – 021Fh DEFSTRUCT Perfil de dispositivo específico Tipos de dados complexos 7º dispositivo lógico
0220h – 023Fh DEFTYPE Perfil de dispositivo específico Tipos de dados padrão 8º dispositivo lógico
0240h – 025Fh DEFSTRUCT Perfil de dispositivo específico Tipos de dados complexos 8º dispositivo lógico
As representações de tipos de dados utilizadas são detalhadas na subcláusula 7.1. Cada dispositivo CANopen não precisa suportar todos
os tipos de dados definidos. Um dispositivo CANopen só pode suportar os tipos de dados que usa com os objetos na faixa de 1000h a
AFFFh.
Os tipos de dados complexos predefinidos são colocados após os tipos de dados padrão. Esses tipos de dados complexos predefinidos
são definidos na subcláusula 7.4.8.
Um dispositivo CANopen pode opcionalmente fornecer o comprimento dos tipos de dados padrão codificados como UNSIGNED32 no
acesso de leitura à entrada do objeto que se refere ao tipo de dados. Por exemplo, índice 000Ch
(TIME_OF_DAY) contém o valor 0000 0030h = 48d , pois o tipo de dados TIME_OF_DAY é codificado usando uma sequência de bits de
48 bits. Se o comprimento for variável (por exemplo, 000Fh = Domínio), a entrada do objeto contém 0000 0000h.
Para os tipos de dados complexos suportados, um dispositivo CANopen pode opcionalmente fornecer a estrutura desse tipo de dados no
acesso de leitura ao índice de tipo de dados correspondente. O subíndice 00h fornece o subíndice mais alto suportado neste índice sem
contar os subíndices 00h e FFh e os seguintes subíndices contêm o tipo de dados de acordo com a Tabela 44 codificado como
UNSIGNED16 (UNSIGNED8 é usado por implementações antigas). O objeto no índice 0020h que descreve a estrutura do parâmetro de
comunicação PDO tem a seguinte aparência (veja também objetos de 1400h a 15FFh):
Tipos de dados específicos do fabricante padrão (simples) e complexos podem ser distinguidos ao tentar ler o subíndice 01h: Em um tipo
de dado complexo, o dispositivo retorna um valor e o subíndice 00h contém o número de subíndices que seguem, em um tipo de dados
padrão o dispositivo aborta a transferência SDO como nenhum sub-índice 01h disponível.
Observe que algumas entradas de objetos do tipo de dados UNSIGNED32 têm o caráter de uma estrutura (por exemplo, PDO COB-ID,
veja a Figura 67).
Se um objeto de dicionário de objetos contém vários subíndices, então o subíndice 00h descreve o maior subíndice disponível que
segue, sem considerar FFh. Esta entrada de objeto é codificada como UNSIGNED8.
O subíndice FFh descreve a estrutura do objeto fornecendo o tipo de dados e o tipo de objeto do objeto. Está codificado como
UNSIGNED32 e organizado da seguinte forma:
31 24 23 16 15 8 7 0
MSB LSB
É opcional suportar o subíndice FFh. Se for suportado em todo o dicionário de objetos e a estrutura dos tipos de dados complexos
também for fornecida, permite carregar toda a estrutura do dicionário de objetos.
Esta seção descreve a estrutura dos tipos de dados complexos predefinidos usados para comunicação.
A faixa de valores e o significado são explicados na descrição detalhada dos objetos que utilizam esses tipos.
Nome
Índice Sub-índice
Tipo de dados
: :: :: : :: :: :: : : :: :: ::
Nome
Índice Sub-índice
Tipo de dados
02h Status
NÃO ASSINADO8
00h - Comando concluído - sem erro
01h - Comando concluído - erro
02h - reservado
: ::::
FEh - reservado
FFh - Comando em execução
02h Status
NÃO ASSINADO8
00h - Comando concluído – sem erro – sem resposta
01h - Comando concluído – sem erro – resposta
02h - Comando concluído – erro – sem resposta
03h - Comando concluído – erro – resposta
04h - reservado
: :: ::
FEh - reservado
FFh - Comando em execução
A estrutura das entradas de objeto do dicionário de objetos é descrita da seguinte maneira: Todos os perfis de dispositivo, perfis de
interface e perfis de aplicativo baseados neste perfil de comunicação usam a descrição de objeto e entrada conforme especificado na
Tabela 52 e na Tabela 53.
DESCRIÇÃO DO OBJETO
O código do objeto deve ser um daqueles definidos na descrição do objeto Tabela 52 acima. Para melhor legibilidade, a descrição do
objeto contém adicionalmente o nome simbólico do objeto.
DESCRIÇÃO DA ENTRADA
Descrição Nome descritivo do subíndice (campo usado apenas para arrays, registros e
estruturas)
Tipo de dados Classificação do tipo de dados (campo usado apenas para registros e estruturas)
Categoria de entrada Especifica se a entrada do objeto é opcional ou obrigatória ou condicional caso o objeto
esteja presente
Acesso Somente leitura (ro) ou leitura/gravação (rw) ou somente gravação (wo) ou const
Mapeamento PDO Deve definir se este objeto deve ser mapeado para um PDO. Descrição:
TPDO: O objeto pode ser mapeado em um TPDO e não deve ser mapeado em um
RPDO
RPDO: O objeto pode ser mapeado em um RPDO e não deve ser mapeado em um
TPDO
Não: O objeto não deve ser mapeado em um PDO
Faixa de valor intervalo de valores possíveis ou nome do tipo de dados para intervalo completo
Específico do fabricante: o valor padrão de um objeto deve ser definido pelo fabricante do
dispositivo CANopen.
Para variáveis simples, a definição de valor aparece uma vez sem categoria de entrada. Para tipos de dados complexos, a definição de Valor
deve ser definida para cada elemento (sub-índice).
Este objeto deve fornecer informações sobre o tipo de dispositivo. O objeto descreve o tipo do dispositivo lógico e sua funcionalidade. Deve
ser composto por um campo de 16 bits que descreve o perfil do dispositivo ou o perfil do aplicativo que é usado e um segundo campo de 16
bits, que fornece informações adicionais sobre a funcionalidade opcional do dispositivo lógico. O parâmetro de informações adicionais é
específico do perfil do dispositivo e específico do perfil do aplicativo. Sua especificação não se enquadra no escopo desta especificação; ele
é definido no perfil do dispositivo e no perfil do aplicativo apropriados.
DEFINIÇÃO DE VALOR
O valor 0000h para o número do perfil do dispositivo deve indicar um dispositivo lógico que não segue um perfil padronizado. Neste
caso, a informação adicional deve ser 0000h (se nenhum outro dispositivo lógico for implementado) ou FFFFh (se um outro dispositivo
lógico for implementado).
Para módulos de dispositivos lógicos múltiplos, o parâmetro de informação adicional deve ser FFFFh e o número do perfil do dispositivo
referenciado pelo objeto 1000h deve ser o perfil do primeiro dispositivo lógico no dicionário de objetos. Todos os outros perfis de um
módulo de dispositivo lógico múltiplo devem identificar seus perfis nos objetos 67FFh + x 800h com x = número interno do dispositivo
*
lógico (de 1 a 8) menos 1. Esses objetos devem
de valor
descrever
do objeto
o tipo
1000h.
de dispositivo do dispositivo lógico anterior, tendo a mesma definição
32 16 15 0
MSB LSB
DESCRIÇÃO DO OBJETO
Índice 1000h
Categoria Obrigatoriedade
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso ro
Este objeto deve fornecer informações de erro. O dispositivo CANopen mapeia erros internos neste objeto. É uma parte de um
objeto de emergência.
DEFINIÇÃO DE VALOR
0 M Erro genérico
1 O Corrente
Tensão de 2 O
3O Temperatura
7 O específico do fabricante
Se ocorrer um erro específico, o bit correspondente deve ser definido como 1b. O bit de erro genérico deve ser suportado. Os
outros bits podem ser suportados. O erro genérico deve ser sinalizado em qualquer situação de erro.
DESCRIÇÃO DO OBJETO
Índice 1001h
FOI
Código do objeto
Categoria Obrigatoriedade
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso ro
Este objeto deve fornecer um registro de status comum para fins específicos do fabricante. Nesta especificação apenas o tamanho e a
localização deste objeto são definidos.
DESCRIÇÃO DO OBJETO
Índice 1002h
Nome
Registro de status do fabricante
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso ro
Este objeto deve fornecer os erros ocorridos no dispositivo CANopen e que foram sinalizados através do objeto de emergência. Ao fazer
isso, ele fornece um histórico de erros.
DEFINIÇÃO DE VALOR
• A entrada do objeto no subíndice 00h deve conter o número de erros reais que são registrados em
a matriz começando no sub-índice 01h.
NOTA: Se nenhum erro estiver presente, o valor do subíndice 00h é 00h e um acesso de leitura ao subíndice 01h é respondido
com uma mensagem de aborto SDO (código de cancelamento: 0800 0024h ou 0800 0000h).
• Cada novo erro deve ser armazenado no subíndice 01h; erros mais antigos devem ser movidos para o próximo
sub-índice superior.
• Gravar 00h no subíndice 00h excluirá todo o histórico de erros (esvazia o array). Outros valores além de 00h não são permitidos e
devem levar a uma mensagem de aborto (código de erro: 0609 0030h).
• Os números de erro são do tipo UNSIGNED32 (consulte a Tabela 26) e são compostos por um código de erro de 16 bits e um campo
de informações de erro adicional de 16 bits, específico do fabricante. O código de erro deve estar contido nos 2 bytes inferiores
(LSB) e as informações adicionais devem ser incluídas nos 2 bytes superiores (MSB). Se este objeto for suportado, deve consistir
em pelo menos duas entradas de objeto. A entrada de comprimento no subíndice 00h e pelo menos uma entrada de erro no
subíndice 01h.
32 16 15 0
MSB LSB
DESCRIÇÃO DO OBJETO
Índice 1003h
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso rw
Sub-índice 01h
Acesso ro
Acesso ro
Este objeto deve indicar o COB-ID configurado do objeto de sincronização (SYNC). Além disso, define se o dispositivo CANopen
gera o SYNC. A estrutura deste objeto é especificada na Figura 54 e na Tabela 55.
DEFINIÇÃO DE VALOR
31 30 29 28 11 10 0
MSB LSB
Descrição
Bit(s) Valor
x x não se importa
Os bits 29 (quadro) e o bit 30 (geração) podem ser estáticos (não alteráveis). Se um dispositivo CANopen não for capaz de
gerar mensagens SYNC, uma tentativa de definir o bit 30 (gen.) para 1b é respondida com o serviço de transferência de
aborto SDO (código de aborto: 0609 0030h). Dispositivos CANopen que suportam apenas o tipo de quadro base CAN, uma
tentativa de definir o bit 29 (quadro) para 1b é respondida com o serviço de transferência de aborto SDO (código de aborto:
0609 0030h). A primeira transmissão do objeto SYNC começa dentro de 1 ciclo de sincronização após definir o bit 30 para
1b. Ajustando o bit 30 para 1b enquanto o valor de overflow do contador síncrono for maior que 0 a primeira mensagem
SYNC deve iniciar com o contador resetado para 1. Não é permitido alterar os bits 0 para 29, enquanto o objeto existir (bit 30
= 1b) .
DESCRIÇÃO DO OBJETO
Índice 1005h
FOI
Código do objeto
Categoria Condicional;
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso rw;
Este objeto deve fornecer o período do ciclo de comunicação. Este período define o intervalo SYNC.
DEFINIÇÃO DE VALOR
O valor deve ser dado em múltiplos de µs. Se o valor for definido para 0000 0000h a transmissão de mensagens SYNC deve ser
desabilitada. Ao alterar o valor de 0000 0000h e o valor de overflow do contador síncrono for maior que 0, a primeira mensagem
SYNC deve iniciar com o valor do contador redefinido para 1.
A transmissão de mensagens SYNC deve começar dentro de um período de ciclo de comunicação dado pelo valor após ser
ajustado para o novo valor.
DESCRIÇÃO DO OBJETO
Índice 1006h
Nome
Período do ciclo de comunicação
Categoria Condicional;
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso rw
Este objeto deve indicar a duração da janela de tempo configurada para PDOs síncronos.
Se o comprimento da janela síncrona expirar, todos os TPDOs síncronos podem ser descartados e uma mensagem EMCY pode ser
transmitida; todos os RPDOs síncronos podem ser descartados até que a próxima mensagem SYNC seja recebida. O processamento
síncrono de RPDO é retomado com a próxima mensagem SYNC.
DEFINIÇÃO DE VALOR
O valor é dado em múltiplos de µs. Se o valor for definido para 0000 0000h , a janela síncrona deve ser desabilitada.
DESCRIÇÃO DO OBJETO
Índice 1007h
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso rw
DESCRIÇÃO DO OBJETO
Índice 1008h
FOI
Código do objeto
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso const
Índice 1009h
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso const
Índice 100Ah
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso const
Os objetos no índice 100Ch e 100Dh devem indicar o tempo de guarda configurado respectivamente o fator de tempo de vida.
O fator de tempo de vida multiplicado pelo tempo de guarda dá o tempo de vida para o protocolo de guarda de vida.
DEFINIÇÃO DE VALOR
O valor deve ser dado em múltiplos de ms. O valor de 0000h deve desabilitar o salva-vidas.
DESCRIÇÃO DO OBJETO
Categoria Condicional;
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso rw;
O fator de tempo de vida multiplicado pelo tempo de guarda dá o tempo de vida para o protocolo de guarda de vida.
DEFINIÇÃO DE VALOR
DESCRIÇÃO DO OBJETO
Índice 100 Dh
FOI
Código do objeto
Categoria Condicional;
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso rw;
Este objeto deve controlar o salvamento dos parâmetros na memória não volátil.
DEFINIÇÃO DE VALOR
Por acesso de leitura o dispositivo CANopen deve fornecer informações sobre suas capacidades de salvamento.
Vários grupos de parâmetros são distinguidos:
• O subíndice 00h contém o subíndice mais alto suportado. • O subíndice 01h refere-se a
• O subíndice 02h refere-se aos parâmetros relacionados à comunicação (índice de 1000h a 1FFFh).
• O subíndice 03h refere-se aos parâmetros relacionados à aplicação (índice de 6000h a 9FFFh).
• Os fabricantes de subíndices de 04h a 7Fh podem armazenar sua escolha de parâmetros individualmente.
Para evitar o armazenamento de parâmetros por engano, o armazenamento só deve ser executado quando uma assinatura específica for
gravada no subíndice apropriado. A assinatura que deve ser escrita é "salvar":
Ao receber a assinatura correta no sub-índice apropriado, o dispositivo CANopen deve armazenar o parâmetro e, em seguida, deve
confirmar a transmissão SDO (resposta de início de download SDO).
Se o armazenamento falhar, o dispositivo CANopen responderá com o serviço de transferência de aborto SDO (código de aborto: 0606
0000h).
Se uma assinatura errada for escrita, o dispositivo CANopen se recusará a armazenar e responderá com o serviço de transferência de
aborto SDO (código de aborto: 0800 002xh).
No acesso de leitura ao subíndice apropriado, o dispositivo CANopen deve fornecer informações sobre sua funcionalidade de armazenamento
com o seguinte formato:
31 2 1 0
reservado
cmd automático
(00 0000 0000 0000 0000 0000 0000 0000b)
MSB LSB
Salvamento autônomo significa que um dispositivo CANopen armazena os parâmetros armazenáveis de maneira não volátil sem solicitação
do usuário.
DESCRIÇÃO DO OBJETO
Índice 10h10
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso const
Sub-índice 01h
Acesso rw
Valor padrão
perfil ou fabricante específico
Sub-índice 02h
Acesso rw
Sub-índice 03h
Acesso rw
Valor padrão
específico do perfil ou do fabricante
Acesso rw
Valor padrão
específico do perfil ou do fabricante
Com este objeto são restaurados os valores padrão dos parâmetros de acordo com o perfil de comunicação, perfil do dispositivo e perfil
do aplicativo.
DEFINIÇÃO DE VALOR
Por acesso de leitura o dispositivo CANopen deve fornecer informações sobre sua capacidade de restaurar esses valores. Vários
grupos de parâmetros são distinguidos:
• O subíndice 00h contém o subíndice mais alto suportado. • O subíndice 01h refere-se
• O subíndice 02h refere-se aos parâmetros relacionados à comunicação (Índice de 1000h a 1FFFh).
• O subíndice 03h refere-se aos parâmetros relacionados à aplicação (Índice de 6000h a 9FFFh).
• Os fabricantes de subíndices de 04h a 7Fh podem restaurar sua escolha individual de parâmetros.
• Os subíndices de 80h a FEh são reservados para uso futuro.
Para evitar a restauração de parâmetros padrão por engano, a restauração deve ser executada somente quando uma assinatura
específica for gravada no subíndice apropriado. A assinatura que deve ser escrita é "load":
Ao receber a assinatura correta no subíndice apropriado, o dispositivo CANopen deve restaurar os parâmetros padrão e, em
seguida, confirmar a transmissão SDO (download SDO
iniciar a resposta). Se a restauração falhar, o dispositivo CANopen responderá com o serviço de transferência de aborto SDO (código
de aborto: 0606 0000h). Se uma assinatura errada for escrita, o dispositivo CANopen se recusará a restaurar os padrões e responderá
com o serviço de transferência de aborto SDO (código de aborto: 0800 002xh).
Os valores padrão devem ser definidos como válidos após o reset do dispositivo CANopen (nó de reset de serviço NMT para
subíndice de 01h a 7Fh, comunicação de reset de serviço NMT para subíndice 02h) ou desligado e ligado.
restaurar padrão
No acesso de leitura ao subíndice apropriado, o dispositivo CANopen deve fornecer informações sobre sua capacidade de restauração
de parâmetros padrão com o seguinte formato:
31 1 0
reservado
cmd
(000 0000 0000 0000 0000 0000 0000 0000b)
MSB LSB
DESCRIÇÃO DO OBJETO
Índice 1011h
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso const
Sub-índice 01h
Acesso rw
Valor padrão
específico do perfil ou do fabricante
Sub-índice 02h
Acesso rw
Valor padrão
específico do perfil ou do fabricante
Sub-índice 03h
Acesso rw
Este objeto deve indicar o COB-ID configurado do objeto Time-Stamp (TIME). Além disso, define se o dispositivo CANopen consome
o TIME ou se o dispositivo CANopen gera o TIME. A estrutura deste objeto é especificada na Figura 60 e na Tabela 58.
DEFINIÇÃO DE VALOR
31 30 29 28 11 10 0
MSB LSB
Os bits 29 (quadro), 30 (produção) podem ser estáticos (não alteráveis). Se um dispositivo CANopen não for capaz de gerar
mensagens TIME, uma tentativa de definir o bit 30 (produção) para 1b deve ser respondida com o serviço de transferência de
aborto SDO (código de aborto: 0609 0030h). Dispositivos CANopen que suportam apenas o tipo de frame base CAN, uma
tentativa de definir o bit 29 (frame) para 1b deve ser respondida com o serviço de transferência de aborto SDO (código de
aborto: 0609 0030h). Os bits 0 a 29 não devem ser alterados enquanto o objeto existir (bit 30 = 1b ou bit 31 = 1b).
DESCRIÇÃO DO OBJETO
Índice 1012h
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso rw
Este objeto deve indicar o timestamp de alta resolução configurado. Ele pode ser mapeado em um PDO para trocar uma mensagem
de carimbo de hora de alta resolução. O uso específico da aplicação adicional é incentivado.
DEFINIÇÃO DE VALOR
DESCRIÇÃO DO OBJETO
Índice 1013h
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso rw;
Valor padrão 0
Este objeto deve indicar o COB-ID configurado para o serviço de gravação EMCY.
DEFINIÇÃO DE VALOR
31 30 29 28 11 10 0
MSB LSB
Dispositivos CANopen que suportam apenas o tipo de frame base CAN devem responder com o serviço de transferência de aborto
SDO (código de aborto: 0609 0030h) no caso de uma tentativa de definir o bit 29 (quadro) para 1b. Os bits 0 a 29 não devem ser
alterados enquanto o objeto existir e for válido (bit 31 = 0b).
DESCRIÇÃO DO OBJETO
Índice 1014h
Categoria Condicional;
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso rw;
Este objeto deve indicar o tempo de inibição configurado para a mensagem EMCY.
DEFINIÇÃO DE VALOR
O valor deve ser dado em múltiplos de 100 µs. O valor 0 deve desabilitar o tempo de inibição.
DESCRIÇÃO DO OBJETO
Índice 1015h
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso rw
Valor padrão 0
O objeto de tempo de pulsação do consumidor deve indicar os tempos de ciclo de pulsação esperados. A monitorização do produtor de
batimentos cardíacos terá início após a recepção do primeiro batimento cardíaco.
NOTA: O tempo de pulsação do consumidor deve ser maior que o tempo de pulsação do produtor correspondente.
DEFINIÇÃO DE VALOR
31 24 23 16 15 0
reservado
ID do nó Tempo de batimento cardíaco
(00h)
MSB LSB
Se o tempo de pulsação for 0 ou o node-ID for 0 ou maior que 127, a entrada do objeto correspondente não deve ser usada. O tempo
de pulsação deve ser dado em múltiplos de 1ms.
Uma tentativa de configurar vários tempos de pulsação diferentes de 0 para o mesmo node-ID o dispositivo CANopen deve ser
respondido com o serviço de transferência de aborto SDO (código de aborto: 0604 0043h).
DESCRIÇÃO DO OBJETO
Índice 1016h
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso const
Sub-índice 01h
Acesso rw
Acesso rw
DEFINIÇÃO DE VALOR
O valor deve ser dado em múltiplos de 1 ms. O valor 0 deve desabilitar a pulsação do produtor.
DESCRIÇÃO DO OBJETO
Índice 1017h
Categoria Condicional;
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso rw
DEFINIÇÃO DE VALOR
O subíndice 01h deve conter o valor único1 que é atribuído exclusivamente a cada fornecedor de um dispositivo CANopen. O valor
0000 0000h deve indicar um ID de fornecedor inválido.
O subíndice 02h deve conter o valor único que identifica um tipo específico de dispositivos CANopen.
O valor de 0000 0000h deve ser reservado.
O subíndice 03h deve conter o número de revisão principal e o número de revisão secundária da revisão do dispositivo CANopen
(ver Figura 63). O número de revisão principal deve identificar um comportamento CANopen específico. Isso significa que se a
funcionalidade CANopen for diferente, o número de revisão principal deve ser incrementado. O número de revisão secundária deve
identificar diferentes versões do dispositivo CANopen com o mesmo comportamento CANopen. O valor de 0000 0000h deve ser
reservado.
31 16 15 0
MSB LSB
O subíndice 04h deve conter o número de série que identifica exclusivamente um dispositivo CANopen dentro de um grupo de
produtos e uma revisão específica. O valor de 0000 0000h deve ser reservado.
DESCRIÇÃO DO OBJETO
Índice 1018h
Categoria Obrigatoriedade
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso const
Sub-índice 01h
Descrição ID do fornecedor
Acesso ro
Sub-índice 02h
Acesso ro
Valor padrão
Perfil específico ou fabricante
Sub-índice 03h
Acesso ro
Valor padrão
Perfil específico ou fabricante
Sub-índice 04h
Acesso ro
Valor padrão
Perfil específico ou fabricante
Este objeto deve indicar o valor mais alto configurado que o contador síncrono suporta. Este objeto deve ser implementado pelo produtor
e pelo consumidor, caso o contador síncrono seja suportado pelo dispositivo CANopen. Se o valor for maior que 1, a mensagem SYNC
deve ter um comprimento de dados de 1 byte. O consumidor SYNC deve ignorar o valor em si. Uma mensagem EMCY (código de erro:
8240h –
comprimento de dados SYNC inesperado) pode ser transmitido por um consumidor SYNC no caso de o comprimento de dados
configurado da mensagem SYNC não atender ao comprimento de dados de uma mensagem SYNC recebida.
Descrição
Valor
reservado
1
reservado
241 a 255
O valor utilizado deve ser o mínimo múltiplo comum de todos os tipos de transmissão TPDO (1 < n <= 240) utilizados. Isso
garante que eventos SYNC periódicos sempre ocorram nos ciclos SYNC com o mesmo valor do contador.
Uma alteração do valor deve ser respondida com uma interrupção SDO (código de interrupção: 0800 0022h ou 0800 0000h)
caso o período do ciclo de sincronização seja diferente de 0.
DESCRIÇÃO DO OBJETO
Índice 1019h
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso rw;
Este objeto deve indicar a data e hora da configuração baixada. Se um dispositivo CANopen suporta o salvamento de parâmetros
em memória não volátil, uma ferramenta de configuração de rede ou um gerenciador CANopen utiliza este objeto para verificar a
configuração após um reset do dispositivo CANopen e verificar se uma reconfiguração é necessária. A ferramenta de configuração
armazena a data e hora nesse objeto e armazena os mesmos valores no DCF. Agora a ferramenta de configuração permite que o
dispositivo CANopen salve sua configuração escrevendo no índice 1010h sub-índice 01h a assinatura "save". Após um reset o
dispositivo CANopen deve restaurar a última configuração e a assinatura automaticamente ou por solicitação. Se qualquer outro
comando alterar os valores de configuração de inicialização, o dispositivo CANopen deve redefinir o objeto Verify Configuration
para 0.
O Configuration Manager compara a assinatura e a configuração com o valor do DCF e decide se uma reconfiguração é necessária
ou não.
Nota: O uso deste objeto permite uma aceleração significativa do processo de inicialização. Caso seja utilizado, o integrador de
sistemas considera que um usuário altera um valor de configuração e posteriormente ativa o comando store configuration
1010h sem alterar o valor de 1020h. Assim, o integrador de sistemas garante um uso 100% conseqüente desse recurso.
DEFINIÇÃO DE VALOR
O subíndice 01h (data de configuração) deve conter o número de dias desde 1º de janeiro de 1984.
DESCRIÇÃO DO OBJETO
Índice 1020h
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso const
Sub-índice 01h
Acesso rw
Sub-índice 02h
Acesso rw
Este objeto deve indicar o EDS baixado. O armazenamento de arquivos EDS no dispositivo CANopen tem algumas vantagens:
• O gerenciamento de diferentes versões de EDS para diferentes versões de software é menos propenso a erros, se
eles são armazenados juntos
• As configurações de rede completas são armazenadas na rede. Isso torna a tarefa de analisar ou
reconfigurando uma rede mais fácil para as ferramentas e mais transparente para os usuários.
DEFINIÇÃO DE VALOR
O nome do arquivo não precisa ser armazenado, pois cada EDS contém seu próprio nome de arquivo.
DESCRIÇÃO DO OBJETO
Índice 1021h
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso ro
O objeto deve indicar o formato do armazenamento. Isso permite o uso de formatos compactados. O objeto descreve apenas o
comportamento externo.
DEFINIÇÃO DE VALOR
Descrição do valor
01h reservado
::::: :::::
7Fh reservado
::::: :::::
FF específico do fabricante
DESCRIÇÃO DO OBJETO
Índice 1022h
Categoria Condicional;
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso ro
O objeto Comando do SO deve ser usado como uma interface orientada a comandos para dispositivos programáveis. O conteúdo do
comando são caracteres /ISO8859/ ou binários e são completamente específicos do fabricante. O sistema host coloca o comando no
comando do SO do objeto.
DEFINIÇÃO DE VALOR
Se um dispositivo CANopen implementa esta função, todos os subíndices são obrigatórios, entradas de objetos adicionais são
específicas do fabricante. Um novo comando pode ser inserido, se o status estiver na faixa de 0 a 3: O comando e todos os
parâmetros devem ser transmitidos em um bloco para o subíndice 01h. A execução do comando terá início imediatamente após a
conclusão da transferência. O host pesquisa o sub-índice 02h, até que seja um valor de 0 a 3. Ele pode então transferir a resposta,
se o status for um valor de 1 ou 3. O dispositivo CANopen deve retornar a mesma resposta, se a resposta for solicitada mais de
uma vez, ou pode mudar o status de 1 para 0 ou 3 para 2, se não for capaz de armazenar em buffer a resposta.
DESCRIÇÃO DO OBJETO
Índice 1023h
Nome Comando do SO
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso const
Sub-índice 01h
Descrição Comando
Acesso rw;
Sub-índice 02h
Descrição Status
Acesso ro
Sub-índice 03h
Descrição Responder
Acesso ro
Este objeto deve controlar a execução do comando na fila específica da aplicação. Pretende-se que este objeto represente o comando
mais recente de uma fila específica do programa aplicativo.
DEFINIÇÃO DE VALOR
Descrição do valor
::::: :::::
FF Específico do fabricante
DESCRIÇÃO DO OBJETO
Índice 1024h
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso Onde
Este objeto deve fornecer a interface do depurador do SO. É a interface de comando binário para os agentes depuradores do dispositivo
CANopen programável. O conteúdo dos comandos é específico do fabricante. Este objeto permite que o usuário se conecte a um depurador
remoto.
DEFINIÇÃO DE VALOR
veja o comando do SO
DESCRIÇÃO DO OBJETO
Índice 1025h
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso const
Sub-índice 01h
Descrição Comando
Acesso rw;
Sub-índice 02h
Descrição Status
Acesso ro
Sub-índice 03h
Descrição Responder
Acesso ro
O objeto prompt do SO é uma interface de comando orientada por caracteres para dispositivos CANopen programáveis.
O conteúdo dos comandos é específico do fabricante. Este objeto permite que o usuário tenha o controle remoto do teclado.
DEFINIÇÃO DE VALOR
O subíndice 01h StdIn é usado para transmitir caracteres simples para o dispositivo CANopen por SDO ou PDO. Cada novo caractere deve
ser anexado à fila de entrada interna. As respostas do dispositivo CANopen devem ser emitidas no subíndice 02h StdOut. Este objeto é
mapeável para um PDO orientado a eventos ou pesquisado por SDO. O subíndice 03h StdErr é usado para saída de erro. Este objeto é
mapeável para um PDO orientado a eventos ou pesquisado por SDO.
DESCRIÇÃO DO OBJETO
Índice 1026h
Nome SO de prompt
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso const
Sub-índice 01h
Descrição StdIn
Acesso Onde
Sub-índice 02h
Descrição StdOut
Acesso ro
Sub-índice 03h
Descrição StdErr
Acesso ro
Um método comum para fornecer dispositivos CANopen modulares é o uso de um acoplador de barramento que permite conectar várias
combinações de módulos. O objeto deve fornecer informações sobre os módulos atualmente anexados.
DEFINIÇÃO DE VALOR
Os subíndices consecutivos (1 ÿ N ÿ 254) descrevem os módulos correspondentes na ordem em que são anexados. Cada entrada de
objeto deve conter um número que identifica o módulo. Para isso, o número deve ser único dentro de todos os tipos de módulos que estão
conectados a este tipo de dispositivo acoplador de barramento.
A entrada do objeto no subíndice 00h deve conter o número real de módulos que estão conectados ao acoplador de barramento.
NOTA: Se nenhum módulo estiver presente, o valor do subíndice 00h é 00h e um acesso de leitura ao subíndice 01h é respondido com
uma mensagem de aborto SDO (código de cancelamento: 0800 0024h ou 0800 0000h).
DESCRIÇÃO DO OBJETO
Índice 1027h
Categoria Condicional;
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso const
Sub-índice 01h
Descrição Módulo 1
Acesso ro
Acesso ro
Esses objetos devem indicar os COB-IDs configurados para os objetos EMCY que o dispositivo CANopen está consumindo.
DEFINIÇÃO DE VALOR
31 30 29 28 11 10 0
MSB LSB
Dispositivos CANopen que suportam apenas o tipo de frame base CAN, uma tentativa de definir o bit 29 (frame) para 1b
será respondido com o serviço de transferência de aborto SDO (código de aborto: 0609 0030h). Os bits 0 a 29 não devem ser
alterados enquanto o objeto existir e for válido (bit 31 = 0b).
O Sub-índice deve referir-se ao ID do nó relacionado.
DESCRIÇÃO DO OBJETO
Índice 1028h
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso const
Sub-índice 01h
Acesso rw;
Acesso rw;
Se uma falha grave do dispositivo CANopen for detectada no estado NMT Operacional, o dispositivo CANopen deverá entrar por padrão
de forma autônoma no estado NMT Pré-operacional. Se o objeto estiver implementado, o dispositivo CANopen é configurável para entrar
alternativamente no estado NMT Stopped ou permanecer no estado NMT atual. As falhas do dispositivo CANopen devem incluir os
seguintes erros de comunicação:
• Condições de desconexão da interface CAN
Erros graves do dispositivo CANopen também podem ser causados por falhas internas do dispositivo CANopen.
DEFINIÇÃO DE VALOR
Descrição do valor
03h reservado
::::: :::::
7Fh reservado
::::: :::::
FF Específico do fabricante
DESCRIÇÃO DO OBJETO
Índice 1029h
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso const
Sub-índice 01h
Acesso rw;
Acesso rw;
Para descrever os SDOs usados em um dispositivo CANopen, o tipo de dado Parâmetro SDO é introduzido. O tipo de dado tem o
índice 22h no dicionário de objetos. A estrutura é definida na cláusula 7.4.8.
DEFINIÇÃO DE VALOR
O número de entradas de objeto com suporte no registro de objeto SDO é especificado no subíndice 00h.
Os valores no subíndice 01h e no subíndice 02h especificam o COB-ID para este SDO. O subíndice 03h é o node-ID do cliente
SDO associado a este dispositivo CANopen.
31 30 29 28 11 10 0
MSB LSB
Um SDO existe somente se tanto no subíndice 01h quanto no subíndice 02h o bit válido (bit 31) estiver definido como 0b.
Dispositivos CANopen que suportam apenas o tipo de frame base CAN, uma tentativa de definir o bit 29 (frame) para 1b
é respondido com o serviço de transferência de aborto SDO (código de aborto: 0609 0030h). Não é permitido alterar os bits 0
para 29 enquanto o objeto existir e for válido (bit 31 = 0b).
Se o bit dyn (bit 30) do subíndice 01h ou subíndice 02h for definido como 1b , os valores de todos os subíndices deste objeto
não devem ser armazenados em memória não volátil. O bit dyn pode ser usado para marcar conexões SDO dinâmicas entre
dispositivos CANopen. As conexões SDO dinâmicas são configuradas temporariamente. As conexões SDO estáticas são
configuradas de forma não temporária e podem ser salvas em
memória volátil. O gerenciador CANopen pode usar o bit dyn para detectar conexões SDO configuradas temporariamente.
DESCRIÇÃO DO OBJETO
Categoria Condicional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso const
Sub-índice 01h
Sub-índice 02h
Sub-índice 03h
Acesso rw
Esses objetos contêm os parâmetros para os SDOs para os quais o dispositivo CANopen é o cliente SDO. Se o objeto for suportado,
todos os subíndices estarão disponíveis. A partir do índice 1280h e índices subsequentes.
DEFINIÇÃO DE VALOR
O número de entradas de objeto com suporte no registro de objeto SDO é especificado no subíndice 00h.
Os valores no subíndice 01h e no subíndice 02h especificam o COB-ID para este SDO. O subíndice 03h é o node-ID do servidor
SDO associado a este dispositivo CANopen.
31 30 29 28 11 10 0
MSB LSB
Um SDO existe somente se tanto no subíndice 01h quanto no subíndice 02h o bit válido (bit 31) estiver definido como 0b.
Dispositivos CANopen que suportam apenas o tipo de frame base CAN, uma tentativa de definir o bit 29 (frame) para 1b
é respondido com o serviço de transferência de aborto SDO (código de aborto: 0609 0030h). Não é permitido alterar os bits 0 para
29 enquanto o objeto existir e for válido (bit 31 = 0b). Dispositivos CANopen que suportam a habilitação (bit 31 = 0b) e desabilitação
(bit 31 = 1b) do cliente SDO somente devem responder com o serviço de transferência de abortar SDO (código de abortamento:
0609 0030h ou 0800 000h) na tentativa de alterar os valores de bit 0 a bit 30.
Se o bit dyn (bit 30) do subíndice 01h ou subíndice 02h for definido como 1b , os valores de todos os subíndices deste objeto não
devem ser armazenados em memória não volátil. O bit dyn pode ser usado para marcar conexões SDO dinâmicas entre dispositivos
CANopen. As conexões SDO dinâmicas são configuradas temporariamente. As conexões SDO estáticas são configuradas de
forma não temporária e podem ser salvas em memória não volátil. O gerenciador CANopen pode usar o bit dyn para detectar
conexões SDO configuradas temporariamente.
DESCRIÇÃO DO OBJETO
Categoria Condicional;
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso const
Sub-índice 01h
Acesso rw;
Sub-índice 02h
Acesso rw;
Sub-índice 03h
Acesso rw;
Este objeto contém os parâmetros de comunicação dos PDOs que o dispositivo CANopen pode receber.
DEFINIÇÃO DE VALOR
O subíndice 00h contém o número de entradas de objeto válidas no registro. Seu valor é de no mínimo 02h. Se o tempo de inibição
for suportado o valor é 03h e se o temporizador de evento for suportado o valor é 05h.
31 30 29 28 11 10 0
MSB LSB
O bit válido (bit 31) permite selecionar quais RPDOs serão utilizados no estado NMT Operacional.
Pode haver PDOs totalmente configurados (por exemplo, por padrão), mas não usados e, portanto, definidos como
"não válidos" (excluídos). O recurso é necessário para dispositivos CANopen que suportem mais de 4 RPDOs, pois
cada dispositivo CANopen possui apenas CAN-IDs padrão para os quatro primeiros RPDOs no conjunto de conexão
predefinido genérico. Dispositivos CANopen que suportam o tipo de frame base CAN apenas uma tentativa de definir
o bit 29 (frame) para 1b é respondida com o serviço de transferência de aborto SDO (código de aborto: 0609 0030h).
Não é permitido alterar o bit 0 para 29 enquanto o PDO existir e for válido (bit 31 = 0b). Dispositivos CANopen que
suportam a habilitação (bit 31 = 0b) e desabilitação (bit 31 = 1b) de um RPDO somente devem responder com o serviço
de transferência de abortar SDO (código de abortamento: 0609 0030h ou 0800 000h) na tentativa de alterar os valores
de bit 0 a 30 bits.
Se o dispositivo CANopen tiver implementado um ou mais perfis de dispositivo, o conjunto de conexão predefinido
genérico deve ser aplicado (consulte a Tabela 67).
Se o dispositivo CANopen tiver implementado um perfil de aplicação, o conjunto de conexão pré-definido específico
desse perfil de aplicação deve ser aplicado.
O subíndice 02h define o caráter de recepção do RPDO (ver Tabela 68). Uma tentativa de alterar o valor do tipo de
transmissão para qualquer valor não suportado deve ser respondida com o serviço de transferência de aborto SDO (código
de aborto: 0609 0030h).
Descrição
Valor
síncrono
00h
:::::
:::::
síncrono
F0h
reservado
F1h
:::::
:::::
reservado
FDh
• Síncrono significa que o dispositivo CANopen deve acionar os dados recebidos com o
recepção do próximo SYNC (veja a Figura 68).
• Orientado a eventos significa que o PDO pode ser recebido a qualquer momento. O dispositivo CANopen
atualizará os dados imediatamente.
•
Figura 68: Sincronização e atuação do barramento
O subíndice 03h contém o tempo de inibição. O valor é definido como múltiplo de 100 µs. O valor 0 deve desabilitar o
tempo de inibição. Não é permitido alterar o valor enquanto o PDO existir (o bit 31 do sub-índice 01h é definido como 0b).
O RPDO pode utilizar o tempo de implementação específico.
O sub-índice 04h está reservado. Não deve ser implementado; neste caso, o acesso de leitura ou escrita leva ao serviço
de transferência de aborto SDO (código de aborto: 0609 0011h).
O subíndice 05h contém o temporizador de eventos. O valor é definido como múltiplo de 1 ms. O valor 0 deve desabilitar o
temporizador de eventos. O RPDO pode utilizar o tempo para monitoramento de prazos. O monitoramento de deadline é ativado
na próxima recepção de um RPDO após a configuração do event-timer. Um tempo limite resulta em uma indicação para o aplicativo
local.
O subíndice 06h contém o valor inicial SYNC. Isso não é usado por RPDOs. Não deve ser implementado; neste caso, o acesso de
leitura ou escrita levará ao serviço de transferência de abortamento SDO (código de abortamento: 0609 0011h).
DESCRIÇÃO DO OBJETO
Categoria Condicional;
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso const
Sub-índice 01h
Acesso rw;
Sub-índice 02h
Acesso rw;
Valor padrão
Perfil ou fabricante específico
Sub-índice 03h
Acesso rw;
Sub-índice 04h
Acesso rw
Sub-índice 05h
Acesso rw;
Valor padrão
Perfil ou fabricante específico
Sub-índice 06h
Acesso rw
Este objeto contém os parâmetros de mapeamento para os PDOs que o dispositivo CANopen pode receber.
DEFINIÇÃO DE VALOR
O subíndice 00h contém o número de entradas de objeto válidas no registro de mapeamento ou um valor específico
(consulte a Tabela 69), por exemplo, se o MPDO for suportado. O número de entradas de objetos válidos deve ser o
número de objetos de aplicação que devem ser recebidos com o RPDO correspondente.
Descrição do valor
::::: :::::
41h reservado
::::: :::::
FDh reservado
FEh SAM-MPDO
FFh DAM-MPDO
O subíndice de 01h a 40h contém as informações dos objetos de aplicação mapeados. O objeto descreve o conteúdo do PDO
por seu índice, subíndice e comprimento (ver Figura 69 e Figura 70).
O comprimento contém o comprimento do objeto do aplicativo em bits. Isso pode ser usado para verificar o mapeamento.
31 16 15 87 0
MSB LSB
Uma tentativa de alterar o valor de uma entrada de objeto para qualquer valor que não seja suportado deve ser respondida
com o serviço de transferência de aborto SDO. A causa de um valor sem suporte pode ser o mapeamento (índice e
subíndice) de um objeto de aplicativo não existente, um comprimento incorreto para o objeto de aplicativo mapeado ou
um comprimento incorreto para o PDO. O índice e o subíndice podem
fazer referência a um tipo de dados simples (consulte a Tabela 44) para o chamado mapeamento fictício. Isso pode ser usado se nenhum
objeto de aplicativo apropriado estiver disponível e para preencher o comprimento do RPDO para ajustar o comprimento ao TPDO
correspondente.
O seguinte procedimento deve ser usado para remapeamento, que pode ocorrer durante o estado NMT Pré-operacional e durante o
estado NMT Operacional, se suportado:
1. Destrua o RPDO configurando o bit válido para 1b do subíndice 01h do parâmetro de comunicação RPDO correspondente.
5. Crie o RPDO configurando o bit válido para 0b do sub-índice 01h do parâmetro de comunicação RPDO correspondente.
Se durante a etapa 3 o dispositivo CANopen detectar que o índice e sub-índice do objeto mapeado não existe ou o objeto não pode ser
mapeado, o dispositivo CANopen deverá responder com o serviço de transferência de aborto SDO (código de aborto: 0602 0000h ou
0604 0041h).
Se durante a etapa 4 o dispositivo CANopen detectar que o mapeamento RPDO não é válido ou não é possível, o dispositivo CANopen
deverá responder com o serviço de transferência de abortar SDO (código de abortamento: 0602 0000h
ou 0604 0042h).
Se o dispositivo CANopen receber um PDO que tenha mais bytes de dados do que o número de bytes de dados mapeados (comprimento),
o dispositivo CANopen deverá usar os primeiros bytes de dados até o comprimento e poderá iniciar o serviço de gravação EMCY, se
suportado .
Se um dispositivo CANopen receber um PDO com menos bytes de dados do que o número de bytes de dados mapeados (comprimento), o
dispositivo CANopen deverá iniciar o serviço de gravação EMCY, se suportado, com o código de erro 8210h.
DESCRIÇÃO DO OBJETO
Categoria Condicional;
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso rw;
Valor padrão
específico do perfil ou do fabricante
Sub-índice 01h
Acesso rw;
Acesso rw;
Este objeto contém os parâmetros de comunicação para os PDOs que o dispositivo CANopen é capaz de transmitir.
DEFINIÇÃO DE VALOR
O subíndice 00h contém o número de entradas de objeto válidas no registro. Seu valor é de no mínimo 02h. Se o tempo de inibição
for suportado o valor é 03h e se o temporizador de evento for suportado o valor é 05h.
31 30 29 28 11 10 0
MSB LSB
O bit válido (bit 31) permite selecionar quais TPDOs serão utilizados no estado NMT Operacional.
Pode haver PDOs totalmente configurados (por exemplo, por padrão), mas não usados e, portanto, definidos como
"não válidos" (excluídos). O recurso é necessário para dispositivos CANopen que suportem mais de 4 TPDOs, pois
cada dispositivo CANopen possui apenas CAN-IDs padrão para os primeiros quatro TPDOs no conjunto de conexão
predefinido genérico. Dispositivos CANopen que suportam apenas o tipo de frame base CAN ou não suportam RTRs,
uma tentativa de definir o bit 29 (frame) para 1b ou bit 30 (RTR) para 0b
é respondido com o serviço de transferência de aborto SDO (código de aborto: 0609 0030h). Não é permitido alterar o
bit de 0 para 29 enquanto o PDO existir e for válido (bit 31 = 0b). Dispositivos CANopen que suportam a habilitação (bit
31 = 0b) e desabilitação (bit 31 = 1b) de um TPDO somente devem responder com o serviço de transferência de
abortar SDO (código de abortamento: 0609 0030h ou 0800 000h) na tentativa de alterar os valores de bit 0 a 30 bits.
Se o dispositivo CANopen tiver implementado um ou mais perfis de dispositivo, o conjunto de conexão predefinido
genérico deve ser aplicado (consulte a Tabela 67).
Se o dispositivo CANopen tiver implementado um perfil de aplicação, o conjunto de conexão pré-definido específico
desse perfil de aplicação deve ser aplicado.
O subíndice 02h define o caráter de transmissão do TPDO (ver Tabela 72). Uma tentativa de alterar o valor do tipo de
transmissão para qualquer valor não suportado deve ser respondida com o serviço de transferência de aborto SDO (código
de aborto: 0609 0030h).
Descrição
Valor
síncrono (acíclico)
00h
:::::
:::::
reservado
F1h
:::::
:::::
reservado
FB
• Síncrono significa que o PDO é transmitido após o SYNC. O dispositivo CANopen iniciará a amostragem dos dados
com a recepção do SYNC (ver Figura 72). Caso seja acíclico o evento interno do dispositivo CANopen é dado e
com o próximo SYNC a amostragem é iniciada e o PDO é transmitido posteriormente. Caso seja cíclico a
amostragem é iniciada com a recepção de cada SYNC, cada 2º SYNC, cada 3º SYNC,
• Somente RTR significa que o PDO não é transmitido normalmente, deve ser solicitado via RTR.
Caso seja síncrono o dispositivo CANopen iniciará a amostragem com a recepção de cada SYNC e então armazenará
o PDO (ver Figura 72). Caso seja acionado por eventos, o dispositivo CANopen iniciará a amostragem com a recepção
do RTR e transmitirá o PDO imediatamente.
• Acionado por evento significa que o PDO pode ser transmitido a qualquer momento com base na ocorrência de um evento
interno do dispositivo CANopen. A definição do evento não se enquadra no escopo desta especificação e pode ser
especificada em perfis de dispositivos e perfis de aplicativos.
•
Figura 72: Sincronização e amostragem do barramento
O subíndice 03h contém o tempo de inibição. O tempo é o intervalo mínimo para transmissão PDO se o tipo de transmissão for
definido como FEh e FFh. O valor é definido como múltiplo de 100 µs. O valor 0 deve desabilitar o tempo de inibição. O valor não
deve ser alterado enquanto o PDO existir (o bit 31 do subíndice 01h é definido como 0b).
O sub-índice 04h está reservado. Não deve ser implementado; neste caso, o acesso de leitura ou escrita leva ao serviço de
transferência de aborto SDO (código de aborto: 0609 0011h).
O subíndice 05h contém o temporizador de eventos. O tempo é o intervalo máximo para transmissão PDO se o tipo de transmissão
for definido como FEh e FFh. O valor é definido como múltiplo de 1 ms. O valor 0 deve desabilitar o temporizador de eventos.
O subíndice 06h contém o valor inicial SYNC. O valor inicial SYNC de 0 deve indicar que o contador da mensagem SYNC não
deve ser processado para este PDO. O valor de início SYNC de 1 a 240 deve indicar que o contador da mensagem SYNC deve
ser processado para este PDO. Caso o contador da mensagem SYNC não esteja habilitado (ver 7.5.2.22) o subíndice 06h deve
ser ignorado. A mensagem SYNC cujo valor do contador é igual ao valor inicial SYNC deve ser considerada como a primeira
mensagem SYNC recebida. O valor não deve ser alterado enquanto o PDO existir (o bit 31 do subíndice 01h é definido como 0b).
NOTA se o dispositivo CANopen detectar na chave para o estado operacional NMT que o valor do contador SYNC recebido é
maior que o valor inicial do SYNC, então o dispositivo CANopen terá que esperar um ciclo completo até que o contador SYNC
correto seja recebido.
DESCRIÇÃO DO OBJETO
Categoria Condicional;
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso const
Sub-índice 01h
Acesso rw;
Sub-índice 02h
Acesso rw;
Valor padrão
específico do perfil ou do fabricante
Sub-índice 03h
Acesso rw;
Sub-índice 04h
Descrição reservado
Acesso rw
Sub-índice 05h
Acesso rw;
Valor padrão
específico do perfil ou do fabricante
Sub-índice 06h
Acesso rw;
Este objeto contém o mapeamento dos PDOs que o dispositivo pode transmitir.
DEFINIÇÃO DE VALOR
O subíndice 00h contém o número de entradas de objeto válidas no registro de mapeamento ou um valor específico (consulte a
Tabela 73), por exemplo, se o MPDO for suportado. O número de entradas de objetos válidos deve ser o número de objetos de
aplicação que devem ser transmitidos com o TPDO correspondente.
Descrição do valor
Descrição do valor
::::: :::::
41h reservado
::::: :::::
FDh reservado
FEh SAM-MPDO
FFh DAM-MPDO
O subíndice de 01h a 40h contém as informações dos objetos de aplicação mapeados. O objeto descreve o conteúdo do
PDO por seu índice, subíndice e comprimento (ver Figura 73 e Figura 74).
O comprimento contém o comprimento do objeto do aplicativo em bits. Isso pode ser usado para verificar o mapeamento.
31 16 15 87 0
MSB LSB
Uma tentativa de alterar o valor de uma entrada de objeto para qualquer valor que não seja suportado deve ser
respondida com o serviço de transferência de aborto SDO. A causa de um valor sem suporte pode ser o mapeamento
(índice e subíndice) de um objeto de aplicativo não existente, um comprimento incorreto para o objeto de aplicativo
mapeado ou um comprimento incorreto para o PDO.
O seguinte procedimento deve ser usado para remapeamento, que pode ocorrer durante o estado NMT Pré-operacional
e durante o estado NMT Operacional, se suportado:
1. Destrua o TPDO configurando o bit válido para 1b do subíndice 01h do parâmetro de comunicação TPDO
correspondente.
2. Desative o mapeamento configurando o subíndice 00h para 00h.
3. Modifique o mapeamento alterando os valores dos subíndices correspondentes.
4. Habilite o mapeamento configurando o subíndice 00h para o número de objetos mapeados.
5. Crie o TPDO configurando o bit válido para 0b do sub-índice 01h do parâmetro de comunicação TPDO
correspondente.
Se durante a etapa 3 o dispositivo CANopen detectar que o índice e sub-índice do objeto mapeado não existe ou o
objeto não pode ser mapeado, o dispositivo CANopen deverá responder com o serviço de transferência de aborto SDO
(código de aborto: 0602 0000h ou 0604 0041h).
Se durante a etapa 4 o dispositivo CANopen detectar que o mapeamento RPDO não é válido ou não é possível, o
dispositivo CANopen deverá responder com o serviço de transferência de abortar SDO (código de abortamento: 0602 0000h
ou 0604 0042h).
Dicionário de objetos
DESCRIÇÃO DO OBJETO
Categoria Condicional;
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso rw;
Sub-índice 01h
Acesso rw;
Acesso rw;
O produtor de um SAM-MPDO utiliza a lista de scanners de objetos para configurar quais objetos devem ser transmitidos.
DEFINIÇÃO DE VALOR
Cada entrada de objeto descreve um objeto que pode ser enviado via MPDO. É possível descrever sub-índices consecutivos
definindo o tamanho do bloco de parâmetros para o número de sub-índices que devem seguir.
31 24 23 16 15 87 0
MSB LSB
DESCRIÇÃO DO OBJETO
Categoria Opcional
Sub-índice 00h
Acesso const
Sub-índice 01h
Descrição Digitalizar 1
Acesso rw;
Acesso rw;
O consumidor de um SAM-MPDO usa a lista de despacho de objetos como referência cruzada entre o objeto remoto do produtor e
o dicionário de objetos local.
DEFINIÇÃO DE VALOR
63 56 55 40 39 32 31 16 15 8 7 0
Subíndice Subíndice ID do nó
Tamanho do bloco Índice local Índice do remetente
local do remetente do remetente
MSB LSB
Cada entrada de objeto descreve como os dados de um MPDO recebido são transferidos para o dicionário de objetos local.
Se o campo sinalizador for 0 e o ID do nó produtor, o Índice do produtor e o subprodutor
index se ajusta à entrada do objeto e, em seguida, os dados devem ser gravados no objeto local endereçado pelos valores local index e
local sub-index dessa entrada de objeto.
O parâmetro tamanho do bloco permite a descrição de subíndices consecutivos. Exemplo: se o sub-índice 1-9 do emissor deve ser
mapeado para o sub-índice 11-19 do receptor, este intervalo é definido por
Subíndice do remetente = 1
Subíndice Local = 11
Tamanho do bloco =9
DESCRIÇÃO DO OBJETO
Categoria Opcional
DESCRIÇÃO DA ENTRADA
Sub-índice 00h
Acesso const
Valor padrão
específico do perfil ou do fabricante
Sub-índice 01h
Descrição Despacho 1
Acesso rw;
Acesso rw;
Anexo A (informativo)
Recomendações de implementação
Ao implementar os protocolos, as seguintes regras devem ser obedecidas para garantir a interoperabilidade.
Essas regras tratam dos seguintes aspectos de implementação:
COBs inválidos
Um COB é inválido se tiver um COB-ID usado pelos protocolos especificados, mas contiver valores de parâmetro inválidos de acordo
com a especificação do protocolo. Isso só pode ser causado por erros nas camadas inferiores ou erros de implementação. COBs
inválidos devem ser tratados localmente de uma forma específica de implementação que não se enquadre no escopo desta especificação.
No que diz respeito ao protocolo, um COB inválido deve ser ignorado.
Tempo limite
Como os COBs podem ser ignorados, a resposta de um serviço confirmado pode nunca chegar. Para resolver isso
situação, uma implementação pode, após um determinado período de tempo, indicar isso ao usuário do serviço (time-out). Um tempo
limite não é uma confirmação desse serviço. Um tempo limite indica que o serviço ainda não foi concluído. O aplicativo pode lidar com
essa situação. Os valores de tempo limite são considerados específicos da implementação e não se enquadram no escopo desta
especificação. No entanto, é recomendável que uma implementação forneça recursos para ajustar esses valores de tempo limite aos
requisitos do aplicativo.
Os PDOs de transmissão com estes tipos de transmissão podem ser enviados imediatamente para transmissão tipo 254 e 255 ou com o
primeiro Sync para transmissão tipo 0 após entrar no estado operacional, se não especificado de forma diferente nos perfis
correspondentes.
2 O tipo de acesso listado aqui pode variar para determinados subíndices. Consulte a especificação detalhada do objeto.
Configuração do dispositivo
Armazenamento EDS
Comando e prompt do SO
Dispositivos modulares
102Ah reservado
11FFh reservado
127Fh RECORD 128º parâmetro do servidor SDO SDO PARAM (22h) rw M/O**
12FFh RECORD 128º parâmetro do cliente SDO SDO PARAM (22h) rw M/O**
13:00h reservado
13FFh reservado
15FFh RECORD 512º parâmetro de comunicação RPDO PDO COMMPAR (20h) rw M/O*
17FFh RECORD 512º parâmetro de mapeamento RPDO MAPEAMENTO DE DOP (21h) rw M/O*
19FFh RECORD 512º parâmetro de comunicação TPDO PDO COMMPAR (20h) rw M/O*
1BFFh RECORD 512º parâmetro de mapeamento TPDO MAPEAMENTO DE DOP (21h) rw M/O*
Multiplex PDO
* Se um dispositivo CANopen suporta PDOs, o parâmetro de comunicação PDO correspondente e as entradas de objeto de mapeamento
PDO no dicionário de objetos são obrigatórias. Estes podem ser ro.
** Se um dispositivo CANopen suportar SDOs, os parâmetros SDO correspondentes no dicionário de objetos são obrigatórios.
***
veja a definição do objeto.
CiA 301
Versão 4.2.0
11 de agosto de 2010
ou perfil
Página 77, Figura 39, Figura 40; página 78, Figura 41, Figura, 42, Figura 43:
ID do nó:
0: todos os dispositivos devem realizar a transição recomendada 1 a
127: somente o dispositivo com este node-ID deve realizar a transição recomendada
Adicione ao segundo marcador "Redefinir aplicativo" entre a primeira e a segunda frase o seguinte:
0026h – 003Fh
31
seu FEh
Adicione na tabela ENTRY DESCRIPTION para o sub-índice 01h na linha Default value após 00h:
ou perfil específico
Substitua na tabela ENTRY DESCRIPTION para o sub-índice 00h na linha de valor padrão “No” por:
Específico do fabricante
Substitua na tabela ENTRY DESCRIPTION para o sub-índice 00h na linha de valor padrão “No” por:
Adicione na tabela ENTRY DESCRIPTION para o sub-índice 00h a linha Default value:
CiA 301
Versão 4.2.0
21 de fevereiro de 2011
Descrição
REAL32
REAL32
REAL32
CiA 301
Versão 4.2.0
15 de julho de 2011
Apague na lista numerada na primeira entrada (“0.”) “se nenhum erro for detectado. Nenhuma mensagem de erro é enviada”
NOTA Uma transição de estado NMT também é acionada localmente dependendo da configuração do objeto de comportamento de
erro (para detalhes veja 7.5.2.32).
O dispositivo que transita para o estado NMT Stopped não deve transmitir um protocolo de transferência de aborto SDO.
Um parâmetro com atributo de acesso “wo” não deve ser mapeado em TPDOs; um parâmetro com atributo de acesso “ro” não deve ser
mapeado em RPDOs.
Não
as configurações são
NÃO ASSINADO8
Consulte a Tabela 60
Substitua na Tabela DESCRIÇÃO DA ENTRADA o atributo Intervalo de valores para o subíndice 01h e 03h por:
Específico do fabricante
Substitua na Tabela DESCRIÇÃO DA ENTRADA o atributo Intervalo de valores para o subíndice 01h e 03h por:
Específico do fabricante