Siemens SIMATIC S7 ISO on TCP
Protokol Siemens SIMATIC S7 ISO on TCP
Protokol podporuje čítanie dát/zápis údajov z riadiacich PLC automatov Siemens SIMATIC:
rady S7-300 a S7-400, vybavenými ethernetovými rozhraniami pre komunikáciu S7 ISO over TCP.
rady S7-1200, S7-1500
rady Siemens LOGO
rady Siemens Microbox
Pozn: bola overená komunikácia cez Profinet/Profibus prevodník ACCON-NetLink-PRO compact od firmy DELTALOGIC. Komunikácia s viacerými PLC rady S7-300 na Profibus zbernici fungovala po aktualizácii firmware prevodníka na verziu V2.54 (31. marec 2015) s BIOS-om prevodníka na verzii V2.39 (7. jún 2011). Keď bol firmware prevodníka na verzii V2.37 (8.august 2011), komunikácia nebola funkčná.
Pozn: bola vyskúšaná komunikácia s PLC automatom Siemens LOGO. Časť pamäte, ktorá je prístupná na čítanie/zápis je tzv. V area, viditeľná ako DB1.
Pozn: protokol má "big endian" reprezentáciu dát.
Kategórie komunikačnej linky: TCP/IP-TCP, TCP Redundant.
IP adresa (adresy) podľa sieťovej konfigurácie konkrétneho zariadenia Siemens SIMATIC.
Číslo portu je štandardne 102 (podľa špecifikácie RFC 1006).
Číslo linky je nepoužité, nastavte hodnotu 1.
V prípade nastavenia kategórie linky TCP Redundant je možné nakonfigurovať IP adresu a port záložného zariadenia. Komunikačný proces pri strate spojenia alebo nemožnosti nadviazania spojenia so zariadením cyklicky prepína medzi nakonfigurovanými zariadeniami. Najprv sa KOM proces pokúša nadviazať spojenie s primárnym zariadením.
Pozn: je možné nakonfigurovať aj viacero IP adries primárneho/záložného zariadenia (oddelených čiarkou alebo bodkočiarkou).
Pozn: ak sú všetky stanice v stave StOFF (alebo v simulácii), TCP spojenie bude zatvorené. Takto je možné riadiť TCP komunikáciu zo skriptu pomocou tell príkazu STSTAT.
Dialóg konfigurácia linky - záložka Parametre protokolu.
Ovplyvňujú niektoré voliteľné parametre protokolu. Môžu byť zadané nasledovné parametre protokolu linky:
Tab. č. 1
Parameter | Popis | Jednotka / rozmer | Náhradná hodnota |
|---|---|---|---|
Rack | Číslo Siemens Simatic rack number. Rack 0 je najčastejšie používaný. | 0 až 7 | 0 |
Slot | Číslo Siemens Simatic slot number. Slot 2 je najčastejšie používaný. | 0 až 31 | 0 |
S7 Subnet ID-part 1 (hex) | S7 subnet adresa posielaná ako súčasť Remote TSAP, ak je nastavený parameter Use long TSAP na hodnotu True | 0x0 až 0xFFFF | 0 |
S7 Subnet ID-part 2 (hex) | S7 subnet adresa posielaná ako súčasť Remote TSAP, ak je nastavený parameter Use long TSAP na hodnotu True | 0x0 až 0xFFFF | 0 |
Use Secondary | Parameter umožňuje použitie redundantných PLC, ktoré sa môžu líšiť v nastavení niektorých parametrov (Rack, Slot, S7 Subnet ID). Ak je jeho hodnota True, pri pripájaní sa k PLC pomocou zadaných IP adries sú striedavo použité primárne a sekundárne parametre. | - | False |
Connection Resource (hex) | Connection resource, vstupuje ako MSB byte do výpočtu hodnoty parametra Remote TSAP pri inicializácii ISO spojenia Connection-request. /TSK1/Sending CR-TPDU: CLASS=0, SRC-REF=0x0001, TPDU size=1024, SRC-TSAP=10-00, DST-TSAP=03-02 Po zmene Connection resource z 3 na 2 začala komunikácia fungovať.
| 0x0 až 0xFF | 3 |
Local TSAP (hex) | ISO Local TSAP (Transport Service Local Point). Hodnota Source TSAP parametra pri inicializácii ISO spojenia Connection-request. | 0x0 až 0xFFFF | 0x1000 |
Source Reference | ISO Source Reference. Hodnota SRC-REF parametra pri inicializácii ISO spojenia Connection-request. | 0 až 65535 | 1 |
Use long TSAP | Zapnutie dlhého formátu pri posielaní lokálneho a remote TSAP vo fáze nadväzovania spojenia.
Krátky remote TSAP má formát:
Dlhý lokálny TSAP má dĺžku 28 bajtov. Posledné 2 bajty sú vyšší a nižší bajt parametra Local TSAP
| - | False |
MPI/Profibus Address | MPI/Profibus adresa posielaná ako súčasť Remote TSAP, ak je nastavený parameter Use long TSAP na hodnotu True | 0 až 126 | 1 |
ISO TPDU Size Variable Parameter | Maximálna požadovaná veľkosť ISO TPDU. Hodnota parametra pri inicializácii ISO spojenia Connection-request. | 8192, 4096, 2048, 1024, 512, 256 alebo 128 bytov | 1024 bytov |
Nr. of Parallel Network Threads | Maximálny počet paralelných komunikačných threadov. V prípade požiadavky na vyšší počet údajov čítaných zo zariadenia za kratší čas, zvýšte hodnotu parametra. | 1 až 4 | 1 |
Cycle Time | Požadovaná dĺžka jedného cyklu čítania údajov. V podstate perióda čítania údajov zo zariadenia, keďže časové parametre na stanici sa neuplatňujú. | ms | 1000 ms |
Message Timeout | Maximálny čas čakania na dátovú odpoveď od partnera. | ms | 2500 ms |
Inter Message Delay | Oneskorenie vkladané pred odoslaním každej žiadosti o dáta. V prípade požiadavky na vysoký prenosový výkon nastavte 0 ms. | sec.ms | 20 ms |
Reconnect Delay | Oneskorenie pred pokusom o spojenie s partnerom po rozpade spojenia alebo inej komunikačnej chybe. | sec.ms | 2 sec |
Connection Error Timeout | Po uplynutí tejto doby a v prípade komunikačnej chyby na všetkých komunikačných threadoch, je na staniciach nastavený stav komunikačnej chyby a na linke stav FALSE. | sec.ms | 20 sec |
S7 PDU Size | Maximálne PDU v bytoch pri S7 komunikácii s partnerom. | 240, 480, 960 bytes | 480 bytes |
Tcp No Delay | Nastavenie "Tcp No Delay"=True parametra spôsobí nastavenie nízkoúrovňového parametra socketov TCP_NODELAY, čím sa vypne prednastavené spájanie paketov. | - | False |
Debug Values | Zapína ladiace informácie o načítaných hodnotách meraných bodov. Odporúčame zapnúť iba v prípade nutnosti ladenia komunikácie, pretože výrazne zvyšuje záťaž CPU a spomaľuje komunikáciu. | YES/NO | NO |
Debug I/O Binary Packets Info | Zapína ladiace informácie o binárnom obsahu komunikačných paketov. Odporúčame zapnúť iba v prípade nutnosti ladenia komunikácie, pretože výrazne zvyšuje záťaž CPU a spomaľuje komunikáciu. | YES/NO | NO |
Debug Requests Info | Zapína základné ladiace informácie o požadovaných dátach. | YES/NO | YES |
Debug Answers Info | Zapína základné ladiace informácie o získaných paketoch. | YES/NO | YES |
Komunikačný protokol: Siemens SIMATIC S7 ISO over TCP.
Nezadáva sa žiadna adresa stanice ani parametre protokolu na stanici.
Nastavenie časových parametrov stanice sa ignoruje, bližšie informácie viď parameter protokolu linky Cycle Time.
Časová synchronizácia zariadenia nie je možná.
Možné typy hodnôt bodov: Ai, Ao, Ci, Co, Di, Dout, TiA, ToA, TiR, ToR, TxtI.
Adresa meraného bodu je kompatibilná so Siemens SimaticNET OPC serverom (s výnimkou typu CHARARR).
Adresa meraného bodu je znakový reťazec podľa pravidiel:
{;}{S7:[connectionname]}DB<no>,<type><address>
{;}{S7:[connectionname]}DI<no>,<type><address>
{;}{S7:[connectionname]}<object>{<type>}<address>
resp. pre štruktúrované merané body s nakonfigurovaným cieľovým stĺpcom
{;}{S7:[connectionname]}DB<no>,<type><address>{, <items>}
{;}{S7:[connectionname]}DI<no>,<type><address>{, <items>}
{;}{S7:[connectionname]}<object>{<type>}<address>{, <items>}
Kde:
; | Je voliteľný parameter, ktorý slúži na vyradenie meraného bodu z komunikácie. Taktiež sa nekontroluje správnosť adresy meraného bodu pri jeho ukladaní. Môže byť nápomocný pri fáze vývoja alebo ladenia komunikácie so zariadením. | ||||||||||||||||||||||||||||||||||||||||||||
S7:[connectionname] | Je nepovinný parameter, ktorý neobsahuje žiadnu potrebnú informáciu a je podporovaný iba kvôli spätnej kompatibilite so Siemens SimaticNET OPC serverom. | ||||||||||||||||||||||||||||||||||||||||||||
DB | Data block. Identifikátor S7 premennej z "Data block". | ||||||||||||||||||||||||||||||||||||||||||||
DI | Instance data block. Identifikátor S7 premennej z " Instance data block". | ||||||||||||||||||||||||||||||||||||||||||||
<no> | Číslo "data block" alebo "instance data block". | ||||||||||||||||||||||||||||||||||||||||||||
<object> | Špecifikácia bloku alebo oblasti v S7 PLC. Možné sú hodnoty:
| ||||||||||||||||||||||||||||||||||||||||||||
<type> | Dátový typ S7. Pre objekty T, C a S nie je špecifikovaný.
Pozn: typ CHARARR je D2000 rozšírenie, ktoré umožňuje čítať/zapisovať pole CHAR-ov ako reťazec. Tento typ nie je kompatibilný so Siemens SimaticNET OPC serverom.
| ||||||||||||||||||||||||||||||||||||||||||||
<address> | Adresa premennej. Možné sú varianty:
Príklady adries:
| ||||||||||||||||||||||||||||||||||||||||||||
<items> | Počet elementov pre štruktúrované merané body s nakonfigurovaným cieľovým stĺpcom. Každý načítaný element (1,2,3 .. items) bude zapísaný do jednej položky cieľového stĺpca.
|
V praxi sa vyskytli prípady, keď sa komunikácia so zariadením (išlo o Simatic S7-1200) síce rozbehla, ale po poslaní požiadavky na čítanie dát zariadenie ako odpoveď neposlalo dáta, ale paket s ResultCode = 0x8104 tj. decimálne 33028.
Podľa http://stackoverflow.com/questions/23745407/libnodave-error-while-reading-from-siemens-s7-1200-0x8104 je problém v nedostatočných prístupových právach. Príčinou je vyššia úroveň zabezpečenia v TIA Portal verzii 12 a vyšších, ktorá štandardne zakazuje prístup k read/update blokom. Bez explicitného povolenia iba Siemens nástroje majú prístup k dátam.
Konfigurácia: V TIA, pod vlastnosťami CPU projektu je treba ísť na "Protection" a tam zaškrtnúť "Permit access with PUT/GET communications from remote partner" a nastaviť "Access level" podľa obrázku.
Pozn: v praxi bolo odskúšané s Simatic S7-1500 čítanie/zápis aj pri nastavení "Access level" = "HMI access", so zapnutým "Permit access with PUT/GET communications from remote partner".
V prípade TIA Portal verzie 14 je nastavenie "Permit access with PUT/GET communications from remote partner" na samostatnej záložke "Connection mechanisms" pod "Protection & Security":
Aby fungovala komunikácia s týmito zariadeniami, okrem nastavení popísaných v poznámke vyššie, v nástroji TIA Portal je nutné vypnúť "Optimized block access". Nasledujúci obrázok je z TIA Portal verzie 12:
Po zmene bezpečnostných nastavení v TIA Portal je nutné v menu vybrať Compile → "Software (Rebuild all)" a po skompilovaní projekt nahrať do PLC. Čiastočný rebuild nemusí postačovať.
Od verzie STEP 7 V17 na sfunkčnenie komunikácie môže byť potrebný nasledujúci postup: použite "Online & diagnostics" na vykonanie Reset to Factory Settings a označte políčko označené "Delete password for protection of confidential PLC configuration data".
RFC 1006, "ISO Transport Service on top of the TCP, Version: 3", May 1987.
International Standard ISO/IEC 8073:1997, "Information technology - Open Systems Interconnection - Protocol for providing the connection-mode transport service."
International Standard ISO/IEC 8072:1996, "Information technology - Open Systems Interconnection - Transport service definition."
Blog
O protokole Siemens SIMATIC S7 ISO on TCP si môžete prečítať aj blogy
-
Ver. 1.0 - 17. september 2010 - Vytvorenie dokumentu.
Ver. 1.1 - 2. júl 2020 - Podpora CHARARR.
Ver. 1.2 - 9. júl 2020 - Podpora BCD a LBCD.
Ver. 1.3 - 27.august 2020- Podpora Siemens Microbox
Súvisiace stránky: