pvbrowser manual - Flussi liberi informatici
pvbrowser manual - Flussi liberi informatici
pvbrowser manual - Flussi liberi informatici
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
90 CAPITOLO 6. ACQUISIZIONE DATI<br />
6.2 Siemens<br />
I demoni per Siemens S7 e S5 sono analoghi al demone Modbus. Pertanto si prega di leggere la sezione relativa<br />
al Modbus.<br />
6.2.1 Accesso via TCP con caratteri codificati ASCII<br />
Nella directory pvbaddon/daemons/siemenstcp/client in pvbaddon si trova un demone Siemens per le connessioni<br />
TCP.<br />
Qui viene utilizzata la classe rlSiemensTCP di rllib.<br />
Il file INI è simile al file INI del modbus. È possibile specificare tante connessioni PLC quante si desidera con<br />
un solo demone. Haveto SWAP dovrebbe essere impostato a 1 su una CPU x86. Se il processore utilizza un<br />
diverso ordine di byte è possibile impostare questo valore a 0. Per ogni valore SLAVE vi è un indirizzo IP<br />
o il nome per il PLC poi c’è una virgola e il tipo di PLC. Come parametro opzionale è possibile scegliere se<br />
utilizzare il protocollo Fetch/Write o il più recente protocollo TCP Siemens. Nel file INI NUM CYCLES=1 è<br />
impostato in quanto per scopi di test solo il primo ciclo viene utilizzato. Se anche il secondo ciclo dove essere<br />
eseguito è necessario impostare NUM CYCLES = 2.<br />
File INI per PLC Siemens su TCP<br />
# ini file for siemenstcp_client<br />
#<br />
# DEBUG := 1 | 0<br />
# SLAVE := IP,PLC_TYPE,FETCH_WRITE,FUNCTION,RACK_SLOT<br />
# PLC_TYPE := S7_200 | S7_300 | S7_400 | S5<br />
# FETCH_WRITE := 1 | 0 # default 1<br />
# FUNCTION := optional parameter for PLC (1=PG,2=OP,3=Step7Basic)<br />
# RACK_SLOT := optional parameter for PLC Byte(upper_3_bit_is_rack / lower_5_bit_is_slot)<br />
# CYCLE := ,<br />
# name := byte(slave,dbnum,adr) |<br />
# float(slave,dbnum,adr) |<br />
# dword(slave,dbnum,adr) |<br />
# short(slave,dbnum,adr) |<br />
# udword(slave,dbnum,adr) |<br />
# ushort(slave,dbnum,adr)<br />
# ORG := ORG_DB | ORG_M | ORG_E | ORG_A | ORG_PEPA | ORG_Z | ORG_T<br />
# HAVETO_SWAP := 1 | 0 # must be 1 on intel machines<br />
# CYCLETIME in milliseconds<br />
# SHARED_MEMORY_SIZE must be equal to SHARED_MEMORY_SIZE of pvserver<br />
# MAX_NAME_LENGTH is maximum length of variable name in shared memory<br />
#<br />
[GLOBAL]<br />
DEBUG=1<br />
CYCLETIME=1000<br />
HAVETO_SWAP=1<br />
[SOCKET]<br />
NUM_SLAVES=1<br />
SLAVE1=192.168.1.101,S7_200,0<br />
#SLAVE2=192.168.1.35,S7_200,0,1,2<br />
[RLLIB]<br />
MAX_NAME_LENGTH=30<br />
SHARED_MEMORY=/srv/automation/shm/siemenstcp1.shm<br />
SHARED_MEMORY_SIZE=65536<br />
MAILBOX=/srv/automation/mbx/siemenstcp1.mbx<br />
[CYCLES]<br />
NUM_CYCLES=4<br />
CYCLE1=10,byteORG_M(1,0,0)<br />
CYCLE2=4,byteORG_E(1,0,0)<br />
CYCLE3=4,byteORG_A(1,0,0)