Você está na página 1de 10

TROCA DE DADOS VIA COMUNICAÇÃO SERIAL RS-232 COM

PROTOCOLO DF1 FULL-DUPLEX


A arquitetura de comunicação é composta por três componentes básicos:
-Varredura da Lógica Ladder
-Buffers de Comunicação
-Fila de Comunicação
Esses três componentes determinam quando a mensagem será transmitida pelo controlador. Para que uma
mensagem seja transmitida, deve-se realizar uma varredura na mesma em uma linha verdadeira da lógica.
Depois da varredura, a mensagem e os dados definidos dentro da mensagem (se for uma mensagem escrita)
são colocados em um buffer de comunicação. O controlador continua a realizar a varredura no restante do
programa do usuário. A mensagem é processada e enviada fora do controlador através da porta de comunicação
após a lógica ladder se completar, durante a parte de Comunicações de Serviço do ciclo de operação.
Se uma instrução para uma segunda mensagem for processada antes que a primeira mensagem seja
completada, a segunda mensagem e seus dados são colocados em um dos outros três buffers de comunicação.
Esse processo se repete sempre que uma instrução de mensagem for processada, até que todos os quatro
buffers estejam sendo utilizados.
Quando um buffer estiver disponível, a mensagem e seus dados associados são colocados nesse buffer
imediatamente. Se os quatro buffers para o canal estiverem ocupados quando a próxima mensagem (quinta) for
processada, o pedido de mensagem, e não os dados, é colocado na fila de comunicações do canal. A fila é uma
área de armazenamento de mensagens que rastreia quais mensagens ainda não foram colocadas em um buffer.
A fila funciona como uma área de armazenamento do tipo primeiro a entrar, primeiro a sair (FIFO). O primeiro
pedido de mensagem armazenado na fila é a mensagem que está alocada no buffer assim que um buffer se
torna disponível. A fila não consegue acomodar todas as instruções MSG em um programa de lógica ladder.
Quando o pedido de uma mensagem para o buffer é completado, o buffer é liberado para o sistema novamente.
Se a mensagem estiver na fila, ela é colocada em um buffer. Nesse momento, os dados associados à mensagem
são lidos de dentro do controlador.
Se a instrução de mensagem estivesse na fila, os dados que foram realmente enviados do controlador podem ser
diferentes daqueles que estavam presentes quando a instrução de mensagem foi processada pela primeira vez.
Os mecanismos do buffer e da fila são completamente automáticos. Os buffers são alocados e liberados, de
acordo com a necessidade e a fila de mensagem passa a existir se os buffers estiverem cheios.
O controlador inicia a leitura e a escrita de mensagens através dos canais de comunicação disponíveis quando
este estiver configurado para os seguintes protocolos:
-DH-485
-DF1 Full-Duplex
-DF1 Half-Duplex
-DF1 Radio Modem
-ModBus RTU Master
-ModBus RTU Slaver

INSTRUÇÃO: MSG – Mensagem

Tipo de Instrução: saída


A instrução de mensagem MSG é processada quando ocorre a transição de falso para verdadeiro da lógica que
antecede a instrução.
A rapidez com que uma mensagem é enviada para o dispositivo destino depende de vários aspectos, incluindo o
protocolo de comunicação selecionado, a taxa de transmissão da porta de comunicação, o número de novas
tentativas necessárias (se houver) e a prontidão do dispositivo de destino para receber a mensagem.

Arquivo de Mensagens
A instrução MSG incorporada no controlador usa um arquivo de dados MG para processar a instrução de
mensagem. O arquivo de dados MG, mostrado à esquerda, é acessado usando o prefixo MG. Cada instrução de
mensagem utiliza um elemento dentro do arquivo de dados MG. Por exemplo, MG11:0 é o primeiro elemento no
arquivo de dados da mensagem 11.
Sub-elementos do Arquivo de Mensagem
Cada instrução MSG deve usar um único Elemento em um Arquivo MSG. O elemento MSG para cada instrução
MSG possui todas as informações dos parâmetros e de status para aquela instrução MSG específica.
Cada Elemento do Arquivo MSG consiste dos Sub-elementos de 0 a 24, conforme apresentado na tabela a
seguir.

(1) O acesso do usuário refere-se ao acesso pelo programa do usuário (palavra ou bit do Arquivo MSG usado como um operando para uma
instrução em um programa ladder) ou acesso via Comunicação enquanto estiver em um modo diferente da descarga (via Software de
Programação ou Módulo de Memória).

