07.10.2019 Views

BRESIMAR(asaTek)-Beckhoff-Slides Formação Técnica TwinCAT 2-3.1 COM Free Modbus

BECKHOFF - TwinCAT 2 Slide de Formação Técnica - 3.1 COM Free e ModbusRTU (2019) Da empresa BRESIMAR AUTOMAÇÃO (Aveiro / Portugal) Autoria: asaTek / Jorge Andril

BECKHOFF - TwinCAT 2
Slide de Formação Técnica - 3.1 COM Free e ModbusRTU (2019)
Da empresa BRESIMAR AUTOMAÇÃO (Aveiro / Portugal)
Autoria: asaTek / Jorge Andril

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>TwinCAT</strong> PLC Nivel III<br />

<strong>BRESIMAR</strong><br />

( J. Andril / 2019)<br />

PROGRAMAÇÃO <strong>TwinCAT</strong> v2.x<br />

<strong>COM</strong>UNICAÇÕES SÉRIE<br />

Protocolo <strong>COM</strong> e <strong>Modbus</strong> RTU<br />

< 1ª Parte ><br />

1


New Automation Technology<br />

Terminais KL/KS/KM/EL/ES 6xxx - Comunicação de dados<br />

Bresimar Automação, S.A. ( J.Andril ) (v0.0 / 02_2019) 22.02.2019 2


New Automation Technology<br />

Terminais de barramento KL/KS/KM/EL/ES - 6xxx<br />

PORTAS DE <strong>COM</strong>UNICAÇÃO<br />

(RS232 , RS422 , RS485 , TTY)<br />

PORTAS DE <strong>COM</strong>UNICAÇÃO PARA REDES DE<br />

DOMÓTICA ( LON , DALI , EIB , MP-bus)<br />

PORTAS DE <strong>COM</strong>UNICAÇÃO PARA REDES<br />

INDUSTRIAIS (AS-I)<br />

PORTAS DE <strong>COM</strong>UNICAÇÃO DE TRANSFERÊNCIA DE<br />

DADOS ENTRE TERMINAIS DE BARRAMENTO<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 3


New Automation Technology<br />

Terminais de barramento KL/KS/KM - 6xxx<br />

Funções especiais<br />

Tipo KL/KS6xxx Tipo KL/KS6xxx<br />

Comunicações<br />

(portas serie)<br />

KL/KS6001<br />

Terminal com porta serie RS 232 ,<br />

19.2 kbaud<br />

KL/KS6031<br />

Terminal com porta serie RS 232 ,<br />

115.2 kbaud<br />

KL/KS6011<br />

Terminal com porta serie TTY ,<br />

„ loop“ de corrente 20mA<br />

KL/KS6021<br />

Terminal com porta serie RS422/RS485 ,<br />

19.2 kbaud<br />

KL/KS6041<br />

Terminal com porta serie RS422/RS485 ,<br />

115.2 kbaud<br />

Comunicações<br />

(domótica)<br />

KL6023 e KL6021-0023<br />

KL6581 e KL6583<br />

Terminal para comunicações wireless EnOcean e RS485<br />

para sinais EnOcean<br />

Terminal EnOcean „master“ e transmissor /recptor<br />

EnOcean<br />

KL6301<br />

Terminal para comunicações EIB<br />

KL6401<br />

Terminal para comunicações LON<br />

KL/KS6771<br />

Terminal para comunicações MP-Bus „master“<br />

KL6781<br />

Terminal M-Bus „master“<br />

Comunicações<br />

(troca de dados)<br />

Comunicações<br />

(rede AS-I)<br />

KL/KS6051<br />

Terminal de comunicação para troca de dados entre KL<br />

KM6551<br />

Terminal de comunicação para troca de dados „wireless“<br />

KL/KS6201<br />

Terminal AS-I „master“<br />

KL/KS6211<br />

Terminal AS-I „master“ com contactos de potência<br />

KL6224<br />

Terminal IO-Link „master“<br />

KL/KS6811<br />

Terminal DALI/DSI „master“<br />

KL6831 e KL6841<br />

Terminal SMI „LoVo“<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 4


New Automation Technology<br />

Terminais de barramento EL/ES - 6xxx<br />

Funções especiais<br />

Tipo EL/ES6xxx Tipo EL6xxx<br />

Comunicações<br />

(portas serie)<br />

EL/ES6001<br />

Terminal com porta serie RS 232 ,<br />

115.2 kbaud<br />

Comunicações<br />

(domótica)<br />

EL6224<br />

Terminal IO-Link „master“<br />

EL6002<br />

Terminal com porta serie RS 232 ,<br />

115.2 kbaud , 2 x D-sub<br />

EL/ES6021<br />

Terminal com porta serie RS422/RS485 ,<br />

115.2 kbaud<br />

EL6022<br />

Terminal com porta serie RS422/RS485 ,<br />

19.2 kbaud , 2 x D-sub<br />

Comunicações<br />

(rede AS-I)<br />

EL/ES6201<br />

Terminal AS-I „master“<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 5


New Automation Technology<br />

Terminais de barramento KL/KS/KM | Ligações flexíveis<br />

KLxxxx<br />

Ligações diretas<br />

KSxxxx<br />

Ligações por ficha<br />

KMxxxx<br />

Ligações por ficha compacta<br />

Eletrónica com as ligações<br />

integradas num único terminal<br />

utilizando a tecnologia sem<br />

parafuso integradas num único<br />

Cage Clamp ® de simples<br />

montagem .<br />

A cablagem completa pode ser<br />

facilmente removida do terminal<br />

de barramento pressionando a<br />

guia de desbloqueio .<br />

Para aplicações com elevado<br />

nº de sinais I / O standard ;<br />

Ideal para pequenos quadros de<br />

comando com pouco espaço .<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 6


New Automation Technology<br />

Terminais de barramento KL/KS/KM/EL/ES 6xxx<br />

PORTAS DE <strong>COM</strong>UNICAÇÃO<br />

RS232 / RS422 / RS485 / TTY<br />

Hardware<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 7


New Automation Technology<br />

Terminais de barramento KL/KS/KM/EL/ES 6xxx<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 8


New Automation Technology<br />

Portas comunicação RS232 (KL6001/6031, EL6001/6002) [1]<br />

Porta de comunicação RS232 :<br />

Em conformidade com a norma CCITT-V28 /<br />

DIN 66 259-1 ou EIA-RS232C/V24<br />

Canais de transferência de dados :<br />

“Full Duplex” (TxD , RxD , /RTS , /CTS)<br />

Velocidade de transferência de dados :<br />

KL6001 – 9.6kbaud, 8 bit dados, sem bit de paridade<br />

e 1 bit de stop (max. 19.2k baudrate)<br />

KL6031 e EL6001/6002– (max. 115.2k baudrate)<br />

“Buffer” de dados :<br />

KL6001 – 128bytes(receção)/16bytes(envio)<br />

KL6031 – 1024bytes(receção)/128bytes(envio)<br />

EL6001/6002 – 824bytes(receção)/128bytes(envio)<br />

Mapa de memoria do processo :<br />

KL6001 - 3x8bits dados+1x8bits “control/status”<br />

(max. 5x8bits dados)<br />

KL6031e EL6001/6002 - 22x8bits dados+2x8bits<br />

“control/status”(max. 22x8 bits dados)<br />

Máximo comprimento de cabo 15m (max.)<br />

Terminal especial KL6001-020<br />

KL6001-0020 - 5x8bits dados+1x8bits “control/status”<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 9


New Automation Technology<br />

Portas de comunicação RS232 (KL/KS 6001 e 6031) [2]<br />

Ligações da porta RS232 nas cartas KL/KS<br />

O controlo de RTS (“request to send”)/CTS (“control to send”) por defeito está ativo . Podemos<br />

desativar este controlo através de um shunt entre RST e CTS ( por hardware ) ou por<br />

software (KS2000 ou FB de livraria) .<br />

Ligações entre terminal RS232 e a porta <strong>COM</strong> de PC<br />

Podemos ligar o terminal RS232 com uma porta <strong>COM</strong>(RS232)<br />

através do programa “Hyper-Terminal” cumprindo o seguinte<br />

pin-out (ficha D de 9 pinos) :<br />

RS232(PC)/Pino 2 --- KL6001/TxD-Borne 1<br />

RS232(PC)/Pino 3 --- KL6001/RxD-Borne 5<br />

RS232(PC)/Pino 5 --- KL6001/Earth-Borne 3 e 7<br />

KL6001/RTS-Borne 2 ------I<br />

KL6001/CTS-Borne 6 ------I<br />

Shunt 2-6<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 10


New Automation Technology<br />

Portas de comunicação RS232 (KL/KS 6001 e 6031) [3]<br />

Estado dos LED´s do terminal<br />

LED Canal Estado Função<br />

A (“verde”) Run Off O tempo de “watchdog” foi ultrapassado.<br />

Este LED desliga-se quando não há transferência<br />

de dados passado 100ms .<br />

On<br />

Operação normal<br />

B (“verde”) TxD Off Dados a ser enviados (impulsos “off” curtos)<br />

On<br />

Não há dados a ser enviados<br />

C (“verde”) RxD Off Dados a ser recebidos (impulsos “off” curtos)<br />

On<br />

Não há dados a ser recebidos<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 11


New Automation Technology<br />

Portas comunicação RS422/485 (KL6021/6041,EL6021/6022)[1]<br />

Porta de comunicação RS422 ou RS485<br />

Canais de transferência de dados :<br />

“Full Duplex” (TxD+ , TxD- , RxD+ , RxD-) ou<br />

“Half Duplex” (RS485)<br />

Velocidade de transferência de dados :<br />

KL6021 – 9.6kbaud , 8 bit dados , sem bit de paridade<br />

e 1 bit de stop (max. 19.2k baudrate)<br />

KL6041 e EL6021/6022 – (max. 115.2k baudrate)<br />

“Buffer” de dados :<br />

KL6021 – 128bytes(receção)/16bytes(envio)<br />

KL6041 –1024bytes(receção)/128bytes(envio)<br />

EL6001/6002 – 824bytes(receção)/128bytes(envio)<br />

Mapa de memoria do processo :<br />

KL6021 - 3x8bits dados+1x8bits “control/status”<br />

(max. 5x8bits dados)<br />

KL6041 e EL6021/6022 - 22x8bits dados+2x8bits<br />

“control/status” (max. 22x8 bits dados)<br />

Máximo comprimento de cabo 1.000m (max.)<br />

Terminal especial KL6021-020 e -021<br />

KL6021-0020 - 5x8bits dados<br />

KL6021-0021 - 5x8bits dados (7bits,par,1bit stop,9600)<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 12


New Automation Technology<br />

Portas de comunicação RS422/485 (KL/KS 6021 e 6041) [2]<br />

