Sei sulla pagina 1di 74

SYSMATE SYSMOD

MANUALE OPERATIVO

OMRON
ã OMRON, 1997

Tutti i diritti sono riservati. Nessuna parte di questo manuale può essere riprodotta o
trasmessa con qualsiasi mezzo senza il permesso di Omron Electronics Srl.

Questo manuale è stato realizzato con la massima cura. Comunque Omron non assume alcuna
responsabilità per eventuali errori od omissioni. Inoltre per il continuo miglioramento dei
propri prodotti Omron si riserva il diritto di modificare, senza alcun preavviso, il contenuto
del presente manuale.

Omron Electronics, Servizi di Marketing.


Milano, Maggio 1997
Indice

Indice

1 - Introduzione...........................................................................................................................

2 - Contenuto del dischetto.........................................................................................................

3 - Interfaccia MODBUS Master/Slave per modulo C200H-ASC02.....................................


3.1 Introduzione..........................................................................................................................................................
Comandi supportati................................................................................................................................................
3.2 Installazione..........................................................................................................................................................
Caricamento della routine ASSEMBLER..............................................................................................................
Caricamento del BASIC.........................................................................................................................................
3.3 Utilizzo del programma........................................................................................................................................
Struttura della Lista di Polling..............................................................................................................................
Modifica dell'indirizzo Slave dell' ASC02.............................................................................................................
Impostazione delle porte seriali.............................................................................................................................
Avvio del programma.............................................................................................................................................
Uso dei comandi a evento......................................................................................................................................
3.4 Esempi di utilizzo.................................................................................................................................................
Inibizione della funzione MASTER........................................................................................................................
Interrogazione di uno slave su più registri............................................................................................................
Interrogazione di più Slave....................................................................................................................................
Invio di un Frame Urgente....................................................................................................................................
3.5 Flags di stato.........................................................................................................................................................
3.6 Tempi di comunicazione......................................................................................................................................
4 - Interfaccia MODBUS Master per PLC C200HS e CQM1 CPU 4x..................................
4.1 Introduzione..........................................................................................................................................................
4.2 Configurazione richiesta.......................................................................................................................................
4.3 Installazione..........................................................................................................................................................
Nota per l’utilizzo con i PLC C200H a..................................................................................................................
Selezione della porta seriale (solo C200HS/H a)..................................................................................................
Configurazione delle porte seriali.........................................................................................................................
Tabelle per impostazione del protocollo e della velocità.....................................................................................
Impostazione del Timeout......................................................................................................................................
Ritardo sul Polling.................................................................................................................................................
4.4 Utilizzo della subroutine......................................................................................................................................
Struttura della Lista di Polling..............................................................................................................................
Avvio della subroutine...........................................................................................................................................
Uso dei comandi a evento......................................................................................................................................
Flags di stato..........................................................................................................................................................
4.5 Esempi di utilizzo.................................................................................................................................................
Interrogazione di uno slave su più registri............................................................................................................
Interrogazione di più Slave....................................................................................................................................
Invio di un Frame Urgente....................................................................................................................................
Uso contemporaneo di due tabelle........................................................................................................................
Controllo degli errori di comunicazione...............................................................................................................
4.6 Occupazione di memoria e allocazione di bit e canali........................................................................................
4.7 Tempi di comunicazione......................................................................................................................................
Configurazione in prova........................................................................................................................................
Tempi di aggiornamento........................................................................................................................................
5 - Interfaccia MODBUS Slave per PLC C200HS e CQM1 CPU 4x.....................................
5.1 Introduzione..........................................................................................................................................................
5.2 Configurazione richiesta.......................................................................................................................................
5.3 Installazione..........................................................................................................................................................

OMRON Electronics iii


Indice

Configurazione della porta seriale........................................................................................................................


Impostazione dell'indirizzo di nodo.......................................................................................................................
Impostazione dell'interrupt schedulato (solo C200HS/H a)..................................................................................
5.4 Utilizzo della subroutine......................................................................................................................................
Avvio della subroutine...........................................................................................................................................
Accesso alla memoria del PLC..............................................................................................................................
Flags di stato..........................................................................................................................................................
5.5 Esempi di utilizzo.................................................................................................................................................
5.6 Limitazioni............................................................................................................................................................
5.7 Configurazione del Master...................................................................................................................................
5.8 Occupazione di memoria e allocazione di bit e canali........................................................................................
5.9 Tempi di risposta dello slave................................................................................................................................

6 - Interfaccia MODBUS Master Low Level per PLC C200HS/H a e CQM1 CPU 4x........
6.1 Introduzione..........................................................................................................................................................
6.2 Configurazione richiesta.......................................................................................................................................
6.3 Installazione..........................................................................................................................................................
Configurazione della porta seriale integrata........................................................................................................
6.4 Utilizzo della subroutine......................................................................................................................................
6.5 Esempi di utilizzo.................................................................................................................................................
Lettura di registri...................................................................................................................................................
Scrittura di registi..................................................................................................................................................
6.6 Occupazione di memoria e allocazione di bit e canali........................................................................................
6.7 Tempi di comunicazione......................................................................................................................................
Configurazione in prova........................................................................................................................................

7 - Interfaccia MODBUS Master/Slave per PLC C200HS/H a, CQM1 CPU 4x.................


7.1 Introduzione..........................................................................................................................................................
7.2 Configurazione richiesta.......................................................................................................................................
7.3 Installazione..........................................................................................................................................................
Impostazione dell'interrupt schedulato (solo C200HS/H a)..................................................................................
7.4 Utilizzo delle subroutine......................................................................................................................................
Avvio delle subroutine...........................................................................................................................................
7.5 Esempio di utilizzo...............................................................................................................................................
7.6 Occupazione di memoria e allocazione di bit e canali........................................................................................
APPENDICE A Struttura dell'applicazione.......................................................................

APPENDICE B MODBUS Tester per C200H-ASC02.......................................................


B.1 Installazione.........................................................................................................................................................
Caricamento della routine assembler....................................................................................................................
Caricamento del programma BASIC.....................................................................................................................
B.2 Utilizzo del programma.......................................................................................................................................
Menu configurazione..............................................................................................................................................
Menu principale.....................................................................................................................................................
Assegnazione indirizzo per EST 485 Electrex.......................................................................................................
Prova di comunicazione con EST 485 Electrex....................................................................................................
Invio di FRAME MODBUS (generico)..................................................................................................................
APPENDICE C Il protocollo MODBUS..............................................................................
C.1 Il Protocollo MODBUS.......................................................................................................................................
Algoritmo di calcolo del CRC...............................................................................................................................
C.2 Comandi MODBUS.............................................................................................................................................
Sommario................................................................................................................................................................
Funzione 01H, lettura multipla dei punti di uscita digitali..................................................................................
Funzione 02H, lettura multipla dei punti di ingresso digitali..............................................................................
Funzione 03H, lettura multipla degli Holding Register.......................................................................................

iv OMRON Electronics
Indice

Funzione 04H, Lettura multipla degli Input Register...........................................................................................


Funzione 05H, forzatura di una uscita..................................................................................................................
Funzione 06H, scrittura di un registro ritentivo (una Word)...............................................................................
Funzione 07H, lettura dello stato..........................................................................................................................
Funzione 08H, funzioni diagnostiche....................................................................................................................
Funzione 0FH, forzatura multipla delle uscite.....................................................................................................
Funzione 10H, scrittura multipla degli Holding Register....................................................................................
Funzione 42H, assegnazione dell'indirizzo...........................................................................................................
Frame di errore......................................................................................................................................................
APPENDICE D Cablaggi e convertitori..............................................................................
D.1 Cavo di collegamento tra C200H-ASC02 e personal computer.........................................................................
D.2 Schema dei collegamenti SYS AL006-OEE-I....................................................................................................
Morsettiera RS485.................................................................................................................................................
D.3 Schema dei collegamenti SYS AL007-OEE-I....................................................................................................
Collegamento con seriale integrata del PLC, C200H-ASC02, CPM1-CIF01.....................................................
Collegamento con CQM1-CIF02...........................................................................................................................
Morsettiera RS485.................................................................................................................................................
Configurazione del SYS AL007..............................................................................................................................
D.4 Schema dei collegamenti SYS AL004-OEE-I....................................................................................................
Collegamento con seriale integrata del PLC, C200H-ASC02, CPM1-CIF01.....................................................
Collegamento tramite CQM1-CIF02.....................................................................................................................
Morsettiera RS422.................................................................................................................................................
D.5 Collegamento con CPM1-CIF11.........................................................................................................................
D.6 Collegamento con RS-422 integrata alle COM-Board C200Ha........................................................................
Disposizione dei piedini della porta 422 delle Com Board..................................................................................
APPENDICE E Impostazione delle porte del modulo C200H-ASC02.............................

Allegati

Guida all’uso degli inverter 3g3ev in rete modbus.................................................Allegato 1

Guida all’uso degli inverter 3g3Fv in rete modbus.................................................allegato 2

Guida all’ degli inverter 3g3hv uso in rete modbus................................................allegato 3

Guida all’uso degli inverter 3g3iv in rete modbus..................................................allegato 4

Guida all’uso degli inverter 3g3xv in rete MODBUS.............................................allegato 5

OMRON Electronics v
Indice

vi OMRON Electronics
Introduzione 1

1 - Introduzione

SYSMATE SYSMOD fornisce gli strumenti software necessari per comunicare in rete
Modbus1 con i seguenti PLC Omron:

C200H tramite modulo C200H-ASC02


Il programma MSMOD.BAS gestisce:
· la porta #1 dell' ASC02 come Slave MODBUS, consente ad un Master MODBUS
di leggere/scrivere dati nell'area data memory.
· La porta #2 come Master MODBUS per leggere e scrivere dati su dispositivi Slave
MODBUS indicati in un opportuna tabella di polling consentetndo anche l'invio di
comandi in modo asincrono.

C200HS CPU 21,23,31,33 e C200HX/G/E


Con la subroutine C200X_M è possibile effettuare il Polling degli slave MODBUS
indicati in una tabella e inviare comandi in modo indipendente al ciclo di polling.
Tutto ciò utilizzando la seriale integrata del PLC o la porta periferiche oppure una
delle seriali montate sulla Com-Board (solo C200Ha). Con la subroutine C200_S il
PLC diventa uno Slave MODBUS: attraverso la porta seriale un Master MODBUS
può effettuare operazioni di lettura/scrittura nell'area data memory del PLC. Dalle
subroutine master e slave deriva il programma C200_MS che integra entrambe le
funzioni. Il PLC può effettuare il polling degli Slave sulla seriale integrata e
contemporaneamente rispondere alle interrogazioni di un Master MODBUS sulla
porta periferiche. Infine la subroutine C200_MGP rappresenta un interfaccia di basso
livello di tipo generale per comunicare in MODBUS con i dispositivi Slave. A
differenza della subroutine Master l'implementazione dei comandi è demandata
all'utente; la subroutine si occupa del calcolo del CRC, della trasmissione dei
comandi, della ricezione delle risposte e della verifica del CRC ricevuto.

CQM1 CPU 4.x


I programmi CQM1_M, CQM1_S e CQM1_MGP sono disponibili anche per i PLC
CQM1 con CPU tipo 4.x, fornendo le stesse funzionalità delle versioni per C200HS.
Anche per il CQM1 e disponibile la funzione Master/Slave con il programma
CQM1_MS.

1
Il protocollo MODBUS è stato messo a punto dalla Modicon per la comunicazione con i
propri PLC. Negli anni è però diventato uno standard di fatto per il collegamento in rete di
dispositivi di varia natura: PLC, personal computer, sensori, inverter ecc...

OMRON Electronics 1
Introduzione 1

2 OMRON Electronics
Contenuto del dischetto 2

2 - Contenuto del dischetto

Questo manuale fa riferimento alla versione 1.1 del software SYSMATE SYSMOD.

Il pacchetto contiene gli stessi programmi in diversi formati; di seguito viene riportata
l'organizzazione del disco.

SYSMOD\ASC02\ Directory contenente i programmi per


C200H-ASC02
CRC.A07 Codice eseguibile della routine assembler per il
calcolo del CRC
MSMOD.BAS Programma BASIC di interfaccia MODBUS
Master/Slave per C200H-ASC02
TSTMOD.BAS Programma BASIC per la configurazione di
dispositivi MODBUS
AME.EXE Emulatore di terminale per C200H-ASC02 con
funzioni di trasferimento per programmi BASIC
SCC.EXE Emulatore di terminale per C200H-ASC02 con
funzioni per il caricamento di programmi BASIC e
assembler

SYSMOD\C200HS\ Directory contenente i programmi per C200HS/Ha


in formato SYSWIN 3.x e SSS (tra parentesi)

CRC.DDM (.SL4) Tabella di Data Memory per il calcolo del CRC per
le subroutine C200_M, C200_S, C200_MS
DM_CRC.DDM (.SL4) Tabella di Data Memory per il calcolo del CRC per
la subroutine C200_MGP
C200_MS.SWP (.SP1) Interfaccia MODBUS Master/Slave
C200X_M.SWP (.SP1) Interfaccia Master
C200_MGP.SWP (.SP1) Interfaccia Master Low-Level
C200_S.SWP (.SP1) Interfaccia Slave

SYSMOD\CQM1\ Directory contenente i programmi per CQM1 in


formato SYSWIN 3.x e SSS (tra parentesi)

