Prototipagem
Tenho algumas novidades, consegui montar uma aplicação onde o SCADABR controla o Arduino como um escravo MODBUS. Ainda não consegui fazer funcionar em RS485, mas apenas pela serial. Não sei se é o meu adaptador rs485 que não responde ou se é um bug no código do escravo.
Então vamos por partes, abaixo está o código que está rodando no arduino, vejam que eu traduzi um dos exemplos da biblioteca e acrescentei os registros de para as entradas analógicas e para os pinos digitais, que neste caso coloquei como saídas.
Observem a matriz onde são enumerados os registros, no SCADABR vamos configurar os holding registers na mesma sequencia.
/* Modbus serial - RTU Slave Arduino Sketch Marcos Daniel Wiechert wiechertdaniel@yahoo.com.br Baseado na biblioteca de Juan Pablo Zometa : jpmzometa@gmail.com http://sites.google.com/site/jpmzometa/ and Samuel Marco: sammarcoarmengol@gmail.com and Andras Tucsni. As funções do protocolo MODBUS implementadas neste código: 3 - Read holding registers; 6 - Preset single register; 16 - Preset multiple registers. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The functions included here have been derived from the Modicon Modbus Protocol Reference Guide which can be obtained from Schneider at www.schneiderautomation.com. This code has its