Ligações da porta RS422 e RS485<br />

Comunicações ponto a ponto ou multiponto (RS485)<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 13


New Automation Technology<br />

Portas de comunicação RS422/485 (KL/KS 6021 e 6041) [3]<br />

Estado dos LED´s do terminal<br />

LED Canal Estado Função<br />

A (“verde”) Run Off O tempo de “watchdog” foi ultrapassado.<br />

Este LED desliga-se quando não há transferência<br />

de dados passado 100ms .<br />

On<br />

Operação normal<br />

B (“verde”) TxD Off Dados a ser enviados (impulsos “off” curtos)<br />

On<br />

Não há dados a ser enviados<br />

C (“verde”) RxD Off Dados a ser recebidos (impulsos “off” curtos)<br />

On<br />

Não há dados a ser recebidos<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 14


New Automation Technology<br />

Porta de comunicação TTY (KL/KS 6011) [1]<br />

Porta de comunicação TTY em loop de<br />

corrente de 20mA<br />

Canais de transferência de dados :<br />

“Full Duplex” (TxD+ , TxD- , RxD+ , RxD-)<br />

Velocidade de transferência de dados :<br />

KL6011 – 9.6kbaud , 8 bit dados , sem bit de paridade<br />

e 1 bit de stop (max. 19.2k baudrate)<br />

“Buffer” de dados :<br />

KL6011 – 128bytes (receção)/16bytes (envio)<br />

Mapa de memoria do processo :<br />

KL6011 – 3x8bits dados+1x8bits “control/status”<br />

(max. 5x8bits dados)<br />

Máximo comprimento de cabo 1.000m (max.)<br />

Terminal especial KL6011-020<br />

KL6011-0020 - 5x8bits dados<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 15


New Automation Technology<br />

Porta de comunicação TTY (KL/KS 6011) [2]<br />

Comunicações TTY em loop de corrente de 20 mA . É um terminal passivo o<br />

que significa que internamente não tem nenhuma fonte de corrente.<br />

Utilizado para comunicações com os PLC´s “Siemens” S5 (pela porta PG) .<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 16


New Automation Technology<br />

Porta de comunicação TTY (KL/KS 6011) [3]<br />

Estado dos LED´s do terminal<br />

LED Canal Estado Função<br />

A (“verde”) Run Off O tempo de “watchdog” foi ultrapassado.<br />

Este LED desliga-se quando não há transferência de<br />

dados passado 100ms .<br />

On<br />

Operação normal<br />

B (“verde”) TxD Off Loop de corrente = 12mA (MARK)<br />

C (“verde”) RxD Off Loop de corrente = 12mA (MARK)<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 17


New Automation Technology<br />

Terminais de barramento KL/KS/KM/EL/ES 6xxx<br />

PORTAS DE <strong>COM</strong>UNICAÇÃO<br />

RS232 / RS422 / RS485 / TTY (loop)<br />

Software<br />

Configuração das portas <strong>COM</strong><br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 18


New Automation Technology<br />

Terminais de barramento KL/KS/KM/EL/ES 6xxx<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 19


New Automation Technology<br />

Parametros de configuração (KL/KS 6001,6011,6021) [1]<br />

TABELA DE REGISTOS ( KL6001/6011/6021)<br />

Endereço Descrição Valor Tipo Memoria<br />

R0 Nº de bytes de dados no buffer de envio variável R RAM<br />

R1 Nº de bytes de dados no buffer de receção variável R RAM<br />

R2..5 Não usado 0x0000 R<br />

R6 Registo de diagnostico do estado do terminal variável R RAM<br />

R7 Não usado 0x0000 R<br />

R8 Tipo de terminal ???? R ROM<br />

R9 Nº da versão do firmware 0x???? R ROM<br />

R10 Nº de bits do shift register 0x0218 R ROM<br />

R11 Nº do canal do shift register 0x0130 R ROM<br />

R12 Comprimento mínimo de dados 0x3030 R ROM<br />

R13 Tipo da estrutura de dados 0x0000 R ROM<br />

R14 Não usado 0x0000 R<br />

R15 Alinhamento dos bits variável R/W RAM<br />

R16 Nº da versão do hardware especifico R/W SEEPROM<br />

R17 Não usado 0x0000 R/W SEEPROM<br />

R18 Nº de bytes de indicação de buffer cheio 0x0080 R/W SEEPROM<br />

R19..30 Não usado 0x0000 R/W SEEPROM<br />

R31 Registo da palavra código para escrita (0x1235) variável R/W RAM<br />

R32 Velocidade de transmissão (baud-rate) 0x0006 R/W SEEPROM<br />

R33 Tipo de telegrama de dados (data frame) 0x0003 R/W SEEPROM<br />

R34 Modo de operação das comunicações 0x0003 R/W SEEPROM<br />

R35 Nº de bytes de dados mapeados no BK/BC 0x0003 R/W SEEPROM<br />

R36..47 Não usado 0x0000 R/W SEEPROM<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 20


New Automation Technology<br />

Parametros de configuração (KL/KS 6001,6011,6021) [2]<br />

Utilizando o KS2000 podemos configurar as cartas de comunicação KL6xxx<br />

Exemplo:<br />

KL6031<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 21


New Automation Technology<br />

Parametros de configuração (KL/KS 6001,6011,6021) [3]<br />

Para escrever nos registos R/W é necessário primeiro escrever 0x1235 no R31. A<br />

proteção de escrita está ativa quando o valor em R31 é zero .<br />

A velocidade de transmissão esta registada no R32 .<br />

(Bit 2,1,0 = 011) – 1200 baud<br />

(Bit 2,1,0 = 100) – 2400 baud<br />

(Bit 2,1,0 = 101) – 4800 baud<br />

(Bit 2,1,0 = 110) – 9600 baud [valor de fabrica]<br />

(Bit 2,1,0 = 111) – 19200 baud<br />

O formato do telegrama de dados esta registado no R33 .<br />

(Bit 2,1,0 = 001) – 7 bits dados e bit paridade par<br />

(Bit 2,1,0 = 010) – 7 bits dados e bit paridade impar<br />

(Bit 2,1,0 = 011) – 8 bit dados e sem bit paridade [valor de fabrica]<br />

(Bit 2,1,0 = 100) – 8 bits dados e bit paridade par<br />

(Bit 2,1,0 = 101) – 8 bits dados e bit paridade impar<br />

(Bit 3 = 0) – 1 bit de stop [valor de fabrica]<br />

(Bit 3 = 1) – 2 bits de stop<br />

O terminal vem de fabrica com o comando de “handshake” /RTS e /CTS ativo .<br />

O /RTS fica a nível “1” se o buffer de receção do KL tem mais de 114 caracteres .<br />

O /RTS é posto a “0” quando o KL tem menos de 104 caracteres . Se o /CTS é<br />

posto a “1” pelo periférico o KL deixa de enviar dados .<br />

“RTS” – “Request To Send”<br />

“CTS” – “Clear To Send”<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 22


New Automation Technology<br />

Parametros de configuração (KL/KS 6001,6011,6021) [4]<br />

Utilizando o KS2000 pode-se configurar o “Baud-rate” , “Data Format” e “Stop Bits”<br />

[Registo R32 , R33]<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 23


New Automation Technology<br />

Parametros de configuração (KL/KS 6001,6011,6021) [5]<br />

O modo de operação das comunicações está registado no R34 .<br />

(Bit 0 = 1) –<br />

(Bit 0 = 0) –<br />

(Bit 0 = 1) –<br />

(Bit 1 = 0) –<br />

(Bit 1 = 1) –<br />

(Bit 3 = 0) –<br />

(Bit 3 = 1) –<br />

(Bit 4 = 0) –<br />

(Bit 4 = 1) –<br />

/RTS e /CTS ativo (KL6001) [valor de fabrica]<br />

“Full-Duplex” ativo (KL6021) [valor de fabrica]<br />

“Half-Duplex” ativo (KL6021)<br />

Formato de dados “standard”<br />

Formato de dados “alternativo” [valor de fabrica]<br />

Protocolo X-ON/X-OFF de envio de dados desativo [valor de fabrica]<br />

Protocolo X-ON/X-OFF ativo . O KL envia os dados para o periférico até<br />

receber dele o carácter X-OFF (DC3==0x13) . O envio fica suspenso até<br />

de novo o carácter X-ON (DC1==0X11) do periférico .<br />

Protocolo XON/XOFF de receção de dados desativo [valor de fabrica]<br />

Protocolo X-ON/X-OFF ativo. O KL envia o carácter X-OFF quando o seu<br />

buffer atinge 118 caracteres. X-ON é enviado se X-OFF foi emitido antes<br />

e se o buffer tem um nº de dados inferior a 18 .<br />

(Bit 5 = 0) –<br />

(Bit 5 = 1) –<br />

O terminal está configurado para RS-485 (KL6021) [valor de fabrica]<br />

O terminal está configurado para RS-422 (KL6021)<br />

Nº de byte de dados mapeados no BC ou BK está registado no R35 .<br />

(Bit 7…0 = 011) – 3 bytes de dados [valor de fabrica] .<br />

Podemos ter de 3 ou 5 bytes .<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 24


New Automation Technology<br />

Parametros de configuração (KL/KS 6001,6011,6021) [6]<br />

Utilizando o KS2000 pode-se configurar o nº de dados (“Process Data Length”) e os<br />

parâmetros de comunicação (“Communication Parameters”) [Registo R34 e R35]<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 25


New Automation Technology<br />

Mapeamento dos dados (KL/KS 6001,6011,6021) [7]<br />

MAPEAMENTO DOS DADOS DO PROCESSO ( KL6001/6011/6021 )<br />

FORMATO ALTERNATIVO (formato de fábrica)<br />

Modulos BK: CAN,CANopen,RS232,RS485,ControlNet,DeviceNet,Profibus;USB<br />

Formato<br />

Complexo = Nao<br />

Motorola = Não<br />

“Word” = Não<br />

Modulo BK: InterBus<br />

I/O Offset Byte + Byte -<br />

3<br />

2<br />

1 Dados 2 Dados 1<br />

0 Dados 0 Ser-CT/ST<br />

Formato<br />

Complexo = Nao<br />

Motorola = Sim<br />

“Word” = Nao<br />

I/O Offset Byte + Byte -<br />

3<br />

2<br />

1 Dados 1 Dados 2<br />

0 Ser-CT/ST Dados 0<br />

Módulos BK: LightBus, Ethernet e BCxxxx<br />

Formato<br />

Complexo = Sim<br />

Motorola = Não<br />

“Word” = Sim<br />

I/O Offset Byte + Byte -<br />

3 Dados 2 Dados 1<br />

2 - -<br />

