4.2 Deskriptiv statistikk
4.2.2 De som ‡ytter vs. de som ikke ‡ytter
O PLC utilizado para a implementa¸c˜ao, figura 3.12 apresenta as seguintes carac- ter´ısticas:
❼ 24 I/O discretas das quais 14 s˜ao entradas (24V em corrente cont´ınua) e 10 s˜ao sa´ıdas de rel´e;
❼ Permite expandir no m´aximo 4 m´odulos; ❼ Tem liga¸c˜ao Modbus s´erie com Mini Din; ❼ Tem 2 portas de comunica¸c˜ao;
❼ Tem modo mestre - escravo com transmiss˜ao RTU-ASCII em RS-485 half-duplex; ❼ Fun¸c˜ao de um controlador PID embutido.
Quanto ao m´odulo anal´ogico, possui 4 entradas e 2 sa´ıdas, de 0 a 10V (corrente cont´ınua) ou 4 a 20 mA.
As var´aveis no PLC s˜ao definidas nos endere¸cos respeitando a seguinte sintaxe [50]:
%ObjectoF ormatoRack.m.c
onde: Objecto indica se se trata de uma vari´avel de entrada(I), sa´ıda de dados (Q), vari´avel interna (M) ou constante interna (K) e Formato indica se a vari´avel ´e do tipo boolena (X), word (W), double (D) ou floating (F). Rack cont´em o endere¸co do rack, m a posi¸c˜ao do m´odulo no rack e c o canal ao qual se pretende aceder.
Tal como foi descrito nas sec¸c˜oes anteriores, o protocolo Modbus tem a limita¸c˜ao de que quando se est´a a enviar uma requisi¸c˜ao para um escravo, o barramento tem de estar somente dispon´ıvel para essa comunica¸c˜ao, ou seja, o protocolo Modbus ´e estritamente
(a) TWD LCAA24DRF. (b) TWD AMM6HT.
Figura 3.12: PLC twido LCAA24DRF e m´odulo de entradas e sa´ıdas anal´ogicas AMM6HT.
half-duplex. Para evitar conflitos na comunica¸c˜ao, o PLC em referˆencia para a imple- menta¸c˜ao deste protocolo oferece dois servi¸cos de comunica¸c˜ao:
❼ Instru¸c˜ao EXCHx: para transmitir/receber mensagens.
❼ Bloco da fun¸c˜ao %MSGx: para controlar a troca de mensagem.
A instru¸c˜ao EXCHx e o bloco da fun¸c˜ao %MSGx podem ser acedidos anexando o n´umero da porta (1 ou 2). O PLC no modo mestre em RTU tem o suporte da instru¸c˜ao EXCHx. O tamanho m´aximo da trama transmitida e recebida ´e de 250 bytes.
A instru¸c˜ao EXCHx permite ao controlador mestre enviar e/ou receber informa¸c˜ao do escravo. Para uma requisi¸c˜ao Modbus ´e definido uma tabela de words, (%MWi:L), contendo informa¸c˜oes de controlo e os dados a serem transmitidos e/ou recebidos. A troca de mensagens ´e feita usando a instru¸c˜ao EXCHx:
Sintaxe : [ EXCHx %MWi:L] onde:
x = n´umero da porta de comunica¸c˜ao(1 ou 2); i = mem´oria inicial;
L = n´umero de words de controlo, transmiss˜ao e recep¸c˜ao.
O uso do bloco de fun¸c˜ao %MSGx ´e opcional, este bloco tem duas entradas e duas sa´ıdas associadas a ele e pode ser utilizado para gerir a troca de dados, conforme tabela 3.1. O bloco de fun¸c˜ao %MSGx tem dois objectivos: verifica¸c˜ao de erro na comunica¸c˜ao e coordena¸c˜ao de m´ultiplas mensagens.
Uma requisi¸c˜ao Modbus no PLC ´e definida pela tabela de words associada `a instru¸c˜ao EXCHx, sendo constituida pelas tabelas de controlo, transmiss˜ao e recep¸c˜ao (vide tabela 3.2).
3.1. PROTOCOLO MODBUS 69
Tabela 3.1: Bloco da fun¸c˜ao MSGx.
Entrada/Sa´ıda Defini¸c˜ao Descri¸c˜ao
R Entrada Reset Definido 1 : reinicializa a comunica¸c˜ao (%MSGx.E = 0 e %MSGx.D = 1)
%MSGx.D Comunica¸c˜ao completa
0 : requisi¸c˜ao em progresso 1 : comunica¸c˜ao completa no fim
da transmiss˜ao,fim do caracter recebido, erro, ou reset do bloco
%MSGx.E Erro
0 : tamanho da mensagem OK e conex˜ao OK. 1 : mau comando, tabela incorrectamente
configurada, caracter recebido incorrecto, ou tabela de recep¸c˜ao cheia.
Tabela 3.2: Tabela de words.
Byte Mais Significativo Byte Menos Significativo Tabela de Controlo Comando Tamanho (Transmiss˜ao/Recep¸c˜ao)
Recep¸c˜ao(Rx) offset Transmiss˜ao(Tx) offset
Tabela de Transmiss˜ao
1 Byte Transmitido 2 Byte Transmitido
— —
— N Byte Transmitido
N+1 Byte Transmitido
Tabela de Recep¸c˜ao
1 Byte Recebido 2 Byte Recebido
— —
— P Byte Recebido
P+1 Byte Recebido
Na tabela de controlo o byte comando, em caso de uma requisi¸c˜ao unicast (excepto para broadcast) Modbus RTU deve ser sempre 01, o byte de comando no caso de uma requisi¸c˜ao broadcast deve ser 00, enquanto o endere¸co do escravo deve ser definido para 00. O byte tamanho cont´em o tamanho de transmiss˜ao (m´aximo 250 bytes). Este parˆametro ´e o tamanho em bytes da tabela de transmiss˜ao. Se Tx offset ´e igual a 0, este parˆametro ´e igual ao comprimento da trama de transmiss˜ao. Se o parˆametro Tx offset n˜ao ´e igual a 0, um byte da trama de transmiss˜ao (indicado pelo valor Tx offset) n˜ao ir´a ser transmitido e este parˆametro ´e igual ao tamanho da trama em si, menos 1.
O byte Tx offset cont´em o valor da posi¸c˜ao do byte (1 para o primeiro byte, 2 para o segundo byte, e assim por diante), dentro da trama de transmiss˜ao para ignorar quando transmitir os bytes. Por exemplo, se este byte cont´em 3, o terceiro byte seria ignorado, fazendo com que o quarto byte na trama fosse transmitido como terceiro byte.
O byte Rx offset cont´em o valor 1 para o primeiro byte, 2 para o segundo byte, e assim por diante dentro da tabela de recep¸c˜ao para adicionar ao receber uma trama. Por
exemplo, se este byte cont´em 3, o terceiro byte na tabela de recep¸c˜ao seria preenchido com um zero, e o terceiro byte, que foi actualmente recebido ser´a introduzido na quarta posi¸c˜ao da tabela de recep¸c˜ao. Tx offset e Rx offset s˜ao utilizados para lidar com as quest˜oes associadas aos valores de bytes ou words dentro do protocolo Modbus no PLC, estes offsets s˜ao utilizados para facilitar a interpreta¸c˜ao dos bytes e words de maneira que ”caiam”nos limites de words.
Na utiliza¸c˜ao do modo RTU, a tabela de transmiss˜ao ´e preenchida com a requisi¸c˜ao antes de executar a instru¸c˜ao EXCHx. Em tempo de execu¸c˜ao, o controlador determina que camada de liga¸c˜ao de dados ´e, e realiza todas as convers˜oes necess´arias para processar a transmiss˜ao e a resposta. In´ıcio, fim da trama e a verifica¸c˜ao dos caracteres n˜ao s˜ao armazenados nas tabelas de transmiss˜ao/recep¸c˜ao.
Ap´os todos os bytes serem transmitidos, o PLC cliente Modbus ou mestre passa para o modo de recep¸c˜ao e espera para receber qualquer byte. A recep¸c˜ao ´e conclu´ıda caso se verifique: o tempo de espera da trama foi detectado ou a tabela de recep¸c˜ao est´a completa. A tabela de transmiss˜ao cont´em os dados a serem transmitidos. O primeiro byte cont´em o endere¸co espec´ıfico de um servidor Modbus ou broadcast, o segundo byte cont´em o c´odigo de fun¸c˜ao e o resto cont´em as informa¸c˜oes associadas a esse c´odigo de fun¸c˜ao 4
.
A tabela de recep¸c˜ao cont´em os dados que est˜ao sendo recebidos. O primeiro byte cont´em o endere¸co do dispositivo, o segundo byte cont´em o c´odigo de fun¸c˜ao, e o resto cont´em informa¸c˜ao associada a esse codigo de fun¸c˜ao.
Tendo-se visto as principais fun¸c˜oes utilizadas para o protocolo Modbus no PLC Twido e a tabela de words de uma requisi¸c˜ao Modbus, na sec¸c˜ao seguinte ser˜ao descritos alguns exemplos de leitura e escrita de words da comunica¸c˜ao Modbus, considerando dois PLCs, um cliente (mestre Modbus) e um servidor (escravo Modbus).