Mensagens Locais
O controlador é capaz de se comunicar usando mensagens locais ou remotas. Com uma mensagem local, todos
os dispositivos podem ser acessados sem que seja necessário utilizar um outro dispositivo como ponte. Tipos
diferentes de interfaces elétricas podem ser necessárias para a conexão na rede, mesmo assim, a rede é
classificada como local. Mensagens remotas utilizam uma rede remota, onde os dispositivos podem ser
acessados somente passando por um dispositivo para outra rede.
Rede Local

Configuração de uma Mensagem Local


A linha abaixo mostra a instrução MSG antecedida de lógica condicional. Crie um programa novo no RSLogix,
insira a linha de comando abaixo e acesse a tela de configuração de mensagem clicando duas vezes em Setup
Screen.

A Tela de Configuração de Mensagens do RSLogix é mostrada abaixo. Esta tela é usada para ajustar os
elementos “This Controller” (Este Controlador), “Target Device” (Dispositivo Destino) e “Control Bits” (Bits de
Controle). As descrições de cada um dos elementos é apresentada a seguir.
Parâmetros “This Controller” ou Esse Controlador
Communication Command (Comando de Comunicação)
O controlador suporta seis tipos diferentes de comandos de comunicação. Se o dispositivo alvo suportar qualquer
destes tipos de comando, o controlador deve ser capaz de trocar dados com o dispositivo. Os comandos com
suporte incluem:

(1) O Arquivo de Interface Comum (CIF) nos controladores MicroLogix 1200, 1500 e SLC 500 é o
Arquivo 9. O CIF no controlador MicroLogix 1000 é o Arquivo 7 Inteiro.

Selecione o comando de comunicação 500CPU Read de forma que toda vez que a instrução for executada será
realizada a leitura de dados da CPU Destino, ou seja, os valores da CPU destino serão atualizados na CPU de
origem.

Data Table Address (Endereço da Tabela de Dados)


Esta variável define o endereço inicial no controlador local. Os tipos de arquivos válidos para o Endereço da
Tabela de Dados são para mensagem de leitura os seguintes tipos: binário (B), Inteiro (N), Inteiro Longo (l),
Temporizado (T), Contador (C) e Controle (R).
Para mensagem de escrita os tipo são: saída (O), entrada (I), binário (B), Inteiro (N), Inteiro Longo (l),
Temporizado (T), Contador (C), Controle (R) e string (ST).
Já configuramos que a mensagem será de leitura e agora vamos configurar que os dados lidos serão
armazenados a partir do endereço N20:0 na CPU de origem.

Size in Elements (Tamanho em Elementos)


Esta variável define a quantidade de dados (em elementos) que será trocada com o dispositivo de destino.
O volume máximo de dados que pode ser transferido através de uma instrução MSG é de 103 palavras (206
bytes). Você não pode utilizar tipos diferentes de arquivos ao enviar mensagens. Por exemplo, você não pode ler
um temporizado em um arquivo de inteiro e não pode escrever dados de contador em um arquivo de
temporizado. As únicas exceções para essa regra são:
-Que os dados inteiros longos podem ser lidos ou escritos para o bit ou arquivos de inteiros
-Os arquivos RTC podem ser escritos para arquivos de inteiros.
Nessa prática o número de dados trocados e consequentemente o valor do campo tamanho em elementos é de
5.
A tabela a seguir não mostra a compatibilidade entre arquivos, mas, somente o número máximo de elementos
que pode ser trocado em cada caso.
Channel (Canal)
Esta variável define o canal de comunicação que é usado para transmitir o pedido de mensagem. Para os
controladores com somente um canal de comunicação (controlador 1764-LSP), esse valor é ajustado pela fábrica
para o canal 0 e não pode ser mudado. Para controladores com 2 canais (controlador 1764-LRP), o canal pode
ser 0 ou 1.

Parâmetros do “Dispositivo Destino”


Timeout de Mensagem
Este valor define quanto tempo, em segundos, a instrução da mensagem precisa para completar a sua operação,
após o início. A temporização começa quando a transição de linha de falsa para verdadeira ocorre, habilitando a
mensagem. Se o período de timeout terminar antes que a operação esteja completada, a mensagem apresentará
erro. O valor inicial é 5 segundos. O valor máximo de timeout é 255 segundos.
Se o timeout da mensagem estiver configurado em zero, a instrução da mensagem não será interrompida. Ajuste
o bit Time Out (TO=1) para enviar uma instrução de mensagem do seu buffer se o dispositivo de destino não
responder ao pedido de comunicação.