1 Dados 0 Ser-CT/ST<br />

0 - CT/ST<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 26


New Automation Technology<br />

Parametros de configuração (KL/KS 6031,6041) [1]<br />

TABELA DE REGISTOS ( KL6031/6041 )<br />

Endereço Descrição Valor Tipo Memoria<br />

R0 Nº de bytes de dados no buffer de envio variável R RAM<br />

R1 Nº de bytes de dados no buffer de receção variável R RAM<br />

R2..5 Não usado 0x0000 R<br />

R6 Registo de diagnostico do estado do terminal variável R RAM<br />

R7 Não usado 0x0000 R<br />

R8 Tipo de terminal ???? R ROM<br />

R9 Nº da versão do firmware 0x???? R ROM<br />

R10 Nº de bits do shift register 0x0218 R ROM<br />

R11 Nº do canal do shift register 0x0130 R ROM<br />

R12 Comprimento mínimo de dados 0x3030 R ROM<br />

R13 Tipo da estrutura de dados 0x0000 R ROM<br />

R14 Não usado 0x0000 R<br />

R15 Alinhamento dos bits variável R/W RAM<br />

R16 Nº da versão do hardware especifico R/W SEEPROM<br />

R17 Não usado 0x0000 R/W SEEPROM<br />

R18 Nº de bytes de indicação de buffer cheio 0x0080 R/W SEEPROM<br />

R19..30 Não usado 0x0000 R/W SEEPROM<br />

R31 Registo da palavra código para escrita (0x1235) variável R/W RAM<br />

R32 Velocidade de transmissão (baud-rate) 0x0006 R/W SEEPROM<br />

R33 Tipo de telegrama de dados (data frame) 0x0003 R/W SEEPROM<br />

R34 Modo de operação das comunicações 0x0181 R/W SEEPROM<br />

R35 Nº de bytes de dados mapeados no BK/BC 0x0017 R/W SEEPROM<br />

R36..47 Não usado 0x0000 R/W SEEPROM<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 27


New Automation Technology<br />

Parametros de configuração (KL/KS 6031,6041) [2]<br />

Para escrever nos registos R/W é necessário primeiro escrever 0x1235 no R31. A<br />

proteção de escrita está ativa quando o valor em R31 é zero .<br />

A velocidade de transmissão esta registada no R32 .<br />

(Bit 3,2,1,0 = 0011) – 1200 baud<br />

(Bit 3,2,1,0 = 0100) – 2400 baud<br />

(Bit 3,2,1,0 = 0101) – 4800 baud<br />

(Bit 3,2,1,0 = 0110) – 9600 baud [valor de fabrica]<br />

(Bit 3,2,1,0 = 0111) – 19200 baud<br />

(Bit 3,2,1,0 = 1000) – 38400 baud<br />

(Bit 3,2,1,0 = 1001) – 57600 baud<br />

(Bit 3,2,1,0 = 1010) –115200 baud<br />

O formato do telegrama de dados esta registado no R33 .<br />

(Bit 2,1,0 = 001) – 7 bits dados e bit paridade par<br />

(Bit 2,1,0 = 010) – 7 bits dados e bit paridade impar<br />

(Bit 2,1,0 = 011) – 8 bit dados e sem bit paridade [valor de fabrica]<br />

(Bit 2,1,0 = 100) – 8 bits dados e bit paridade par<br />

(Bit 2,1,0 = 101) – 8 bits dados e bit paridade impar<br />

(Bit 3 = 0) – 1 bit de stop [valor de fabrica]<br />

(Bit 3 = 1) – 2 bits de stop<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 28


New Automation Technology<br />

Parametros de configuração (KL/KS 6031,6041) [3]<br />

Utilizando o KS2000 pode-se configurar o “Baud-rate” , “Data Format” e “Stop Bits”<br />

[Registo R32 , R33]<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 29


New Automation Technology<br />

Parametros de configuração (KL/KS 6031,6041) [4]<br />

O modo de operação das comunicações está registado no R34 .<br />

(Bit 0 = 1) –<br />

(Bit 0 = 0) –<br />

(Bit 1 = 0) –<br />

(Bit 1 = 1) –<br />

(Bit 3 = 0) –<br />

(Bit 3 = 1) –<br />

(Bit 4 = 0) –<br />

(Bit 4 = 1) –<br />

(Bit 5 = 0) –<br />

(Bit 5 = 1) –<br />

/RTS e /CTS ativo (KL6031) [valor de fabrica]<br />

“Full-Duplex” ativo (KL6041) [valor de fabrica]<br />

Formato de dados “standard” [valor de fabrica]<br />

Formato de dados “alternativo”<br />

Protocolo X-ON/X-OFF de envio de dados desativo [valor de fabrica]<br />

Protocolo X-ON/X-OFF ativo . O KL envia os dados para o periférico até<br />

receber dele o carácter X-OFF (DC3==0x13) . O envio fica suspenso até<br />

de novo o carácter X-ON (DC1==0X11) do periférico .<br />

Protocolo XON/XOFF de receção de dados desativo [valor de fabrica]<br />

Protocolo X-ON/X-OFF ativo . O KL envia o carácter X-OFF quando o seu<br />

buffer atinge 118 caracteres . X-ON é enviado se X-OFF foi emitido antes e<br />

se o buffer tem um nº de dados inferior a 18 .<br />

O terminal está configurado para RS-485 (KL6041) [valor de fabrica]<br />

O terminal está configurado para RS-422 (KL6041)<br />

(Bit 8 = 1) – Velocidade de transferência otimizada (KL6041) [valor de fabrica]<br />

Nº de byte de dados mapeados no BC ou BK está registado no R35 .<br />

(Bit 7…0 = 10111) – 22 bytes de dados + 2 bytes “control/satus” [valor de fabrica]<br />

(Bit 7…0 = 00110) – 5 bytes de dados + 2 bytes “control/satus”<br />

(Bit 7…0 = 00011) – 3 bytes de dados + 2 bytes “control/satus”<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 30


New Automation Technology<br />

Parametros de configuração (KL/KS 6031,6041) [5]<br />

Utilizando o KS2000 pode-se configurar o nº de dados (“Process Data Length”) e os<br />

parâmetros de comunicação (“Communication Parameters”) [Registo R34 e R35]<br />

KL6031 (RS232)<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 31


New Automation Technology<br />

Parametros de configuração (KL/KS 6031,6041) [6]<br />

KL6041 (RS485)<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 32


New Automation Technology<br />

Parametros de configuração (EL/ES6001,6021,6002,6022) [1]<br />

TABELA DE REGISTOS ( EL6001/6021/6002/6022)<br />

Nos terminais ETHERCAT - EL não se utiliza o KS2000 para a sua configuração<br />

As configurações são efetuadas através do System Manager e manuseando os<br />

registos de parâmetros localizados na pasta “CoE-Online” (”Can Over EtherCAT”)<br />

Exemplo da pasta “CoE-Online” numa carta de 2 portas RS232 (EL6002)<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 33


New Automation Technology<br />

Parametros de configuração (EL/ES6001,6021,6002,6022) [2]<br />

Para os parâmetros mais relevantes ( baudrate, bit de paridade, bit de stop, etc)<br />

existem janelas/subpastas para a sua configuração.<br />

Ex. Carta EL 6002 : subpasta “EL60xx(1)” para a 1º porta RS232 e subpasta<br />

“EL60xx(2)” para a 2ª porta RS232 para a configurar como “portas virtuais” .<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 34


New Automation Technology<br />

Livrarias de comunicação “<strong>COM</strong>libV2”<br />

PORTAS DE <strong>COM</strong>UNICAÇÃO<br />

RS232 / RS422 / RS485 / TTY (loop)<br />

Software<br />

Protocolo livre <strong>COM</strong> “<strong>COM</strong>libV2.0”<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 35


New Automation Technology<br />

Livrarias de comunicação “<strong>COM</strong>libV2” [1]<br />

<strong>TwinCAT</strong> 2 supplement / Communication / “TS6340-<strong>TwinCAT</strong> PLC Serial Communication”<br />

A Livraria “<strong>COM</strong>Lib(v2.0)” é utilizada nos KL6001/6011/6021/6031/6041e PC-Com<br />

Pode ser utilizada com os CX´s (<strong>COM</strong>libV2.lib), com os BCxx00 (<strong>COM</strong>libV2.lb6), com<br />

BCxx50 e BX (<strong>COM</strong>libV2.lbx)<br />

CALCULO DAS VELOCIDADES DE TRANSMISSÂO (terminais KL)<br />

Bps = (LB x PA) / (3 x T)<br />

LB = Largura de banda ( 1 bit start + n bits dados + p bits paridade + m bits stop )<br />

( valor de defeito 8N1 => 1+8+0+1=10)<br />

PA = Nº de bytes de dados<br />

T = Tempo de ciclo do programa no PLC em seg (“task”)<br />

NOTA : O PLC necessita de 3 ciclos de operação para trocar dados com os terminais KL<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 36


New Automation Technology<br />

Livrarias de comunicação “<strong>COM</strong>libV2” [2]<br />

A Livraria “<strong>COM</strong>Lib(v2.0)” é utilizada com os EL6001/6002/6021/6022<br />

Pode ser utilizada com os CX´s (*.lib) com terminais EL<br />

CALCULO DAS VELOCIDADES DE TRANSMISSÂO (terminais EL)<br />

Bps = (LB x PA) / (2 x T)<br />

LB = Largura de banda ( 1 bit start + n bits dados + p bits paridade + m bits stop )<br />

( valor de defeito 8N1 => 1+8+0+1=10)<br />

PA = Nº de bytes de dados<br />

T = Tempo de ciclo do programa no PLC em seg (“task”)<br />

NOTA : O PLC necessita de 2 ciclos de operação para trocar dados com os terminais EL<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 37


New Automation Technology<br />

Livrarias de comunicação “<strong>COM</strong>libV2” [3]<br />

CALCULO DAS VELOCIDADES DE TRANSMISSÂO (terminais KL)<br />

Bps = (LB x PA) / (3 x T)<br />

MODO 22 bytes (KL6xxx) MODO 5 bytes (KL6xxx) MODO 3 bytes (KL6xxx) MODO 64 bytes (PC-Com)<br />

(KL6031 / 6041) (KL6001/ 6021/6031/6041) (KL6001/6021/6031/6041) (<strong>COM</strong> dos PC e CX)<br />

com T (“task”) = 10ms com T (“task”) = 10ms com T (“task”) = 10ms com T (“task”) = 10ms<br />

LB = 8N1(10bit´s) LB = 8N1(10bit´s) LB = 8N1 (10bit´s) LB = 8N1 (10bit´s)<br />

PA = 22 bytes dados PA = 5 bytes dados PA = 3 bytes dados PA = 64 bytes dados<br />

