Porovnávané verzie

Kľúč

  • Tento riadok sa pridal
  • Riadok je odstránený.
  • Formátovanie sa zmenilo.

...

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 SS7-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.

Kotva
komunikacna_linka
komunikacna_linka
Konfigurácia komunikačnej linky

...

...

  • 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).

Kotva
Kotva
linka_parametre
linka_parametre
Parametre protokolu linky

...

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

ParameterPopisJednotka / rozmerNáhradná hodnota
Kotva
rack
rack
Rack
Číslo Siemens Simatic rack number. Rack 0 je najčastejšie používaný.0 až 70
Kotva
slot
slot
Slot
Číslo Siemens Simatic slot number. Slot 2 je najčastejšie používaný.0 až 310

Kotva

conres

s7sub1

conres

s7sub1
S7 Subnet ID-part 1

Connection Resource

(hex)

Connection resource, vstupuje ako MSB byte do výpočtu hodnoty parametra Remote TSAP pri inicializácii ISO spojenia Connection-request.
Viď popis parametra Use long TSAP. 0x0 až 0xFF3 KotvaltsapltsapLocal TSAP (hex)ISO Local TSAP (Transport Service Local Point). Hodnota Source TSAP parametra pri inicializácii ISO spojenia Connection-request.
Viď popis parametra Use long TSAP.
S7 subnet adresa posielaná ako súčasť Remote TSAP, ak je nastavený parameter Use long TSAP na hodnotu True0x0 až 0xFFFF0

Kotva
s7sub2
s7sub2
S7 Subnet ID-part 2 (hex)

S7 subnet adresa posielaná ako súčasť Remote TSAP, ak je nastavený parameter Use long TSAP na hodnotu True0x0 až 0xFFFF
0x1000
0

Kotva

srcref

us

srcref

us