Data Table Address (Endereço da Tabela de Dados)


Esta variável define o endereço inicial no controlador de destino da mensagem. O endereço da tabela de dados é
usado por mensagens do tipo 500CPU e CLP5. Um endereço válido é qualquer arquivo de dados válido,
configurado no dispositivo alvo, cujo tipo de arquivo é reconhecido pelo controlador. As combinações válidas são
mostradas abaixo:

(1) 500CPU escrita RTC-para -Inteiro ou somente de RTC-para-RTC. Aplica-se somente para os controladores
MicroLogix 1200 Série B e superior e 1500 Série B e superior.

O offset da tabela de dados é usado para as mensagens tipo 485CIF. Um offset válido é qualquer valor na faixa
de 0 a 255 e indica a palavra ou offset de byte no Arquivo de Interface Comum (CIF) do alvo. O tipo de
dispositivo determina se é uma palavra ou um offset de byte. Os controladores MicroLogix e SLC usam offset de
palavra; o CLP-5 usa offset de byte.
Nessa prática será feita a leitura a partir do endereço N7:0 do controlador de destino. Dessa forma o conteúdo
dos endereços de N7:0 à N7:4 do controlador de destino serão transferidos para os endereços de N20:0 a N20:4
do controlador de origem.
Local Node Addr (Endereço de Nó Local)
Este é o número do nó do dispositivo destino. O número de nó do dispositivo é configurado no campo Source ID
na janela Channel 0 na opção Channel Configuration dentro da pasta Controller no gerenciador de projetos do
controlador de destino.
Verifique qual é o endereço de nó do controlador de destino e configure corretamente esse campo. Observe que
os endereços do controlador de origem e destino têm de ser obrigatoriamente diferentes ou não haverá sucesso
na comunicação. Assim, caso seja necessário faça os ajuste necessários para que os endereços dos
controladores envolvidos na comunicação sejam diferentes.

Local/Remota
Esta variável define o tipo de comunicação que está sendo usado. Se os dispositivos estiverem numa mesma
rede a comunicação é local e se tiverem em redes distintas interconectadas via gateway a comunicação será
remota sendo necessário informar o endereço do dispositivo de interconexão das redes.
Use local para comunicação realizada nessa prática já que os dois controladores estão ligados diretamente em
uma comunicação ponto a ponto.

“Control Bits” (Bits de Controle)

O Bit Timed Out (TO) pode ser energizado em sua aplicação para remover uma instrução de mensagem ativa do
controle do controlador. É possível criar a sua própria rotina de timeout, monitorando os bits EW e ST para iniciar
um temporizado. Quando o temporizado expira, você pode energizar o bit TO, que remove a mensagem do
sistema. O controlador reseta o bit TO na próxima vez que a linha MSG associada passar de falsa para
verdadeira.
Uma maneira mais rápida é usar a variável de timeout de mensagem, descrita na página 21-12, pois ela
simplifica o programa do usuário. Este controle de timeout incorporado tem efeito sempre que o timeout da
mensagem for diferente de zero. O valor de preset é de 5 segundos, de forma que se o mesmo não for alterado,
o controle interno de timeout é habilitado automaticamente.
Quando o timeout interno for utilizado e a comunicação for interrompida, a instrução MSG será interrompida e
apresentará erro depois que o preset de tempo selecionado terminar. Isso permite que o programa de controle
faça uma nova tentativa de envio da mesma mensagem ou tome outra medida, se necessário.
Para desabilitar o controle de timeout interno, insira zero no parâmetro de timeout da instrução MSG. Se a
comunicação for interrompida, o controlador espera indefinidamente por uma réplica. Se um reconhecimento
(ACK) for recebido, indicado pela energização do bit ST, mas a réplica não for recebida, a instrução MSG
aparece para ser bloqueada, apesar de esperar uma réplica do dispositivo alvo.

O Bit Habilitado (EN) é energizado quando a condição lógica da linha torna-se verdadeira e a MSG é habilitada.
A instrução MSG está habilitada quando o pacote de comando é desenvolvido e colocado em um dos buffers
MSG ou o pedido é colocado na fila MSG. A instrução permanece habilitada até que a transmissão da
mensagem é concluída e a linha passa para falsa. É possível desenergizar esse bit se o bit ER ou DN estiver
energizado para disparar a instrução MSG novamente com a linha no estado verdadeiro na próxima varredura.
Não energize esse bit a partir do programa de controle.