Bps = (10x22 )/(3x0.010s) Bps = (10x5)/(3x0.010s) Bps = (10x3)/(3x0.010s) Bps = (10x64)/(3x0.010s)<br />

7 333 bps 1 666 bps 1 000 bps 21 333 bps<br />

NOTA : Se o controlador não conseguir “captar” (fetch) rapidamente os dados recebidos ou transmitidos pelo terminal KL , os dados serão guardados<br />

temporariamente no buffer interno do terminal KL (ex. KL6001 tem um buffer para os dados recebidos de 128bytes) . Os restantes serão perdidos.<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 38


New Automation Technology<br />

Livrarias de comunicação “<strong>COM</strong>libV2” [4]<br />

CALCULO DAS VELOCIDADES DE TRANSMISSÂO (terminais EL)<br />

Bps = ( LB x PA) / (2 x T)<br />

MODO 22 byte´s (EL6xxx)<br />

(KL6001 / 6002)<br />

com T (“task”) = 10ms<br />

LB = 8N1(10bits)<br />

PA = 22 bytes dados<br />

Bps = (10x22) / (2x0.010s)<br />

11 000 bps<br />

NOTA : Se o controlador não conseguir “captar” (fetch) rapidamente os dados recebidos ou transmitidos pelo terminal EL , os dados serão guardados<br />

temporariamente no buffer interno do terminal EL (ex. EL6001 tem um buffer para os dados recebidos de 128bytes) . Os restantes serão perdidos.<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 39


New Automation Technology<br />

Livrarias de comunicação “<strong>COM</strong>libV2” [5]<br />

Tarefa normal ( “Standard Task”) :<br />

Tratamento dos dados (enviar e<br />

receber dados através do buffer<br />

“TxBuffer” e “RxBuffer” ) .<br />

- “SendByte” (FB)<br />

- “SendData” (FB)<br />

- “SendString” (FB)<br />

- “ReceiveByte” (FB)<br />

- “ReceiveData” (FB)<br />

- “ReceiveString” (FB)<br />

Tarefa Rapida “Fast Task” :<br />

Comunicação “background” entre<br />

os KL/EL ou <strong>COM</strong> e o PLC .<br />

- “SerialLineControl” (FB)<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 40


New Automation Technology<br />

Livrarias de comunicação “<strong>COM</strong>libV2” [6]<br />

Função Bloco<br />

“Combuffer”KL<br />

“SerialLineControl”<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 41


New Automation Technology<br />

Livrarias de comunicação “<strong>COM</strong>libV2” [7]<br />

%I* %Q*<br />

KL6001 de 3 byte<br />

Buffer dados entre HW SW<br />

KL/PC-<strong>COM</strong> <strong>TwinCAT</strong> PLC<br />

<strong>TwinCAT</strong> PLC (Task rápida [2ms]–“Main_rapida”)<br />

PC-<strong>COM</strong> KL6031 KL6001<br />

KL6001 de 5 byte<br />

KL6031 de 22 byte<br />

KL/PC-<strong>COM</strong> <strong>TwinCAT</strong> PLC<br />

PC-<strong>COM</strong> de 64 byte<br />

<strong>TwinCAT</strong> PLC (Declaração das Variáveis Globais)<br />

Ponteiro para a<br />

estrutura das %I<br />

na memoria<br />

Ponteiro para a<br />

estrutura das %Q<br />

na memoria<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 42


New Automation Technology<br />

Livrarias de comunicação “<strong>COM</strong>libV2” [8]<br />

FB´s de “enviar dados”<br />

<br />

“SendString”<br />

”SendData”<br />

”SendByte”<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 43


New Automation Technology<br />

Livrarias de comunicação “<strong>COM</strong>libV2” [9]<br />

%I* %Q*<br />

KL6001 de 3 byte<br />

Buffer dados entre HW SW<br />

<strong>TwinCAT</strong> PLC (Task normal [10ms]–“Main”)<br />

PC-<strong>COM</strong> KL6031 KL6001<br />

KL6001 de 5 byte<br />

KL6031 de 22 byte<br />

KL/PC-<strong>COM</strong> <strong>TwinCAT</strong> PLC<br />

PC-<strong>COM</strong> de 64 byte<br />

<strong>TwinCAT</strong> PLC (Declaração das Variáveis Globais)<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 44


New Automation Technology<br />

Livrarias de comunicação “<strong>COM</strong>libV2” [10]<br />

FB´s de “receber dados”<br />

“ReceiveString”<br />

”ReceiveData”<br />

”ReceiveByte”<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 45


New Automation Technology<br />

Livrarias de comunicação “<strong>COM</strong>libV2” [11]<br />

%I* %Q*<br />

KL6001 de 3 byte<br />

Buffer dados entre HW SW<br />

KL/PC-<strong>COM</strong> <strong>TwinCAT</strong> PLC<br />

<strong>TwinCAT</strong> PLC (Task normal[10ms]–“Main”)<br />

PC-<strong>COM</strong> KL6031 KL6001<br />

KL6001 de 5 byte<br />

KL6031 de 22 byte<br />

PC-<strong>COM</strong> de 64 byte<br />

<strong>TwinCAT</strong> PLC (Declaração das Variáveis Globais)<br />

“Prefix” = Empty :<br />

Mensagem inicia com<br />

o 1º caracter recebido<br />

“Suffix” = Empty<br />

A mensagem finaliza após um<br />

tempo (“Timeout”) sem receber<br />

caracteres<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 46


New Automation Technology<br />

Funções de manipulação de “STRING” [1]<br />

Livraria “STANDARD” – “String Functions”<br />

CONCAT(Str1,Str2)


New Automation Technology<br />

Funções de manipulação de “STRING” [2]<br />

Programa exemplo :<br />

56hex => ‘V’<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 48


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [1]<br />

EXEMPLO Nº01 - Programa PC/USB(SoftPLC TC2) BK9500+KL6001+KL9010<br />

KS2000<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 49


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [2]<br />

EXEMPLO Nº01 - Programa PC/USB (SoftPLC TC2) BK9500+KL6001+KL9010<br />

1º Passo :<br />

Instalar no projeto a<br />

livraria “<strong>COM</strong>libV2.lib”<br />

“System Manager”<br />

“PLC Control”<br />

NOTA : A carta KL6001-RS232 tem dois possíveis formatos de dados, de 3<br />

(valor de defeito) e 5 bytes. Neste exemplo usamos o formato de 3 bytes.<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 50


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [3]<br />

EXEMPLO Nº01 - Programa PC/USB (SoftPLC TC2) BK9500+KL6001+KL9010<br />

=> Definição das variáveis globais Estrutura de dados


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [4]<br />

EXEMPLO Nº01 - Programa PC/USB (SoftPLC TC2) BK9500+KL6001+KL9010<br />

=> Programa “MAIN”


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [5]<br />

EXEMPLO Nº01 - Programa PC/USB (SoftPLC TC2) BK9500+KL6001+KL9010<br />

=> Programa “MAIN_rapida”


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [6]<br />

EXEMPLO Nº01 - Programa PC/USB (SoftPLC TC2) BK9500+KL6001+KL9010<br />

=> Programa “MAIN_rapida”


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [7]<br />

EXEMPLO Nº01 - Programa PC/USB (SoftPLC TC2) BK9500+KL6001+KL9010<br />

=> Programa “Enviar_dados_KL6001( )”


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [8]<br />

EXEMPLO Nº01 - Programa PC/USB (SoftPLC TC2) BK9500+KL6001+KL9010<br />

=> Programa “Receber_dados_KL6001( )”


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” hyperterminal.zip EX01-PC_BK9500(usb).zip [9]<br />

EXEMPLO Nº01 - Programa PC/USB (SoftPLC TC2) BK9500+KL6001+KL9010<br />

[Text] – “%i”<br />

[Variable]/[Textdisplay] - “Enviar_dados_KL6001.Tempo_intervalo”<br />

[Input]/[Text input of variable ‘Textdisplay’] - Numpad (Min. 0 , Max. 10000)<br />

[Text] – “%s”<br />

[Variable]/[Textdisplay] - ”Enviar_dados_Kl6001.Man_Aut_mensagem”<br />

[Input]/[Toggle variable]-“Enviar_dados_KL6001.Man_Aut”<br />

[Text] – “%s”<br />

[Variable]/[Textdisplay] -“Enviar_dados_KL6001.Mensagem_a_enviar”<br />

[Input]/[Tap variable]-“Enviar_dados_KL6001.B_enviar”<br />

[Text] – “%s”<br />

[Variable]/[Textdisplay] -“Receber_dados_KL6001.Mensagem_a_receber”<br />

[Input]/[Toggle variable]-“Receber_dados_KL6001.Parar_receber”<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 57


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [10]<br />

EXEMPLO Nº02 - Programa com BC9100(PLC)+KL6031+KL9010<br />

KS2000<br />

NOTA : Neste exemplo o controlo de handshake não se faz<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 58


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [11]<br />

EXEMPLO Nº02 - Programa com BC9100(PLC)+KL6031+KL9010<br />

“System Manager”<br />

“Export Variable info…”<br />

1º Passo :<br />

Instalar no projeto a<br />

livraria “<strong>COM</strong>libV2.lb6”<br />

“PLC Control”<br />

NOTA : Ficheiro exportado do System Manager (comando “Export Variable Info…”) e que poderá ser importado<br />

no PLC Control . No KL6031-RS232 podemos ter configurações de 3, 5 e 22 (valor de defeito) bytes de dados.<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 59


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [12]<br />

EXEMPLO Nº02 - Programa com BC9100(PLC)+KL6031+KL9010<br />

=> Definição das variáveis globais Estrutura de dados


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [13]<br />

EXEMPLO Nº02 - Programa com BC9100(PLC)+KL6031+KL9010<br />

Ao contrario dos IPC e PCe/CX ,que permitem<br />

criar diversos programas MAIN chamados por<br />

diversas Tasks temporais, os BC900/9100 o único<br />

programa MAIN é chamado a cada PLC Cycle<br />

Time com um valor de defeito de 20 ms. È<br />

possível através do KS2000 [Tabela1-R12 e 13]<br />

ou System Manager alterar esse tempo. Este<br />

tempo não é determinístico.<br />

Outros BC´s tem os seguintes valores :<br />

+ PLC Cycle Time [Tabela1-R12] - 5 ms<br />

+ Background Time [Tabela1-R13] - 2 ms<br />

=> Programa “MAIN”


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [14]<br />

EXEMPLO Nº02 - Programa com BC9100(PLC)+KL6031+KL9010<br />

=> Programa de configuração da KL6031 “Init_<strong>COM</strong>( )”


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [15]<br />

EXEMPLO Nº02 - Programa com BC9100(PLC)+KL6031+KL9010<br />