Source ReferenceISO Source Reference. Hodnota SRC-REF parametra pri inicializácii ISO spojenia Connection-request.0 až 655351 KotvaultultUse long TSAPZapnutie dlhého formátu pri posielaní lokálneho a remote TSAP vo fáze nadväzovania spojenia.
Krátky TSAP má dĺžku 2 bajty.
Krátky lokálny TSAP má formát: 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
Dlhý remote TSAP má dĺžku 28 bajtov a obsahuje
  • 5. bajt - vyšší bajt parametra S7 subnet ID-part 1
  • 6. bajt - nižší bajt parametra S7 subnet ID-part 1
  • 9. bajt - vyšší bajt parametra S7 subnet ID-part 2
  • 10. bajt - nižší bajt parametra S7 subnet ID-part 2
  • 11. bajt - hodnota parametra MPI/Profibus Address
  • 27. bajt - hodnota parametra Connection Resource
  •  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

    Kotva
    conres
    conres
    Connection Resource (hex)

    Connection resource, vstupuje ako MSB byte do výpočtu hodnoty parametra Remote TSAP pri inicializácii ISO spojenia Connection-request.
    Viď popis parametra Use long TSAP.
    Pozn: v konkrétnom prípade, keď dva systémy (jeden z nich D2000) potrebovali komunikovať s S7-300, museli mať každé odlišný Connection resource, v opačnom prípade po poslaní úvodnej sekvencie D2000 KOM procesom došlo k rozpadu spojenia:

    /TSK1/Sending CR-TPDU: CLASS=0, SRC-REF=0x0001, TPDU size=1024, SRC-TSAP=10-00, DST-TSAP=03-02
    /TSK1/OUT-<03><00><00><16><11><E0><00><00><00><01><00><C0><01><0A><C1><02><10><00><C2><02><03><02>
    recv error '10.94.11.237:102 (handle: 2888, objId: 2563271)' - WSA_ECONNRESET [ 10054] Task: L.N337-S7ExecTsk/TSK1/

    PO zmene Connection resource z 3 na 2 začala komunikácia fungovať.

    0x0 až 0xFF3
    Kotva
    ltsap
    ltsap
    Local TSAP (hex)
    ISO Local TSAP (Transport Service Local Point). Hodnota Source TSAP parametra pri inicializácii ISO spojenia Connection-request.
    Viď popis parametra Use long TSAP.
    0x0 až 0xFFFF0x1000
    Kotva
    srcref
    srcref
    Source Reference
    ISO Source Reference. Hodnota SRC-REF parametra pri inicializácii ISO spojenia Connection-request.0 až 655351
    Kotva
    ult
    ult
    Use long TSAP
    Zapnutie dlhého formátu pri posielaní lokálneho a remote TSAP vo fáze nadväzovania spojenia.
    Krátky TSAP má dĺžku 2 bajty.
    Krátky lokálny TSAP má formát:Krátky remote TSAP má formát:
    28
    • . bajt - kombinácia parametrov Rack * 32 + Slot
    -False
    Dlhý lokálny TSAP má dĺžku 28 bajtov. Posledné 2 bajty sú vyšší a nižší bajt parametra Local TSAP
    Dlhý remote TSAP má dĺžku 28 bajtov a obsahuje
    -False
    Kotva
    mpiaddr
    mpiaddr
    MPI/Profibus Address
    MPI/Profibus adresa posielaná ako súčasť Remote TSAP, ak je nastavený parameter Use long TSAP na hodnotu True0 až 1261

    Kotva
    tpdus
    tpdus

    KotvampiaddrmpiaddrMPI/Profibus AddressMPI/Profibus adresa posielaná ako súčasť Remote TSAP, ak je nastavený parameter Use long TSAP na hodnotu True0 až 1261 Kotvas7sub1s7sub1S7 Subnet ID-part 1 (hex)S7 subnet adresa posielaná ako súčasť Remote TSAP, ak je nastavený parameter Use long TSAP na hodnotu True0x0 až 0xFFFF0 Kotvas7sub2s7sub2S7 Subnet ID-part 2 (hex)S7 subnet adresa posielaná ako súčasť Remote TSAP, ak je nastavený parameter Use long TSAP na hodnotu True0x0 až 0xFFFF0 Kotvatpdustpdus

    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 bytov1024 bytov
    Kotva
    pnj
    pnj
    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ž 41
    Kotva
    ct
    ct
    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ú.ms1000 ms
    Kotva
    wt
    wt
    Message Timeout
    Maximálny čas čakania na dátovú odpoveď od partnera.ms2500 ms
    Kotva
    imd
    imd
    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.ms20 ms
    Kotva
    rd
    rd
    Reconnect Delay
    Oneskorenie pred pokusom o spojenie s partnerom po rozpade spojenia alebo inej komunikačnej chybe.sec.ms2 sec
    Kotva
    cet
    cet
    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.ms20 sec

    Kotva
    pdu
    pdu
    S7 PDU Size

    Maximálne PDU v bytoch pri S7  komunikácii s partnerom.240, 480, 960 bytes480 bytes

    Kotva
    tnd
    tnd
    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
    Kotva
    nvd
    nvd
    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/NONO
    Kotva
    iopd
    iopd
    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/NONO
    Kotva
    rdd
    rdd
    Debug Requests Info
    Zapína základné ladiace informácie o požadovaných dátach.YES/NOYES
    Kotva
    rad
    rad
    Debug Answers Info
    Zapína základné ladiace informácie o získaných paketoch.YES/NOYES

    Kotva
    komunikacna_stanica
    komunikacna_stanica
    Konfigurácia komunikačnej stanice

    ...

    • 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á.

    Kotva
    merany_bod
    merany_bod
    Konfigurácia meraných bodov

    ...

    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>{, <items>}
    {;}{S7:[connectionname]}DI<no>,<type><address>{, <items>}
    {;}{S7:[connectionname]}<object>{<type>}<address>{, <items>}
    

    Kde:

    <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.
    DBData block. Identifikátor S7 premennej z "Data block".
    DIInstance 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:

    SkratkaPopis (Nemecký názov)
    I, EInput (Eingang, E)
    QOutput (Ausgang, A)
    PIPeripheral Input ( Peripherie Eingang, PE)
    PQPeripheral Output ( Peripherie Ausgang, PA)
    MMemory bit (F)
    CCounter (Zähler, Z) - BCD kódované celočíselné hodnoty z intervalu <0-999>
    TTimer (Timer, T) - BCD kódované časovače z intervalov <0.00-9.99>, <00.0-99.9>, <000-999>, <0000-9.9990>
    Kotva
    szl
    szl
    S
    System Status Lists (System-ZustandsListen, SZL) - zoznamy s diagnostickými informáciami, ktoré sú k dispozícii na CPU rodiny S7-300 a S7-400. Obsah informácií sa pre rôzne triedy PLC líši a detaily sú popísané v manuáloch (napr. System Software for S7-300/400 System and Standard Functions, Volume 1/2)
    Pozn: meraný bod S musí byť typu TxtI.


    <type>

    Dátový typ S7. Pre objekty T, C a S nie je špecifikovaný.

    Identifikátor <type>Popis
    XBit (boolean). Treba špecifikovať číslo bitu 0 až 7 - napr. DB9,X8.3
    BByte (8 bitov neznamiekovo).
    WWord (16 bitov neznamienkovo).
    DDouble word (32 bitov neznamienkovo).
    CHARCharacter (8 bitov znamienkovo).
    INTInteger (16 bitov znamienkovo).
    DINTDouble integer (32 bitov znamienkovo).
    BCDBCD-kódované 2-bajtové číslo (0-9 999)
    LBCDBCD-kódované 4-bajtové číslo (0-99 999 999)
    REALFloating point number (32 bitov podľa IEEE754).
    LREALLong floating point number (64 bitov podľa IEEE754).
    STRINGString. Treba špecifikovať maximálnu dĺžku stringu.
    CHARARRPole CHAR-ov interpretované ako String. Treba špecifikovať dĺžku poľa.
    DTDate and Time, 8 bytov v BCD formáte.
    TIMETime (32 bitov znamienkovo) v milisekundách.
    Pozn: ak je meraný bod typu TiR, treba zabezpečiť konverziu nakonfigurovaním lineárneho prevodu (A=0.001, B=0) na záložke Prevod
    TODTime of day (32 bitov neznamienkovo) v milisekundách.

    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.
    Rozdiel medzi CHARARR a STRING je nasledovný:

    • STRING - štandardný formát reťazca S7, keď pred samotným reťazcom sa nachádzajú ešte 2 bajty  (maximálna a aktuálna dĺžka reťazca). Tj. STRING s dĺžkou 10 znakov zaberá 12 bajtov.
    • CHARARR - pole znakov bez 2-bajtovej hlavičky. Tj. CHARARR s dĺžkou 10 znakov zaberá 10 bajtov
    ;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.DBData block. Identifikátor S7 premennej z "Data block".DIInstance 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:

    IInputQOutputPIPeripheral inputPQPeripheral outputMMemory bitCCounters (BCD kódované celočíselné hodnoty z intervalu <0-999>)TTimers (BCD kódované časovače z intervalov <0.00-9.99>, <00.0-99.9>, <000-999>, <0000-9.9990>) KotvaszlszlSSZL (System-ZustandsListen - system status lists) - zoznamy s diagnostickými informáciami, ktoré sú k dispozícii na CPU rodiny S7-300 a S7-400. Obsah informácií sa pre rôzne triedy PLC líši a detaily sú popísané v manuáloch (napr. System Software for S7-300/400 System and Standard Functions, Volume 1/2)
    Pozn: meraný bod S musí byť typu TxtI. <type>Dátový typ S7. Pre objekty T, C a S nie je špecifikovaný.
    Identifikátor <type>PopisXBit (boolean). Treba špecifikovať číslo bitu 0 až 7 - napr. DB9,X8.3BByte (8 bitov neznamiekovo).WWord (16 bitov neznamienkovo).DDouble word (32 bitov neznamienkovo).CHARCharacter (8 bitov znamienkovo).INTInteger (16 bitov znamienkovo).DINTDouble integer (32 bitov znamienkovo).REALFloating point number (32 bitov podľa IEEE754).STRINGString. Treba špecifikovať dĺžku stringu.DTDate and Time, 8 bytov v BCD formáte.TIMETime (32 bitov znamienkovo) v milisekundách.TODTime of day (32 bitov neznamienkovo) v milisekundách
    • .
    <address>Adresa premennej. Možné sú varianty
    :
    :
    • Byte offset (offset v rámci bloku, číslo 0-65535)
    Byte offset
    • Byte offset.bit (len pre dátový typ X, číslo bitu v rozsahu 0 až 7)
    • Byte offset.String length (len pre dátový typ STRING, dĺžka stringu 1 až 254 znakov)
    • Id.Index[.StringOffset[.StringLength]] - len pre objekt S (system status list), pričom:
      • Id a Index sú 16 bitové čísla v rozsahu 0-65535 udávajúce ID konkrétneho zoznamu a index položky v ňom
      • StringOffset a StringLength sú bajtový offset (0..65535) a dĺžka (1..65535) podreťazca v odpovedi, ktorý bude priradený do meraného bodu.
      Príklad: adresa S237.1.10.20 zodpovedá stavovém zoznamu 237 (0x0111), index 1 (Identification of the module). S7-300 ako odpoveď na dotaz vráti odpoveď s dĺžkou 36 bajtov (bajty 0..35), pričom bajty 10..29 (tj. Offset=10, dĺžka=20) udávajú "Order number of the module", napr. '6GK7 342-5DA02-0XE0 '.
    Príklady adries:
    • DB10,W35
    • DB8,X10.0
    • DB1,REAL12
    • DB5,STRING5.14
    • DB5,CHARARR5.14
    • T20
    • C7
    • MB11
    • MDINT30
    • QX3.7
    <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.
    Štruktúrované merané body nie sú podporené pre objekty typu T (timers), C (counters) a S (system status lists) ani pre dátový typ STRING.
    Pozn: Celý počet item elementov je vyčítavaný naraz. Pokiaľ je nakonfigurovaných napr. 100 elementov typu D (double word), jedná sa o čítanie bloku 400 bajtov. Pokiaľ pri nadviazaní komunikácie je dohodnutá menšia veľkosť paketu (S7 PDU size), čítanie takéhoto meraného bodu sa neuskutoční a v logu linky bude o tom chybová hláška. Dohodnutá veľkosť S7 PDU size je minimom možností D2000 (parameter S7 PDU Size) a možnosti konkrétneho zariadenia.
    Pozn: syntax adresy pri zadaní počtu elementov je kompatibilná so Siemens S7 OPC serverom (napr. S7:[MyPLC]DB120,INT1050, 24), čo umožuje jednoduchý prechod z OPC komunikácie na protokol Siemens SIMATIC S7 ISO on TCP nakonfigurovaním novej linky, stanice a zmenou rodiča meraných bodov (napr. CSV alebo XML exportom a importom).

    Príklady adries:
    • DB10,W35, 20     číta sa blok 20 wordov (t.j. 40 bajtov) z adries 35-54
    • DB8,X10.0, 100     číta sa blok 100 bitov (t.j. 13 bajtov) z adries 10-22

    Kotva
    tia12
    tia12
    Poznámka k Siemens TIA Portal verzie 12 a vyšším

    ...

    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.
    Image Removed

    ...

    partner" a nastaviť "Access level" podľa obrázku.

    Image Added

    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":

    Image Added

    Kotva
    s7
    s7
    Poznámka k Siemens S7 1200/1500

    ...

    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:
    Image Removed verzie 12:

    Image Added

    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ť.

    Kotva
    literatura
    literatura
    Literatúra

    ...

    • 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
    Info
    titleSúvisiace stránky:

    Komunikačné protokoly

    ...