Modbus Rtu
De Wikiplenix
O mestre interno que executa comandos modbus recebe como parâmetro no arquivo ini os nomes dos dispositivos escravos. Cada escravo tem um identificador, uma lista de comandos, a frequência que os comandos são executados e o tempo de resposta máximo para execução dos comandos. Cada comando tem a pergunta modbus que será executada, uma lista numerada de sensores que é respeitada na execução, tempo de resposta máximo e o estado que os códigos de erro geram.
Abaixo segue um exemplo:
# lista de escravos: cada escravo possui uma seção abaixo slaves=ims_rtu1,ims_rtu2 [ims_rtu1] # regra para o nome da rtu, 'slave' usa o que esta definido nesta seção, # 'transport' usa o que veio pela autenticação # e não definido usa o padrão auto gerado myname_rule=slave # id do escravo em hexa-decimal slave_id=01 # lista de comandos a serem executados: cada comando possui uma seção abaixo commands=cmd_1,cmd_2 #tempo de resposta em segundos timeout=200 #frequencia em segundos frequency=300 [ims_rtu2] # id do escravo em hexa-decimal slave_id=01 # lista de comandos a serem executados commands=cmd_1 # tempo de resposta em segundos timeout=200 # frequencia em segundos frequency=300 [cmd_1] # pergunta modbus sem o id do escravo query=0400000008 # ordem=nome do sensor,tipo do valor,endian (numero maximo de sensores = 100) # tipo do valor: short, byte, int, ieee754 1=Vm,ieee754,big 2=Vr,ieee754,big 3=Vs,ieee754,big 4=Vt,ieee754,big 5=Im,ieee754,big 6=Ir,ieee754,big 7=Is,ieee754,big 8=It,ieee754,big #tempo de resposta em segundos timeout=200 # error_id=fatal|warning|error error_03=fatal [cmd_2] # pergunta modbus sem o id do escravo query=04000c000d # ordem=nome do sensor,tipo do valor,endian (numero maximo de sensores = 100) # tipo do valor: short, byte, int, ieee754 1=Pm,ieee754,big 2=Pr,ieee754,big 3=Ps,ieee754,big 4=Pt,ieee754,big 5=Qm,ieee754,big 6=Qr,ieee754,big 7=Qs,ieee754,big 8=Qt,ieee754,big 9=Sm,ieee754,big 10=Sr,ieee754,big 11=Ss,ieee754,big 12=St,ieee754,big 13=frequencia,ieee754,big #tempo de resposta em segundos timeout=200 # error_id=fatal|warning|error error_03=fatal