Alguem me ajuda na programação, estou tentando ligar o arduino com o elipse scada

Estou seguindo esse tutorial, http://labdegaragem.com/forum/topics/elipse-scada?xg_source=activit..., + está acusando erro na programação, me ajudem a achar o erro. Olhem ai:

#include <ModbusSlave.h>
/*
* ModBus Slave Library *Example*
* By André Sarmento Barbosa
* andre@infolink.com.br
* Check whole project at:
* http://www.diybrasil.com.br/projetos/rede-de-automaacaao-rs-485modb...
*
* History:
* I had modified original library Arduino Modbus Slave:
* http://sites.google.com/site/jpmzometa/arduino-mbrt/arduino-modbus-...
* adding:
* - Function 0x01 - Read Coils
* - Function 0x02 - Read Input Status
* - Function 0x04 - Read Input Registers
* - Function 0x05 - Write Single Coil
* - New methods for setup arrays of holding registers, input registers, coils and discrete inputs.
* - Arduino 0.22 and 1.0 support
*
* I did this example to test the new library and show integration with ScadaBR software:
* http://www.sacadabr.com.br
*
*/

/*modificação efetuada por Paulo Roberto R Falcão 32/09/2012. paulognv@yahoo.com.br
Mudei os nomes dos gergistradores do mapa de memoria ModBus para simplificar o tag qunado for configurado no Elipse Scada.
OBS: Até o momento só conseguir manipular pelo Elipse Scada o registradores do tipo Holding Register. como na Maioria dos equipamentos que se comunicam com o protocolo
ModBus RTU normalmente só é utilizado os registradores do tipo Holding Register como: controladores de temperatura ,unidades de refrigeração, balanças, ETC...
Por este motivo ainda não estudei como acessar os outros registradores pelo Elipse Scada. */


/* First step MBS: create an instance */
ModbusSlave mbs; ------------------------------------------------------------------->Esta indicando erro aki

/*REGISTRADORES DAS VARIAVEIS DO ARDUINO */
enum {
MB_40000, //A0
MB_40001, //A1
MB_40002, //A2
MB_40003, //A3
MB_40004, //A4
MB_40005, //A5
MB_40006, //PWM PIN_3
MB_40007, //PWM PIN_5
MB_40008, //PWM PIN_6
MB_40009, //PWM PIN_9
MB_40010, //PWM PIN_10
MB_40011, //PWM PIN_11
MB_40012, //Pino 2 do arduino 1= liga Led 0 desliga led.
MB_40013, //Pino 4 do arduino 1= liga Led 0 desliga led.
MB_40014, //Pino 7 do arduino 1= liga Led 0 desliga led.
MB_40015, //Pino 8 do arduino 1= liga Led 0 desliga led.
MB_40016, //Pino 12 do arduino 1= liga Led 0 desliga led.
MB_40017, //Pino 13 do arduino 1= liga Led 0 desliga led.
// Aqui você pode criar mais registradores porém o elipse demo fica limitado em 20 tags. Lembrete os registradores e tags são na verdade variaveis.
MB_REGS /* total number of holding registers on slave */
};


int regs[MB_REGS];
int ledPin = 13;

unsigned long wdog = 0; /* watchdog */
unsigned long tprev = 0; /* previous time*/

void setup()
{

/* the Modbus slave configuration parameters */

const unsigned char SLAVE = 10; /* slaveId */
const long BAUD = 115200; /* baud rate */
const char PARITY = 'n'; /* n=none; e=even; o=odd */
const char TXENPIN = 2; /* output driver enable pin */

/* Second step MBS: configure */
mbs.configure(SLAVE, BAUD, PARITY, TXENPIN);
mbs.setup_regs(regs, MB_REGS);
pinMode(ledPin, OUTPUT);

}


void loop()
{
/* Third and las step MBS: update in loop*/
if(mbs.update())
wdog = millis();
if ((millis() - wdog) > 3000);


// ********** associação dos registradores para entrada fisicas **********

regs[MB_40000] = analogRead(A0); //A0
regs[MB_40001] = analogRead(A1); //A1
regs[MB_40002] = analogRead(A2); //A2
regs[MB_40003] = analogRead(A3); //A3
regs[MB_40004] = analogRead(A4); //A4
regs[MB_40005] = analogRead(A5); //A5


analogWrite(3,regs[MB_40006]); //PWM PIN_3
analogWrite(5,regs[MB_40007]); //PWM PIN_5
analogWrite(6,regs[MB_40008]); //PWM PIN_6
analogWrite(9,regs[MB_40009]); //PWM PIN_9
analogWrite(10,regs[MB_40010]);//PWM PIN_10
analogWrite(11,regs[MB_40011]);//PWM PIN_11


digitalWrite(2, regs[MB_40012]); //Pino 2 do arduino 1= liga Led 0 desliga led.
digitalWrite(4, regs[MB_40013]); //Pino 4 do arduino 1= liga Led 0 desliga led.
digitalWrite(7, regs[MB_40014]); //Pino 7 do arduino 1= liga Led 0 desliga led.
digitalWrite(8, regs[MB_40015]); //Pino 8 do arduino 1= liga Led 0 desliga led.
digitalWrite(12, regs[MB_40016]); //Pino 12 do arduino 1= liga Led 0 desliga led.
digitalWrite(13, regs[MB_40017]); //Pino 13 do arduino 1= liga Led 0 desliga led.

}

Exibições: 878

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço