Come possiamo aiutarti?

Print

ACE come unità di espansione I/O: Tabella di scambio con gli slave

 

Alcuni ACE dispongono di una porta seriale RS232 e/o RS485. Per questa operazione è necessario disporre di 2 PLC ACE con una porta seriale libera.

Nei PLC ACE Slave e Master

Collegare ciascun ACE tramite la porta seriale
  • RS232
    • R (RX) <> T- (TX)
    • T (RX) <> R- (TX)
    • GND <> GND
  • RS485
    • R <> R
    • T- <> T-
    • GND <> GND
Rete multidrop per RS232

Per soli 2 ACE via RS232, è molto semplice: RX <> TX, TX <> RX e GND <> GND

Per più di 2 ACE su RS232 (non RS485), è possibile! Basta aggiungere 1 diodo su ciascun pin TX dello slave

Configurare la porta seriale come “Tipo personalizzato” e selezionare la modalità giusta RS232 o RS485 per gli ACE-1430/1450
  • RS232/485, tipo personalizzato, 9600 bds, nessuna parità e 1 bit di stop.

Per questo è necessario tornare a “Setup Hardware” nell’angolo in alto a sinistra del software vBuilder (icona verde o blu).

o

Scaricare le subroutine per il master e gli slave e aggiungerle ai PLC ACE

Scarica:

Aggiungerle a ciascun PLC ACE selezionando uno dei file .viofs Aggiungi una subroutine

Master

Slave
Numero di slave e dimensione della tabella di scambio

Le subroutine del master consentono di scambiare tag ui16 con ogni slave.

È necessario scegliere:

  • il numero di slave
  • la dimensione della tabella di scambio ui16.

Per impostazione predefinita, la subroutine può gestire 5 slave con 10 tag per slave (5 in lettura e 5 in scrittura)

Inoltre, ricordarsi di aumentare o diminuire la dimensione delle tabelle per ciascun tag, se necessario (vedere “Tag” nel programma Master e Slave)

  • ui16 deve essere impostato a 5 (lunghezza 5 = tag da 0 a 4) per ottenere 5 * ui16 nella tabella di scambio
  • I tag dell’array DataRead e DataWritten (ui8) devono essere impostati a 5*2 1 = 11 per ottenere 5 * ui16 nella tabella di scambio
    • Esempio: 10 ui16 nella tabella di scambio significa 21 ui8 di dimensione dell’array per DataRead e DataWritten
  • I tag RWrite* e RRead* dello slave non utilizzati possono essere eliminati

Slave ACE PLC: scrivere un programma di prova

In “Toolbox”, aggiungere una subroutine e selezionare la subroutine SlaveRemoteIO

Come funziona:

  • LocalWriteUI16[ ] è un array di tag ui16 di dimensioni 5
    • LocalWriteUI16[0] è il tag numero 0 scritto dal master
    • LocalWriteUI16[4] è il tag numero 4 scritto dal master
  • LocalReadUI16[ ] è un array di tag ui16 di dimensione 5
    • LocalReadUI16[0] è il tag numero 0 letto dal master (inviato al master)
    • LocalReadUI16[4] è il tag numero 4 letto dal master (inviato al master)

Nel programma di prova, invieremo al master il valore ricevuto dal master (vedere lo strumento “Copy”)!

Quindi, copiamo i valori

  • LocalWriteUI16[0] al valore LocalReadUI16[0] al tag
  • LocalWriteUI16[1] al tag LocalReadUI16[1] al tag

Master ACE PLC: scrivere un programma di prova

In “Toolbox”, aggiungere una subroutine e selezionare la subroutine ReadWriteToSlave

Come funziona:

  • RWriteUI16Slave1[ ] è un array di tag ui16 di dimensione 5
    • RWriteUI16Slave1[0] è il tag numero 0 da scrivere nello slave 1
    • RWriteUI16Slave1[4] è il tag numero 4 da scrivere nello slave 1
    • RWriteUI16Slave2[0] è il numero di tag 0 da scrivere nello slave 2
  • RReadUI16Slave1[ ] è un array di tag ui16 di dimensione 5
    • RReadUI16Slave1[0] è il tag numero 0 da leggere nello slave 1
    • RReadUI16Slave2[3] è il tag numero 3 da leggere nello slave 2

Nel programma di prova, invieremo alcuni valori a ogni slave (vedere lo strumento “Copy”)!

Quindi, copiamo i valori

  • Tag 0 dello slave 1 = 10000
  • Tag 1 dello slave 1 = 10001
  • Tag 0 dello slave 2 = 20000
  • Tag 1 dello slave 2 = 20001

E controlliamo se i valori ricevuti dagli slave sono gli stessi (dato che i valori sono copiati da ogni slave ACE)

Osservazioni

eACE/ACE con 2 porte RS232 (7096, 7092,…)

Se si utilizza un ACE con 2 porte RS232, utilizzare la porta A1.
Se si desidera utilizzare la porta A2 (personalizzata in “Setup Hardware”), controllare e confermare con [ OK ] il popup in “Port A2 SEND” e “Port A2 RECEIVE” (vedere “Subroutine” “ReadWriteToSlave”)

Avvertenze nel nostro programma: Sì, è normale che vengano visualizzati questi avvisi, ci sono alcuni strumenti di “Copia” per la modalità di debug (visualizzazione dei valori in modalità di debug).
È possibile rimuoverli.

Copiare i bit di ingresso/uscita o i bit di registro

Utilizzare lo strumento “Copy” in modalità“Pack” per copiare tutti gli stati di uscita remota in 1 tag ui16
È anche possibile utilizzare lo strumento“Unpack” per estrarre tutti gli stati di ingresso remoto dal tag ui16

Copia di un’unità a virgola mobile in 2 * UI16

Convertire un I32 in 2 * UI16, quindi riconvertire 2 * UI16 in i32