DeviceNet é um protocolo de camada de aplicação industrial de baixo nível que conecta dispositivos industriais simples a controladores de nível superior. Ele usa o padrão de comunicação física Controller Area Network (CAN) para definir seu protocolo de camada de aplicação. Este resumo de tecnologia fornece uma descrição operacional do DeviceNet, oferecendo mais informações do que uma visão geral da rede, mas menos do que a extensa Especificação do DeviceNet. Ele serve como um recurso para usuários DeviceNet que buscam uma compreensão mais profunda e desenvolvedores que consideram a implementação de comunicações DeviceNet em seus produtos. Observe que este resumo é necessariamente incompleto, com prioridade para tópicos que melhoram a compreensão ou esclarecem equívocos comuns.
Uma visão geral rápida:
DeviceNet é um protocolo de camada de aplicação. O que isso significa? Uma maneira de vê-lo é que o termo “camada de aplicação” implica que o DeviceNet lida mais com dados de aplicação do que com um protocolo de nível inferior ou sem camada de aplicação. Por exemplo, um protocolo de camada de enlace é projetado simplesmente para mover bytes de A para B, sem interesse ou transmissão de informações sobre o conteúdo da mensagem. Como protocolo de camada de aplicação, as mensagens do DeviceNet transmitem informações. Uma mensagem explícita do DeviceNet contém informações específicas em bytes específicos da mensagem, como número de classe e código de serviço.
Agora, se o DeviceNet é um protocolo de camada de aplicação, quais são as camadas de protocolo inferiores que transportam suas mensagens? Isso será abordado na próxima seção.
CAN é um padrão de comunicação com um conjunto bastante prolífico de descendentes que inclui DeviceNet, Can Open, Can Kingdom e várias centenas de outras iterações em todo o mundo.
CAN é um padrão de comunicação serial para dispositivos inteligentes se comunicarem entre si. Ao contrário de muitos outros padrões de comunicação que fornecem taxas de dados rápidas com milhares ou milhões de bytes de dados em um único quadro, o CAN tem uma taxa de bits que atinge o máximo de 1 mega baud. A maioria das aplicações industriais nem precisa dessa velocidade. A maioria usa o humilde 125Kbaud. E onde outros padrões movem milhares de bytes em um único quadro, o CAN move apenas 8 bytes de dados.
Mas enquanto velocidade e capacidade são pontos fortes para muitos dos outros padrões, o ponto forte do CAN é sua baixa sobrecarga e interface física simples. Com seu pequeno tamanho de pacote, mesmo a 500 Kbaud um quadro com oito bytes de dados, ele fica na rede por apenas um quarto de milissegundo. Para muitas aplicações de controle, isso é bastante rápido.
Além disso, o microcontrolador, sim, um micro de 8 bits com pouca potência, pode fazer o trabalho. Ele precisa de apenas 4K de memória de programa e 256 bytes de RAM para suportar um aplicativo CAN.
O CAN foi criado pela Bosch na Alemanha em março de 1985. A Bosch Company o projetou para substituir a fiação automotiva. Nos primeiros dias da especificação versão 1.2, as mensagens CAN continham um identificador de onze bits, fornecendo a capacidade de endereçar 2.047 identificadores. Em 1992, a CAN Specification 2.0 estendeu o tamanho do identificador para 29 bits, fornecendo até 56 milhões de identificadores exclusivos. Como ambas as especificações ainda estão em uso (às vezes no mesmo fio), a especificação 1.2 original é chamada de Parte A e a nova especificação 2.0 é chamada de Parte B. Um atributo exclusivo do CAN é que apenas duas das camadas do Modelo de Referência OSI são definidas ( veja a Figura 1): a camada de enlace de dados e a camada física. A camada de enlace de dados CAN é normalmente dividida em duas subcamadas: a subcamada de sinalização física e a subcamada de controle de acesso ao meio (MAC).
A Allen-Bradley (agora Rockwell Automation) criou o DeviceNet como um protocolo de camada de aplicação sobre o CAN na década de 1990. AB selecionou CAN como a camada física DeviceNet por vários motivos, incluindo.
Um dos recursos mais extraordinários do CAN (e DeviceNet) é a arbitragem bit a bit. A arbitragem bit a bit é o processo que o CAN usa para priorizar as mensagens sem perder nenhuma largura de banda da rede. Em uma rede CAN, zero bits dominam um bit. À medida que um dispositivo transmite uma mensagem, ele escuta os bits na rede. Se um dispositivo transmite um e ouve um zero, ele sabe que uma mensagem de prioridade mais alta está sendo transmitida e interrompe a transmissão. O nó com a mensagem de prioridade mais alta ouve os bits que está transmitindo e nunca sabe que está em conflito com uma mensagem de prioridade mais baixa. A sequência de mensagens na rede é preservada.
O Communications and Information Protocol (CIP) é um protocolo de comunicação para automatizar a transferência de dados entre dispositivos. DeviceNet combina o protocolo CIP com a Camada Física CAN. No CIP, cada dispositivo de rede é representado como uma série de objetos, onde cada objeto é simplesmente um agrupamento de valores de dados relacionados dentro de um dispositivo. Por exemplo, todo dispositivo CIP é necessário para fornecer um objeto de identidade de rede que contém valores de dados de identidade relacionados, conhecidos como atributos. Esses atributos incluem ID do fornecedor, data de fabricação, número de série do dispositivo e outros dados de identidade. CIP especifica os valores de atributo suportados que devem estar disponíveis para outros dispositivos CIP, sem especificar os detalhes de implementação desses dados de objeto. O objeto de identidade é um exemplo de objeto obrigatório e existem vários tipos de objetos definidos pelo protocolo CIP.
O objeto de identidade contém atributos que identificam o dispositivo DeviceNet. Os atributos para o objeto de identidade incluem o ID do fornecedor, a data do fabricante, o número de série do dispositivo e outros dados de identidade.
O roteador de mensagem é um objeto que existe para rotear mensagens explícitas e respostas explícitas de e para o objeto de conexão (veja abaixo). Por exemplo, uma solicitação de mensagem explícita é recebida pelo objeto de conexão e passada para o objeto do roteador. O roteador abre o pacote DeviceNet/CIP e identifica o objeto de destino. A mensagem é passada para o objeto de destino para processamento. A resposta do objeto-alvo segue o mesmo curso inverso. Lembre-se de que este é apenas o comportamento operacional externo do objeto roteador de mensagem. A implementação deste objeto pode e segue um mecanismo muito mais conciso e eficiente.
O objeto contém atributos que identificam a porta, taxa de transmissão, MAC ID (Endereço DeviceNet), ID do fornecedor e outros parâmetros operacionais físicos.
O objeto de conexão contém os atributos que controlam o processamento de mensagens explícitas e de E/S. Mais importante ainda, os atributos para o caminho de E/S e o tipo de conexão controlam a frequência com que os dispositivos produzem dados e o caminho onde o objeto de conexão encontra os dados a serem produzidos.
Outro objeto necessário é o objeto do roteador de mensagem. Existem vários tipos de objetos roteadores de mensagens e a Especificação os descreve em detalhes excruciantes.
Objetos de aplicativo são os objetos que definem os dados encapsulados pelo dispositivo. Esses objetos são específicos para o tipo e função do dispositivo. Por exemplo, um objeto de motor em um sistema de acionamento possui atributos que descrevem a frequência, classificação de corrente e tamanho do motor. Um objeto de entrada analógica em um dispositivo de E/S possui atributos que definem o tipo, resolução e valor atual para a entrada analógica.
Esses objetos da camada de aplicativo são predefinidos para vários tipos de dispositivos comuns. Todos os dispositivos CIP com o mesmo tipo de dispositivo (sistemas de acionamento, controle de movimento, transdutor de válvula, etc.) devem conter a mesma série de objetos de aplicação. A série de objetos de aplicativo para um determinado tipo de dispositivo é conhecida como perfil do dispositivo. Um grande número de perfis para muitos tipos de dispositivos foi definido. O suporte a um perfil de dispositivo permite que um usuário entenda e mude facilmente de um fornecedor de um tipo de dispositivo para outro fornecedor com o mesmo tipo de dispositivo.
Um fornecedor de dispositivo também pode agrupar objetos de camada de aplicativo em objetos de montagem. Esses superobjetos contêm atributos de um ou mais objetos da camada de aplicativo. Objetos de montagem formam um pacote conveniente para transportar dados entre dispositivos. Por exemplo, um fornecedor de um controlador de temperatura com dois loops de temperatura pode definir conjuntos para cada um dos loops de temperatura e um conjunto com dados de ambos os loops de temperatura. O usuário pode escolher o assembly mais adequado para o aplicativo e com que frequência acessar cada assembly. Por exemplo, você pode configurar um conjunto de temperatura para relatar toda vez que mudar de estado e configurar o segundo para relatar a cada um segundo, independentemente de uma mudança de estado.
Os conjuntos geralmente são predefinidos pelo fornecedor, mas o CIP também define um mecanismo no qual o usuário pode criar dinamicamente um conjunto a partir dos atributos do objeto da camada de aplicativo. Assemblies dinâmicos são bastante raros, pois a maioria dos usuários finais não gostaria de se preocupar em definir seus próprios assemblies.
Objetos não encontrados no perfil para uma classe de dispositivo são denominados específicos do fornecedor. O fornecedor inclui esses objetos como recursos adicionais do dispositivo. O CIP fornece acesso a esses objetos de extensão do fornecedor exatamente pelo mesmo método que o aplicativo ou os objetos necessários. Esses dados são estritamente de escolha do fornecedor e são organizados em qualquer método que faça sentido para o fornecedor do dispositivo.
Além de especificar como os dados do dispositivo são representados na rede, o CIP especifica várias maneiras diferentes pelas quais esses dados podem ser acessados, como cíclico, pesquisado e mudança de estado.
DeviceNet é uma rede baseada em conexão semelhante à Ethernet TCP/IP. Quando dois dispositivos estabelecem uma conexão, eles trocam números de ID de conexão. Para a maioria das mensagens DeviceNet (entre um dispositivo mestre e um dispositivo escravo), os IDs de conexão são predefinidos, permitindo que dispositivos com poucos recursos otimizem o processamento dessas mensagens. Usando os filtros fornecidos em muitos controladores CAN, essas mensagens são facilmente identificadas e processadas enquanto todas as outras mensagens são rapidamente descartadas.
Para todos os tipos de conexões, exceto alguns, dois IDs de conexão são alocados. Primeiro, o ID de conexão produzido é alocado para a mensagem transmitida pelo dispositivo. O segundo é o ID da conexão consumida, o ID da conexão usada na mensagem consumida pelo dispositivo.
Os IDs de conexão são parte integrante das mensagens DeviceNet e fazem parte do esquema de priorização de mensagens. O identificador CAN em cada mensagem é composto em parte pelo endereço e pelo ID de conexão da mensagem. Quanto menor a combinação ID de conexão/endereço DeviceNet, maior a prioridade da mensagem na rede. Em algumas redes com certos tipos de esquemas de mensagens, o uso de endereços Mac ID mais baixos para dispositivos de prioridade mais alta é uma estratégia de otimização válida.
Cada dispositivo DeviceNet contém uma porta de acesso virtual especial chamada porta de mensagem não conectada. Essa porta virtual fornece uma maneira de um dispositivo enviar algumas mensagens predefinidas para outro dispositivo sem primeiro fazer uma conexão. As mensagens predefinidas são limitadas a criar e excluir outras conexões.
A porta de mensagem desconectada faz parte do conjunto de conexões do Grupo 2, o conjunto de conexões usadas pelos dispositivos escravos DeviceNet. Essa conexão foi projetada para dispositivos pouco sofisticados e com poucos recursos. Na verdade, esse conjunto de conexões é exatamente como um mestre aloca um escravo, enviando mensagens na porta de mensagens desconectadas do Grupo 2.
Dispositivos mais sofisticados também implementam a porta de mensagem desconectada. Para esses dispositivos, essa porta pode ser usada para criar conexões explícitas no grupo de conexão 1 ou grupo 3, grupos de conexão usados para transferir solicitações de mensagens explícitas.
As mensagens conectadas são mensagens produzidas e consumidas em uma conexão entre dois dispositivos. Elas podem ser mensagens do tipo resposta/solicitação explícitas ou mensagens de E/S contendo dados formatados. As mensagens conectadas também podem ser mensagens transferidas em alguma taxa de dados específica (mensagens cíclicas), em resposta a uma votação (mensagens de resposta a votação) ou em uma mensagem de mudança de estado. Os dados podem ser conjuntos de dados públicos e predefinidos ou dados proprietários específicos de um determinado fornecedor (mensagem de ponto proprietário). O fato de dois dispositivos estarem conectados não implica em nada sobre os dados sendo transferidos pela conexão.
Os dispositivos DeviceNet podem ser classificados como dispositivos mestre ou escravos. Dispositivos mestre reúnem dados de entrada de vários dispositivos escravos e distribuem dados de saída para os dispositivos escravos. Esses dispositivos também são chamados de scanners e dispositivos clientes, enquanto os escravos podem ser chamados de servidores. Os dispositivos mestre e escravo usam um conjunto de conexões e sequências de mensagens denominadas conjunto de conexões mestre/escravo. Este conjunto de conexões e mensagens fornece uma maneira conveniente para o dispositivo mestre alocar, configurar e transferir dados de E/S para um escravo não sofisticado.
O conjunto predefinido de conexões mestre/escravo é descrito em detalhes posteriormente.
As conexões de E/S são conexões que distribuem dados de saída para escravos e coletam dados de entrada de escravos. A direção da transferência de dados é sempre discutida em termos da rede DeviceNet. Os dados que são movidos da rede para um dispositivo são dados de saída. Os dados que são movidos de um dispositivo para a rede DeviceNet são dados de entrada.
As conexões de E/S para o conjunto predefinido de conexões mestre/escravo são discutidas em detalhes posteriormente.
DeviceNet agora inclui um conjunto de conexão para dispositivos no estado de falha de comunicação. Um dispositivo DeviceNet está com falha de comunicação se, ao ligar, detectar outro dispositivo com o mesmo MAC ID (Endereço DeviceNet). Um dispositivo no estado de falha de comunicação é incapaz de transferir quaisquer dados ou executar qualquer operação de aplicativo até que a falha seja eliminada. A falha geralmente é eliminada manualmente re-endereçando a rede para que não existam dispositivos com endereços duplicados.
Se muitos dispositivos tiverem o mesmo endereço, o reendereçamento manual da rede é muito demorado e difícil. Os interruptores do dispositivo devem ser alterados individual e manualmente ou todos os dispositivos devem ser removidos da rede. Uma vez que todos os dispositivos são removidos, cada dispositivo endereçável por software pode ser adicionado à rede e re-endereçado um de cada vez por uma ferramenta de configuração.
Esse procedimento demorado e tedioso é o que o conjunto de mensagens de conexão offline foi projetado para abordar. Usando o conjunto de conexão off-line, uma ferramenta de configuração pode se conectar a um dispositivo com falha de comunicação, alterar seu endereço e redefini-lo. Como muitos dispositivos com falha de comunicação podem estar compartilhando um endereço, a ferramenta de configuração usa o número de série do fornecedor para identificar um dispositivo específico na rede. Ao piscar os LEDs desse dispositivo em um padrão específico, a ferramenta pode identificar o dispositivo com falha para o usuário, que pode atribuir um endereço a esse dispositivo.
Infelizmente, apenas uma minoria de dispositivos oferece suporte ao conjunto de conexões offline.
Existem três tipos de mensagens que podem ser transmitidas entre nós DeviceNet. Mensagens de mesmo nível são mensagens não formatadas entre quaisquer dois nós. Mensagens explícitas são mensagens do tipo solicitação/resposta de um mestre DeviceNet para um escravo DeviceNet que obtêm ou definem um atributo em um objeto DeviceNet. Mensagens de E/S são mensagens que transferem dados de E/S predefinidos entre um mestre e um escravo.
As mensagens de mesmo nível no DeviceNet são um conceito amplamente incompreendido. Embora seja compatível, não há uma maneira prática de os dispositivos fabricados por diferentes fornecedores se comunicarem por meio de canais de comunicação de mesmo nível.
A troca de mensagens entre pares é simplesmente a troca de mensagens de um dispositivo DeviceNet para outro em qualquer conexão não-mestre-escravo. Se dois dispositivos suportarem mensagens não conectadas e um dos dispositivos puder emitir uma mensagem não conectada, um canal de comunicação ponto a ponto poderá ser criado entre os dois dispositivos.
Infelizmente, criar o canal de comunicação peer não implica que os dois dispositivos possam trocar dados significativos. Ao contrário do conjunto de comunicação apenas do Grupo 2 (mestre/escravo), não há uma regra ou organização bem definida para os dados trocados no canal de comunicação peer. Se um controlador de temperatura DeviceNet enviar uma temperatura por meio de uma conexão de mesmo nível para um monitor, não haverá como o monitor decifrar os dados. A temperatura pode ser em Celsius ou Fahrenheit. Pode ser de 16 bits ou 32 bits, escalado ou não escalado. Ao contrário de uma mensagem de E/S entre um mestre e um escravo, não há nenhuma estrutura implícita ou significado para os bytes enviados em um canal de comunicação de mesmo nível.
A maioria das implementações de comunicações ponto a ponto são usadas por dispositivos fabricados pelo mesmo fornecedor. O fornecedor define o formato e o conteúdo da mensagem para que cada dispositivo possa entender o conteúdo da mensagem. Os fornecedores de código de barras às vezes usam mensagens de pares para criar o que é chamado de “leitor universal do homem pobre”. Usando dois ou mais leitores situados ao redor de um alvo, o dispositivo de código de barras que lê o código de barras envia uma mensagem aos outros leitores indicando que possui o código de barras e que eles podem interromper a leitura.
Mensagens explícitas são mensagens de solicitação/resposta emitidas por um mestre para solicitar um serviço de um escravo por meio de uma conexão de mensagem explícita. O campo de código de serviço na mensagem explícita identifica o serviço solicitado com o restante da mensagem contendo quaisquer dados necessários para executar o serviço. O código de serviço GET_ATTRIBUTE é uma solicitação típica realizada em uma mensagem explícita. GET_ATTRIBUTE retorna o valor de um atributo para o dispositivo que emite a mensagem explícita. Mensagens explícitas são usadas por todos os dispositivos, incluindo ferramentas de configuração.
As mensagens de E/S transferem dados de E/S predefinidos entre um mestre DeviceNet e um dispositivo de E/S. Tradicionalmente, as entradas e saídas são referenciadas do ponto de vista da rede. Uma entrada é um ponto de dados produzido por um dispositivo de E/S e transferido para um scanner pela rede. Uma saída é um ponto de dados consumido por um dispositivo de E/S e transferido de um scanner para um dispositivo pela rede DeviceNet.
Os dados de E/S estão contidos em um dispositivo em um ou mais conjuntos de dispositivos. O objeto de montagem de entrada identifica os dados produzidos pelo dispositivo. O atributo três de cada objeto de montagem de entrada é o atributo que contém os dados a serem produzidos. O atributo três geralmente é uma coleção de dados de um ou mais objetos de aplicativo. A Figura 2 é um exemplo das montagens que você pode encontrar em um medidor de vazão simples.
Os objetos de montagem de saída identificam os dados consumidos pelo dispositivo. O atributo três de cada conjunto de saída identifica os dados específicos consumidos pelo dispositivo e geralmente é uma coleção de dados consumidos pelo dispositivo. Os dados consumidos são destinados a um ou mais objetos de aplicativo à medida que são recebidos.
Um dispositivo pode ter vários conjuntos de entrada e saída. Por exemplo, um dispositivo leitor de código de barras pode ter algum conjunto de entradas e saídas discretas. Os objetos de montagem para o dispositivo de código de barras podem incluir uma montagem com apenas dados de código de barras, uma montagem com apenas dados de I/O ou uma montagem que contém código de barras e dados de I/O. Isso fornece a máxima flexibilidade para o usuário final. Um usuário final que não usa a E/S no leitor de código de barras seleciona a primeira montagem. Um usuário que está usando o leitor de código de barras como um dispositivo de E/S discreto pode selecionar o segundo conjunto, enquanto o usuário que usa ambos pode selecionar o último conjunto.
A Figura 2 mostra um dispositivo com mais de um conjunto. Neste exemplo, o usuário pode escolher entre dois conjuntos para um medidor de vazão simples. A montagem nº 1 contém o fluxo e a temperatura, enquanto a montagem nº 2 contém os dados discretos de E/S.
Nesses casos, a conexão de E/S deve ser configurada para fazer referência a um conjunto diferente do padrão. No objeto de conexão, há no mínimo duas instâncias de conexão. Uma instância é para a conexão explícita e uma instância para a conexão de E/S. A conexão explícita descreve como as mensagens explícitas são transferidas. A conexão de E/S descreve como as mensagens são gerenciadas.
O atributo de caminho de conexão na conexão de E/S é o objeto de montagem que contém os dados a serem consumidos e produzidos. Existem várias maneiras diferentes de especificar o caminho de conexão, a maioria das quais requer mais explicações do que as fornecidas.
Para alterar o caminho da conexão, um usuário pode usar uma mensagem explícita para definir esse caminho diretamente ou, em muitos casos, o fornecedor do dispositivo fornece um atributo de seletor em um dos objetos do aplicativo para definir o caminho com mais facilidade. Se um dispositivo suporta apenas o gerenciamento direto do atributo do caminho de conexão, o usuário pode ter que consultar a documentação do dispositivo ou a especificação DeviceNet para especificar corretamente o caminho.
Todas as mensagens transferem um conjunto de E/S entre o mestre e o escravo (às vezes chamados de scanner e adaptador, respectivamente). As mensagens de E/S também implementam um esquema de fragmentação para dados de E/S maiores que os oito bytes de dados do Padrão CAN. Ao contrário do protocolo de fragmentação usado para mensagens explícitas, a fragmentação para mensagens de E/S não é reconhecida e não é sequenciada. As múltiplas mensagens são transmitidas sem nenhuma codificação especial ou número de sequência. O receptor simplesmente reconstrói os dados de E/S na ordem em que as mensagens são recebidas.
Os códigos de serviço de atributo GET e SET são as mensagens mais comuns transportadas por mensagens explícitas. Os dados do código de serviço associados a essas mensagens incluem o seguinte.
Uma solicitação de serviço Obter para obter o número de série do dispositivo é semelhante a esta:
ID de conexão | Código de Serviço | classe de objeto | Instância | ID do atributo |
—–CID—– | OE Hex | 1 | 1 | 6 |
Todas as mensagens explícitas são roteadas por meio do roteador de mensagens explícitas dentro do dispositivo. O roteador valida a classe de objeto. Se a mensagem explícita contiver uma classe inválida, o roteador rejeita a mensagem e retorna um código de erro ao solicitante. Se o roteador validar a classe de objeto, ele a transmitirá ao objeto de destino para processamento. A resposta do objeto de destino é retornada ao solicitante por meio do roteador. Observe que esta é apenas a visão de rede da operação do dispositivo e pode ou não ser como o dispositivo é implementado.
Uma aplicação interessante de mensagens explícitas é que elas podem ser usadas para ler dados de E/S. Uma mensagem explícita pode ser formada para obter os dados de atributo que contêm os dados de E/S. Os dados de E/S podem ser recuperados do objeto de origem que gera os dados ou do objeto de montagem que contém os dados prontos para serem transferidos para o mestre.
Uma conexão de mensagem explícita pode suportar um mecanismo de fragmentação para mensagens maiores que oito bytes. As mensagens explícitas fragmentadas contêm apenas seis bytes de dados. Dois bytes de cabeçalho para gerenciar a fragmentação são adicionados a cada mensagem. Um byte de cabeçalho indica a posição da mensagem fragmentada (primeiro, último, meio) na sequência da mensagem, enquanto o segundo byte contém um número de sequência.
Ao contrário da fragmentação de mensagens de E/S, as mensagens explícitas devem ser confirmadas. O receptor (dispositivo mestre ou escravo) deve transmitir uma mensagem indicando a aceitação da mensagem fragmentada antes que a próxima mensagem na sequência seja transmitida.
Dispositivos DeviceNet não são necessários para suportar fragmentação de mensagem explícita. De fato, a maioria dos dispositivos não faz fragmentação de mensagem tão explícita e a entrega de confirmação necessária requer uma quantidade enorme de recursos do dispositivo. Um fato pouco conhecido é que a maioria dos nomes de dispositivos DeviceNet (strings ASCII) tem oito ou menos bytes de comprimento para evitar suporte para fragmentação de mensagem explícita, pois nomes de produtos mais longos seriam transferidos para o mestre como uma sequência de mensagem fragmentada.
Existem apenas dois requisitos para colocar com sucesso um novo dispositivo em uma rede: a taxa de transmissão do dispositivo deve corresponder à taxa de transmissão de todos os outros dispositivos na rede; e o endereço do dispositivo não deve entrar em conflito com o endereço de outro dispositivo.
A taxa de transmissão limita o comprimento da rede. Existem três taxas de transmissão para redes DeviceNet: 125K, 250K e 500K. Muito simplesmente, as redes CAN exigem que cada dispositivo ouça seus próprios bits à medida que são transmitidos e defina o bit de confirmação em toda e qualquer mensagem transmitida na rede. A implementação deste último requisito determina o comprimento máximo da rede para cada taxa de transmissão.
Data Taxa | Comprimento do Tronco |
125K | 500 metros (1640 pés) |
250 mil | 250 metros (820 pés) |
500K | 100 metros (328 pés) |
Identificar a taxa de transmissão atual de um dispositivo pode ser um desafio. A menos que um dispositivo seja configurado usando dipswitches e a taxa de transmissão possa ser discernida a partir das chaves, não há como saber qual pode ser a taxa de transmissão. Uma das razões pelas quais um dispositivo pode não se conectar é uma taxa de transmissão diferente da taxa de transmissão da rede. Se você não conhece a taxa de transmissão de um dispositivo, o único método seguro para encontrá-lo é tentar conectá-lo a cada taxa de transmissão.
Um endereço inteiro é atribuído a cada dispositivo DeviceNet em uma rede. Este número inteiro é o endereço do dispositivo, o mesmo que um MAC ID. Há um máximo de 64 nós em uma rede DeviceNet. Esses nós ocupam os endereços de 0 a 63 e podem ser configurados usando chaves ou usando uma ferramenta de configuração DeviceNet. Dois dispositivos não podem ocupar o mesmo endereço.
Quando um dispositivo é ligado, ele envia uma mensagem solicitando acesso à rede. Parte dessa mensagem é o número de série exclusivo do dispositivo. Se mais de um dispositivo do mesmo fornecedor reivindicar o mesmo ID de fornecedor ao ligar e tentar acessar a rede no mesmo instante, o dispositivo com o menor número de série DeviceNet foi bem-sucedido. Todos os outros dispositivos falham. Essa sequência é explicada com mais detalhes na próxima seção.
A Especificação exige que os dispositivos em transição do estado off-line para o on-line sigam uma sequência de mensagens muito específica com um tempo específico. Essa sequência depende da mensagem de solicitação de MAC ID duplicada. Essa mensagem consiste no ID do fornecedor e no número de série do dispositivo. O ID do fornecedor é o ID inteiro atribuído ao fornecedor pelo ODVAenquanto o número de série é um inteiro longo exclusivo atribuído pelo fornecedor. Como o fornecedor é obrigado a atribuir um número de série exclusivo a cada dispositivo, dois dispositivos DeviceNet em qualquer lugar do planeta não podem ter a mesma combinação de fornecedor/número de sequência. Isso garante que duas mensagens de solicitação de MAC ID duplicadas não possam ter o mesmo conteúdo. Se dois dispositivos do mesmo fornecedor tentarem acessar a rede no mesmo instante durante a sequência de MAC ID duplicada, o dispositivo com a combinação de fornecedor/número de sequência mais baixa obterá acesso primeiro.
A sequência de MAC ID duplicado consiste em enviar duas mensagens de solicitação de MAC ID duplicadas consecutivas com um atraso de um segundo entre as mensagens. Durante o atraso, qualquer dispositivo online com o mesmo MAC ID deve emitir uma mensagem de resposta duplicada do MAC ID. Se o dispositivo ingressando na rede receber uma mensagem de resposta duplicada do MAC ID, ele fará a transição para o estado de falha de comunicação. Se nenhuma resposta for recebida após o segundo atraso de um segundo, o dispositivo pode fazer a transição oficialmente para o estado online.
Existem outros requisitos mais sutis para dispositivos. Por exemplo, se um dispositivo no estado online receber uma mensagem de resposta MAC ID duplicada, ele deve fazer a transição imediatamente para o estado offline. Receber uma resposta de MAC ID duplicada indica que há outro dispositivo na rede no estado online com o mesmo MAC ID.
Uma mensagem que está diretamente oposta à mensagem de solicitação de MAC ID duplicada é a mensagem de desligamento do dispositivo. Esta mensagem transmite o fato de que um dispositivo está passando do estado online para o estado offline ou inexistente. Esta é uma mensagem opcional que pode ser usada por um dispositivo para sinalizar uma condição de falha, comando remoto ou algum outro motivo para se desligar da rede.
Outra mensagem usada com pouca frequência é a mensagem de pulsação do dispositivo. Dispositivos que suportam operações COS usam a mensagem de pulsação do dispositivo para comunicar ao mestre que estão operacionais. Se nenhuma mensagem COS contendo novos dados for produzida por um período definido, o dispositivo produzirá a mensagem DHB.
Os dispositivos DeviceNet podem assumir qualquer um dos seguintes estados.
INEXISTENTE | O dispositivo foi desligado devido a um erro interno ou algum comando remoto. |
NÃO ALOCADO | O dispositivo ingressou na rede com sucesso, mas atualmente não pertence a um dispositivo mestre. O LED indicador de status da rede para um dispositivo não alocado pisca em verde. |
TEMPO ESGOTADO | As mensagens falharam ao chegar em uma ou mais conexões com o dispositivo mestre. Normalmente, esse é um erro recuperável. O LED indicador de status da rede em um dispositivo normalmente piscará em verde neste estado. |
COM FALHA | O dispositivo detectou um erro interno ou recebeu uma mensagem de resposta de MAC ID duplicada. Este não é um erro recuperável. O LED indicador de status da rede em um dispositivo normalmente ficará vermelho sólido nesse estado. |
BUSOFF | No estado BusOff, o dispositivo detectou erros de rede significativos e retirou-se da operação de rede. Isso geralmente é uma falha de hardware no circuito do dispositivo. O status da rede do LED normalmente será vermelho sólido nesse estado. |
Existem três tipos básicos de dispositivos e um dispositivo pode suportar qualquer um ou todos os tipos de dispositivos simultaneamente.
Dispositivos mestres, são dispositivos “próprios” dispositivos escravos. Um mestre pode possuir muitos ou todos os dispositivos escravos, mas um escravo só pode pertencer a um mestre por vez.
Um dispositivo mestre deve primeiro alocar um dispositivo escravo para obter a propriedade. O processo de alocação (descrito posteriormente) é um conjunto de mensagens de handshaking em que o dispositivo mestre solicita o controle do escravo e então configura o escravo para transferir um determinado conjunto de dados a uma taxa de dados especificada pelo mestre. O conjunto típico de mensagens que solicitam propriedade é conhecido como conjunto de conexões mestre/escravo predefinido.
O processo de alocação é simplesmente uma mensagem de solicitação explícita aberta emitida na porta de mensagem não conectada solicitando a propriedade do dispositivo escravo. Se o escravo aceitar a propriedade, ele responde afirmativamente e cria as conexões solicitadas pelo dispositivo mestre na mensagem de solicitação. Normalmente, o mestre solicita uma conexão explícita e uma de E/S.
Um escravo pode negar a solicitação de alocação do dispositivo mestre se já estiver alocado para outro mestre ou se o dispositivo mestre solicitar um tipo de conexão não suportado. Por exemplo, se o mestre solicitar uma conexão cíclica e o escravo suportar apenas conexões com polling, a solicitação de alocação será negada.
Depois que o escravo aceita a solicitação de conexão, o mestre usa a conexão de mensagem explícita para configurar a conexão de E/S. A configuração inclui definir os dois atributos mais importantes da conexão de E/S: a taxa de pacotes esperada e os caminhos de conexão produzidos e consumidos. A taxa de pacotes esperada é a taxa na qual o mestre espera varrer o dispositivo escravo. Se o mestre falhar na varredura nessa taxa, o dispositivo escravo entra em um estado de tempo limite e deve ser explicitamente reativado pelo dispositivo mestre. Os caminhos de conexão produzidos e consumidos são os caminhos para os objetos do aplicativo onde os dados são gerados ou armazenados respectivamente. Geralmente, esses caminhos referem-se a um dos conjuntos suportados pelo dispositivo escravo.
A varredura pode começar assim que o dispositivo escravo estiver totalmente configurado. Durante a varredura, o dispositivo mestre produz e consome dados escravos. O mestre produz dados para o conjunto de saída do escravo que são identificados pelo caminho de conexão consumido no escravo. O mestre consome dados gerados a partir do conjunto de entrada do escravo que são identificados pelo caminho de conexão produzido no conjunto de saída do escravo.
Os dispositivos escravos recebem e transmitem dados específicos do aplicativo de e para um dispositivo mestre. Os dispositivos escravos, por definição, implementam o conjunto de conexões mestre-escravo predefinido descrito na seção anterior.
Os dispositivos escravos devem suportar pelo menos um ou mais dos seguintes tipos de transporte de mensagens de E/S.
Um dispositivo mestre transmite implicitamente seu modo de operação atual a cada varredura de E/S. Se o dispositivo mestre (normalmente um controlador programável) estiver em um modo não operacional, o mestre produzirá uma mensagem de E/S com zero bytes de dados, conhecida como mensagem de modo IDLE. O dispositivo escravo pode então implementar qualquer funcionalidade exigida do dispositivo quando seu mestre não estiver no modo de execução. As mensagens recebidas com pelo menos um único byte de dados de E/S indicam ao dispositivo escravo que o mestre agora está no modo de operação. O DeviceNet não requer um dispositivo escravo para implementar qualquer comportamento específico quando um dispositivo mestre está em modo IDLE.
Dispositivos mestres, como ferramentas de configuração, geralmente alocam o conjunto de conexões predefinidas de um dispositivo escravo solicitando apenas a conexão de solicitação de mensagem explícita. Esses dispositivos normalmente alocam a conexão EM, obtêm ou definem um atributo específico e, em seguida, liberam o conjunto de conexões. Se esses dispositivos estiverem atualmente alocados por outro dispositivo mestre, o mestre que possui o escravo imita as mensagens de um dispositivo escravo não conectado, mas aceita apenas a conexão de mensagem explícita. Mensagens para o escravo de propriedade são recebidas por este mestre e enviadas para o escravo. A resposta do escravo é recebida e retransmitida ao solicitante original, como se o dispositivo mestre original estivesse se comunicando diretamente com o escravo. Desta forma, um dispositivo, como uma ferramenta de configuração, pode obter ou definir um atributo de um escravo, mesmo que um mestre já o possua.
Um mestre faz uma conexão com um dispositivo escravo usando a seguinte sequência.
Dispositivos DeviceNet são configurados usando hardware externo ou ferramentas de configuração de software. O hardware externo pode incluir chaves rotativas, botões giratórios, chaves DIP e outros dispositivos de entrada fixos. As ferramentas de configuração de software acessam a configuração interna do dispositivo pela rede DeviceNet ou outra porta de comunicação. Ferramentas genéricas que podem configurar qualquer dispositivo utilizam a rede DeviceNet. As ferramentas específicas do fornecedor que configuram apenas os dispositivos desse fornecedor podem usar a rede DeviceNet ou alguma outra porta de comunicação em um dispositivo.
Alguns usuários finais preferem a configuração usando switches. Sua filosofia sustenta que um dispositivo pode ser facilmente substituído se tudo o que for necessário for definir interruptores e conectar os dispositivos de substituição. Outros usuários finais preferem configuração de software. Esses usuários veem os switches como uma fonte potencial de falha do dispositivo.
DeviceNet requer resistores de terminação em cada extremidade de uma linha tronco. Um resistor de 1/4 watt e 120 ohm deve ser colocado em cada extremidade do tronco entre os sinais CAN-H e CAN-L. A Especificação recomenda expressamente que esses resistores de terminação não sejam incluídos em um dispositivo.
O isolamento de dispositivos é recomendado para dispositivos com conexões a fontes de alimentação externas.
Os fornecedores DeviceNet são obrigados a fornecer algum tipo de documentação especificando como seu dispositivo é configurado. O documento pode ser um conjunto de instruções impressas ou algum arquivo eletrônico. No mínimo, o fornecedor deve fornecer instruções para quaisquer switches externos e uma lista de valores de classe, instância e atributo que controlam a configuração do dispositivo. Alguns fornecedores criam um conjunto de configuração contendo os dados do parâmetro. Essa montagem fornece um único atributo, um único ponto de referência onde todos os parâmetros do dispositivo podem ser lidos e gravados.
Uma listagem eletrônica dos atributos que configuram um dispositivo geralmente é fornecida por um fornecedor. Às vezes, esses arquivos EDS fornecem pouca ou nenhuma informação sobre o dispositivo ou podem ser muito longos e complexos. Os arquivos EDS mais extensos permitem que as ferramentas de configuração configurem com precisão o dispositivo usando identificadores de texto para valores de bit e outras sequências de texto muito informativas.
A maioria dos dispositivos são dispositivos escravos de E/S. Um dispositivo de E/S DeviceNet transfere pontos de E/S discretos ou analógicos para um mestre. Os dispositivos de E/S vêm em todas as formas e tamanhos, de um ou dois pontos a muitos pontos. Muitos dispositivos de E/S não são isolados e são alimentados pela rede, enquanto outros usam saídas isoladas.
Dispositivos mestres são geralmente controladores programáveis ou computadores pessoais. Eles alocam escravos e transferem dados entre o mestre e seus escravos.
Os gateways DeviceNet convertem dados de outro protocolo para DeviceNet. Os gateways Modbus para DeviceNet, por exemplo, convertem dispositivos Modbus em dispositivos DeviceNet. Os gateways ASCII para DeviceNet recebem dados ASCII e os convertem em Modbus. Existem inúmeros conversores de protocolo para DeviceNet.
A questão difícil para um gateway é mapear dados no outro protocolo para a estrutura de objeto do DeviceNet. Por exemplo, o protocolo Modbus representa seus dados como uma série de números inteiros de 16 bits, enquanto o CIP representa os dados como atributos que fazem parte de objetos. Um gateway DeviceNet deve permitir que algum método converta os dados em seu Modbus nativo, ASCII ou outro formato para a estrutura baseada em objeto do DeviceNet.
Uma pilha de software mestre é o software que implementa o protocolo de comunicação DeviceNet e CIP. Um mestre deve ser capaz de enviar mensagens pela rede CAN física. Para fazer isso, ele deve conhecer a interface de registro particular de um controlador CAN selecionado. Um desenvolvedor de dispositivo que deseja implementar um mestre deve criar a interface entre o mestre e o controlador CAN selecionado pelo projetista de hardware. Às vezes, como no caso do mestre, as pilhas fornecidas pela Real Time Automation, Inc., um arquivo de interface para um controlador CAN específico, são entregues como parte da pilha mestre.
Para implementar um mestre, o aplicativo controla os dispositivos para alocar o número de bytes de dados para produzir e consumir e com que frequência os dispositivos escravos são pesquisados. Para obter mais informações sobre como implementar um aplicativo mestre DeviceNet, entre em contato com a Real Time Automation, Inc.
Uma pilha de software escravo DeviceNet é o software que implementa o protocolo de comunicação DeviceNet e CIP. Um escravo deve ser capaz de receber uma mensagem de alocação de um mestre, consumir saídas geradas pelo mestre e produzir entradas. Para fazer isso, ele deve conhecer a interface de registro particular de um controlador CAN selecionado, assim como a pilha mestre DeviceNet. Um desenvolvedor de dispositivo que deseja implementar um escravo deve criar a interface entre o escravo e o controlador CAN selecionado pelo projetista de hardware. Às vezes, como no caso das pilhas secundárias fornecidas pela Real Time Automation, Inc., um arquivo de interface para um controlador CAN específico é fornecido como parte da pilha secundária.
Para implementar um escravo DeviceNet, o aplicativo controla o endereço DeviceNet, o número de bytes de dados a serem produzidos e consumidos e a estrutura do objeto do dispositivo. A implementação da estrutura de objeto do dispositivo no escravo é uma das partes mais importantes da implementação de um dispositivo escravo. Essa estrutura é aquela vista pelos usuários do dispositivo e deve ser implementada corretamente para atender suas necessidades.
INOVEX DIGITAL. Todos os direitos reservados.