=> Programa de enviar/receber “String” com RS232/KL6031 “RS232( )”


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” Realterm_2.0.0.70.zip EX02-BC9100_RS232.zip [16]<br />

EXEMPLO Nº02 – Programa com BC9100(PLC)+KL6031+KL9010<br />

NOTA : No REALTERM deverá ser configurada a Porta com o 9600 bps de<br />

baudrate , 8 bits de dados , sem bit de paridade , 1 bit de stop [9600 8N1]<br />

[Text] – “%s”<br />

[Variable]/[Textdisplay] -“RS232.sReceivedString””<br />

[Input]/[Tap variable] - “RS232.bReset”<br />

[Input]/[Toggle variable] - “RS232.bSendString”<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 64


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [17]<br />

EXEMPLO Nº03 – CX+<strong>COM</strong> (SoftPLC TC2) CX+<strong>COM</strong> (SoftPLC TC2)<br />

A configuração desta exemplo está<br />

com um CX8080. Podemos aplicar<br />

este exemplo a outros CX (CX1000<br />

, CX9000, etc).<br />

PLC1<br />

PLC2<br />

NOTA : Usada a porta <strong>COM</strong>(RS232) do CX com um cabo Null Modem e parâmetros de comunicação standard [9600 8N1].<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 65


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [18]<br />

EXEMPLO Nº03 - CX+<strong>COM</strong> (SoftPLC TC2) CX+<strong>COM</strong> (SoftPLC TC2)<br />

Ex. CX9001-1001 + CX9000-N030(2xRS232)<br />

“Programa de conversação”<br />

Neste exemplo 03 será criado<br />

um programa “Chat” com duas<br />

portas RS232.<br />

“System Manager”<br />

1º Passo :<br />

Inserir manualmente novo Device<br />

A configuração e o programa<br />

apresentado, nos slides deste<br />

exemplo, serão idênticos para<br />

os dois CX (PLC1 e PLC2).<br />

NOTA : No CX8080 não é necessário inserir o device manualmente.<br />

È detetado automaticamente quando é efetuado o “Scan Devices”.<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 66


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [19]<br />

EXEMPLO Nº03 - CX+<strong>COM</strong> (SoftPLC TC2) CX+<strong>COM</strong> (SoftPLC TC2)<br />

2º Passo :<br />

Configurar a porta <strong>COM</strong> 1<br />

com o formato KL6xx1<br />

“System Manager”<br />

NOTA : Na carta <strong>COM</strong> do sistema CX será emulado o modo KL6xx1 com 64 Data bytes (Inputs / Outputs)<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 67


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [20]<br />

EXEMPLO Nº03 - CX+<strong>COM</strong> (SoftPLC TC2) CX+<strong>COM</strong> (SoftPLC TC2)<br />

Ex. CX1000<br />

Ex. CX8080 ou CX9000<br />

3º Passo :<br />

Instalar no projeto a<br />

livraria “<strong>COM</strong>libV2.lib”<br />

“PLC Control”<br />

“System Manager”<br />

NOTA : A carta <strong>COM</strong> do sistema CX tem formatos de dados de 22 bytes Inputs / 22 bytes Outputs<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 68


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [21]<br />

EXEMPLO Nº03 - CX+<strong>COM</strong> (SoftPLC TC2) CX+<strong>COM</strong> (SoftPLC TC2)<br />

=> Definição das variáveis globais Estrutura de dados


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [22]<br />

EXEMPLO Nº03 - CX+<strong>COM</strong> (SoftPLC TC2) CX+<strong>COM</strong> (SoftPLC TC2)<br />

=> Programa “MAIN”


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [23]<br />

EXEMPLO Nº03 - CX+<strong>COM</strong> (SoftPLC TC2) CX+<strong>COM</strong> (SoftPLC TC2)<br />

=> Programa “MAIN_rapida”


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [24]<br />

EXEMPLO Nº03 - CX+<strong>COM</strong> (SoftPLC TC2) CX+<strong>COM</strong> (SoftPLC TC2)<br />

=> Programa “MAIN_rapida”


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [25]<br />

EXEMPLO Nº03 - CX+<strong>COM</strong> (SoftPLC TC2) CX+<strong>COM</strong> (SoftPLC TC2)<br />

=> Programa “Enviar_dados( )”


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” [26]<br />

EXEMPLO Nº03 - CX+<strong>COM</strong> (SoftPLC TC2) CX+<strong>COM</strong> (SoftPLC TC2)<br />

=> Programa “Receber_dados_KL6001( )”


New Automation Technology<br />

Exemplos práticos com “<strong>COM</strong>libV2” EX03-PC_<strong>COM</strong>1_CX(chat).zip [27]<br />

EXEMPLO Nº03 - CX+<strong>COM</strong> (SoftPLC TC2) CX+<strong>COM</strong> (SoftPLC TC2)<br />

[Text]-”ENVIAR MENSAGEM”<br />

[Input] / [Tap variable] -“Enviar_dados.B_enviar”<br />

Ecrã (HMI) do Chat em cada CX<br />

(PLC1 e PLC2).<br />

[Text] – “%s”<br />

[Variable]/[Textdisplay] -“Enviar_dados.Mensagem_a_enviar”<br />

[Text] – “%s”<br />

[Variable]/[Textdisplay] -“Receber_dados.Mensagem_a_receber”<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 75


New Automation Technology<br />

Livrarias de comunicação “<strong>Modbus</strong>RTU”<br />

PORTAS DE <strong>COM</strong>UNICAÇÃO<br />

RS232 / RS422 / RS485 / TTY<br />

Software<br />

Protocolo <strong>Modbus</strong> RTU “<strong>Modbus</strong>RTU”<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 76


New Automation Technology<br />

Livrarias de comunicação “<strong>Modbus</strong>RTU” [1]<br />

O protocolo de comunicação <strong>Modbus</strong> possui uma estrutura, de envio de<br />

mensagens entre dispositivos, de Master/Slave ou Client/Server. Foi desenvolvida<br />

pela Modicon na década de 70.<br />

A Modicon foi posteriormente adquirida pela Schneider e os direitos sobre o<br />

protocolo ficou sobre controlo da <strong>Modbus</strong> Organization (www.modbus.org).<br />

Devido à sua simplicidade e por ser um protocolo aberto (não proprietário) é muito<br />

usado em equipamentos industriais, automação residencial, instrumentação, etc<br />

Existem 3 padrões do protocolo <strong>Modbus</strong> para diversos suportes físicos :<br />

RS232/RS485/RS422<br />

Ethernet TCP/IP<br />

<strong>Modbus</strong> RTU ou <strong>Modbus</strong> ASCII<br />

<strong>Modbus</strong> TCP<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 77


New Automation Technology<br />

Livrarias de comunicação “<strong>Modbus</strong>RTU” [2]<br />

O protocolo <strong>Modbus</strong> RTU é uma<br />

estrutura, de mensagem aberta,<br />

para comunicações via porta serie<br />

(RS232,RS485,RS422 ou TTY),<br />

utilizando uma comunicação de<br />

pergunta / resposta através de<br />

uma arquitetura Master / Slave.<br />

Cada Slave será identificado por<br />

um endereço único (Slave ID)<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 78


New Automation Technology<br />

Livrarias de comunicação “<strong>Modbus</strong>RTU” [3]<br />

O protocolo de comunicação <strong>Modbus</strong> RTU é um protocolo de envio de<br />

mensagens (telegramas). Será enviado um telegrama, com uma tarefa ou<br />

pergunta, ao slave para obter um telegrama de resposta desse slave.<br />

Os telegramas (mensagens) terão um formato base.<br />

A especificação do MODBUS RTU define um intervalo temporal de “silencio” (Pause) mínimo correspondente a 3,5 carateres entre dois<br />

telegramas a serem enviados. Dentro de uma mensagem (telegrama) o intervalo temporal não poderá ser superior a 1,5 carateres.<br />

As Funções no protocolo <strong>Modbus</strong> RTU definem o tipo de tarefa a executar no<br />

slave (ler ou escrever) com um dado tamanho de dado (1bit ou 16bit/1word).<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 79


New Automation Technology<br />

Livrarias de comunicação “<strong>Modbus</strong>RTU” [4]<br />

<strong>TwinCAT</strong> 2 supplement / Communication / “TS6255-<strong>TwinCAT</strong> PLC <strong>Modbus</strong> RTU”<br />

A Livraria “<strong>Modbus</strong>RTU” poderá ser usada nas seguintes portas serie :<br />

Cartas KL** ou EL<br />

RS232 KL6001 / KL6031 ou EL6001 / EL6002<br />

RS422 ou 485 KL6021 / KL6041 ou EL6021 / EL6022<br />

Interfaces PC-<strong>COM</strong> opcionais ou “onboard” para CX<br />

RS232 CX8080, CX1xx-N30 e N40, CX9xxx-N30,<br />

CX5xxx-N30, CX2xxx-N30<br />

RS422 ou 485 CX8080, CX1xx-N31 e N41, CX9xxx-N31,<br />

CX5xxx-N31, CX2xxx-N31<br />

Controladores com MODBUS slave “onboard” *<br />

RS232 BC8150<br />

RS485 BC8050, BC7300, BK7300, BK7350<br />

(*) O protocolo <strong>Modbus</strong> RTU já vem implementado de fábrica (“onboard”) . Não é necessário desenvolver código<br />

utilizando a livraria “<strong>Modbus</strong>RTU”<br />

(**) É possível utilizar esta livraria com a carta KL6011 (TTY - loop de corrente)<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 80


New Automation Technology<br />

Livrarias de comunicação “<strong>Modbus</strong>RTU” [5]<br />

A Livraria “<strong>Modbus</strong>RTU” poderá ser usada nas seguintes plataformas :<br />

SoftPLC TC2 em PC<br />

IPC/PCe-CX “<strong>Modbus</strong>RTU.lib”<br />

PLC em BX<br />

BX9000,BX8000, “<strong>Modbus</strong>RTU.lib”<br />

BX5x00,BX3100 “TcComPortBX.lbx” *<br />

PLC BCxx00 (old)<br />

BC9000,BC9100, “<strong>Modbus</strong>RTU.lb6”<br />

BC7300,BC3100<br />

PLC BCxx50 (new)<br />

BC9050,BC9020, “<strong>Modbus</strong>RTU.lb6”<br />

BC9120,BC8x50, ou<br />

BC5x50,BC3150 “<strong>Modbus</strong>RTU.lib”<br />

(*) Esta livraria permite parametrizar e emular uma porta de comunicação do tipo PC<br />

na <strong>COM</strong>2 dos BX´s (Ex. BX9000, BX8000, BX5200, BX5100, BX3100).<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 81


New Automation Technology<br />