O Bit Habilitado e em Espera (EW) é energizado depois que o bit habilitado for energizado e a mensagem estiver
no buffer (não na fila) e esperando para ser enviada. O bit EW é removido após a mensagem ser enviada e o
controlador receber o reconhecimento (ACK) do dispositivo destino. Isso ocorre antes do dispositivo destino ter
processado a mensagem e enviado uma resposta.
O Bit de Erro (ER) é energizado quando a transmissão da mensagem falhar. Um código de erro é escrito no
arquivo MSG. O bit ER e o código de erro são removidos da próxima vez em que a linha associada for de falsa
para verdadeira.

O Bit Executado (DN) é energizado quando a mensagem for transmitida com sucesso. O bit DN é removido na
próxima vez que a linha associada passar de falsa para verdadeira.

O Bit de Partida (ST) é energizado quando o controlador recebe o reconhecimento (ACK) do dispositivo alvo. O
bit ST é removido quando o bit DN, ER ou TO for energizado.

Troca de Dados
Teste o funcionamento da instrução de envio de mensagem com o colega ao seu lado na mesma bancada. Para
isso faça o ajuste dos endereços de nó como explicado anteriormente e interligue os controlados via porta serial
com o cabo de comunicação 1761-CBL-HM02.
A instrução de Mensagem para a troca de dados entre os controladores só é disparada a cada transição de falso
para verdadeiro da linha de programa. Assim, só haverá uma nova atualização dos dados após uma nova
transição de falso para verdadeiro.
Caso a linha de programa fique permanentemente em estado lógico verdadeiro não ocorrerá a atualização dos
valores, ficando os mesmos congelados no mesmo estado de quando ocorreu a última transição de falso para
verdadeiro.
Toda vez que desejar atualizar os dados entre os endereços envolvidos na comunicação atribua ao endereço
I1:0/10 o valor 0 e em seguida o valor 1, provocando uma execução da instrução de mensagem.
Peça ao seu colega que insira dados nos endereços de N7:0 a N7:4 do controlador dele e observe a leitura
desses valores em seu controlador nos endereços de N20:0 a N20:4, toda vez que a instrução é executada.

Mensagens Remotas
O controlador também é capaz de enviar mensagens remotas ou off-link. O envio de mensagens remotas é a
capacidade de trocar informações com um dispositivo que não está conectado a uma rede local. Este tipo de
conexão requer um dispositivo na rede local agindo como uma ponte ou gateway para outra rede.

Redes Remotas
A ilustração abaixo mostra uma rede DeviceNet usando Interfaces DeviceNet (1761-NET-DNI) conectadas a uma
rede Ethernet usando um SLC 5/05. Nesta configuração, os controladores na rede DeviceNet podem replicar os
pedidos dos dispositivos na rede Ethernet, mas não podem iniciar a comunicação para os dispositivos na
Ethernet.

Diagrama de Tempo para a Instrução MSG


A seguir descreve-se o diagrama de tempo para uma instrução de mensagem.

