SM_0035 - Plc Premium Unity – Lettura di

Transcript

SM_0035 - Plc Premium Unity – Lettura di
System Manual
ESEMPI INTEGRAZIONE PRODOTTI
Plc Premium Unity – Lettura di oggetti
Modbus 1x, 3x su linea seriale
SM_0035
SM_0035 - Plc Premium Unity – Lettura di oggetti Modbus 1x, 3x su linea seriale
TSXSCP111
Schema elettrico delle connessioni
DB9M
DB25F
TSXSCPCC1030
Schneider Electric – Assistenza Tecnica – Pronto Contatto
2
SM_0035 - Plc Premium Unity – Lettura di oggetti Modbus 1x, 3x su linea seriale
Impostazione della porta
seriale del PLC Quantum
Impostazione della porta
seriale del PLC Premium
Schneider Electric – Assistenza Tecnica – Pronto Contatto
3
SM_0035 - Plc Premium Unity – Lettura di oggetti Modbus 1x, 3x su linea seriale
Lettura di oggetti 3xxxxx
Schneider Electric – Assistenza Tecnica – Pronto Contatto
4
SM_0035 - Plc Premium Unity – Lettura di oggetti Modbus 1x, 3x su linea seriale
Struttura del blocco SEND_REQ(…)
 EMIS -- BUFFER RICHIESTA
 Wi
TIPO RICHIESTA MODBUS
ES:2=LETTURA INPUT BIT
 Wi+1
