Questo articolo illustra come stabilire una comunicazione Modbus RTU tra un PLC Siemens S7-1200 e un servoazionamento STEPPERONLINE della serie A6-RS.
Scenario applicativo: Il PLC S7-1200 funge da master Modbus RTU, mentre il servoazionamento A6-RS funge da slave. Il PLC legge la tensione del bus CC dal servoazionamento.
Prerequisiti
Preparare i seguenti elementi prima di iniziare:
- PLC S7-1200: CPU 1215C DC/DC/DC
- Un qualsiasi servomotore della serie A6-RS
- Un cavo di comunicazione RS-485
Procedura
1. Impostare i parametri del servoazionamento
Configurare i seguenti parametri sul servoazionamento A6-RS:
| Parametro | Valore | Descrizione |
|---|---|---|
| C0A.00 | 1 | Indirizzo slave Modbus |
| C0A.01 | 7 | Baud rate Modbus |
| C0A.02 | 0 | Formato di comunicazione Modbus |
2. Configurare il modulo di comunicazione Modbus RTU

3. Abilitare la memoria di sistema
Nell'albero del progetto, selezionare PLC_1, fare clic con il pulsante destro su Proprietà, accedere a Memoria di sistema e memoria clock, quindi spuntare Abilita l'uso del byte di memoria di sistema.

4. Richiamare l'istruzione MB_COMM_LOAD
Aprire il blocco Main (OB1). Nel riquadro Istruzioni, accedere a Comunicazione → Processore di comunicazione → Modbus, quindi trascinare l'istruzione MB_COMM_LOAD in un segmento di programma, come mostrato di seguito:

5. Creare i buffer di invio e ricezione dati
Nell'albero del progetto, selezionare Aggiungi nuovo blocco → Blocco dati (DB) → OK, come mostrato di seguito.
Dopo aver aggiunto il nuovo blocco dati, disabilitare l'opzione Accesso al blocco ottimizzato e definire le aree del buffer di invio e ricezione dati.

6. Richiamare l'istruzione MB_MASTER
Aprire il blocco organizzativo Main (OB1). Nel riquadro Istruzioni, accedere a Comunicazione → Processore di comunicazione → Modbus, quindi trascinare l'istruzione MB_MASTER in un segmento di programma, come mostrato di seguito:

Configurare i parametri dell'istruzione come segue:
- MB_ADDR: Impostare su 1 (l'indirizzo slave configurato al punto 1).
- MODE: Impostare su 0 (modalità lettura).
- DATA_ADDR: Impostare su 16#4006 per leggere il registro U40.06 (tensione del bus CC). Utilizzare l'indirizzo diretto del registro; non aggiungere l'offset 40001 tipicamente utilizzato nell'indirizzamento Modbus.
7. Eseguire il programma
Monitorare il valore di U40.06 nel programma PLC. I dati ricevuti sono in formato esadecimale; convertirli in decimale e confrontarli con il valore U40.06 visualizzato sul servoazionamento A6-RS per verificarne la correttezza.