Livrarias de comunicação “<strong>Modbus</strong>RTU” [6]<br />

<br />

Áreas de memoria do protocolo MODBUS<br />

Área do MODBUS Tamanho dado Tipo acesso Tipo endereço Exemplo<br />

Entradas discretas<br />

(Digital inputs)<br />

1 bit Só de leitura<br />

(read only)<br />

%I<br />

(ex. %IX0.0)<br />

Saídas discretas<br />

(Digital outputs / coils)<br />

Entradas analógicas<br />

(Input registers)<br />

1 bit Leitura e<br />

escrita<br />

(read / write)<br />

16 bit Só de leitura<br />

(read only)<br />

%Q<br />

(ex. %QX0.0)<br />

%I<br />

(ex. %IW0)<br />

Saídas analógicas<br />

(Output registers)<br />

16 bit Leitura / escrita<br />

(read / write)<br />

%Q / %M<br />

(ex. %QW0 ou %MW0)<br />

<br />

Tabela das funções operacionais do protocolo MODBUS RTU na BECKHOFF<br />

Função operacional Código da função Endereço BECKHOFF (Offset+1) Funções MODBUS<br />

Read Coils status 01%Q (1bit) %Q*0x0800 (0800+1)hex / (02049)dec<br />

Read Input status 02%I (1 bit) %I* 0x0000 (0000+1)hex / (00001)dec<br />

Read Holding Registers 03%Q,M (16bit) %Q*0x0800 (0800+1)hex / (02049)dec<br />

%M*0x4000 (4000+1)hex / (16385)dec<br />

Read Input Registers 04%I (16bit) %I* 0x0000 (0000+1)hex / (00001)dec<br />

Write Single Coil 05%Q (1bit) %Q*0x0800 (0800+1)hex / (02049)dec<br />

Write Single Register 06%Q,%M (16bit) %Q*0x0800 (0800+1)hex / (02049)dec<br />

%M*0x4000 (4000+1)hex / (16385)dec<br />

Write Multiple Coils 15%Q(1bit) %Q*0x0800 (0800+1)hex / (02049)dec<br />

Write Multiple Registers 16%Q,%M (16bit) %Q*0x0800 (0800+1)hex / (02049)dec<br />

%M*0x4000 (0400+1)hex / (16385)dec<br />

Diagnostic 08 ------------------------------<br />

NOTA : Existem outras Funções como a 20, 21, 22, 23 etc.<br />

(*) O Endereço MODBUS nos sistemas BECKHOFF, na tabela anterior, é representada em Base 1 (offset+1).<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 82


New Automation Technology<br />

Livrarias de comunicação “<strong>Modbus</strong>RTU” [7]<br />

<br />

Livraria BECKHOFF para protocolo MODBUS RTU (FB´s Master) – “<strong>Modbus</strong>RTU.lib” e “*.lb6”<br />

FB MODBUS MASTER <strong>COM</strong> Ações (Actions) Funções Bloco (FB)<br />

<strong>Modbus</strong>RtuMaster_PcCom<br />

PC-<strong>COM</strong><br />

(64 BYTE)<br />

As instancias das FB´s <strong>Modbus</strong>RtuMaster_PcCom , <strong>Modbus</strong>RtuMaster_KL6x22B ou<br />

<strong>Modbus</strong>RtuMaster_KL6x5B tem atribuídas ações (“Actions”).<br />

Essas ações correspondem às Funções MODBUS standard e são as seguintes :<br />

<br />

<strong>Modbus</strong>RtuMaster.ReadCoils<br />

<strong>Modbus</strong> function 1 = Read Coils<br />

<br />

<strong>Modbus</strong>RtuMaster.ReadInputStatus<br />

<strong>Modbus</strong> function 2 = Read Input Status<br />

<strong>Modbus</strong>RtuMaster_KL6x22B<br />

KL6031<br />

KL6041<br />

EL6001<br />

EL6002<br />

EL6021<br />

EL6022<br />

(22 BYTE)<br />

<br />

<br />

<br />

<strong>Modbus</strong>RtuMaster.ReadRegs<br />

<strong>Modbus</strong> function 3 = Read Holding Registers<br />

<strong>Modbus</strong>RtuMaster.ReadInputRegs<br />

<strong>Modbus</strong> function 4 = Read Input Registers<br />

<strong>Modbus</strong>RtuMaster.WriteSingleCoil<br />

<strong>Modbus</strong> function 5 = Write Single Coil<br />

<br />

<strong>Modbus</strong>RtuMaster.WriteSingleRegister<br />

<strong>Modbus</strong> function 6 = Write Single Register<br />

<strong>Modbus</strong>RtuMaster_KL6x5B<br />

KL6001<br />

KL6011<br />

KL6021<br />

KL6031<br />

KL6041<br />

<br />

<br />

<strong>Modbus</strong>RtuMaster.WriteMultipleCoils<br />

<strong>Modbus</strong> function 15 = Write Multiple Coils<br />

<strong>Modbus</strong>RtuMaster.Write Regs<br />

<strong>Modbus</strong> function 16 = Preset Multiple Registers<br />

(5 BYTE)<br />

<br />

<strong>Modbus</strong>RtuMaster.Diagnostics<br />

<strong>Modbus</strong> function 8 = Diagnostics<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 83


New Automation Technology<br />

Livrarias de comunicação “<strong>Modbus</strong>RTU” [8]<br />

<br />

Livraria BECKHOFF para protocolo MODBUS RTU (FB´s Master) – “<strong>Modbus</strong>RTU.lib” e “*.lb6”<br />

FB MODBUS MASTER <strong>COM</strong> VAR_INPUT / VAR_OUTPUT das FB Funções Bloco (FB)<br />

<strong>Modbus</strong>RtuMaster_PcCom<br />

<strong>Modbus</strong>RtuMaster_KL6x22B<br />

PC-<strong>COM</strong><br />

(64 BYTE)<br />

KL6031<br />

KL6041<br />

EL6001<br />

EL6002<br />

EL6021<br />

EL6022<br />

(22 BYTE)<br />

VAR_INPUT<br />

UnitID - Endereço da estação slave que pretendemos comunicar (1..247). O<br />

endereço “0” corresponde a telegramas de brodcast para respostas coletivas.<br />

Quantity - Nº de dados a ser lidos ou escritos (nº de words ou nº de bits).<br />

MBAddr - Endereço do equipamento slave que pretendemos ler / escrever<br />

os dados.<br />

cbLength - Tamanho dos dados (em bytes) a ler ou a escrever no slave. Este<br />

nº deve ser maior ou igual à quantidade de dados indicadas em Quantity [ex.<br />

cbLength >= Quantity * 2 ]. O cbLength pode ser calculado com a instrução<br />

SIZEOF(variavel)<br />

pMemoryAddr - Endereço de memoria no PLC é calculado com a instrução<br />

ADR(variavel). Nas ações de leitura os dados serão armazenados em variáveis<br />

residentes no PLC master. Nas ações de escrita os dados enviados para o<br />

slave estão guardados em variáveis no PLC master.<br />

Execute - Ordem de execução com o flanco ascendente desta entrada.<br />

Timeout - Tempo máximo que o master espera pela resposta do slave.<br />

<strong>Modbus</strong>RtuMaster_KL6x5B<br />

KL6001<br />

KL6011<br />

KL6021<br />

KL6031<br />

KL6041<br />

(5 BYTE)<br />

VAR_OUTPUT<br />

BUSY - Indica que a função bloco se encontra ativa e em execução. Esta<br />

saída passa a TRUE logo que dê inicio à execução da mesma, através da<br />

ordem de Execute. Passa a FALSE depois de completar a ação.<br />

Error - Indica que ocorreu um erro na execução da ação.<br />

ErrorId - Nº que indica o tipo de erro (ENUM “<strong>Modbus</strong>_Errors”).<br />

cbRead - Indica o nº de dados lidos.<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 84


New Automation Technology<br />

Livrarias de comunicação “<strong>Modbus</strong>RTU” [9]<br />

<br />

Livraria BECKHOFF para protocolo MODBUS RTU (FB´s Slave) – “<strong>Modbus</strong>RTU.lib e “*.lb6”<br />

FB MODBUS SLAVE <strong>COM</strong> VAR_INPUT / VAR_OUTPUT das FB Funções Bloco (FB)<br />

<strong>Modbus</strong>RtuSlave_PcCom<br />

NOTA : Esta FB só existe na<br />

livraria “<strong>Modbus</strong>RTU.lib”.<br />

(para IPC, CX e BX e BCxx50)<br />

<strong>Modbus</strong>RtuSlave_KL6x22B<br />

<strong>Modbus</strong>RtuSlave_KL6x5B<br />

PC-<strong>COM</strong><br />

(64 BYTE)<br />

KL6031<br />

KL6041<br />

EL6001<br />

EL6002<br />

EL6021<br />

EL6022<br />

(22 BYTE)<br />

KL6001<br />

KL6011<br />

KL6021<br />

KL6031<br />

KL6041<br />

(5 BYTE)<br />

VAR_INPUT<br />

UnitID - Endereço desta estação slave (1..127). O equipamento slave só<br />

responde ao pedido se o telegrama recebido tem o endereço correto.<br />

É possível ter um endereço coletivo (End. “0”, para ordem de broadcast) em<br />

que todas as estações slave respondem.<br />

AdrInputs - Endereço do começo do ARRAY das entradas (%I - <strong>Modbus</strong> input<br />

array), utilizando a instrução ADR(varivel_entrada). Terá de ser declarada<br />

uma variável do tipo ARRAY no programa do PLC.<br />

SizeInputBytes - Tamanho do ARRAY das entradas (em nº de bytes) usando<br />

a instrução SIZEOF(variável_entrada).<br />

AdrOutputs - Endereço de inicio do ARRAY das saídas (%Q -<strong>Modbus</strong> output<br />

array), utilizando a instrução ADR(varivel_saida). Terá de ser declarada uma<br />

variável do tipo ARRAY no programa do PLC.<br />

SizeOutputBytes - Tamanho do ARRAY das saídas (em nº de bytes) usando<br />

a instrução SIZEOF(variável_saida).<br />

AdrMemory - Endereço de inicio do ARRAY das memorias (%M - <strong>Modbus</strong><br />

memory array), utilizando a instrução ADR(varivel_memoria). Terá de ser<br />

declarada uma variável do tipo ARRAY no programa do PLC.<br />

SizeMemoryBytes - Tamanho do ARRAY das memorias (em nº de bytes)<br />

usando a instrução SIZEOF(variável_memoria).<br />

VAR_OUTPUT<br />

ErrorId - Nº que indica o tipo de erro (ENUM “<strong>Modbus</strong>_Errors”).<br />

NOTA - Os endereços de 248 e 257 não podem ser usados como endereços<br />