IDENTIFICATIVO MODBUS (16#0296)
 Wi+2
RISERVATO = 0
 Wi+3
INDIRIZZO MODBUS IN ESADEC. CON BYTE INVERTITI
 Wi+4
BYTE ALTO IN ESADEC. QUANTITA’ DATI DA LEGGERE
 RECP -- BUFFER RICEZIONE
 Wx
AA | BB
CODICE RISPOSTA 0=OK
 Wx+1
00 | CC
BB= CODICE RICHIESTA MODBUS INVIATA
 Wx+2
1°Byte | DD
DD= NUMERO BYTE RICEVUTI , Dati…
 Wx+3
3°Byte | 2°Byte Dati……
 Wx+… n+1°Byte | n°Byte Dati……
 GEST -- BUFFER RENDICONTO
 Wy
Numero Scambio | Bit di attività (Bit 0)
 Wy+1
Rendiconto Operazione
| Rendiconto Comunicazione
 Wy+2
TimeOut in msec * 100
 Wy+3
Lunghezza in Byte da impostare per Trasmissione e in out per
indicazione della lunghezza del buffer ricevuto
Schneider Electric – Assistenza Tecnica – Pronto Contatto
5
SM_0035 - Plc Premium Unity – Lettura di oggetti Modbus 1x, 3x su linea seriale
Lettura di oggetti 3xxxxx
 Addr(‘0.4.1.1’) ovvero indirizzo Rack 0 Slot 4 Via 1(SCP111/SCP114) Indirizzo
modbus slave 1
 CODE 16#9F Codice per send_req per emettere una richiesta modbus
 EMIS: %MW4110:10 Dimensionare un buffer per inviare alla CPU le informazioni
necessarie ad elaborare la richiesta da inviare; nel caso specifico sono necessarie
solo 5 word come di seguito indicato:
 %mw4110 := 16#000x dove ‘x’ è il codice di richesta modbus da emettere,
ad esempio 16#0004 = lettura oggetti 3xxxxx(input register)
 %mw4111 := 16#0296 Valore fisso, da impostare e non modificare
 %mw4112 := 0 Valore fisso da impostare e non toccare
 %mw4113 := 16#xx00 ovvero la parte alta contiene l’offset dell’indirizzo
modbus da emettere ad esempio se stiamo leggendo oggetti 3x (e quindi
%mw4110:=4), e %mw4113:=1 stiamo puntando alla 300002
 %mw4114:=16#xx00 nella parte alta si indica la quantità di word che si vuole
leggere. Ad esempio 16#0500 vuol dire che si vogliono leggere 5 word; nel
caso dell’esempio indicato alla slide precedente vuol dire che si leggono 4
registri 3x dal 300001 al 300004.
Schneider Electric – Assistenza Tecnica – Pronto Contatto
6
SM_0035 - Plc Premium Unity – Lettura di oggetti Modbus 1x, 3x su linea seriale
Lettura di oggetti 3xxxxx
 GEST : %mw4100:4 , sono le 4 word per il rendiconto, come per tutti i
protocolli di comunicazione, dove:
 %mw4100 : parte alta indice dello scambio, parte bassa, bit 0 attivo
durante lo scambio
 %mw4101 : codice di rendiconto della comunicazione
 %mw4102 : Timeout di comunicazione da impostare
preventivamente; nell’esempio è impostato a 10 ovvero 1 secondo
di timeout di comunicazione
 %mw4103 : Lunghezza dei dati in trasferimento, ovvero da
impostare quanti Byte si inviano prima di avviare la
comunicazione(Dalla %mw4110 alla 4114 sono 5 word ovvero 10
byte), ed al termine della comunicazione questa word contiene la
quantità di byte ricevuti.
Schneider Electric – Assistenza Tecnica – Pronto Contatto
7
SM_0035 - Plc Premium Unity – Lettura di oggetti Modbus 1x, 3x su linea seriale
Lettura di oggetti 3xxxxx
 RECP Buffer di ricezione; i primi 5 byte contengono informazioni circa lo
scambio avvenuto. Al termine della comunicazione è meglio appoggiare
il buffer di lettura su un buffer di lavoro, usare la funzione ror1_arb per
spostare tutto il buffer di un byte, ed infine swapparlo(girare il byte di
destra con quello di sinistra). I valori sono significativi a partire dalla
%MW4402, ovvero nel caso dell’esempio in esame nella %mw4402 c’è
il valore della 300001, nella %MW4403 c’è il valore della 300002, ecc.
Schneider Electric – Assistenza Tecnica – Pronto Contatto
8
SM_0035 - Plc Premium Unity – Lettura di oggetti Modbus 1x, 3x su linea seriale
Lettura di oggetti 1xxxxx
Schneider Electric – Assistenza Tecnica – Pronto Contatto
9
SM_0035 - Plc Premium Unity – Lettura di oggetti Modbus 1x, 3x su linea seriale
Lettura di oggetti 1xxxxx
 Addr(‘0.4.1.1’) ovvero indirizzo Rack 0 Slot 4 Via 1(SCP111/SCP114)
Indirizzo modbus slave 1
 CODE 16#9F Codice per send_req per emettere una richiesta modbus
 EMIS: %MW4120:10 Dimensionare un buffer per inviare alla CPU le
informazioni necessarie ad elaborare la richiesta da inviare; nel caso
specifico sono necessarie solo 5 word come di seguito indicato:
 %mw4120 := 16#000x dove ‘x’ è il codice di richesta modbus da
emettere, ad esempio 16#0002 = lettura oggetti 1xxxxx(input coil)
 %mw4121 := 16#0296 Valore fisso, da impostare e non modificare
 %mw4122 := 0 Valore fisso da impostare e non toccare
 %mw4123 := 16#xx00 ovvero la parte alta contiene l’offset
dell’indirizzo modbus da emettere ad esempio se stiamo leggendo
oggetti 1x (e quindi %mw4120:=2), e %mw4123:=1 stiamo
puntando al 100002
 %mw4124:=16#xx00 nella parte alta si indica la quantità di word
che si vuole leggere. Ad esempio 16#0F00 vuol dire che si vogliono
leggere 15 bit; nel caso dell’esempio indicato alla slide precedente
vuol dire che si leggono 15 bit 1x dal 100001 al 100015.
Schneider Electric – Assistenza Tecnica – Pronto Contatto
10
SM_0035 - Plc Premium Unity – Lettura di oggetti Modbus 1x, 3x su linea seriale
Lettura di oggetti 1xxxxx
 RECP Buffer di ricezione; i primi 5 byte contengono informazioni circa lo
scambio avvenuto. Poi al termine della comunicazione per non
ingarbugliare i dati è meglio appoggiare il buffer di lettura su un buffer di
lavoro, usare la funzione ror1_arb per spostare tutto il buffer di un byte,
ed infine occorre swapparlo(girare il byte di destra con quello di sinistra).
I valori sono significativi a partire dalla %MW4502, ovvero nel caso
dell’esempio in esame nella %mw4502 bit 0 c’è il valore del 100001,
nella %MW4502 bit 14 c’è il valore del 100015, ecc.
Schneider Electric – Assistenza Tecnica – Pronto Contatto
11
SM_0035 - Plc Premium Unity – Lettura di oggetti Modbus 1x, 3x su linea seriale
COMPONENTI
Oggetto
Materiali
SM_0035 - Plc Premium Unity – Lettura di oggetti Modbus 1x, 3x
su linea seriale
Codice
Versione
TSXSCP111
UNITY PRO XL
SISTEMA OPERATIVO PC
TSXP57104
TSXSCY21601
TSXSCPCC1030
140CPU31110
PV:09 SV:3.0 RL:09
V3.1 – SP1
WIN XP SP2
PV:11 SV:2.31 RL:10
PV:08 SV:2.7 RL:04
Versione di questo documento
Redatto da:
V:1.0
Pronto Contatto: +390112281203
Ultima Revisione
Data: 06 Giugno 2008
V2.50
Link
Varie
Schneider Electric – Assistenza Tecnica – Pronto Contatto
12