Arduino Uno e inverter Aurora

Salve,

sto cercando di connettere via RS485 una scheda arduino Uno all’inverter fotovoltaico Aurora che ho installato per il mio impianto fotovoltaico a casa.
Per la connessione dei dispositivi ho usato lo schema di cui al link di seguito.

http://www.google.it/imgres?imgurl=http://dereenigne.org/wp-content/uploads/modbus.png&imgrefurl=http://dereenigne.org/tag/max485&h=1020&w=709&sz=107&tbnid=1vw70snqz-HqJM:&tbnh=90&tbnw=63&zoom=1&usg=__rDlciuXalz96qcTZQW3sPPKWOVw=&docid=oN62DW03Eq9oSM&hl=it&sa=X&ei=fqjoUMjiAemr4ASxlYC4BA&ved=0CDcQ9QEwAA&dur=4797

Quindi collego il GRD di arduino al GRD dell’inverter, i pin TX e RX di Arduino alle corrispondenti uscite dell’inverter e il PIN 2 per la trasmissione del messaggio.

Per quanto riguarda i messaggi, il formalismo accettato dall’inverter Aurora è quello delle immagini in allegato: trasmissionMessage.jpg e receivingMessage.jpg rispettvamente di 10 byte e 8 byte

Per quanto riguarda il codice in Arduino io mi sto orientando sul seguente:

byte            RFin_bytes[9];

#define  pinTx    01
#define  pinRx    00


#include <NewSoftSerial.h>
  

void setup() 
{
   pinMode(pinTx,OUTPUT);
   pinMode(pinRx,OUTPUT);
   digitalWrite(pinTx,HIGH);
   digitalWrite(pinRx,LOW);
   pinMode(2,OUTPUT);
   Serial.begin(9600);
}

void sendMSG(byte address,byte command,byte b2,byte b3,byte b4,byte b5,byte b6,byte b7,byte crc_l,byte crc_h)
{
  Serial.write(12345);
//Generic command call 
  Serial.write(command);
  Serial.write(b2);
  Serial.write(b3);
  Serial.write(b4);
  Serial.write(b5);
  Serial.write(b6);
  Serial.write(b7);
  Serial.write(crc_l);
  Serial.write(crc_h);
  delay(100);
//After trasmission PinTx is set LOW
  digitalWrite(pinTx,LOW);
}








void loop() 
{
  delay(500);
  digitalWrite(pinTx,HIGH);    
//Inizio la trasmissione delle richiesta all'inverter Aurora
  if (pinTx==HIGH)
  {
//Invio richiesta STATO Inverter 
    pinMode(2,OUTPUT);
    sendMSG(12345,50,0,0,0,0,0,0,1,2);
    delay(50);
//Predispongo per ricezione risposta da inverter
    pinMode(2,INPUT);
    while (Serial.available()<8) {} // Wait 'till there are 9 Bytes waiting
    for(int n=0; n<8; n++)
    {
       RFin_bytes[n] = Serial.read(); // Then: Get them.  
//A questo punto si tratta di riconoscere con degli if then quale sia il msg ricevuto -- codice da definire
    }
  }  
//Invio richiesta stato Measure request DSP
    pinMode(2,OUTPUT);
    sendMSG(12345,59,0,0,0,0,0,0,1,2);
    delay(50);
    pinMode(2,INPUT);
    while (Serial.available()<8) {} // Wait 'till there are 9 Bytes waiting
    for(int n=0; n<8; n++)
    {
       RFin_bytes[n] = Serial.read(); // Then: Get them.  
//A questo punto si tratta di riconoscere con degli if then quale sia il msg ricevuto -- da definire
    }
}

Quindi come si vede avrei intenzione di lanciare il msg sul BUS RS485, attendere il ritorno dall’inverter e successivamente riconoscerne il ritorno.

Qualcuno ha indicazioni o suggerimenti a riguardo?

Grazie,
saluti

receivingMessage.jpg