Código de Controle Ethernet Modbus
Código de Controle Ethernet Modbus
h>
#include <Ethernet.h>
#include "MgsModbus.h"
MgsModbus Mb;
int inByte = 0; // byte serial de entrada
void setup()
{
// configuração serial
[Link](9600);
Interface serial iniciada
// endereço do escravo
[Link] = (192,168,0,1);
// Preencher MbData
// [Link](0,falso);
[Link][0] = 1;
[Link][1] = 2;
[Link][2] = 3;
[Link][3] = 4;
[Link][4] = 5;
[Link][5] = 6;
[Link][6] = 0;
[Link][7] = 0;
[Link][8] = 0;
[Link][9] = 0;
[Link][10] = 0;
[Link][11] = 0;
// imprimir MbData
para (int i=0;i<12;i++) {
[Link]("endereço: "); [Link](i); [Link]("Dados: ");
[Link]([Link][i]);
}
// imprimir menu
[Link]("0 - imprime as 12 primeiras palavras do espaço MbData");
[Link]("1 - FC 1 - lê as primeiras 5 bobinas do escravo e armazena")
eles no byte inferior de MbData[1]
2 - FC 2 - leia os primeiros 5 inputs discretos do escravo
e armazená-los no higer do MbData[1]
3 - FC 3 - leia os primeiros 5 registros do escravo e
armazená-los em MbData[3..7";
4 - FC 4 - leia os primeiros 5 registros de entrada do escravo
e armazená-los em MbData[8..12]
5 - FC 5 - escreva a bobina 0 do escravo com o valor do bit de
MbData[0.0]
[Link]("6 - FC 6 - escrever o registro 0 do escravo com MbData[2]");
7 - FC 15 - escrever 5 bobinas do escravo começando com a bobina 0
com GetBit(16..20";
8 - Fc 16 - escrever 5 registradores do escravo começando em
registre 0 com MbData[0..4]";
[Link]([Link]);
}
void loop()
{
se ([Link]() > 0) {
// obter byte de entrada:
inByte = [Link]();
if (inByte == '0') { // print
MbDados
for (int i=0;i<12;i++) {
[Link]("endereço: "); [Link](i); [Link]("Dados: ");
[Link]([Link][i]);
}
}
se (inByte == '1') {[Link](MB_FC_READ_COILS, 6,6,6);}
1 // ref, count, pos
se (inByte == '2') {[Link](MB_FC_READ_DISCRETE_INPUT, 6,6,6);} // 2
se (inByte == '3') {[Link](MB_FC_READ_REGISTERS, 6,6,6);} // 3
if (inByte == '4') {[Link](MB_FC_READ_INPUT_REGISTER, 6,6,6);} // 4
se (inByte == '5') {[Link](MB_FC_WRITE_COIL, 0,0,0);}
5 // a contagem pode ser x
if (inByte == '6') {[Link](MB_FC_WRITE_REGISTER, 7,0,0);} //
6 // a contagem pode ser x
se (inByte == '7') {[Link](MB_FC_WRITE_MULTIPLE_COILS, 0,6,0);} // 15
se (inByte == '8') {[Link](MB_FC_WRITE_MULTIPLE_REGISTERS, 0,6,0);} // 16
}
[Link]();
// [Link]();
}
#include <SPI.h>
#include <Ethernet.h>
#include "MgsModbus.h"
MgsModbus Mb;
int inByte = 0; // byte serial de entrada
void setup()
{
// configuração de serial
[Link](9600);
Interface serial iniciada
// endereço do escravo
[Link] = (192,168,0,1);
// Preencher MbData
// [Link](0,falso);
[Link][0] = 1;
[Link][1] = 2;
[Link][2] = 3;
[Link][3] = 4;
[Link][4] = 5;
[Link][5] = 6;
[Link][6] = 0;
[Link][7] = 0;
[Link][8] = 0;
[Link][9] = 0;
[Link][10] = 0;
[Link][11] = 0;
// imprimir MbData
para (int i=0; i<12; i++){
[Link]("endereço: "); [Link](i); [Link]("Dados: ");
[Link]([Link][i]);
}
// imprimir menu
[Link]("0 - imprima as primeiras 12 palavras do espaço MbData");
1 - FC 1 - ler as primeiras 5 bobinas do escravo e armazenar
eles no byte inferior de MbData[1]
2 - FC 2 - leia os primeiros 5 entradas discretas do escravo
e armazená-los no higer do MbData[1]
3 - FC 3 - leia os primeiros 5 registros do escravo e
store them in MbData[3..7");
4 - FC 4 - leia os primeiros 5 registros de entrada do escravo
e armazená-los em MbData[8..12]
5 - FC 5 - escrever bobina 0 do escravo com o valor do bit de
MbData[0.0]
[Link]("6 - FC 6 - escrever o registro 0 do escravo com MbData[2]");
7 - FC 15 - escrever 5 bobinas do escravo começando com a bobina 0
com GetBit(16..20";
8 - Fc 16 - escrever 5 registradores do escravo começando em
registre 0 com MbData[0..4]
[Link]([Link]);
}
void loop()
{
se (Serial disponível() > 0) {
// obter byte de entrada:
inByte = [Link]();
se (inByte == '0') { // imprimir
MbData
para (int i=0;i<12;i++) {
[Link]("endereço: "); [Link](i); [Link]("Dados: ");
[Link]([Link][i]);
}
}
se (inByte == '1') {[Link](MB_FC_READ_COILS, 6,6,6);} //
1 // ref, count, pos
se (inByte == '2') {[Link](MB_FC_READ_DISCRETE_INPUT, 6,6,6);} // 2
se (inByte == '3') {[Link](MB_FC_READ_REGISTERS, 6,6,6);} // 3
se (inByte == '4') {[Link](MB_FC_READ_INPUT_REGISTER, 6,6,6);} // 4
se (inByte == '5') {[Link](MB_FC_WRITE_COIL, 0,0,0);} //
5 // a contagem pode ser x
se (inByte == '6') {[Link](MB_FC_WRITE_REGISTER, 7,0,0);} //
6 // a contagem pode ser x
se (inByte == '7') {[Link](MB_FC_WRITE_MULTIPLE_COILS, 0,6,0);} // 15
se (inByte == '8') {[Link](MB_FC_WRITE_MULTIPLE_REGISTERS, 0,6,0);} // 16
}
[Link]();
// [Link]();
}