1. Se houver espaço em qualquer dos quatro buffers de mensagem ativos quando a linha MSG se torna
verdadeira e a MSG é varrida, os bits EN e EW para essa mensagem são energizados. Se esta for uma instrução
de escrita MSG, os dados de fonte são transferidos para o buffer de mensagem neste momento.
(Não mostrado no diagrama.) Se os quatro buffers estiverem em uso, o pedido de mensagem é colocado na fila e
apenas o bit EN é energizado. A fila de mensagem trabalha em uma base FIFO, que permite que o controlador
lembre a ordem na qual as instruções de mensagem foram habilitadas. Quando um buffer se torna disponível, a
primeira mensagem na fila é colocada no buffer e o bit EW é energizado (1).
O programa de controle não tem acesso aos buffers de mensagem ou à fila de comunicação.
Uma vez que o bit EN está energizado (1), ele permanece assim até que o processo completo de mensagem
esteja concluído e o bit DN, ER ou TO seja energizado (1). O período de Timeout da MSG começa a
temporização quando o bit En é energizado (1). Se o período de timeout expirar antes que a instrução MSG
complete sua função, o bit ER é energizado (1) e um código de erro (37H) é colocado no arquivo MG para
informar sobre o erro de timeout.
2. No final da próxima varredura, instrução REF ou SVC, o controlador determina se deve examinar a fila de
comunicação para outra instrução. O controlador baseia sua decisão no estado dos bits de Seleção do Serviço
de Comunicação do Canal (CSS) e Seleção de Serviço de Mensagens (MSS), nos pedidos de comunicação da
rede de outros nós e se instruções de mensagens anteriores já estão em andamento. Se o controlador
determinar que ele não deve acessar a fila, a instrução de mensagem permanece como estava. Os bits EN e EW
permanecem energizados (1) ou somente o bit EN é energizado (1) até o próximo final de varredura, instrução
REF ou SVC.
Se o controlador determinar que existe uma instrução na fila, ele descarrega as entradas da fila de comunicação
nos buffers de mensagem até que todos os quatro buffers de mensagem estejam cheios. Se uma mensagem
inválida for descarregada da fila de comunicação, o bit ER é energizado (1) e um código é colocado no arquivo
MG para informá-lo de um erro. Quando uma instrução de mensagem válida é carregada para dentro de um
buffer de mensagem, os bits EN e EW para essa mensagem são energizados (1).
O controlador sai do final da varredura, REF ou parte do SVC da varredura. A função de comunicação de fundo
do controlador envia as mensagens para os nós alvos especificados na instrução de mensagem. Dependendo do
estado dos bits CSS e MSS, você pode ter até quatro instruções de mensagem ativas por canal para qualquer
tempo dado.
3. Se o nó alvo receber a mensagem com sucesso, o mesmo envia uma confirmação (ACK). O ACK faz com que
o controlador desenergize (0) o bit EW e energize (1) o bit ST. O nó alvo ainda não verificou o pacote para ver se
entendeu o seu pedido.
Uma vez que o bit ST estiver energizado, o controlador espera por uma réplica do nó alvo. O nó alvo não é
requisitado para responder dentro de um determinado período de execução.
Se o nó de destino apresentar falha ou se a alimentação for desligada ou ligada durante a transação da
mensagem, você nunca receberá uma resposta. Esta é a razão pela qual você deve usar um valor de Timeout de
Mensagem na sua instrução MSG.
4. A etapa 4 não é mostrada no diagrama de temporização. Se você não receber uma confirmação ACK, a etapa
3 não se concretizará. Ao contrário, ou nenhuma resposta ou um reconhecimento negativo (NAK) é recebido.
Quando isto acontece, o bit ST continua desernergizado (0).
Ausência de resposta pode ser causada por:
-O nó alvo não está presente
-A mensagem foi corrompida na transmissão
-A resposta foi corrompida na transmissão da resposta
Uma confirmação NAK pode ser causada por:
-O nó alvo está ocupado
-O nó alvo recebeu uma mensagem corrompida
-A mensagem é muito grande
Quando um NAK ocorre, o bit EW é desernergizado (0) e o bit ER é energizado (1), indicando que a instrução de
mensagem falhou.
5. Após o recebimento com sucesso do pacote, o nó alvo envia um pacote com resposta. O pacote com resposta
contém uma das seguintes respostas:
-Pedido de escrita bem-sucedido
-Pedido de leitura com dados bem-sucedido
-Falha com código de erro
No final da varredura, instrução REF ou SVC, seguindo a réplica do nó alvo, o controlador examina a mensagem
a partir do dispositivo alvo. Se a réplica for bem-sucedida, o bit DN é energizado (1) e o bit ST é desernergizado
(0). Se for um pedido de leitura bem-sucedido, os dados são escritos na tabela de dados. A função de instrução
de mensagens está completa.
Se a réplica for uma falha com um código de erro, o bit ER é energizado (1) e o bit ST é desernergizado (0). A
função de instrução de mensagens está completa.
6. Se o bit DN ou ER estiver energizado (1) e a linha MSG for falsa, o bit EN é zerado na próxima vez que a
instrução de mensagem for varrida.

Atividades práticas

Aos pares, em uma mesma bancada, utilizando comunicação RS-232 com protocolo DF1 Full-Duplex
implementar um programa ladder de forma que os canais de 0 a 4 das entradas digitais da base de um
MicroLogix 1500 comandem os canais de 8 a 12 das saídas digitais da base do outro MicroLogix 1500. O tempo
de atualização dos I/Os deve ser de 50ms para esse caso como para os demais a abaixo.
Acrescentar ao programa acima a lógica ladder necessária para que o canal 0 da saída analógica de um
MicroLogix 1500 seja inversamente proporcional ao canal 3 da entrada analógica do outro MicroLogix.

Você também pode gostar