L’ACE con 2 porte seriali può essere utilizzato come gateway seriale. Tuttavia, questo può funzionare tra 1 porta USB (Slave Modbus) e 1 porta seriale ASCII.

Se si desidera, ad esempio, convertire un messaggio seriale di un apparecchio che include dati in un altro apparecchio seriale con gli stessi dati.

Questo può essere utilizzato con diverse velocità e parametri di parità.

Per questa operazione è necessario disporre di un PLC ACE con 2 porte RS232 o RS485.

È necessario collegare ogni porta seriale ai dispositivi.

Da RX a TXTX
a RXGND
a GND

Aggiungi il programma GatewaySerialSub al tuo ACE con vBuilder.

Questo programma è per la versione ACE 7096x. Controllare la versione nel “Setup Hardware”. Modificarlo se necessario.

È inoltre necessario configurare la porta seriale come “Custom type”  e tutti gli altri parametri a seconda delle configurazioni delle proprie apparecchiature.

ovvero

Come fa il programma di lavoro?

Il programma è una subroutine chiamata “SerialA1toA2”.

Nel programma principale, chiamiamo questa subroutine ad ogni ciclo di programma.

NbMess.Processed” (nel programma principale) e “NbMessagReceived(nella subroutine) è il numero di messaggi elaborati. E’ solo per informazione.

Nel nostro caso, la lunghezza del messaggio ricevuto è 14. La lunghezza del messaggio inviato è 42. È necessario regolare questi valori per la propria applicazione in base alla lunghezza dei messaggi.

I tag “ReceivedArray” e “SendArray” sono array di dimensioni rispettivamente 14 e 42.

I valori nei tag array devono essere in decimale. Vedere https://en.wikipedia.org/wiki/ASCII

Nella subroutine, si ha uno stato diverso:

  • Stato 0: Apriamo e ascoltiamo la porta seriale A1.
  • Stato 1: Controlliamo se arriva un messaggio. Se dopo “MyTimer” non arriva nulla, riapriamo la porta seriale (Stato 0).
  • Stato 2: Il messaggio dalla porta A1 è già in “ReceivedArray”. Creiamo il nuovo messaggio e lo inviamo alla porta seriale A2.

In questo esempio sotto, il nuovo messaggio inviato (“SendArray”) contiene i valori di fixe e i valori della “ReceivedArray”.

  • Stato 3: Una volta che il messaggio viene inviato alla porta seriale A2, aumentiamo il numero di messaggi ricevuti e torniamo ad ascoltare (Stato 0)

Risultato

In questa immagine sotto, possiamo vedere il valore “+1234567” dal modulo “ReceivedArray” copiato in “SendArray”