Master PLC Modbus
Il PLC Fulmatic 7 può essere utilizzato come Master Modbus, consentendo la comunicazione con uno o più dispositivi Slave Modbus. Il comando MASTER viene utilizzato per inviare e ricevere dati tramite la porta seriale. Questo comando invia prima i dati e poi attende una risposta. Per ulteriori informazioni, consultare la pagina di aiuto relativa al comando Master nel programma Speed PLC.
Per ulteriori informazioni sul protocollo Modbus, fare clic qui.
Se desideri comunicare con un singolo dispositivo, la procedura è estremamente semplice. Puoi vedere un esempio di codice nell'immagine qui sotto.

- La comunicazione viene avviata stabilendo una configurazione Q 500.0. Il comando master invia 8 byte di dati dall'indirizzo D1.B0 attraverso la porta seriale.
- Quando inizia la trasmissione, il bit Busy diventa F 100.2 True.
- Il bit Sent diventerà F 100.1 True al termine della trasmissione.
- Dopo aver impostato il bit SENT su True, è necessario ricevere una risposta entro il periodo di timeout T.MSec. Se non viene ricevuta alcuna risposta, la stessa query viene inviata nuovamente.
- Quando viene ricevuta una risposta, il bit Done diventa F 100.0 True.
- Quando il bit Done è impostato su True nella seconda riga di codice, T0 inizia a essere eseguito per reinviare la stessa query. Al termine del tempo impostato, il bit Done viene impostato su False.
- Nel ciclo successivo, se l'istruzione Master mostra False per il bit Done, viene inviata di nuovo. In questo modo, il processo continua indefinitamente.
- La comunicazione viene interrotta impostando il bit Q 500.0 su False.
Nel nostro codice di esempio, i dati inviati sono 8 byte a partire da B0 nel blocco dati 1.

Per informazioni sulla struttura delle query Modbus, visitare il sito https://www.fultek.com.tr/modbus-iletisimi/ . Nel nostro esempio, volevamo leggere 2 registri dall'indirizzo zero (30001 o 300001) nella tabella degli ingressi analogici del dispositivo slave. La risposta del dispositivo slave che riceve questa query è mostrata di seguito.

Nei valori 1 e 2, potete vedere i dati che vogliamo leggere dal dispositivo.
Lettura da tre dispositivi slave tramite PLC.
In questo esempio, abbiamo collegato tre dispositivi slave al PLC tramite RS485. Leggeremo questi dispositivi in sequenza utilizzando Modbus RTU. Per questo processo, abbiamo preparato un codice simile a quello sopra riportato per tutti e tre i dispositivi.

- Come mostrato nella Rete 1, se i bit Q 500.0, Q 500.1 e Q 500.2 sono tutti Falsi, allora Q 500.0 viene impostato su Vero. Questo avvia la comunicazione dal primo dispositivo.
- Ora esaminiamo la seconda rete. Dobbiamo eseguire un'operazione diversa rispetto a quella effettuata con il singolo dispositivo. Dovremmo provare a leggere il primo dispositivo e, indipendentemente dal risultato, passare al dispositivo successivo. Una lettura riuscita è indicata dal bit Done F 100.0 impostato su True. Un errore è indicato dal timer T 100 che va in overflow, ovvero è impostato su True.
- L'istruzione master ha un timeout di 250 ms, mentre T100 è di 200 ms. Pertanto, il timeout di T100 scadrà prima che l'istruzione master tenti di reinviare la query. Se il bit Done è impostato su True durante questo intervallo di tempo, il sistema si riavvierà prima della scadenza del timeout di T100.
- Nella seconda riga, quando la risposta viene ricevuta correttamente, utilizziamo il timer T 200 per creare un ritardo di 50 ms prima di avviare la comunicazione con il dispositivo successivo.
- Nella terza e quarta riga, la comunicazione con il Dispositivo 1 viene disattivata e viene abilitata la comunicazione con il Dispositivo 2.
- Nell'ultima cella, il comando RS (Reset Set) è impostato su False se la lettura Q 600.0 ha esito positivo e su True in caso contrario. Ciò consente di identificare i dispositivi con cui non è possibile comunicare.
- È possibile visualizzare il codice per il secondo e il terzo dispositivo nella terza e quarta rete, che sono simili alla seconda rete. È possibile accedere a questo progetto da qui. https://www.fultek.com.tr/Download/Modbus_3_Station È possibile scaricare.
Lettura da 14 dispositivi slave tramite PLC.
In teoria, una singola linea RS485 potrebbe supportare 255 dispositivi. In pratica, ciò non sarebbe possibile. In questo esempio, invece di scrivere un codice separato per ogni dispositivo, abbiamo scritto un unico codice e lo abbiamo utilizzato per leggere i dati di tutti i dispositivi.

- Questo codice è una versione rivista del codice spiegato negli esempi precedenti, progettata per comunicare in sequenza con tutte le stazioni.
- Il nostro codice invia una query a una stazione. In caso di errore, la query viene inviata alla stessa stazione altre tre volte e si passa alla stazione successiva. Il numero di volte in cui la query viene inviata in caso di errore è determinato dal comando FB 109 > 2 all'intersezione tra la riga 4 e la colonna 4. Se la lettura ha esito positivo, si prosegue con la stazione successiva.
- Il byte 0 del blocco dati 1 (D1.B0) rappresenta l'indirizzo della stazione nella query inviata. All'interno del codice, l'indirizzo della stazione viene incrementato utilizzando il comando INC_UI (Incrementa) per leggere l'altro dispositivo. Quando l'indirizzo della stazione incrementato supera l'indirizzo massimo possibile di 14, viene impostato l'indirizzo minimo possibile, ovvero 1.




- Puoi vedere i byte che abbiamo inviato nel blocco dati 1. Il byte 0 è l'indirizzo della stazione, che è diverso per ogni dispositivo.
- Il blocco dati 2 contiene le risposte del dispositivo slave. Il valore 1 e il valore 2 sono i valori letti. Questi valori, letti dal codice PLC, vengono trasferiti alla posizione designata per la stazione corrispondente nel blocco dati 4. Per questa operazione nel codice PLC viene utilizzato il comando FIELD_W.
- Il blocco dati 3 indica gli errori di comunicazione tra i dispositivi. Il suo valore è 0 in caso di comunicazione riuscita e 1 in caso di errore.
- Questo codice PLC https://www.fultek.com.tr/Download/Modbus_14_Station buradan indirebilirsiniz.

Un commento