para os equipamentos <strong>Modbus</strong> Slave. Reservados para o sistema.<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 85


New Automation Technology<br />

Livrarias de comunicação “<strong>Modbus</strong>RTU” [10]<br />

<br />

Livraria BECKHOFF para protocolo MODBUS RTU (FB´s Slave) – “<strong>Modbus</strong>RTU.lib e “*.lb6”<br />

FB MODBUS SLAVE <strong>COM</strong> VAR_INPUT / VAR_OUTPUT das FB Funções Bloco (FB)<br />

<strong>Modbus</strong>RtuSlave_PcCom<br />

NOTA : Esta FB só existe na<br />

livraria “<strong>Modbus</strong>RTU.lib”.<br />

(para IPC, CX e BX e BCxx50)<br />

PC-<strong>COM</strong><br />

(64 BYTE)<br />

AREAS DE MEMORIA A DECLARAR NO PROGRAMA DO PLC ”Slave”<br />

INPUT [Funções 2,4] AdrInputs [ADR()] / SizeInputBytes [SIZEOF()]<br />

O ARRAY de Inputs , declarado no programa do PLC, permite a leitura do<br />

estado logico (bit) ou analógico (word) das entradas %I* no PLC (ou não).<br />

<strong>Modbus</strong>RtuSlave_KL6x22B<br />

KL6031<br />

KL6041<br />

EL6001<br />

EL6002<br />

EL6021<br />

EL6022<br />

(22 BYTE)<br />

OUTPUT [Funções 1,3,5,6,15,16] AdrOutputs / SizeOutputBytes<br />

O ARRAY de Outputs , declarado no programa do PLC, permite a leitura<br />

do estado logico (bit) ou analógico (word) das saidas %Q* do PLC (ou não).<br />

<strong>Modbus</strong>RtuSlave_KL6x5B<br />

KL6001<br />

KL6011<br />

KL6021<br />

KL6031<br />

KL6041<br />

(5 BYTE)<br />

MEMORY [Funções 3,6,16] AdrMemory / SizeMemoryBytes<br />

O ARRAY de Memories, declarado no programa do PLC, permite a leitura do<br />

estado logico(bit) ou analógico(word) das memorias %M* do PLC (ou não).<br />

NOTA : Nas VAR_INPUT das instancias utiliza-se as instruções ADR() e SIZE()<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 86


New Automation Technology<br />

Livrarias de comunicação “<strong>Modbus</strong>RTU” [11]<br />

<br />

Tabela das funções operacionais do protocolo MODBUS RTU Master<br />

Função operacional Código da função Endereço <strong>Modbus</strong> - Offset (Hex) / [Dec] Funções <strong>Modbus</strong> – <strong>Modbus</strong>Master.(actions)<br />

Read Coils status 01%Q (1bit) %Q*0x0800 (0x0000+0800+1) / [0x02049] <strong>Modbus</strong>Master.ReadCoils<br />

Read Input status 02%I (1 bit) %I* 0x0000 (1x0000+0000+1) / [1x00001] <strong>Modbus</strong>Master.ReadInputsStatus<br />

Read Holding Registers 03%Q,M (16bit) %Q*0x0800 (4x0000+0800+1) / [4x02049]<br />

%M*0x4000 (4x0000+4000+1) / [4x16385]<br />

<strong>Modbus</strong>Master.ReadRegs<br />

Read Input Registers 04%I (16bit) %I* 0x0000 (3x0000+0000+1) / [3x00001] <strong>Modbus</strong>Master.ReadInputRegs<br />

Write Single Coil 05%Q (1bit) %Q*0x0800 (0x0000+0800+1) / [0x02049] <strong>Modbus</strong>Master.WriteSingleCoil<br />

Write Single Register<br />

06%Q,%M<br />

(16bit)<br />

%Q*0x0800 (4x0000+0800+1) / [4x02049]<br />

%M*0x4000 (4x0000+4000+1) / [4x16385]<br />

<strong>Modbus</strong>Master.WriteSingleReg<br />

Write Multiple Coils 15%Q(1bit) %Q*0x0800 (0x0000+0800+1) / [0x02049] <strong>Modbus</strong>Master.WriteMultipleCoils<br />

Write Multiple Registers<br />

16%Q,%M<br />

(16bit)<br />

%Q*0x0800 (4x0000+0800+1) / [4x02049]<br />

%M*0x4000 (4x0000+4000+1) / [4x16385]<br />

<strong>Modbus</strong>Master.WriteRegs<br />

Diagnostic 08 ------------------------------ FB_MBDiagnose<br />

(*) O Endereço <strong>Modbus</strong> na tabela anterior é representada em Base 1 (offset+1).<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 87


New Automation Technology<br />

Controladores com MODBUS RTU Slave “Onboard” [1]<br />

<br />

Controladores BECKHOFF BC´s e BK´s com protocolo MODBUS RTU ou ASCII “onboard”<br />

MODELO TIPO PORTA TABELA DE MODBUS RTU / ASCII (endereços em Hex / Dec)<br />

BC7300 PLC RS485<br />

BC8050 PLC RS485<br />

BC8150 PLC RS232<br />

BK7300 I/O RS485<br />

RS485<br />

BK7350 I/O RS485<br />

BK8000 I/O RS485<br />

BK8100 I/O RS232<br />

RS232<br />

ILxxxx-B730 I/O RS485<br />

IP230x-B730 I/O RS485<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 88


New Automation Technology<br />

Controladores com MODBUS RTU Slave “Onboard” [2]<br />

Controladores BECKHOFF BC´s e BK´s com protocolo MODBUS RTU ou ASCII “onboard” (*)<br />

MODELO TIPO PORTA TABELA DE MODBUS RTU / ASCII (endereços em Hex / Dec)<br />

BC7300 PLC RS485<br />

BC8050 PLC RS485<br />

BC8150 PLC RS232<br />

<strong>Modbus</strong> RTU (hex / dec) Controlador BC<br />

3x00000+1 / 3x00001 [BC7300 - %QB0128]<br />

3x000FF+1 / 3x00256 [BC8x50 - %QB1000]<br />

4x00800+1 / 4x02049 [BC7300 - %IB 0128 ]<br />

4x008FF+1 / 4x02304 [BC8x50 - %IB1000 ]<br />

BK7300 I/O RS485<br />

BK7350 I/O RS485<br />

BK8000 I/O RS485<br />

BK8100 I/O RS232<br />

ILxxxx-B730 I/O RS485<br />

IP230x-B730 I/O RS485<br />

4x04000+1 / 4x16385 [BCxxxx - %MB000]<br />

4x040FF+1 / 4x16640 [BCxxxx - %MB511]<br />

(*) Só PLC´s (BC7300,BC8x50,IL230x-C730) – O tamanho dos registos no <strong>Modbus</strong> são de dois bytes (2 x %MBx)<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 89


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [1]<br />

EXEMPLO Nº01 - Programa com BC9100(<strong>Modbus</strong> Slave)+KL6031+KL9010<br />

<strong>Modbus</strong> RTU Master<br />

<strong>Modbus</strong> RTU Slave<br />

NOTA : Neste exemplo será usado o software <strong>Modbus</strong> Poll da Witte<br />

Software, a correr no PC, como <strong>Modbus</strong> RTU Master.<br />

A carta KL6031 (RS232) irá funcionar com os parâmetros de fábrica<br />

[22 bytes de dados, RTS/CTS ativo] e [Baudrate 9600, 8 bit de dados,<br />

sem bit de paridade e 1 bit de stop (9600 8N1)]<br />

KS2000<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 90


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [2]<br />

EXEMPLO Nº01 - Programa com BC9100(<strong>Modbus</strong> Slave)+KL6031+KL9010<br />

“System Manager”<br />

“Export Variable info…”<br />

1º Passo :<br />

Instalar no projeto a<br />

livraria “<strong>Modbus</strong>RTU.lb6”<br />

“PLC Control”<br />

NOTA : Ficheiro exportado do System Manager (comando “Export Variable Info…”) e que poderá ser importado<br />

no PLC Control . No KL6031-RS232 podemos ter configurações de 3, 5 e 22 (valor de defeito) bytes de dados.<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 91


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [3]<br />

EXEMPLO Nº01 - Programa com BC9100(<strong>Modbus</strong> Slave)+KL6031+KL9010<br />

=> Programa de configuração d <strong>Modbus</strong> RTU Slave “<strong>Modbus</strong>RTU_Slave( )”


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [4]<br />

EXEMPLO Nº01 - Programa com BC9100(<strong>Modbus</strong> Slave)+KL6031+KL9010<br />

=> Definição das variáveis globais Estrutura de dados


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [5]<br />

EXEMPLO Nº01 - Programa com BC9100(<strong>Modbus</strong> Slave)+KL6031+KL9010<br />

[Text] – “%i”<br />

[Variable]/[Textdisplay] –<br />

“<strong>Modbus</strong>RTU_Slave.HoldingRegs[0]”<br />

“<strong>Modbus</strong>RTU.Slave.HoldingRegs[7]”<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 94


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [6]<br />

EXEMPLO Nº01 - Programa <strong>Modbus</strong> Poll (<strong>Modbus</strong> RTU Master) instalado no PC<br />

1º Passo : “Setup”<br />

2º Passo : “Connection”<br />

End. 16384 dec<br />

NOTA : Endereços a utilizar para cada Array [0..7] do<br />

protocolo <strong>Modbus</strong> RTU Slave no PLC usando a função<br />

“03 Read Holding Registers (4x)”.<br />

Endereços com “Protocolo Address (Base0)”<br />

InputsRegs [0..7] [Address: 00000 dec]<br />

OutputsRegs [0..7] [Address: 02048 dec]<br />

HoldingRegs [0..7] [Address: 16384 dec]<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 95


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [7]<br />

EXEMPLO Nº01 - Programa <strong>Modbus</strong> Poll (<strong>Modbus</strong> RTU Master) instalado no PC<br />

Endereços com “Protocolo Address (Base0)”<br />

00000 dec<br />

Funções 2 e 4<br />

00008 dec<br />

Funções 1,3,5,6,15 e 16<br />

16384 dec<br />

Funções 3,6 e 16<br />

02048-02055 dec<br />

End.16390 dec<br />

End.16391 dec<br />

16391 dec<br />

End.16384 dec<br />

End.16389 dec<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 96


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [8]<br />

<strong>Modbus</strong>Poll.zip<br />

EX01-BCxx_KL_<strong>Modbus</strong>RTU_Slave.zip<br />

EXEMPLO Nº01 - Programa <strong>Modbus</strong> Poll (<strong>Modbus</strong> RTU Master) instalado no PC<br />

End. 16390 dec<br />

End. 16391 dec<br />