CRC.DDM (.SL4) Tabella di Data Memory per il calcolo del CRC per
le subroutine CQM1_M, CQM1_S, CQM1_MS
DM_CRC.DDM (.SL4) Tabella di Data Memory per il calcolo del CRC per
la subroutine CQM1_MGP
CQM1_MS.SWP (.SP1) Interfaccia MODBUS Master/Slave
CQM1_M.SWP (.SP1) Interfaccia Master
CQM1_MGP.SWP (.SP1) Interfaccia Master Low-Level
CQM1_S.SWP (.SP1) Interfaccia Slave

SYSMOD\SYSMOD.DAT Contiene i programmi salvati in formato LSS


Contenuto del dischetto 2
Interfaccia MODBUS Master/Slave per modulo C200H-ASC02 3

3 - Interfaccia MODBUS Master/Slave per modulo C200H-ASC02

3.1 Introduzione.

L’ interfaccia consente il collegamento di un PLC C200H o HS a due reti MODBUS,


lavorando come Master su una rete e come Slave sull’altra. La funzione Master
effettua l’interrogazione ciclica dei nodi della rete permettendo la lettura o la scrittura
di dati; è pure possibile inviare dei comandi con priorità a seguito di eventi sul PLC.
La funzione Slave provvede a rispondere ai comandi di lettura/scrittura di dati
provenienti da un Master MODBUS (comando 03H, lettura multipla di data memory e
comando 10H, scrittura multipla di data memory). L’interfaccia è costituita dal
programma BASIC (master/slave) MSMOD.BAS e dalla routine assembler
CRC.A07.

Comandi supportati.

Comandi di lettura Comandi di scrittura


Master 03H Lettura multipla dei 10H Scrittura multipla dei
registri ritentivi. registri ritentivi.
04H Lettura multipla dei 0FH Forzatura multipla delle
registri di ingresso. uscite (max 16).
Slave 03H Lettura multipla di Data 10H Scrittura multipla di Data
Memory sul PLC. Memory sul PLC.

3.2 Installazione.

Caricamento della routine ASSEMBLER.


Per prima cosa è necessario caricare la routine assembler. Per questa operazione è
necessario il programma SCC.EXE.

1. Collegarsi all’ASC02 con il cavo mostrato nell'APPENDICE D. (è necessario il


collegamento dei segnali RTS/CTS)
2. Lanciare il programma SCC.EXE
3. Digitare il comando MSET &H2100 e poi premere INVIO.
4. Entrare nella modalità MONITOR dell’unità ASCII con il comando MON;
apparirà un asterisco ‘*’.
5. Dare il comando L0 (Load indirizzo 0) e premere INVIO, premere il tasto
RUN/STOP sull’unità ASCII.
6. Premere il tasto Control insieme al tasto K; inserire il nome del file contenente il
codice assembler (CRC.A07).
7. Alla fine del trasferimento premere Control B per tornare in modo BASIC.

In caso di problemi o errori, riavviare l’ASC02 e ripetere l’operazione dall’inizio.


In caso di blocco completo dell’unità portare da OFF a ON il bit di restart dell’unità.
Interfaccia MODBUS Master/Slave per modulo C200H-ASC02 3

Caricamento del BASIC

1. Lanciare il programma SCC.EXE.


2. Attivare una delle tre aree di programma con il comando PGEN (consigliato
PGEN 1).
3. Cancellare il contenuto dell’area con NEW (Il comando NEW non cancella
l’assembler).
4. Premere Control S e inserire il nome del programma BASIC master/slave
(MSMOD.BAS).
5. Eventualmente listare il programma per verificarne la correttezza.

In caso di errori di caricamento ripetere dal passo 3.

3.3 Utilizzo del programma.

Il Master ha bisogno di un elenco che contiene i dispositivi da interrogare, il comando


da usare e i registri da utilizzare. Questo elenco prende il nome di lista di polling e va
scritto nell'area Data Memory del PLC. La lista di polling viene caricata dall'ASC02
solo all'avvio.

Struttura della Lista di Polling.


La lista di polling è costituita da un massimo di 21 elementi, ad ogni elemento
corrisponde un operazione della funzione master rivolta agli slave. La lista è
memorizzata nel PLC a partire dal Data Memory indicato nel programma BASIC
come DMLS%. Il suo valore di default è 0800.
Ogni elemento è formato da 5 Data Memory organizzati nel modo seguente
(Es.interrogazione ciclica di 2 slave e possibilità di comando a evento):

Data Significato
Memory
DM 0800 Indirizzo slave Comando con
DM 0801 Funzione MODBUS priorità.
DM 0802 Primo registro dello Slave
DM 0803 Numero di registri
DM 0804 Primo DM Sorgente/Destinazione nel
PLC
DM 0805 Indirizzo slave Comando per il
DM 0806 Funzione MODBUS primo slave.
DM 0807 1° registro
DM 0808 N° registri
DM 0809 1° DM sorgente/destinazione nel PLC
DM 0810 Indirizzo slave Comando per il
DM 0811 Funzione MODBUS secondo slave.
DM 0812 1° registro
DM 0813 N° registri
DM 0814 1° DM sorgente/destinazione nel PLC
DM 0815 00FF Terminatore
della lista
Interfaccia MODBUS Master/Slave per modulo C200H-ASC02 3

Tutti i valori devono essere esadecimali.


Il primo elemento è riservato alle operazioni prioritarie (attivate a fronte di un
comando/evento sulla CPU del PLC) che verranno eseguite a prescindere dallo slave
attivo, per poi riprendere con il polling normale. Il primo elemento è l'unico ad essere
letto anche dopo l'avvio.
La lista degli slave può contenere un numero arbitrario di elementi purchè inferiore a
20 (21 con il comando ad evento). L’ultimo elemento viene indicato mettendo 00FFH
nel campo indirizzo successivo all’ultimo elemento. Se si indica 00FFH come
indirizzo del primo slave il programma eseguirà solo il comando a evento.
Nota: La lista viene caricata solo all’avvio dell’unità ASCII; per rendere effettive le
modifiche alla tabella è necessario riavviare l’unità.

Modifica dell'indirizzo Slave dell' ASC02.


Nota: L’indirizzo di default della funzione slave è 1. Per cambiare l’indirizzo alla
funzione Slave dell’interfaccia occorre cambiare il valore contenuto nella variabile
SLAVE%, il suo valore di default è 1. I valori ammessi vanno da 1 a 247.

Impostazione delle porte seriali.


