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