End. 16384 dec<br />

End. 16389 dec<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 97


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [9]<br />

EXEMPLO Nº02 - Programa com BC9100(<strong>Modbus</strong> Master)+KL6031+KL9010<br />

<strong>Modbus</strong> RTU Slave<br />

<strong>Modbus</strong> RTU Master<br />

NOTA : Neste exemplo será usado o software <strong>Modbus</strong> Slave da Witte<br />

Software, a correr no PC, como <strong>Modbus</strong> RTU Slave.<br />

A carta KL6031 (RS232) irá funcionar com os parâmetros de fábrica<br />

[22 bytes de dados, RTS/CTS ativo] e [Baudrate 9600, 8 bit de dados,<br />

sem bit de paridade e 1 bit de stop (9600 8N1)]<br />

KS2000<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 98


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [10]<br />

EXEMPLO Nº02 - Programa com BC9100(<strong>Modbus</strong> Master)+KL6031+KL9010<br />

“System Manager”<br />

“Export Variable info…”<br />

1º Passo :<br />

Instalar no projeto a<br />

livraria “<strong>Modbus</strong>RTU.lb6”<br />

“PLC Control”<br />

NOTA : Ficheiro exportado do System Manager (comando “Export Variable Info…”) e que poderá ser importado<br />

no PLC Control . No KL6031-RS232 podemos ter configurações de 3, 5 e 22 (valor de defeito) bytes de dados.<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 99


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [11]<br />

EXEMPLO Nº02 - Programa com BC9100(<strong>Modbus</strong> Master)+KL6031+KL9010<br />

=> Programa de configuração d <strong>Modbus</strong> RTU Master “<strong>Modbus</strong>RTU_Master( )”


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [12]<br />

EXEMPLO Nº02 - Programa com BC9100(<strong>Modbus</strong> Master)+KL6031+KL9010<br />

=> Definição das variáveis globais Estrutura de dados


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [13]<br />

EXEMPLO Nº02 - Programa com BC9100(<strong>Modbus</strong> Master)+KL6031+KL9010<br />

[Table]<br />

[Data array:] – “<strong>Modbus</strong>RTU_Master.dReadData”<br />

[Slider size:] – “8”<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 102


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [14]<br />

EXEMPLO Nº02 - Programa <strong>Modbus</strong> Slave (<strong>Modbus</strong> RTU Slave) instalado no PC<br />

End. 16384 dec<br />

1º Passo : “Setup”<br />

2º Passo : “Connection”<br />

NOTA : Endereços a utilizar para cada Array [0..7] do<br />

protocolo <strong>Modbus</strong> RTU Slave no PLC usando a função<br />

“03 Read Holding Registers (4x)”.<br />

Endereços com “Protocolo Address (Base0)”<br />

InputsRegs [0..7] [Address: 00000 dec]<br />

OutputsRegs [0..7] [Address: 02048 dec]<br />

HoldingRegs [0..7] [Address: 16384 dec]<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 103


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [15]<br />

EXEMPLO Nº02 - Programa <strong>Modbus</strong> Slave (<strong>Modbus</strong> RTU Slave) instalado no PC<br />

Endereços com “Protocolo Address (Base0)”<br />

End.16384 dec<br />

End.16391 dec<br />

End.16384 dec<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 104


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” <strong>Modbus</strong>Slave.zip EX02-BCxx_KL_<strong>Modbus</strong>RTU_Master.zip [16]<br />

EXEMPLO Nº02 - Programa <strong>Modbus</strong> Slave (<strong>Modbus</strong> RTU Slave) instalado no PC<br />

End. 16390 dec<br />

End. 16391 dec<br />

End. 16384 dec<br />

End. 16389 dec<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 105


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [17]<br />

EXEMPLO Nº03 – CP66xx(SoftPLC TC2- <strong>Modbus</strong> Master)EK1100+EL6022<br />

<strong>Modbus</strong> RTU Master<br />

NOTA : A carta EtherCAT EL6022 (RS422/RS485) irão funcionar com os parâmetros [22 bytes de dados] e [Baudrate 19,2kBaud, 8 bit de dados, sem bit<br />

paridade e 1 bit stop (19200,8N1)]. A interligação entre as duas portas <strong>COM</strong> RS485 deverá feito com um cabo de 3 fios (pino 2-3,7-8 e 5 da ficha D da EL).<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 106


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [18]<br />

EXEMPLO Nº03 – CP66xx(SoftPLC TC2- <strong>Modbus</strong> Master)EK1100+EL6022<br />

“System Manager”<br />

2º Passo :<br />

Configurar a porta <strong>COM</strong><br />

1º Passo :<br />

Scan automático do hardware<br />

NOTA : Na CP66xx não é necessário inserir os devices manualmente. É detetado automaticamente quando é efetuado o “Scan Devices”.<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 107


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [19]<br />

EXEMPLO Nº03 – CP66xx(SoftPLC TC2- <strong>Modbus</strong> Master)EK1100+EL6022<br />

Ex. CP66xx<br />

“PLC Control”<br />

3º Passo :<br />

Instalar no projeto a<br />

livraria “<strong>Modbus</strong>RTU.lib”<br />

“System Manager”<br />

NOTA : A carta RS422/RS485 EL6022 possui duas portas <strong>COM</strong> com o formato de dados de 22 bytes Inputs / 22 bytes<br />

Outputs<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 108


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [20]<br />

EXEMPLO Nº03 – CP66xx(SoftPLC TC2- <strong>Modbus</strong> Master)EK1100+EL6022<br />

=> Programa de configuração do <strong>Modbus</strong> RTU Master “PLC_<strong>Modbus</strong>Master”<br />


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” BECKHOFF_<strong>Modbus</strong>_Step-by-step_examples.zip [21]<br />

EXEMPLO Nº03 – CP66xx(SoftPLC TC2- <strong>Modbus</strong> Master)EK1100+EL6022<br />

End. 16384 dec<br />

1º Passo : “Setup”<br />

19200 Baud<br />

2º Passo : “Connection”<br />

NOTA : Para testar o programa anterior utilize o software<br />

<strong>Modbus</strong> Slave da Witte Software. No PC deverá utilizar<br />

um conversor USB/RS485<br />

Para ler os dados do slave (“dReaddata”) iremos utilizar<br />

a função “03 Read Holding Registers (4x)” no PLC.<br />

3º Passo : Dados online<br />

Endereços com “Protocolo Address (Base0)”<br />

HoldingRegs [0..7] [Address: 16384 dec / 4000 hex ]<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 110


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [22]<br />

EXEMPLO Nº04 – CP66xx(SoftPLC TC2- <strong>Modbus</strong> Slave)EK1100+EL6022<br />

<strong>Modbus</strong> RTU Slave<br />

NOTA : A carta EtherCAT EL6022 (RS422/RS485) irão funcionar com os parâmetros [22 bytes de dados] e [Baudrate 19,2k Baud, 8 bit de dados, sem bit<br />

paridade e 1 bit stop (19200,8N1)]. A interligação entre as duas portas <strong>COM</strong> RS485 deverá feito com um cabo de 3 fios (pino 2-3,7-8 e 5 da ficha D da EL).<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 111


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [23]<br />

EXEMPLO Nº04 – CP66xx(SoftPLC TC2- <strong>Modbus</strong> Slave)EK1100+EL6022<br />

“System Manager”<br />

2º Passo :<br />

Configurar a porta <strong>COM</strong><br />

1º Passo :<br />

Scan automático do hardware<br />

NOTA : Na CP66xx não é necessário inserir os devices manualmente. É detetado automaticamente quando é efetuado o “Scan Devices”.<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 112


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [24]<br />

EXEMPLO Nº04 – CP66xx(SoftPLC TC2- <strong>Modbus</strong> Slave)EK1100+EL6022<br />

Ex. CP66xx<br />

“PLC Control”<br />

3º Passo :<br />

Instalar no projeto a<br />

livraria “<strong>Modbus</strong>RTU.lib”<br />

“System Manager”<br />

NOTA : A carta RS422/RS485 EL6022 possui duas portas <strong>COM</strong> com o formato de dados de 22 bytes Inputs / 22 bytes<br />

Outputs<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 113


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [25]<br />

EXEMPLO Nº04 – CP66xx(SoftPLC TC2- <strong>Modbus</strong> Slave)EK1100+EL6022<br />

=> Programa de configuração do <strong>Modbus</strong> RTU Slave “PLC_<strong>Modbus</strong>Slave”


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” BECKHOFF_<strong>Modbus</strong>_Step-by-step_examples.zip [26]<br />

EXEMPLO Nº04 - Programa <strong>Modbus</strong> Poll (<strong>Modbus</strong> RTU Master) instalado no PC<br />

1º Passo : “Setup”<br />

2º Passo : “Connection”<br />

End. 16384 dec<br />

19200Baud<br />

NOTA : Para testar o programa anterior utilize o software<br />

<strong>Modbus</strong> Poll da Witte Software. No PC deverá utilizar<br />

um conversor USB/RS485<br />

Para ler os dados do slave (“dReaddata”) iremos utilizar<br />

a função “03 Read Holding Registers (4x)” no software.<br />

Endereços com “Protocolo Address (Base0)”<br />

HoldingRegs [0..7] [Address: 16384 dec / 4000 hex ]<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 115


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [27]<br />

EXEMPLO Nº05 - BC9100 (<strong>Modbus</strong> Master) BC9100 (<strong>Modbus</strong> Slave)<br />

<strong>Modbus</strong> RTU Master<br />

<strong>Modbus</strong> RTU Slave<br />

NOTA : As cartas KL6031 (RS232) irão funcionar com os parâmetros de fábrica [22 bytes de dados, RTS/CTS ativo] e [Baudrate 9600, 8 bit de dados, sem<br />

bit de paridade e 1 bit de stop (9600,8N1)]. A interligação entre as duas portas <strong>COM</strong> RS232 deverá feito com um cabo cruzado serie (null modem).<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 116


New Automation Technology<br />

Exemplos práticos com “<strong>Modbus</strong>RTU” [28]<br />

EXEMPLO Nº05 - BC9100 (<strong>Modbus</strong> Master) BC9100 (<strong>Modbus</strong> Slave)<br />

A executar pelos formandos<br />

NOTA : As cartas KL6031 (RS232) irão funcionar com os parâmetros de fábrica [22 bytes de dados, RTS/CTS ativo] e [Baudrate 9600, 8 bit de dados, sem<br />

bit de paridade e 1 bit de stop (9600,8N1)]. A interligação entre as duas portas <strong>COM</strong> RS232 deverá feito com um cabo cruzado serie (null modem).<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 117


New Automation Technology<br />

FIM<br />

Bresimar Automação, S.A. ( J.Andril ) 22.02.2019 118

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!