La velocità di comunicazione delle porte dell'ASC02 viene impostata con i dip switch
posti sulla parte posteriore dell'unità; per la loro configurazione vedere l'APPENDICE
E.
Il protocollo viene impostato a livello di programma BASIC; l'impostazione di default
è con 8 bit di dati, nessuna parità e un bit di stop. Per modificare il protocollo è
necessario intervenire sul programma BASIC modificando la linea 180 (porta #1) o
190 (porta #2), di default le due linee appaiono come segue:

180 OPEN #1,"COMU:(53)" APERTURA PORTA 1 A 8,N,1 RTS=0 SLAVE


190 OPEN #2,"COMU:(53)" APERTURA PORTA 2 A 8,N,1 RTS=0 MASTER

Per modificare il protocollo si deve modificare il numero tra parentesi; di seguito


vengono elencati i codici ed il loro significato.

Codici per l'apertura delle porte


Parità Bit di Stop. Codice.
Nessuna 2 43
Nessuna 1 53
Pari 1 63
Dispari 1 73

Avvio del programma.

1. Collegare il dispositivo master alla porta 1


2. Collegare la rete di dispositivi slave alla porta 2
3. Avviare il programma premendo il tasto START/STOP sull’unità ASCII. Quando
il Led BASIC rimane acceso fisso allora il programma è correttamente avviato.
Interfaccia MODBUS Master/Slave per modulo C200H-ASC02 3

Se l’unità ASCII viene attivata quando il master è già attivo sulla porta 1 può rendersi
necessario il reset dell’unità (per eliminare l’eventuale errore sulla porta di
comunicazione).

Uso dei comandi a evento.


Il comando a evento va inserito nel primo elemento della lista di polling (Dal
DM0800 al DM0804. L’invio della frame si ottiene generando un interrupt sull’unità
ASCII.
L’invio del frame interrompe il ciclo normale di polling; alla fine della transazione il
polling riprenderà dal punto in cui si era interrotto.

3.4 Esempi di utilizzo.

Nota: In tutti gli esempi la lista di polling inizia dal DM0800.

Inibizione della funzione MASTER.


1. Inserire come indirizzo del primo Slave il valore 00FFH. Ciò equivale a porre
00FF nel DM0805.
2. Arrestare e riavviare l’unità ASCII.

La funzione Master dell’interfaccia può essere completamente inibita senza interferire


sul funzionamento della funzione Slave.

Interrogazione di uno slave su più registri.


Lettura dei registri da 0 a 23 sullo slave 2 in gruppi di 12 registri per interrogazione.

DM 0805 0002 Ind. Slave


DM 0806 0004 Funzione (lettura dei registri d’ingresso)
DM 0807 0000 1° Registro
DM 0808 000C N° Reg. (12)
DM 0809 03E8 Reg. destinazione sul PLC (DM 1000)
DM 0810 0002 Ind. Slave
DM 0811 0004 Funzione
DM 0812 000C 1° Registro (12)
DM 0813 000C N° Reg. (12)
DM 0814 03F4 Reg. destinazione (DM 1012)
DM 0815 00FF Fine della lista

Interrogazione di più Slave.


Lettura di 4 registri dallo slave 27 a partire dal registro 15 e scrittura dati nel PLC a
partire dal DM1010, lettura di 10 registri sullo slave 14 partendo dal registro 500 con
DM destinazione il DM 1230, forzatura della bobina di uscita 6 sullo slave 44 con lo
stato memorizzato nel DM0200.

DM 0805 001B Ind. slave (27)


DM 0806 0004 Funzione (lettura registri d’ingresso)
DM 0807 000F 1° registro (15)
DM 0808 0004 N° registri (4)
Interfaccia MODBUS Master/Slave per modulo C200H-ASC02 3

DM 0809 03F2 Registro destinazione nel PLC (DM1010)


DM 0810 000E Ind. slave (14)
DM 0811 0004 Funzione (lettura registri d’ingresso)
DM 0812 01F4 1° registro (500)
Segue

DM 0813 000A N° registri (10)


DM 0814 04CE Registro destinazione (DM1230)
DM 0815 002C Ind. slave (44)
DM 0816 000F Funzione (forzatura multipla delle bobine di uscita)
DM 0817 0005 Prima bobina di uscita (numero bobina-1)
DM 0818 0001 Numero bobine da forzare
DM 0819 00C8 Registro del PLC contenente lo stato della forzatura
(DM0200)
DM 0820 00FF Fine della lista

Invio di un Frame Urgente.


Forzatura della bobina di uscita 2 di tutti gli slave.

DM 0800 0000 Indirizzo slave (0 = destinato a tutti gli slaves)


DM 0801 000F Funzione (forzatura multipla delle bobine di uscita)
DM 0802 0001 Prima bobina di uscita (numero bobina-1)
DM 0803 0001 N° bobine da forzare
DM 0804 00FE DM contenente lo stato della forzatura (DM0254)
DM 0805 .... Resto della lista

Per attivare la trasmissione:


1. Scrivere 0010 nel canale 100 (per unità ASCII con Machine number 0)
1. Portare a ON il contatto 100.01; è preferibile usare una DIFU.

Per le unità con machine number diverso da 0 il canale si ottiene come segue:
Canale = 100 + 10 x Machine_number

Canale di stato ASC02 = 103 + 10 x Machine_number


Interfaccia MODBUS Master/Slave per modulo C200H-ASC02 3

3.5 Flags di stato

MSMOD.BAS utilizza il byte più significativo (più a sinistra) del quarto canale di
interfaccia tra PLC ed ASCII per comunicare lo stato dell’interfaccia MODBUS
(tramite l’istruzione PC PUT. Se l’unità ASCII è configurata come numero 0 il canale
è il 103, e si avrà:

Bit Significato
103.08 Master attivo
103.09 Slave attivo
103.10 Errore sulla funzione
103.11 Time out
103.12 CRC errato

3.6 Tempi di comunicazione

In tutte le operazioni di controllo e/o monitoraggio è necessario conoscere la velocità


di aggiornamento dei dati. Occorre garantire che i tempi di risposta del sistema di
controllo siano adeguati all’applicazione.

Tempi di comunicazione tra C200H-ASC02 per ogni slave1


Operazione Tempo di Numero di
comunicazione (ms) operazioni al sec.
Lettura 16 registri 500 2
Lettura 1 registro 500 2
Scrittura 2 registri 500 2
Scrittura 1 registro 500 2

Per tempo di comuniczione si intende il tempo necessario ad inviare la frame ad uno


slave, riceverne la risposta e prepararsi per una nuova trasmissione.

1
La configurazione impiegata durante le prove è la seguente:
Master: C200HS con un modulo C200H-ASC02.
Slave: inverter SYSDRIVE 3G3EV-A2004-RM-E collegato in rete RS485.
Convertitore RS232/485 SYS-AL007-OEE-I.
Velocità di comunicazione 9600 baud, nessun controllo di parità.
Interfaccia MODBUS Master per PLC C200HS/Ha e CQM1 CPU 4x 4

4 - Interfaccia MODBUS Master per PLC C200HS e CQM1 CPU 4x

4.1 Introduzione.

L'interfaccia è costituita da una subroutine che permette di effettuare l'interrogazione


in polling di dispositivi operanti in protocollo MODBUS; consente pure l'invio di
comandi in modo asincrono portando a ON un bit del PLC. La subroutine supporta i
comandi MODBUS 03H, 04H (lettura registri) e 10H (scrittura registri). Nella
versione per C200HS/Ha permette anche di scegliere la porta da utilizzare comprese
le Com-Board delle CPU Ha.

4.2 Configurazione richiesta.

Il software di comunicazione è stato sviluppato per:


· PLC C200HS CPU 21, 23, 31 o 33
· PLC C200HX/G/E tutte le CPU con o senza Com-Board
· PLC CQM1 CPU 4x.

4.3 Installazione.

La subroutine è presente su disco con il nome C200X_M.SWP per la versione


C200HS/Ha e con il nome CQM1_M.SWP per la versione CQM1; gli stessi nomi,
esclusa l'estensione, vengono usati nei file per LSS e SSS (estensione .SP1). Nel file è
presente la sola subroutine di comunicazione, l'utente dovrà provvedere ad integrarla
nella propria applicazione; nell'APPENDICE A viene mostrato uno schema di
massima su come organizzare il programma completo. La subroutine va posta in
fondo al programma in modo tale che non siano presenti network tra le subroutine. La
subroutine è terminata da un istruzione END(01) e perciò occorre prestare attenzione
affinchè la END non escluda porzioni di programma. L'utente deve inserire le network
necessarie all'impostazione del Timeout, della lista di polling, alla chiamata della
subroutine e alla selezione della porta seriale (solo C200HS/Ha).
Prima di eseguire il programma è necessario caricare la tabella per il calcolo del
CRC contenuta nel file CRC.DDM formato SYSWIN o CRC.SL4 formato SSS
nei Data Memory da 6144 a 6399.

Nota per l’utilizzo con i PLC C200Ha


Per la corretta programmazione dei PLC della serie Ha è necessario utilizzare il
software di programmazione SYSWIN. E’ comunque possibile utilizzare sia SSS che
LSS, in questo caso il PLC verrà visto come C200HS e non sarà possibile accedere
alle funzioni speciali.
Per caricare la subroutine in SYSWIN è necessario utilizzare l’opzione Importa del
menu File selezionando tutte le voci da importare.

Selezione della porta seriale (solo C200HS/Ha)


La subroutine C200X_M può utilizzare una qualunque delle porte seriali disponibili
sul PLC o sulle Com-Board. Il Data Memory DM5728 viene utilizzato per selezionare
la porta seriale.
Interfaccia MODBUS Master per PLC C200HS/Ha e CQM1 CPU 4x 4

Valore Porta
0000 Seriale integrata
1000 Porta periferiche
0100 Porta COM A (C200HW-COM0x)
0200 Porta COM B (C200HW-COM05 e COM06)

Configurazione delle porte seriali.


La porta seriale utilizzata deve essere configurata con la stessa velocità e protocollo
degli slave. La configurazione avviene impostando i DM dell'area di Setup del PLC.

Seriale integrata
1. DM6645 #1001
2. DM6646 #nnxx , dove nn e xx hanno il sinificato indicato nelle tabelle.
3. DM6647 #0000
4. DM6648 #0000
5. DM6649 #0000

Porta periferiche
1. DM6650 #1001
2. DM6651 #nnxx , dove nn e xx hanno il sinificato indicato nelle tabelle.
3. DM6652 #0000
4. DM6653 #0000
5. DM6654 #0000

Porta seriale COM A Com-Board C200HW-COM0x (solo C200Ha)


1. DM6555 #1001
2. DM6556 #nnxx , dove nn e xx hanno il sinificato indicato nelle tabelle.
3. DM6557 #0000
4. DM6558 #0000
5. DM6559 #0000

Porta seriale COM B Com-Board C200HW-COM05 e COM06 (solo C200Ha)


1. DM6550 #1001
2. DM6551 #nnxx , dove nn e xx hanno il sinificato indicato nelle tabelle.
3. DM6552 #0000
4. DM6553 #0000
5. DM6554 #0000
Interfaccia MODBUS Master per PLC C200HS/Ha e CQM1 CPU 4x 4

Tabelle per impostazione del protocollo e della velocità

Protocollo
nn Start bit Data bit Stop bit Parità
06 1 8 1 Pari
07 1 8 1 Dispari
08 1 8 1 Nessuna
09 1 8 2 Pari
10 1 8 2 Dispari
11 1 8 2 Nessuna

Velocità
xx Baud rate
00 1200
01 2400
02 4800
03 9600
04 19200

NOTA: Le modifiche all'impostazione della seriale sono operative da subito, e ciò


può causare la perdita della comunicazione con il computer; è consigliabile forzare la
configurazione della seriale utilizzando il dip switch 5 sulla CPU del PLC e riportarlo
alla posizione normale prima di attivare il programma.

Impostazione del Timeout.


Se il Master non riceve una risposta dal dispositivo interpellato entro un certo tempo,
(Timeout) passa all'interrogazione di un altro dispositivo e alza il Bit "T_OUT_ERR"
(IR233.02 su C200HS/Ha e IR227.02 su CQM1) che rimarrà alto fino alla successiva
trasmissione, contemporaneamente nel DM5746 viene scritto il numero dello slave
che non ha risposto.
Il tempo di attesa del Master per la risposta dello slave deve essere impostato
dall'utente scrivendo il tempo in decimi di secondo nel DM5729 prima di chiamare la
subroutine. Per impostare il timeout a 2 secondi (valore consigliato) occorre scrivere
0020 nel DM5729 (per il timeout non c'è un impostazione di default).

Ritardo sul Polling.


Se uno o più slave della rete non riescono a sostenere il ritmo di polling imposto dal
master, può rendersi introdurre un ritardo tra l'interrogazione di uno slave e
l'interrogazione del successivo. Il ritardo viene impostato in decine di millisecondi nel
DM5748. Scrivendo 0010 in questo data memory viene impostato un ritardo di
100ms, il valore 0000 disattiva il ritardo.
Interfaccia MODBUS Master per PLC C200HS/Ha e CQM1 CPU 4x 4

4.4 Utilizzo della subroutine.

Il Master ha bisogno di un elenco che contiene i dispositivi da interrogare, il comando


da usare e i registri da utilizzare. Questo elenco prende il nome di lista di polling e va
scritto nell'area Data Memory. La posizione di inizio della tabella viene impostata
dall'utente e deve essere definita prima di chiamare la subroutine.
E' anche possibile l'uso di più tabelle di polling modificando l'impostazione del
DM5745; il passaggio ad una nuova tabella avverrà sempre al termine della tabella
precedente.

Struttura della Lista di Polling.


La lista di polling è costituita da un insieme di elementi, ad ogni elemento corrisponde
un operazione del master rivolta agli slave. La lista può essere memorizzata a partire
da un qualsiasi Data Memory libero. In ogni caso il DM di inizio della tabella va
indicato nel DM5745. La tabella inizia sempre con il comando a evento ,ogni
elemento è formato da 4 Data Memory organizzati nel modo seguente:
Il primo DM contiene il numero dello slave nelle due cifre più significative (più a
sinistra) e il codice del comando nelle 2 cifre meno significative (più a destra). Se il
codice del comando non è tra quelli implementati (03H, 04H o 10H), l'elemento della
lista verrà ignorato e verrà portato a ON per una scansione il flag di errore 233.04 su
C200HS/Ha o 227.04 su CQM1.
Il secondo DM contiene il numero del registro dello slave da leggere o scrivere.
Il terzo DM contiene il numero di registri da leggere o scrivere a partire dal registro
indicato nel secondo DM.
Il quarto DM contiene l'indirizzo del Data Memory da cui verranno prelevati i valori
da scrivere nello slave oppure l'indirizzo del Data Memory in cui verranno posti i
valori letti dallo slave. Nella lettura o scrittura multipla di registri verranno usati i
Data Memory consecutivi a quello indicato nel quarto DM dell'elemento di tabella.
Tutti i valori devono essere esadecimali tranne i DM di destinazione che vanno
espressi in BCD.
Il primo elemento è sempre riservato alle operazioni prioritarie (attivate a fronte di un
comando/evento sulla CPU del PLC) che verranno eseguite a prescindere dallo slave
attivo, per poi riprendere con il polling normale.
La lista degli slave che può contenere un numero arbitrario di elementi non può essere
vuota, deve essere presente almeno un elemento mentre lo spazio riservato al
comando asincrono può essere lasciato vuoto. L'ultimo elemento viene indicato
mettendo FFFFH nel campo indirizzo successivo all’ultimo elemento.
Interfaccia MODBUS Master per PLC C200HS/Ha e CQM1 CPU 4x 4

L'esempio seguente mostra comè costruita la tabella.

(Es. interrogazione ciclica di 2 slave e possibilità di comando a evento con inizio


tabella dal DM 0400)
Data Significato
Memory
DM 0400 Indirizzo slave Comando Comando con
DM 0401 Primo registro dello Slave priorità.
DM 0402 Numero di registri
DM 0403 Primo DM
Sorgente/Destinazione nel PLC
DM 0404 Indirizzo slave Comando Comando per il
DM 0405 1° registro primo slave.
DM 0406 N° registri
DM 0407 1° DM sorgente/destinazione nel
PLC
DM 0408 Indirizzo slave Comando Comando per il
DM 0409 1° registro secondo slave.
DM 0410 N° registri
DM 0411 1° DM sorgente/destinazione nel
PLC
DM 0412 FFFF Terminatore della lista

Nota:
E' possibile saltare un qualsiasi elemento della lista impostando il rispettivo campo del
codice funzione a 00. Il flag di errore verrà comunque attivato.

Avvio della subroutine.


Per attivare il polling è sufficiente chiamare la subroutine 10 con una network come
la seguente:

In questo modo la subroutine è sempre attiva.


Se si vuole utilizzare la subroutine solo quando è necessario si può utilizzare la
network seguente:

Uso dei comandi a evento.


Il comando a evento va inserito nel primo elemento della lista di polling. L’invio della
frame si ottiene portando a ON il Bit di "Async_TX" (IR233.06 sul C200HS/Ha,
IR227.06 sul CQM1). Il programma provvederà a riportare il bit a OFF.
Interfaccia MODBUS Master per PLC C200HS/Ha e CQM1 CPU 4x 4

L’invio del frame interrompe il ciclo normale di polling; alla fine della transazione il
polling riprenderà dal punto in cui si era interrotto. Se il comando è broadcast il
polling ripartirà dopo una pausa pari al tempo di timeout.

Nota:
Il Bit di Async TX lavora sul livello e non sulla transizione. Il comando verrà inviato
per tutto il tempo in cui il bit è ON.
Ogni ciclo di comunicazione richiede sempre più di una scansione per essere
completato. Prima di impostare un nuovo comando a evento è necessario attendere il
completamento del comando precedente. Il bit 229.00 per CQM1, 235.00 per
C200HS/Ha passa da OFF a ON al termine dell'esecuzione del comando qualsiasi sia
la condizione di uscita e resta tale per almeno una scansione.

Flags di stato.
Il Master utilizza alcuni bit dell'area IR per comunicare lo stato dell’interfaccia
MODBUS. La versione per CQM1 e quella per C200HS/Ha utilizzano bit diversi.

C200HS/Ha CQM1
Bit Significato Bit Significato
233.00 CRC corretto 227.00 CRC corretto
233.01 Errore sul CRC 227.01 Errore sul CRC
233.02 Timeout 227.02 Timeout
233.04 Errore sulla funzione 227.04 Errore sulla funzione
235.00 Fine ciclo di 229.00 Fine ciclo di
trasmissione trasmissione
Nota: I bit di stato non devono essere scritti.

4.5 Esempi di utilizzo.

Interrogazione di uno slave su più registri.


Lettura dei registri ritentivi (funzione 03H) da 0 a 23 sullo slave 7 in gruppi di 12
registri per interrogazione.
Nell'esempio poniamo la tabella nei DM a partire dal DM0800, perciò occorre
scrivere #0800 nel DM5745.

DM 0804 0703 Hex Ind. Slave, Funzione ( lettura registri ritentivi)


DM 0805 0000 Hex 1° Registro
DM 0806 000C Hex N° Reg. (12)
DM 0807 1000 BCD Reg. destinazione sul PLC (DM 1000)
DM 0808 0204 Hex Ind. Slave, Funzione
DM 0809 000C Hex 1° Registro (12)
DM 0810 000C Hex N° Reg. (12)
DM 0811 1012 BCD 1° Registro (12)
DM 0812 FFFF Hex Fine della lista
Interfaccia MODBUS Master per PLC C200HS/Ha e CQM1 CPU 4x 4

Interrogazione di più Slave.


Lettura di 4 registri di ingresso dallo slave 27 a partire dal registro 15 e scrittura dati
nel PLC a partire dal DM1010, lettura di 10 registri sullo slave 14 partendo dal
registro 500 con DM destinazione il DM 1230, scrittura del registro 6 dello slave 44
con il contenuto del DM1200. La lista parte dal DM0200 (scrivere #0200 nel
DM5745)

DM 0204 1B04 Hex Ind. slave (27), Funzione (lettura registri di ingresso)
DM 0205 000F Hex 1° registro (15)
DM 0206 0004 Hex N° registri (4)
DM 0207 1010 BCD Registro destinazione sul PLC (DM1010)
DM 0208 0E04 Hex Ind. slave (14), Funzione (lettura registri di ingresso)
DM 0209 01F4 Hex 1° registro (500)
DM 0210 000A Hex N° registri (10)
DM 0811 1230 BCD Registro destinazione sul PLC (DM1230)
DM 0812 2C10 Hex Ind. slave (44), Funzione (scrittura dei registri)
DM 0817 0006 Hex Primo registro ritentivo
DM 0818 0001 Hex Numero registri da scrivere
DM 0819 1200 BCD Registro del PLC contenente il valore (DM1200)
DM 0820 FFFF Hex Fine della lista

Invio di un Frame Urgente.


Scrittura del contenuto del DM0030 nel registro 100 di tutti gli slave.
La tabella verrà scritta a partire dal DM0800 (scrivere #0800 nel DM5745).

DM 0800 0010 Indirizzo slave (0 = broadcast), Funzione (scrittura registri)


DM 0801 03E8 Primo registro (100)
DM 0802 0001 N° registri
DM 0803 0030 DM contenente lo stato della forzatura (DM0030)
DM 0804 .... Resto della lista

Per inviare il comando è sufficiente portare a ON il bit Async_TX (IR233.06 su


C200HS/Ha, IR227.06 su CQM1), la subroutine stessa provvederà a riportarlo a OFF.
L'esempio riportato di seguito mostra un modo per inviare il comando.

L'esempio si riferisce al CQM1, per C200HS/Ha occorre utilizzare il contatto 233.06


al posto del 227.06.
Interfaccia MODBUS Master per PLC C200HS/Ha e CQM1 CPU 4x 4

Uso contemporaneo di due tabelle


In questo esempio verrà mostrato come cambiare tabella di polling a seconda delle
esigenze. Può essere spesso utile avere una tabella dedicata al monitoraggio continuo
degli slaves ed una tabella invece dedicata all'impostazione degli slave.

Supponiamo che la tabella contenente solo comandi di lettura (03 o 04) inizi dal
DM0400 (il primo elemento della lista di polling andrà posto a partire dal DM0404) e
che la tabella con le operazioni di scrittura inizi dal DM0800 e finisca con il DM0840
in cui è stato scritto FFFF.
Il programma che segue, a fronte dell'attivazione del contatto 000.00, scambia le due
tabelle e torna alla tabella originaria solo se la nuova tabella è stata completata senza
errori.

Condizione per il
cambio tabella

Indirizzo della
nuova tabella

Segue sulla pagina successiva.


Interfaccia MODBUS Master per PLC C200HS/Ha e CQM1 CPU 4x 4

Diagramma ladder per il cambio di tabella (segue dalla pagina precedente)

Se sto eseguendo il
primo elemento della
nuova tabella azzero
il registro errori

Se la nuova
lista di polling
è terminata
verifico se ci
sono stati
errori

Se non ci sono errori


torno alla tabella
precedente

In questo esempio si fa riferimento al PLC CQM1, per gli altri PLC è sufficiente
sostituire il contatto 229.00 con il contatto 235.00.
Interfaccia MODBUS Master per PLC C200HS/Ha e CQM1 CPU 4x 4

Controllo degli errori di comunicazione


Con i master SYSMOD l'unico modo per accertare l'integrità del collegamento è
verificare la presenza di errori di comunicazione, tipicamente errori di timeout. Se uno
slave produce molti errori di timeout è possibile che sia scollegato o che i suoi
parametri di comunicazione siano errati. Se invece sono molti gli errori sul CRC
ricevuto è possibile che ci siano dei disturbi sui cavi di comunicazione. In ogni caso la
presenza di errori indica una condizione anomala degli slave.
Nel esempio di programma che segue verrà mostrato un metodo semplice per
costruire un registro che contiene il numero di errori causati dai diversi slave.

Errori di Timeout
Converte
l'indirizzo dello
Errore sul CRC slave in BCD.

Somma il primo DM
della tabella con
l'indirizzo dello slave.
per creare un puntatore
(DM1000).

Incrementa il
DM indicato dal
puntatore.

Nell'esempio, il registro degli errori inizia dal DM1000, lo stesso DM viene utilizzato
come puntatore agli elementi che conterranno il conteggio degli errori per ogni slave.
Nel DM1001 troveremo il conteggio degli errori dello slave 1, nel DM1002 avremo il
conteggio degli errori dello slave 2, nel DM1010 gli errori dello slave 10, ecc...
L'esempio si riferisce al PLC CQM1 per i PLC C200HS/Ha, sostituire il bit 227.01
con il bit 233.01 e il bit 227.02 con il bit 233.02.

4.6 Occupazione di memoria e allocazione di bit e canali.

La subroutine occupa circa 723 word di memoria di programma, 527 word dell'area
DM per le tabelle, i buffer e i registri, 4 canali di lavoro dell'area IR e i Timer 15 e
511.
Oltre alla subroutine 10 vengono utilizzate anche le subroutine 11,12 e 13.
Inoltre vengono utilizzati 4 DM per ogni elemento della tabella di polling
(comprendendo anche il comando a evento) più il DM che indica la fine della tabella;
riassumendo con una formula:

Occupazione in DM della tabella = Numero elementi tabella x 4 + 1


Interfaccia MODBUS Master per PLC C200HS/Ha e CQM1 CPU 4x 4

Una lista di 23 elementi, compreso il comando a evento, uccuperà 93 data memory.


Interfaccia MODBUS Master per PLC C200HS/Ha e CQM1 CPU 4x 4

Tabella dei Contatti e delle Word usati nella subroutine


CQM1 C200HS Funzione
Bit IR227.00 Bit IR233.00 ON quando il CRC è corretto R
Bit IR227.01 Bit IR233.01 ON in caso di errori sul CRC R
Bit IR227.02 Bit IR233.02 ON in presenza di Timeout R
Bit IR227.04 Bit IR233.04 ON in presenza di funzioni non valide R
Bit IR227.06 Bit IR233.06 Portare a ON per attivare la trasmissione W
Bit IR229.00 Bit IR235.00 ON al termine della comunicazione R
Bit IR227.06 Bit IR233.06 Portare a ON per attivare la trasmissione W
------------ Word DM5728 Selezione della porta seriale W
Word DM5729 Word DM5729 Tempo di Timeout in decimi di secondo W
Word DM5745 Word DM5745 Posizione di inizio della tabella W
Word DM5746 Word DM5746 Slave che ha causato l'ultimo errore R
Word DM5748 Word DM5748 Ritardo sul polling in decine di W
millisecondi

Nota:
Per il corretto funzionamento della subroutine è indispensabile che le seguenti
word non siano scritte dall’utente:
- DM5728 ÷ DM5999 e DM6144 ÷ DM6399 (su C200HS e CQM1)
- IR226 ÷ IR229 (su CQM1)
- IR232 ÷ IR235 (su C200HS)
Inoltre NON si devono utilizzare le subroutine 11 ,12, 13 ne i TIMER 15 e 511.

4.7 Tempi di comunicazione

In tutte le operazioni di controllo e/o monitoraggio è necessario conoscere la velocità


di aggiornamento dei dati. Occorre garantire che i tempi di risposta del sistema di
controllo siano adeguati all’applicazione.
Nelle tre tabelle della pagina seguente sono riportati i tempi di comunicazione per uno
slave rilevati per il CQM1 a diversi tempi di scansione.

Tempo di ciclo libero


Operazione Tempo di Numero di
comunicazione (ms) operazioni al sec.
Lettura 16 registri 100 10
Lettura 1 registro 40 25
Scrittura 2 registri 48 21
Scrittura 1 registro 45 22

Tempo di ciclo 20 ms
Operazione Tempo di Numero di
comunicazione (ms) operazioni al sec.
Lettura 16 registri 167 6
Lettura 1 registro 62 16
Interfaccia MODBUS Master per PLC C200HS/Ha e CQM1 CPU 4x 4

Scrittura 2 registri 83 12
Scrittura 1 registro 62 16
Interfaccia MODBUS Master per PLC C200HS/Ha e CQM1 CPU 4x 4

Tempo di ciclo 50 ms
Operazione Tempo di Numero di
comunicazione (ms) operazioni al sec.
Lettura 16 registri 333 3
Lettura 1 registro 100 10
Scrittura 2 registri 100 10
Scrittura 1 registro 100 10

Configurazione in prova
Master CQM1 CPU41 con il programma CQM1_M.
Convertirore RS232/485 SYS-AL007-OEE-I
Slave Inverter SYSDRIVE 3G3EV-A2004-RM-E
Velocita di comunicazione 9600 baud, nessun controllo di parità.
Ritardo di polling 0000.

Tempi di aggiornamento
Poichè l’aggiornamento dei dispositivi avviene in polling, il tempo che trascorre tra
una comunicazione indirizzata ad un particolare slave e la successiva è pari al tempo
di completamento dell’intero polling.
Il tempo di risposta di un dispositivo varia tra un tempo minimo (lo slave è il
prossimo nella lista) ad un tempo massimo (lo slave è stato appena interrogato).

Tempo di completamento della lista di polling:

Tp=Tdi comunicazione x Nelementi della lista


Interfaccia MODBUS Slave per PLC C200HS/Ha e CQM1 CPU 4x 5

5 - Interfaccia MODBUS Slave per PLC C200HS e CQM1 CPU 4x

5.1 Introduzione.

L'interfaccia slave permette di utilizzare il PLC (C200HS/Ha o CQM1 cpu 4.x) come
dispositivo Slave in una rete MODBUS. Il PLC risponde alle interrogazioni di un
master MODBUS collegato alla porta seriale integrata, rispondendo ai comandi 10H
(scrittura di data memory) e 03H (lettura di data memory). Tutti i DM del PLC dal
DM0000 al DM5457 sono direttamente accessibili al Master.

5.2 Configurazione richiesta.

Il software di comunicazione è stato sviluppato per:


· PLC C200HS CPU 21, 23, 31 o 33
· PLC C200HX/G/E tutte le CPU
· PLC CQM1 CPU 4x

5.3 Installazione.

La subroutine è presente su disco con il nome C200_S.SWP per la versione


C200HS/Ha e con il nome CQM1_S.SWP per la versione CQM1; gli stessi nomi,
esclusa l'estensione, vengono usati nei file per LSS e SSS (estensione .SP1). Nel file è
presente la sola subroutine di comunicazione, l'utente dovrà provvedere ad integrarla
nella propria applicazione; nell'APPENDICE A viene mostrato uno schema di
massima su come organizzare il programma completo. La subroutine va posta in
fondo al programma in modo tale che non siano presenti network tra le subroutine. La
subroutine è terminata da un istruzione END(01) e perciò occorre prestare attenzione
affinchè la END non escluda porzioni di programma.
L'utente deve inserire le network necessarie all'impostazione dell'indirizzo dello Slave
e alla chiamata della subroutine.
Prima di eseguire il programma è necessario caricare la tabella per il calcolo del
CRC contenuta nel file CRC.DDM formato SYSWIN o CRC.SL4 formato SSS
nei Data Memory da 6144 a 6399.

Configurazione della porta seriale.


La porta seriale del PLC va configurata con la stessa velocità e protocollo del Master.
La configurazione avviene impostando i DM dell'area di Setup del PLC.
1. DM6645 #1001
2. DM6646 #nnxx , dove nn e xx hanno il sinificato indicato nelle tabelle.
3. DM6647 #0000
4. DM6648 #0000
5. DM6649 #0000
Interfaccia MODBUS Slave per PLC C200HS/Ha e CQM1 CPU 4x 5

Protocollo
nn Start bit Data bit Stop bit Parità
06 1 8 1 Pari
07 1 8 1 Dispari
08 1 8 1 Nessuna
09 1 8 2 Pari
10 1 8 2 Dispari
11 1 8 2 Nessuna

Velocità
xx Baud rate
00 1200
01 2400
02 4800
03 9600
04 19200

NOTA: Le modifiche all'impostazione della porta periferiche sono operative da


subito, e ciò può causare la perdita della comunicazione con il computer; durante
questa fase è consigliabile forzare la configurazione della porta utilizzando il dip
switch 5 sulla CPU del PLC.

Impostazione dell'indirizzo di nodo.


Prima di utilizzare la subroutine è necessario assegnare un indirizzo con il quale
identificare il PLC all'interno della rete MODBUS; come indirizzo va assegnato un
valore esadecimale compreso tra 1 e F7 (247 in decimale). L'indirizzo va scritto nel
DM5472 utilizzando il flag di prima scansione e, una volta assegnato, non deve essere
modificato.

Impostazione dell'interrupt schedulato (solo C200HS/Ha).


Per i PLC C200HS/Ha, la base dei tempi e il metodo di interruzione dell'interrupt
schedulato vanno impostati nell'area di setup del PLC prima di utilizzare la
subroutine.

DM6620 = 1000 Imposta il modo di risposta ad alta velocità.


DM6622 = 0101 Imposta la base dei tempi a 1 millisecondo.

Per i PLC CQM1 questa impostazione non è necessaria.


Interfaccia MODBUS Slave per PLC C200HS/Ha e CQM1 CPU 4x 5

5.4 Utilizzo della subroutine.

Avvio della subroutine.


Per attivare lo Slave è sufficiente chiamare la subroutine 20 con una network come la
seguente:

In questo modo la subroutine è sempre attiva.


Se si vuole utilizzare la subroutine solo quando è necessario si può utilizzare la
network seguente:

Accesso alla memoria del PLC.


Il master MODBUS può accedere, nell'area Data Memory del PLC, agli indirizzi
compresi tra DM0000 ed DM5457. Il numero massimo di registri trasferibili con un
unica frame è 123 corrispondente a 246 byte. L'intervallo di indirizzamento del PLC
corrisponde all'intervallo di indirizzamento MODBUS da 40001 a 45458. Il Data
Memory 0 del PLC corrisponde all'indirizzo MODBUS standard 40001.

Flags di stato.
Lo Slave utilizza alcuni bit dell'area IR per comunicare lo stato dell’interfaccia
MODBUS. La versione per CQM1 e quella per C200HS/Ha utilizzano bit diversi.

C200HS/Ha CQM1
Bit Significato Bit Significato
229.00 CRC corretto 223.00 CRC corretto
229.01 Errore sul CRC 223.01 Errore sul CRC
229.04 Errore sulla funzione 223.04 Errore sulla funzione

Nota: I bit di stato non devono essere scritti.


Interfaccia MODBUS Slave per PLC C200HS/Ha e CQM1 CPU 4x 5

5.5 Esempi di utilizzo.

Di seguito sono riportate le network necessarie ad attivare il PLC come slave


fornendogli per indirizzo il valore 4.

5.6 Limitazioni.

Il programma slave sfrutta il tempo impiegato dal master per passare


dall'interrogazione di uno slave a quella del successivo per identificare le frame nel
flusso dei dati della rete MODBUS. Per il corretto funzionamento del programma è
necessario garantire una pausa di almeno 30 millisecondi nel passaggio da uno slave al
successivo. Lo slave può funzionare solo con quei master il cui polling rate è
impostabile dall'utente; si devono utilizzare polling rate non inferiori ai 100ms per
slave. Se come master si impiega uno dei programmi master descritti nel capitolo
precedente, occorre impostare il ritardo di polling ad almeno 30 milliesecondi
scrivendo 3 nel DM5748. Utilizzando come master il software per il modulo ASC02
descritto nel capitolo 3, non è necessario impostare ritardi.

5.7 Configurazione del Master.

· E' indispensabile che il Master utilizzi unicamente i comandi 03h e 10h per
comunicare con il PLC, l'uso di altri comandi causerà dei Timeout o altri errori
di comunicazione.
· Per garantire un tempo di risposta adeguato è consigliabile limitare il numero di
registri letti contemporaneamente a 32 o meno.
· Il Master non può in nessun modo intervenire sullo stato del PLC perchè i comandi
necessari non sono stati implementati. Non è nemmeno possibile la lettura o
scrittura diretta dei punti di I/O, il programma dell'utente dovrà provvedere,
dove necessario, alla mappatura degli I/O sull'area dei Data Memory.
· Lo Slave ignora le frame broadcast.
· Le funzioni di risposta agli errori sono molto limitate: gli errori sul formato dei
comandi si traducono in timeout.
Interfaccia MODBUS Slave per PLC C200HS/Ha e CQM1 CPU 4x 5

5.8 Occupazione di memoria e allocazione di bit e canali.

La subroutine occupa circa 723 word di memoria di programma, 527 word dell'area
DM per le tabelle, i buffer e i registri, 4 canali di lavoro dell'area IR e l'interrup
schedulato (interrupt schedulato 1 sui PLC CQM1).
Oltre alla Subroutine 20 vengono utilizzate anche le subroutine 21, 22, 23 e 24 sui
PLC CQM1 e le subroutine 21, 22, 23, 99 sui PLC C200HS/Ha.

Tabella dei Contatti e delle Word usati nella subroutine


CQM1 C200HS/Ha Funzione
Bit IR223.00 Bit IR229.00 ON quando il CRC è corretto R
Bit IR223.01 Bit IR229.01 ON in caso di errori sul CRC R
Bit IR223.04 Bit IR229.04 ON in presenza di funzioni non valide R
Word DM5472 Word DM5472 Indirizzo Slave per il PLC W

Nota:
Per il corretto funzionamento della subroutine è indispensabile che le seguenti
word non siano scritte dall’utente:
- DM5458 ÷ DM5728 e DM6144 ÷ DM6399 (su C200HS/Ha e CQM1)
- IR222 ÷ IR225 (su CQM1)
- IR228 ÷ IR231 (su C200HS)
Inoltre l'utente NON deve utilizzare le subroutine 21, 22, 23, 24 (CQM1) e 21, 22,
23, 99 (C200HS/Ha).

5.9 Tempi di risposta dello slave

Per tempo di risposta si intende il tempo impiegato dallo slave per interpretare la richiesta del
master, eseguire i comandi richiesti e trasmettere la risposta.
Le tabelle riportano i tempi di risposta del programma slave rilevate per diversi tempi di
scansione sul PLC. Le prove sono state eseguite con un PLC CQM1 CPU 41 a 9600 baud,
utilizzando come master un C200HX CPU44 con il software C200X_M.

Tempo di ciclo libero (circa 5 ms)


Operazione Tempo di
risposta (ms)
Lettura 32 registri 200
Lettura 16 registri 130
Lettura 1 registro 80
Scrittura 32 registri 210
Scrittura 16 registri 150
Scrittura 1 registro 80
Interfaccia MODBUS Slave per PLC C200HS/Ha e CQM1 CPU 4x 5

Tempo di ciclo 20 ms
Operazione Tempo di
risposta (ms)
Lettura 32 registri 440
Lettura 16 registri 240
Lettura 1 registro 90
Scrittura 32 registri 430
Scrittura 16 registri 260
Scrittura 1 registro 120

Tempo di ciclo 50 ms
Operazione Tempo di
comunicazione (ms)
Lettura 32 registri 870
Lettura 16 registri 540
Lettura 1 registro 200
Scrittura 32 registri 980
Scrittura 16 registri 640
Scrittura 1 registro 250
Interfaccia MODBUS Master Low Level per PLC C200HS/Ha e CQM1 CPU 4x 6

6 - Interfaccia MODBUS Master Low Level


per PLC C200HS/Ha e CQM1 CPU 4x

6.1 Introduzione.

Il programma fornisce un interfaccia di basso livello di tipo generale per poter


implementare un qualunque comando in protocollo MODBUS. La costruzione della
frame di comando è lasciata all'utente mentre la subroutine si occupa esclusivamente
delle procedure di trasmissione e ricezione, comprendendo anche la verifica
dell'integrità della risposta.

6.2 Configurazione richiesta.

Il software di comunicazione è stato sviluppato per:


· PLC C200HS CPU 21, 23, 31 o 33
· PCL C200HX/G/E tutte le CPU
· PLC CQM1 CPU 4x

6.3 Installazione.

La subroutine è presente su disco con il nome C200_MGP.SWP per la versione


C200HS/Ha e con il nome CQM1_MGP.SWP per la versione CQM1; gli stessi
nomi, esclusa l'estensione, vengono usati per file in foramto LSS e SSS (estensione
.SP1). Nel file è presente la sola subroutine di comunicazione, l'utente dovrà
provvedere ad integrarla nella propria applicazione. La subroutine va posta in fondo al
programma in modo tale che non siano presenti network tra le subroutine. La
subroutine è terminata da un istruzione END(01) e perciò occorre prestare attenzione
affinchè la END non escluda porzioni di programma. L'utente deve inserire le network
necessarie all'impostazione del Timeout, alla costruzione delle frame e alla chiamata
della subroutine.
Prima di eseguire il programma è necessario caricare le tabelle per il calcolo del
CRC contenute nel file DM_CRC.DDM formato SYSWIN o DM_CRC.SL4
formato SSS nei Data Memory da 5488 a 5999.

Configurazione della porta seriale integrata.


La porta seriale va configurata con la stessa velocità e protocollo degli slave. La
configurazione avviene impostando i DM dell'area di Setup del PLC.

1. DM6645 #1001
2. DM6646 #nnxx , dove nn e xx hanno il sinificato indicato nelle tabelle.
3. DM6648 #0000
4. DM6649 #0000
Interfaccia MODBUS Master Low Level per PLC C200HS/Ha e CQM1 CPU 4x 6

Protocollo
nn Start bit Data bit Stop bit Parità
06 1 8 1 Pari
07 1 8 1 Dispari
08 1 8 1 Nessuna
09 1 8 2 Pari
10 1 8 2 Dispari
11 1 8 2 Nessuna

Velocità
xx Baud rate
00 1200
01 2400
02 4800
03 9600
04 19200

NOTA: Le modifiche all'impostazione della seriale sono operative da subito, e ciò


può causare la perdita della comunicazione con il computer; in questa fase è
consigliabile forzare la configurazione della seriale utilizzando il dip switch 5 sulla
CPU del PLC.

6.4 Utilizzo della subroutine.

La subroutine di comunicazione è chiamabile dal programma principale ogni volta che


si vuole inviare un frame ad uno slave. Le operazioni effettuate all’interno della
subroutine sono le seguenti:

· Calcolo e aggiunta del CRC in coda al frame


· Invio del messaggio allo slave
· Attesa della risposta dello slave
· Verifica dell'integrità della risposta dello slave (verifica del CRC)
· Check di eventuali errori di timeout dello slave

Al momento della chiamata, il frame di trasmissione dovrà essere già memorizzato in


una serie di Data Memory il cui indirizzo iniziale deve essere scelto dall’utente; al
contrario la risposta verrà scritta in un buffer di DM a partire dal DM5420,
memorizzando un byte per DM. Il Timeout (tempo massimo di attesa di una risposta
dallo slave) può essere modificato scrivendo il valore in BCD espresso in decimi di
secondo nel DM5407 (un valore ragionevole è 20 cioè 2 secondi); la routine, dopo
l’invio del frame TX, resterà in attesa di una risposta per il tempo impostato come
Timeout, dopodichè, se non c’è stata risposta, verrà riconosciuto un errore e settato il
contatto IR225.02 (sui CQM1) o il contatto IR233.02 (sui C200HS/Ha).
Interfaccia MODBUS Master Low Level per PLC C200HS/Ha e CQM1 CPU 4x 6

Di seguito sono riportati i passi da seguire per poter utilizzare la subroutine di


comunicazione:

1. Scrivere il frame da trasmettere (TX) in una serie di DM partendo da un dato


indirizzo, memorizzando un byte per DM; è indispensabile lasciare, in coda al
frame, 2 DM liberi, destinati a contenere il CRC calcolato dalla subroutine.
2. Scrivere nel DM5410 l’indirizzo di partenza del frame TX (in BCD).
3. Scrivere nel DM5409 la lunghezza in Byte del frame TX, in BCD, esclusi i due
byte del CRC.
4. Scrivere nel DM5408 la lunghezza in Byte del frame RX (di ricezione) in BCD
esclusi i due byte del CRC.
5. Caricare il valore #0001 nel ‘Canale_Shift’.
6. Chiamare la subroutine con l’istruzione SBS(91) 14 (14 è il numero della
subroutine di comunicazione che invia il comando e riceve la risposta dello slave).

La chiamata dovrà essere attiva per più scansioni fino al completamento delle
operazioni; a questo scopo è previsto il contatto ‘TX_BUSY’ che rimane ON fino al
termine delle operazioni eseguite dalla subroutine. Mentre il contatto ‘TX_BUSY’ è
ON non si devono modificare i DM 5407, 5408, 5409, 5410 e il ‘Canale_Shift’ . Le
network per la chiamata della subroutine sono mostrate nella figura che segue.

Il bit ‘CRC_OK’ va a ON se il CRC della risposta è corretto e deve essere resettato


dall’utente prima di effettuare un altra trasmissione; il bit ‘CRC_ERR’ va a ON per
segnalare un errore di integrità sul frame ricevuto e resta in questo stato fino alla
successiva trasmissione; il bit ‘T_OUT_ERR’ va a ON per segnalare la presenza di un
TIMEOUT in ricezione, indicando che lo slave non ha risposto nei tempi previsti.
Quando uno dei 3 contatti è ON il bit ‘TX_BUSY’ è OFF.
Il frame di risposta dello slave verrà memorizzato in un buffer partendo dal DM5420,
memorizzando un byte per DM.
Interfaccia MODBUS Master Low Level per PLC C200HS/Ha e CQM1 CPU 4x 6

6.5 Esempi di utilizzo.

Lettura di registri.
Lettura di 4 registri ritentivi dallo slave 31 (1F in esadecimale) partendo dal registro
41 (29 in esadecimale).
La frame verrà costruita a partire dal DM0100 scrivendo nei due digit meno
significativi di ogni Data memory.

DM 0100 001F Hex Indirizzo del dispositivo


DM 0101 0003 Hex Comando di lettura
DM 0102 0000 Hex Byte più significativo dell'indirizzo del 1° registro
DM 0103 0029 Hex Byte meno significativo dell'indirizzo del 1° registro
DM 0104 0000 Hex Byte più significativo del numero di registri
DM 0105 0004 Hex Byte meno significativo del numero di registri

Prima di attivare la trasmissione occorre scrivere nei DM 5410, 5409 e 5408 le


informazioni relative alla frame.

DM 5410 0100 BCD Primo DM contenente la Frame espresso in BCD


DM 5409 0006 BCD Lunghezza in Byte della Frame espressa in BCD
DM 5408 0011 BCD Lunghezza in Byte della risposta escluso il CRC espressa
in BCD

Eseguire le operazioni per la trasmissione, se si sta utilizzando la network indicata nel


paragrafo "Utilizzo della subroutine" ciò equivale a portare a ON il bit che attiva la
trasmissione.
Se la comunicazione avviene correttamente nel DM 5420 verrà scritta la frame
ricevuta. Vengono sempre utilizzate i due digit meno significativi.

DM 5420 001F Hex Indirizzo dello slave (31)


DM 5421 0003 Hex Comando
DM 5422 0008 Hex Numero di Byte letti (4 registri = 8 Byte)
DM 5423 0001 Hex Byte più significativo del 1° registro
DM 5424 00FE Hex Byte meno significativo del 1°registro
DM 5425 0000 Hex Byte più significativo del 2° registro
DM 5426 0000 Hex Byte meno significativo del 2°registro
DM 5427 00AB Hex Byte più significativo del 3° registro
DM 5428 0000 Hex Byte meno significativo del 3°registro
DM 5429 0001 Hex Byte più significativo del 4° registro
DM 5430 0032 Hex Byte meno significativo del 4°registro
DM 5431 00xx Hex CRC
DM 5432 00xx Hex CRC
Interfaccia MODBUS Master Low Level per PLC C200HS/Ha e CQM1 CPU 4x 6

Scrittura di registi
Scrittura del valore 656 (0290 in esadecimale) nel registro 1270 (04F6 in esadecimale)
dello slave 2.

La frame verrà costruita a partire dal DM0500 scrivendo nei due digit meno
significativi di ogni Data memory.

DM 0500 0002 Hex Indirizzo del dispositivo


DM 0501 0010 Hex Comando di scrittura
DM 0502 0004 Hex Byte più significativo dell'indirizzo del 1° registro
DM 0503 00F6 Hex Byte meno significativo dell'indirizzo del 1° registro
DM 0504 0000 Hex Byte più significativo del numero di registri
DM 0505 0001 Hex Byte meno significativo del numero di registri
DM 0506 0002 Hex Numero di Byte da scrivere
DM 0507 0002 Hex Byte più significativo del valore da scrivere
DM 0508 0090 Hex Byte meno significativo del valore da scrivere

Prima di attivare la trasmissione occorre scrivere nei DM 5410, 5409 e 5408 le


informazioni relative alla frame.

DM 5410 0500 BCD Primo DM contenente la Frame espresso in BCD


DM 5409 0009 BCD Lunghezza in Byte della Frame espressa in BCD
DM 5408 0006 BCD Lunghezza in Byte della risposta escluso il CRC espressa
in BCD

Eseguire le operazioni per la trasmissione, se si sta utilizzando la network indicata nel


paragrafo "Utilizzo della subroutine" ciò equivale a portare a ON il bit che attiva la
trasmissione.
Se la comunicazione avviene correttamente nel DM 5420 verrà scritta la frame
ricevuta. Vengono sempre utilizzate i due digit meno significativi.

DM 5420 0002 Hex Indirizzo dello slave (31)


DM 5421 0010 Hex Comando
DM 5422 0004 Hex Byte più significativo dell'indirizzo del registro
DM 5423 00F6 Hex Byte meno significativo dell'indirizzo del registro
DM 5424 0000 Hex Byte meno significativo del numero di registri
DM 5425 0001 Hex Byte più significativo del numero di registri
DM 5426 00xx Hex CRC
DM 5427 00xx Hex CRC
Interfaccia MODBUS Master Low Level per PLC C200HS/Ha e CQM1 CPU 4x 6

6.6 Occupazione di memoria e allocazione di bit e canali.

La subroutine occupa circa 438 word di memoria di programma, 589 word dell'area
DM per le tabelle, i buffer e i registri, 3 canali di lavoro dell'area IR e il Timer 511.
Oltre alla subroutine 14 vengono utilizzate le subroutine 10,11,12 e 13.

Tabella dei Contatti e delle Word usati nella subroutine


CQM1 C200HS Funzione
Canale IR226 Canale IR234 Canale_Shift R
Bit IR227.00 Bit IR235.00 TX_BUSY R
Bit IR225.00 Bit IR233.00 CRC_OK R
Bit IR225.01 Bit IR233.01 CRC_ERR R
Bit IR225.02 Bit IR233.02 T_OUT_ERR R
Word DM5420 Word DM5420 Primo DM del buffer RX W
Word DM5410 Word DM5410 Indirizzo iniziale frame TX W
Word DM5409 Word DM5409 Lunghezza frame TX in BCD escluso CRC W
Word DM5408 Word DM5408 Lunghezza frame RX in BCD escluso CRC W
Word DM5407 Word DM5407 Tempo di Timeout in centesimi di secondo W

Per il corretto funzionamento della subroutine è indispensabile che le seguenti


word non siano scritte dall’utente:
- DM5411 ÷ DM5999 (su C200HS e CQM1)
- IR225 ÷ IR227 (su CQM1)
- IR233 ÷ IR235 (su C200HS)
Inoltre l'utente NON deve utilizzare le subroutine 10, 11, 12 e 14.

6.7 Tempi di comunicazione

In tutte le operazioni di controllo e/o monitoraggio è necessario conoscere la velocità


di aggiornamento dei dati. Occorre garantire che i tempi di risposta del sistema di
controllo siano adeguati all’applicazione.
Nelle tre tabelle seguenti sono riportati i tempi di comunicazione per uno slave rilevati
per il CQM1 a diversi tempi di scansione.

Tempo di ciclo libero


Operazione Tempo di Numero di
comunicazione (ms) operazioni al sec.
Lettura 16 registri 125 8
Lettura 1 registro 59 17
Scrittura 2 registri 71 14
Scrittura 1 registro 67 15
Interfaccia MODBUS Master Low Level per PLC C200HS/Ha e CQM1 CPU 4x 6

Tempo di ciclo 10 ms
Operazione Tempo di Numero di
comunicazione (ms) operazioni al sec.
Lettura 16 registri 250 4
Lettura 1 registro 167 6
Scrittura 2 registri 200 5
Scrittura 1 registro 200 5

Tempo di ciclo 20 ms
Operazione Tempo di Numero di
comunicazione (ms) operazioni al sec.
Lettura 16 registri 500 2
Lettura 1 registro 333 3
Scrittura 2 registri 333 3
Scrittura 1 registro 333 3

Configurazione in prova
Master CQM1 CPU41 con il programma CQM1_MGP.
Convertirore RS232/485 SYS-AL007-OEE-I
Slave Inverter SYSDRIVE 3G3EV-A2004-RM-E
Velocita di comunicazione 9600 baud, nessun controllo di parità.
Interfaccia MODBUS Master Low Level per PLC C200HS/Ha e CQM1 CPU 4x 6
Interfaccia MODBUS Master/Slave 7

7 - Interfaccia MODBUS Master/Slave


per PLC C200HS/Ha, CQM1 CPU 4x

7.1 Introduzione.

L'interfaccia Master/Slave consente l'uso contemporaneo delle funzioni Master e


Slave, illustrate nei capitoli 4 e 5, sullo stesso PLC. Sulla porta seriale integrata
viene effettuato il polling degli Slave con la possibilità di utilizzare i comandi 10H
(scrittura di registri), 04H (lettura dei registri di ingresso) e 03H (lettura dei registri
ritentivi); oltre alla possibilità di inviare comandi in modo asincrono. Sulla porta
periferiche (tramite adattatore CIF) il PLC risponde alle interrogazioni di un master
MODBUS, rispondendo ai comandi 10H (scrittura di data memory) e 03H (lettura di
data memory). Tutti i DM del PLC sono direttamente accessibili al Master.

7.2 Configurazione richiesta.

Il software di comunicazione è stato sviluppato per:


· PLC C200HS CPU 21, 23, 31 o 33
· PLC C200HX/G/E tutte le CPU
· PLC CQM1 CPU 4.x

7.3 Installazione.

Il programma è presente su disco con il nome C200_MS.SP1 per la versione C200HS


e con il nome CQM1_MS.SP1 per la versione CQM1; gli stessi nomi, esclusa
l'estensione, vengono usati nei file per LSS e SYSWIN (estensione .SWP). Nel file
sono presenti le sole subroutine di comunicazione, l'utente dovrà provvedere ad
integrarle nella propria applicazione; nell'APPENDICE A viene mostrato uno schema
di massima su come organizzare il programma completo. Le subroutine vanno poste
in fondo al programma in modo tale che non siano presenti network tra le subroutine.
Dopo la seconda subroutine è presente una istruzione END(01) e perciò occorre
prestare attenzione affinchè la END non escluda porzioni di programma. L'utente deve
inserire le network necessarie all'impostazione del Timeout, della lista di polling,
dell'indirizzo di nodo e alla chiamata della subroutine.
Prima di eseguire il programma è necessario caricare la tabella per il calcolo del
CRC contenuta nel file CRC.SL4 formato SSS o CRC.DDM formato SYSWIN
nei Data Memory da 6144 a 6399.

Impostazione dell'interrupt schedulato (solo C200HS/Ha).


Per i PLC C200HS/Ha, la base dei tempi e il metodo di risposta all'interrupt
schedulato vanno impostati nell'area di setup del PLC prima di utilizzare la
subroutine.

DM6620 = 1000 Imposta il modo di risposta ad alta velocità.


DM6622 = 0101 Imposta la base dei tempi a 1 millisecondo.
Interfaccia MODBUS Master/Slave 7

Per i PLC CQM1 questa impostazione non è necessaria.


Interfaccia MODBUS Master/Slave 7

7.4 Utilizzo delle subroutine.

Poichè C200_MS (per C200HS) e CQM1_MS (per CQM1) derivano direttamente


dalle rispettive subroutine Master e Slave; il funzionamento della parte Master è
identico a quello indicato nella sezione relativa alla sola subroutine Master eccettuata
la possibilità di selezionare la porta di uscita per C200HS/Ha; il funzionamento della
parte Slave è identico a quello indicato nella sezione relativa alla subroutine Slave.
In questo caso è necessaria la chiamata delle subroutine 10 e 20 oltre alla
inizializzazione di entrambe le funzioni.
NOTA: per i dettagli sulle caratterische e sull'utilizzo delle funzioni Master e Slave
fare riferimento ai capitoli 4 e 5.

Avvio delle subroutine.


Per attivare il Master occorre chiamare la subroutine 10 mentre per lo Slave occore
chiamare la subroutine 20 con network come le seguenti:

In questo modo le subroutine sono sempre attive.


La subroutine Slave deve essere sempre attiva, mentre per la subroutine Master è
possibile attivarla o disattivarla quando necessario.
Interfaccia MODBUS Master/Slave 7

7.5 Esempio di utilizzo.

Nella figura che segue sono illustrate le istruzioni da aggiungere per inizializzare le
subroutine, impostando il Timeout a 2 secondi, la lista di polling a partire dal
DM0800 e assegnando allo slave l'indirizzo 16 (10 esadecimale).

7.6 Occupazione di memoria e allocazione di bit e canali.

La subroutine occupa circa 1425 word di memoria di programma, 798 word dell'area
DM per le tabelle, i buffer e i registri, 8 canali di lavoro dell'area IR i Timer 15 e 510
e l'interrupt schedulato (interrupt schedulato 1 su PLC CQM1).
Oltre alle subroutine 10 e 20 vengono utilizzate anche le subroutine 11, 12, 13, 21, 22,
23, 24 su PLC CQM1 e le subroutine 11, 12, 13, 21, 22, 23, 99 su PLC C200HS/Ha.

Tabella dei Contatti e delle Word usati nella subroutine MASTER


CQM1 C200HS Funzione
Bit IR227.00 Bit IR233.00 ON quando il CRC è corretto R
Bit IR227.01 Bit IR233.01 ON in caso di errori sul CRC R
Bit IR227.02 Bit IR233.02 ON in presenza di Timeout R
Bit IR227.04 Bit IR233.04 ON in presenza di funzioni non valide R
Bit IR227.06 Bit IR233.06 Portare a ON per attivare la trasmissione W
Word DM5729 Word DM5729 Tempo di Timeout in decimi di secondo W
Word DM5745 Word DM5745 Posizione di inizio della tabella W
Word DM5746 Word DM5746 Slave che ha causato l'ultimo errore R
Word DM5748 Word DM5748 Ritardo per il polling del master W

Tabella dei Contatti e delle Word usati nella subroutine SLAVE


CQM1 C200HS Funzione
Bit IR223.00 Bit IR229.00 ON quando il CRC è corretto R
Bit IR223.01 Bit IR229.01 ON in caso di errori sul CRC R
Bit IR223.04 Bit IR229.04 ON in presenza di funzioni non valide R
Word DM5472 Word DM5472 Indirizzo Slave per il PLC W
Interfaccia MODBUS Master/Slave 7

Per il corretto funzionamento della subroutine è indispensabile che le seguenti


word non siano scritte dall’utente:
- DM5458 ÷ DM5999 e DM6144 ÷ DM6399 (su C200HS e CQM1)
- IR222 ÷ IR229 (su CQM1)
- IR228 ÷ IR235 (su C200HS)
Inoltre l'utente NON deve utilizzare le subroutine 11, 12, 13, 21, 22, 23, 24 per i
PLC CQM1 e le subroutine 11, 12, 13, 21, 22, 23, 99 per i PLC C200HS/H a.
Struttura dell’applicazione Appendice A

APPENDICE A
Struttura dell'applicazione

253.15
MOV(21
1st_SCA )
N #0203

DM0800 Costruzione della


lista di polling con
MOV(21
)
inizio al DM0800.
#000A (a cura dell'utente)
DM0801

253.15
MOV(21
)
Inizializzazione della
1st_SCA
N #0020 subroutine di comunicazione:
Impostazione Timeout a 2
DM5729
secondi (routine Master)
Impostazione inizio Lista
MOV(21
) Polling (routine Master)
#0800

(a cura dell'utente)
DM5745

253.13
SBS(91
ON ) Applicazione che comprende la
10 chiamata chiamata della subroutine.
(a cura dell'utente)

SBN(92
)
10
Subroutine MODBUS.
(inclusa nel pacchetto)
In questo esempio la
Subroutine Master
(C200_M o CQM1_M).

RET(93)

END(01
)

L'esempio si riferisce alla subroutine Master ma si applica anche alle altre


subroutine. Nei vari casi possono cambiare le inizializzazioni e il numero
della subroutine: 20 per la sub SLAVE.
Struttura dell’applicazione Appendice A
MODBUS Tester per C200H-ASC02 Appendice B

APPENDICE B
MODBUS Tester per C200H-ASC02

Il programma TSTMOD.BAS consente la programmazione degli strumenti EST 485


Electrex1, oltre alla possibiltà di effettuare prove di comunicazione MODBUS
utilizzando FRAME generiche inserite dall’utente. Il programma richiede la routine
assembler CRC.A07 per il calcolo del CRC.

B.1 Installazione

Caricamento della routine assembler.


Per prima cosa è necessario caricare la routine assembler. Per questa operazione è
necessario il programma SCC.EXE.
1. Collegarsi all’ASC02 con il cavo adatto per la sua programmazione. (è necessario
il collegamento dei dei segnali RTS/CTS)
2. Lanciare il programma SCC.EXE
3. Entrare nella modalità MONITOR dell’unità ASCII con il comando MON;
apparirà un asterisco ‘*’.
4. Digitare il comando MSET &H2100 e poi premere INVIO.
5. Dare il comando L0 (Load indirizzo 0) e premere il tasto RUN/STOP sull’unità
ASCII.
6. Premere il tasto Control insieme al tasto K; inserire il nome del file contenente il
codice assembler: CRC.A07.
7. Alla fine del trasferimento premere Control B per tornare in modo BASIC.

In caso di problemi o errori, riavviare l’ASC02 e ripetere l’operazione dall’inizio.

Caricamento del programma BASIC.


1. Lanciare il programma SCC.EXE.
2. Attivare una delle tre aree di programma con il comando PGEN.
3. Cancellare il contenuto dell’area con NEW (il comando NEW non cancella
l’assembler).
4. Premere Control S e inserire il nome del programma BASIC TSTMOD.BAS.
5. Eventualmente listare il programma per verificarne la correttezza.

In caso di errori di caricamento ripetere dal passo 3.

B.2 Utilizzo del programma

Collegare alla porta 2 dell’ ASC 02 i dispositivi slave MODBUS.


Per avviare il programma dare il comando RUN.

1
EST 485 è un analizzatore di linee di alimentazione trifase, opera con il protocollo
MODBUS ed è prodotto dalla Electrex S.R.L. di Bazzano (BO).
MODBUS Tester per C200H-ASC02 Appendice B

Menu configurazione
All’avvio viene mostrato il menu di configurazione, che permette di configurare la
porta a cui sono collegati i dispositivi MODBUS. Oltre alla configurazione della porta
verrà mostrata l’istruzione BASIC da utilizzare per l’apertura della porta.

Configurazione

Protocollo di comunicazione

1> 8 bit di dati nessuna parita' 2 bit di stop


2> 8 bit di dati nessuna parita' 1 bit di stop
3> 8 bit di dati parita' pari 1 bit di stop
4> 8 bit di dati parita' dispari 1 bit di stop

Protocollo (1..4):? 1

Istruzione per aprire la porta: OPEN #2,COMU:(43)

Premi un tasto per continuare

Menu principale
Dopo aver effettuato la configurazione si accede al menu principale. Con l’opzione 1
si torna al menu di configurazione

***** MODBUS TESTER *****

Programma per la configurazione e il test dei dispositivi MODBUS

MENU

1> Configurazione

2> Assegnazione indirizzo per EST 485 ELECTREX


3> Prova comunicazione con EST 485 ELECTREX

4> Invio di FRAME MODBUS (generico)

5> FINE

Opzione (1..5) :?
MODBUS Tester per C200H-ASC02 Appendice B

Assegnazione indirizzo per EST 485 Electrex.


Con l’opzione 2 del menu principale si accede al menu per la configurazione dei
dispositivi EST 485.

Numero di serie dello strumento:? 11379


Indirizzo per lo strumento (1..247)? 2

Verifica assegnazione
Assegnazione riuscita!
premi un tasto per continuare

Per l’assegnamento dell’indirizzo è necessario conoscere il numero di serie dello


strumento; per l’indirizzo si può usare un qualunque valore compreso tra 1 e 247 che
non sia già stato utilizzato per un altro nodo.
Se durante l’operazione si dovessero verificare degli errori è necessario verificare i
collegamenti e le impostazioni effettuate. Premendo un tasto si torna al menu
principale.

Prova di comunicazione con EST 485 Electrex.


L’opzione 3 del menu principale consente di verificare il collegamento dei dispositivi
EST 485 specificandone l’indirizzo di nodo (compreso tra 1 e 247).

Prova di comunicazione con EST 485

Indirizzo dello strumento (1..247)? 2


Comunicazione OK!

Un altra prova (S/N) ?

Se il dispositivo non risponde verrà indicato un errore di timenout; ciò si verifica


quando l’indirizzo di nodo specificato non esiste, oppure quando il dispositivo non è
in grado di comunicare con l’unità ASCII.
Il messaggio CRC errato indica la presenza di errori nella ricezione della risposta
dello slave, dovuti a disturbi sulla comunicazioni o ad un errore nella scelta del
protocollo.
MODBUS Tester per C200H-ASC02 Appendice B

Invio di FRAME MODBUS (generico).


L’opzione 4 del menu principale consente l’invio di frame generiche verso un
qualunque slave MODBUS; l’utente deve inserire il frame MODBUS un byte per
volta, inserendo solo valori decimali e senza il CRC che viene calcolato dal
programma. Il programma invia la frame e si pone in attesa della risposta, se non si
verificano errori di trasmissione verrà mostrata la frame ricevuta.

Invio di FRAME MODBUS.


Inserire la FRAME un byte per volta terminandola con il carattere 'x'

Byte n. 1 --> ? 2
Byte n. 2 --> ? 4
Byte n. 3 --> ? 0
Byte n. 4 --> ? 0
Byte n. 5 --> ? 0
Byte n. 6 --> ? 2
Byte n. 7 --> ? x
Frame Trasmessa :
02 04 00 00 00 02 71 F8

Attesa della risposta

Frame Ricevuta:
02 04 04 01 32 00 00 68 B7

Nuova Frame (S/N):?


Il protocollo MODBUS Appendice C

APPENDICE C
Il protocollo MODBUS

C.1 Il Protocollo MODBUS.


E’ un protocollo di comunicazione messo a punto dalla MODICON per i collegamenti
seriali con i propri PLC. La comunicazione avviene tra un’unità master e più slaves
(fino a 247); solo il master può iniziare la trasmissione, slave rispondono solo alle
richieste del master.
Lo scambio di dati si realizza tramite messaggi strutturati in frame la cui struttura
dipende in parte dal comando.
La struttura di base della comunicazione MODBUS è la seguente:

Richiesta del
master
Indirizzo del Indirizzo del
dispositivo dispositivo
Codice Codice funzione
funzione

Dati Dati

CRC CRC

Risposta dello
Slave

Nella presente implementazione viene usato il modo RTU (Remote Terminal Unit) in
cui i dati vengono trasmessi come byte. Indirizzo e codice funzione occupano un byte
ciascuno mentre il CRC è costituito da 2 byte. Ogni slave è dotato di un proprio
indirizzo (da 1 a 247), l’indirizzo 0 è riservato alle comunicazioni Broadcast
(trasmissione simultanea a tutti gli slave) per la quale non è prevista una risposta da
parte dello slave; le funzioni di lettura non possono essere eseguite in broadcast. Il
CRC è un particolare codice di controllo che consente di verificare l’integrità del
frame. Per il calcolo del CRC (Cyclic Redundancy Check) esistono diversi algoritmi
basati sulla manipolazione dei caratteri che costituiscono il messaggio.

Algoritmo di calcolo del CRC.


L’algoritmo utilizzato per il calcolo del CRC è di tipo tabellare; vengono utilizzate
due tabelle (una HI e l’altra LO) di 256 byte l’una, memorizzate in una serie di DM.
L’algoritmo di calcolo è il seguente:

1. Inizializzazione del CRC con il valore &HFF in due DM successivi (CRC_HI e


CRC_LO);
2. XOR fra CRC_HI e primo byte del messaggio per la creazione di un INDICE di
posizione usato internamente alle tabelle;
3. XOR fra CRC_LO e valore della tabella HI alla posizione INDICE, posto in CRC_HI;
4. CRC_LO posto uguale al valore della tabella LO alla posizione INDICE;
Il protocollo MODBUS Appendice C

5. Ripetere i passi 2, 3, e 4 per tutti i byte del messaggio da trasmettere.


Il protocollo MODBUS Appendice C

C.2 Comandi MODBUS.

Sommario.

Codice Funzione Disponibilità


01H Lettura dei punti di uscita (Bit) C200_MGP, CQM1_MGP
02H Lettura dei punti di ingresso (Bit) C200_MGP, CQM1_MGP
03H Lettura dei registri ritentivi (Word) MSMOD, C200_M/S/MGP,
CQM1_M/S/MGP
04H Lettura dei registri di ingresso (Word) MSMOD, C200_M/MGP,
CQM1_M/MGP
05H Forzatura di una uscita (Bit) C200_MGP, CQM1_MGP
06H Scrittura di un registro ritentivo (Word) C200_MGP, CQM1_MGP
07H Lettura dello stato di esecuzione C200_MGP, CQM1_MGP
08H Funzione di test C200_MGP, CQM1_MGP
0FH Forzatura multipla delle uscite (Bit) MSMOD (finoa 16),
C200_MGP, CQM1_MGP
10H Scrittura multipla dei registri ritentivi MSMOD, C200_M/S/MGP,
(Word) CQM1_M/S/MGP
42H Assegnazione dell'indirizzo C200_MGP, CQM1_MGP

Funzione 01H, lettura multipla dei punti di uscita digitali


Consente la lettura dello stato (ON/OFF) delle uscite.
Es: lettura dei punti da 19 a 55 dallo slave 02 per un totale di 37 ingressi.

Richiesta del Master

Indirizzo Slave 02H


Codice comando 01H
1° ingresso da leggere 00H Byte più significativo (Hi)
13H Byte meno significativo (Lo)
N° dei punti da leggere 00H Byte Hi
25H Byte Lo
CRC 0C
H
27H

Risposta dello Slave

Indirizzo Slave 02H


Codice Comando 01H
N° di byte letti 05H
Stato ingressi 26÷19 CDH 11001101
34÷27 6BH 01101011
42÷35 B2H 10110011
50÷43 0EH 00001110
55÷51 1BH 00011011
CRC 04H
Il protocollo MODBUS Appendice C

FFH
Funzione 02H, lettura multipla dei punti di ingresso digitali
Consente la lettura dello stato (ON/OFF) delle uscite.
Es: lettura dei punti da 196 a 218 dallo slave 11H (17).

Richiesta del Master

Indirizzo Slave 11H


Codice comando 02H
1° ingresso da leggere 00H Byte più significativo (Hi)
C4H Byte meno significativo
(Lo)
N° dei punti da leggere 00H Byte Hi
16H Byte Lo
CRC BAH
A9H

Risposta dello Slave

Indirizzo Slave 11H


Codice Comando 02H
N° di byte letti 03H
Stato ingressi 203÷196 ACH 10101100
211÷204 DBH 11011011
217÷212 35H 00110101
CRC 20H
18H

Funzione 03H, lettura multipla degli Holding Register


Consente la lettura di uno o più registri ritentivi a 16 bit.
Es: lettura dei registri 32,33,34,35 dallo slave 2.

Messaggio lato Master

Indirizzo Slave 02H


Codice comando 03H
1° registro da leggere 00H Byte più significativo (Hi)
20H Byte meno significativo (Lo)
N° registri da leggere 00H Byte Hi
04H Byte Lo
CRC 45H
F0H
Il protocollo MODBUS Appendice C

Risposta dello Slave

Indirizzo Slave 02H


Codice Comando 03H
N° di byte letti 08H
Contenuto del 00H Byte Hi
1° registro 85H Byte Lo
Contenuto del 00H Byte Hi
2° registro 00H Byte Lo
Contenuto del 00H Byte Hi
3° registro 00H Byte Lo
Contenuto del 13H Byte Hi
4° registro 88H Byte Lo
CRC 43H
0DH

Se si cerca di leggere un registro inesistente o un numero di registri superiore al


consentito viene generato un frame di errore.

Funzione 04H, Lettura multipla degli Input Register.


Consente la lettura di uno o più registri di input, da non confondere con i registri
ritentivi.
Es: lettura degli input register 5 e 6 dello slave 2.

Messaggio lato Master

Indirizzo Slave 02H


Codice comando 04H
1° registro da leggere 00H Byte Hi
05H Byte Lo
N° registri da leggere 00H Byte Hi
02H Byte Lo
CRC 61H
F9H

Risposta dello Slave

Indirizzo Slave 02H


Codice Comando 04H
N° di byte letti 04H
Contenuto del 00H Byte Hi
1° registro 00H Byte Lo
Contenuto del FFH Byte Hi
2° registro FEH Byte Lo
CRC 08H
F4H
Il protocollo MODBUS Appendice C

Se si cerca di leggere un registro inesistente o un numero di registri superiore al


consentito viene generato un frame di errore.
Funzione 05H, forzatura di una uscita.
Permette la forzatura di una uscita. Lo stato viene indicato con 0000=OFF e
FF00=ON.
Es: mette a ON l'uscita 172 (AC esadecimale) dello slave 4.

Messaggio lato Master

Indirizzo Slave 04H


Codice comando 05H
Indirizzo dell'uscita 00H Byte Hi
ACH Byte Lo
Stato da imporre FFH Byte Hi
FF00 = ON 00H Byte Lo
CRC 4CH
4EH

Risposta dello slave

Indirizzo dello slave 04H


Codice del comando 05H
Indirizzo dell'uscita 00H Byte Hi
ACH Byte Lo
Stato FFH Byte Hi
FF00 = ON 00H Byte Lo
CRC 4CH
4EH

Se l'operazione viene svolta correttamente lo slave risponderà con il nuovo stato


dell'uscita.

Funzione 06H, scrittura di un registro ritentivo (una Word).


Permette la scrittura di un registro a 16 bit.
Es: scrive 19 (13 esadecimale) nel registro 1020 (03FC esadecimale) dello slave 16
(0F esadecimale).

Messaggio lato Master

Indirizzo Slave 0FH


Codice comando 06H
Ind. del registro 03H Byte Hi
FCH Byte Lo
Dato 00H Byte Hi
13H Byte Lo
CRC 09H
5DH
Il protocollo MODBUS Appendice C

Risposta dello slave

Indirizzo dello slave 0FH


Codice del comando 06H
Ind. del registro 03H Byte Hi
FCH Byte Lo
Contenuto 00H Byte Hi
13H Byte Lo
CRC 09H
5DH

Se la scrittura avviene correttamente lo Slave restituisce il nuovo contenuto del


registro, in caso di errori lo Slave risponde con il frame di errore.

Funzione 07H, lettura dello stato.


Effettua la lettura di un particolare Byte di stato del dispositivo per la verifica di
eventuali errori.
Es. Lettura dello stato dello Slave 21 (15 esadecimale).

Messaggio lato Master

Indirizzo Slave 15H


Codice comando 07H
CRC 4EH
E2H

Risposta dello slave

Indirizzo dello slave 15H


Codice del comando 07H
Byte di stato 00H
CRC 62H
34H

Il significato del Byte di stato dipende dal dispositivo.

Funzione 08H, funzioni diagnostiche.


Permette di effettuare diverse operazioni di diagnostica, la disponibilità delle diverse
funzioni dipende dal dispositivo. Una funzione molto utile, e presente in molti
dispositivi, è il "Loop-back test"; lo Slave risponde con lo stesso codice inviato dal
Master per verificare la comunicazione.
Es. esecuzione del Loop-Back test (funzione diagnostica 0000) con lo slave 1.
Il protocollo MODBUS Appendice C

Messaggio lato Master

Indirizzo Slave 01H


Codice comando 08H
Funz. diagnostica 00H
00H
Dato di prova A5H
CRC DBH
DBH

Risposta dello slave

Indirizzo Slave 01H


Codice comando 08H
Funz. diagnostica 00H
00H
Dato di prova A5H
CRC DBH
DBH

Funzione 0FH, forzatura multipla delle uscite.


Permette la forzatura di più uscite. Le uscite sono numerate partendo da zero e lo stato
viene indicato con 0 = OFF e 1 = ON.
Es: mette a ON le uscite 18,20,21,24,25 e forza a OFF le uscite 19,22,23,26,27.
L'uscita 18 ha come indirizzo 13H. Complessivamente vengono forzate 10 uscite, i bit
non utilizzati vanno posti a 0.

Messaggio lato Master

Indirizzo Slave 11H


Codice comando 0FH
Ind. prima uscita 00H Byte Hi
13H Byte Lo
N° uscite da forzare 00H Byte Hi
0AH Byte Lo
N° di byte 02H
Stato uscite 19 - 26 CDH 11001101
Stato uscite 27 - 28 00H 00000000
CRC 7EH
CBH
Il protocollo MODBUS Appendice C

Risposta dello slave

Indirizzo dello slave 11H


Codice del comando 0FH
Ind. prima uscita 00H Byte Hi
forzata 13H Byte Lo
N° uscite forzate 00H Byte Hi
0AH Byte Lo
CRC 26H
99H

ORGANIZZAZIONE DELLE USCITE

1° Byte dati 2° Byte dati

HEX C D 0 0
Stato 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0
Uscita 25 24 23 22 21 20 19 18 33 32 31 30 29 28 27 26

Funzione 10H, scrittura multipla degli Holding Register.


Consente la scrittura di uno o più registri ritentivi a 16 bit.
Es: scrittura dei valori 0001H e 7530H nei registri 1 e 2 dello slave 1.

Messaggio lato Master

Indirizzo Slave 01H


Codice comando 10H
1° registro 00H Byte Hi
01H Byte Lo
N° registri da scrivere 00H Byte Hi
02H Byte Lo
N° di byte 04H
Dati per il 1° reg. 00H Byte Hi
01H Byte Lo
Dati per il 2° reg. 75H Byte Hi
30H Byte Lo
CRC 45H
27H
Il protocollo MODBUS Appendice C

Risposta dello slave

Indirizzo dello slave 01H


Codice del comando 10H
Ind. 1° reg. scritto 00H Byte Hi
01H Byte Lo
N° reg. scritti 00H Byte Hi
02H Byte Lo
CRC 10H
08H

Se si cerca di scrivere in registri non esistenti o di sola lettura viene generato un


frame di errore.

Funzione 42H, assegnazione dell'indirizzo.


Per alcuni dispositivi l'assegnamento dell'indirizzo avviene via software con un
opportuno comando MODBUS, nella fase di inizializzazione il dispositivo viene
identificato con il suo numero di serie. L'intervallo degli indirizzi utilizzabili dipende
dal dispositivo ed è comunque compreso entro i limiti di indirizzamento MODBUS.
Al comando non segue risposta.

Messaggio lato Master

Indirizzo BROADCAST 00H


Codice Funzione 42H
Numero di serie 00H 1° Byte
in esadecimale 00H 2° Byte
(4 Byte) 18H 3° Byte
B9H 4° Byte
Indirizzo da assegnare 1BH
CRC A7H
BEH

Frame di errore.
Il frame di errore è comune ad ogni comando.

Indirizzo dello Slave 01H Codici di errore:


Codice comando + 80H 90H 01 Funzione non ammessa
Codice di errore 02H 02 Indirizzo inesistente
CRC CDH 03 Dati non corretti
C1H
Il protocollo MODBUS Appendice C
Cablaggi e convertitori Appendice D

APPENDICE D
Cablaggi e convertitori.

D.1 Cavo di collegamento tra C200H-ASC02 e personal computer.


Lato ASC 02 Lato PC
9 pin maschio 9 pin femmina

2 TX 2 RX

3 RX 3 TX

4 RTS 8 CTS

5 CTS 7 RTS

7 DSR 6 DSR

8 DTR 4 DTR

9 GND 5 GND

Per le comunicazioni tra Computer e C200H-ASC02 è indispensabile il cablaggio dei


segnali di Handshake hardware RTS e CTS.

D.2 Schema dei collegamenti SYS AL006-OEE-I.

Il SYS AL006-OEE-I è un convertitore da RS232 a RS485. La commutazione tra TX


ed RX avviene usando il segnale di RTS, per questo motivo il SYS AL006 può essere
usato con le porte seriali del C200H-ASC02 ma non con le seriali integrate di
C200HS e CQM1, ne con gli adattatori CQM1-CIF02 o CPM1-CIF01.
Lato ASC02 Lato SYS AL006 (RS232)
9 pin maschio Morsettiera a vite

2 TX 2 TX

3 RX 1 RX

4 RTS 3 RTS

5 CTS

9 GND 4 GND

E' indispensabile il collegamento della linea di RTS.


Chiudere il Jumper J1 sul lato rivolto verso il trasformatore e chiudere il Jumper J2. Il
Jumper J3 inserisce la resistenza di terminazione ( 220 ohm ).
Cablaggi e convertitori Appendice D

L'alimentazione è a 220 Vac. e viene collegata ai morsetti 1 e 2 della morsettiera di


alimentazione.
Morsettiera RS485.
I morsetti per la RS485 sono disposti come segue:

Morsetto Segnale
1 Polarità negativa del segnale
2 Polarità positiva del segnale
3 GND per la calza schermata

D.3 Schema dei collegamenti SYS AL007-OEE-I.

Il SYS AL007 è un convertitore RS232/RS485 automatico: il passaggio da


trasmissione a ricezione avviene automaticamente senza bisogno della linea di RTS.
Richiede però di essere configurato a seconda della velocità di trasmissione.

Collegamento con seriale integrata del PLC, C200H-ASC02, CPM1-CIF01.

Lato PLC/ASC02/CPM1-CIF01 Lato SYS AL007 (RS232)


9 pin maschio Morsettiera a vite

2 TX 5 TX

3 RX 6 RX

4 RTS 3 GND
Alimentazione
5 CTS 2 +24Vcc

9 GND 1 0 Vcc

Collegamento con CQM1-CIF02

Lato CQM1-CIF02 Lato SYS AL007 (RS232)


9 pin maschio Morsettiera a vite

2 TX 5 TX

3 RX 6 RX

4 RTS 3 GND
Alimentazione
5 CTS 2 +24Vcc

9 GND 1 0 Vcc

Morsettiera RS485

Morsetto Segnale
1 GND per la calza schermata
2 Polarità positiva del segnale
Cablaggi e convertitori Appendice D

3 Polarità negativa del segnale

Configurazione del SYS AL007

SW1: Impostazione della lunghezza del carattere in Bit


DIP 7 DIP 8 Lunghezza
OFF OFF 9 BIT
ON OFF 10 BIT
OFF ON 11 BIT
ON ON 12 BIT

Per determinare la lunghezza del carattere occorre sommare al numero di bit che
compongono i dati il Bit di Start, i Bit di STOP e l'eventuale bit di parità.

SW1: Impostazione della velocità di trasmissione


DIP 1 DIP 2 DIP 3 DIP 4 DIP 5 DIP 6 BAUD RATE
OFF OFF OFF OFF OFF OFF 1200
ON OFF OFF OFF OFF OFF 2400
OFF ON OFF OFF OFF OFF 4800
ON ON OFF OFF OFF OFF 9600
OFF OFF ON OFF OFF OFF 19200
ON OFF ON OFF OFF OFF 38400

Nota: Un impostazione errata dei dip switch può causare degli errori nel passaggio da
trasmissione e ricezione e viceversa.

D.4 Schema dei collegamenti SYS AL004-OEE-I.

Per la realizzazione di una rete MODBUS può essere usato anche il protocollo RS422,
in questo caso il collegamento viene realizzato con una coppia di doppini, una per l’
RX e una per il TX. Per la conversione viene impiegato il convertitore SYS AL004.
Si tratta di un convertitore RS232/422 alimentato a 220Vac.

Collegamento con seriale integrata del PLC, C200H-ASC02, CPM1-CIF01.

Lato PLC/ASC02/CPM1-CIF01 Lato SYS AL004 (RS232)


9 pin maschio Morsettiera a vite

2 TX 2 TX

3 RX 1 RX

4 RTS 3 RTS

5 CTS

9 GND 4 GND
Cablaggi e convertitori Appendice D

Collegamento tramite CQM1-CIF02


Lato CQM1-CIF02 Lato SYS AL004 (RS232)
9 pin maschio Morsettiera a vite

2 RX 2 TX

3 TX 1 RX

7 RTS

8 CTS

5 GND 4 GND

Morsettiera RS422.

Morsetto Segnale
1 TX -
2 TX +
3 RX -
4 RX +
5 GND

Il collegamento del segnale di RTS può essere omesso (collegamento alle seriali
integrate dei PLC e ai CIF); in questo caso il ponticello J1 deve essere aperto. Il
cavallotto tra RTS e CTS sulla porta dell’ ASC02 è indispensabile per la
comunicazione. Il Jumper J2, se chiuso, inserisce la resistenza di terminazione
(220ohm). Per le porte seriali prive di RTS il ponticello J1 deve essere Aperto.

D.5 Collegamento con CPM1-CIF11

Il CPM1-CIF11 è un adattatore RS-422 che si collega alla porta periferica dei PLC
CQM1, C200HS, C200Ha. Sul corpo del convertitore è presente un unico deviatore
che permette di inserire o escludere la resistenza di terminazione.

Morsetto Segnale
FG GND schermo
SG Signal ground
SDB TX +
SDA TX -
RDB RX+
RDA RX-
Cablaggi e convertitori Appendice D

D.6 Collegamento con RS-422 integrata alle COM-Board C200Ha

Con le Com Board C200HW-COM03 e C200HW-COM06 è disponibile una porta


RS422/485; soltanto la modalita 422 è compatibile con SYSMATE SYSMOD.
Sulla scheda è presente un deviatore per selezionare il modo di cablaggio a 2 o a 4 fili;
si deve utilizzare solo il modo a 4 fili. Il secondo deviatore permette di inserire la
resistenza di terminazione.

Disposizione dei piedini della porta 422 delle Com Board.


Connettore a 9 pin femmina.

Piedin Segnale
o
1 TX -
2 TX +
3 NC
4 NC
5 NC
6 RX -
7 NC
8 RX +
9 NC
Cablaggi e convertitori Appendice D
Impostazione delle porte del modulo C200H-ASC02 Appendice E

APPENDICE E
Impostazione delle porte del modulo C200H-ASC02

I dip-switch per l'impostazione della velocità di comunicazione sono posti nella parte
posteriore dell'unità ASCII BASIC.

Banco di destra,
velocità di comunicazione porta 1.

Baud Rate Dip1 Dip 2 Dip 3


300 OFF OFF OFF
600 ON OFF OFF
1200 OFF ON OFF
2400 ON ON OFF
4800 OFF OFF ON
9600 ON OFF ON
OFF ON ON
ON ON ON

Banco di destra,
velocità di comunicazione porta 2.

Baud Rate Dip 5 Dip 6 Dip 7


300 OFF OFF OFF
600 ON OFF OFF
1200 OFF ON OFF
2400 ON ON OFF
4800 OFF OFF ON
9600 ON OFF ON
19200 OFF ON ON
ON ON ON
Impostazione delle porte del modulo C200H-ASC02 Appendice E