4.3.2025

Komunikácia - Bernecker & Rainer PLC

Komunikácia - Bernecker & Rainer PLC

Ako je možné komunikovať s PLC firmy Bernecker & Rainer? Jednou možnosťou je použiť zabudovaný B&R OPC UA server, ktorý sa nachádza v novších typoch PLC. V prípade rýchlych dejov je tu ale problém. B&R OPC UA Server má obmedzenie na 50 milisekundový „Publishing Interval“. Pokiaľ v  OPC UA protokole nastavíme menšiu hodnotu parametra „Requested Publishing Interval“, pri nadväzovaní spojenia ju B&R OPC UA Server zvýši na 50 milisekúnd. To znamená, že bude reportovať zmeny hodnôt objektov iba s takouto periodicitou.

Staršie B&R PLC navyše ešte B&R OPC UA neobsahujú. Takže – ako na ne?

Riešením je použitie komunikačného rozhrania PVI (Process Visualisation Interface). Pomocou neho sa dá komunikovať s s riadiacimi jednotkami B&R.

Preto sme v D2000 implementovali protokol B&R PVI Interface, ktorý s použitím PVICOM rozhrania pristupuje k PVI.

PVICOM rozhranie sa dodáva vo forme inštalačného balíka s veľkosťou od 45 do 60 MB podľa verzie – my sme využili a otestovali verzie:

  • AutomationNet PVI V4.0.exe
  • AutomationNet PVI V4.2.exe
  • AutomationNet PVI V4.7.exe

Po inštalácii sa využívajú služby PVICOM rozhrania zverejnené prostredníctvom funkcií obsiahnutých v dynamickej knižnici PviCom.dll (resp PviCom64.dll pre 64-bitové programy).

PVI nie je obmedzené iba na jeden protokol, ale podporuje celú množinu (viaceré z protokolov sú proprietárne a použitie PVI je odporúčaný spôsob ich využitia):

  • ANSL (Automation Network Service Link) protokol - komunikácia s PLC rady SG4 po Ethernete s použitím TCP spojenia
  • INA2000 (Industrial Network Architecture) – komunikácia s PLC rady SG3, SGC a SG4 po Ethernete s použitím UDP paketov
  • NET2000 - komunikácia s PLC rady SG3 a SG4 s použitím NET2000 protokolu
  • DCAN – komunikácia so zariadeniam po CAN zbernici
  • SNMP – komunikácia s PLC rady SG4 s použitím SNMP protokolu a mapovanie SNMP premenných na PVI premenné
  • ADI - komunikácia s priemyselnými PC B&R (rady Automation PC, Mobile Panel, Panel PC a Power Panel) – napr. ovládanie LED, nastavovanie jasu, stavu CMOS batérie, ventilátorov atď.
  • Modbus – komunikácia s Modbus TCP klientom
  • MININET – komunikácia s B&R PLC rady MULTI/MIDI/MINI a kompakt (SG2) s použitím protokolu MININET

PVI rozhranie definuje hierarchiu objektov (Line, Device, Station, CPU, Module, Task, Variable). Každý zo spomínaných protokolov používa niektoré z nich. Pre protokol INA2000 je situácia nasledovná:

Obrázok 1 - Hierarchia objektov pre protokol INA2000.

Pre linku NET2000 je hierarchia podobná, akurát nie je použitý objekt Module a namiesto CPU je použitý objekt Station:

Obrázok 2 - Hierarchia objektov pre protokol NET2000.

Ako namapovať túto hierarchiu na D2000 hierarchiu linka – stanica – meraný bod?

V konfigurácii objektov Line a Device sa hovorí o parametroch linky a zariadenia, ktoré sa používa na prístup k nej (napr. sa špecifikuje sériový port). Preto sme konfiguráciu týchto dvoch typov objektov umiestnili do protokolových parametrov na úrovni D2000 linky:

Obrázok 3 - Parametre protokolu B&R PVI Interface na úrovni linky.

Konfigurácia objektov Station, CPU, Module a Task je podobne v parametroch protokolu stanice.

Obrázok 4 - Parametre protokolu B&R PVI Interface na úrovni stanice.

Posledný typ objektu – Variable – zodpovedá meranému bodu. Adresa meraného bodu je teda textová, je v tvare

Parameter1=hodnota1 [Parameter2=hodnota2] ...

podobne ako parametre protokolu definujúce objekty typu Line, Device, Station, CPU, Module a Task.

Všetky detaily sú popísané v dokumentácii protokolu, ale pre štandardného užívateľa stačí pár orientačných informácií. A to:

  • Povinné zadávané parametre sú CD=variable_name a VT=typ_hodnoty.
  • Pre reťazce s jednobajtovou reprezentáciou znaku (VT=string) ako aj s dvojbajtovou reprezentáciou znaku (VT=wstring) je povinný aj parameter VL=element_length udávajúci veľkosť reťazca v bajtoch, včítane ukončovacej nuly. Takže premenná VT=wstring VL=12 má dĺžku 12 bajtov, z toho 2 bajty sú ukončovacia nula a do zvyšných 10 bajtov sa zmestí 5 dvojbajtových znakov.
  • Pre polia hodnôt je povinný aj parameter VN=number_of_elements. Tento udáva počet elementov v poli, ktoré čítame (číslo môže byť rovné alebo menšie skutočnému počtu prvkov poľa). Ak chceme čítať pomocou jedného meraného bodu celé pole, je nutné nakonfigurovať na meranom bode cieľový stĺpec štruktúry, do ktorého budú jednotlivé elementy poľa ukladané. Pokiaľ ale potrebujeme do položiek poľa aj zapisovať, je nutné nakonfigurovať pre každú položku samostatný meraný bod.

V skutočnosti je ale situácia ešte jednoduchšia. Protokol B&R PVI Interface podporuje získanie zoznamu objektov typov Task a Variable, takže bolo možné implementovať browsovanie! Užívateľ teda nakonfiguruje meraný bod niekoľkými kliknutiami – stačí mu vedieť názov premennej.

Obrázok 5 - Konfigurácia textového meraného bodu. Pod adresou je tlačidlo browsovania.

Browsovanie vráti zoznam všetkých globálnych premenných ako aj zoznam lokálnych premenných pre objekt Task, ktorý je nakonfigurovaný v parametroch stanice. Na nasledujúcom obrázku vidieť browsovací dialóg – v stĺpci Task sa nachádza názov Tasku (pre globálne premenné je prázdny). V stĺpci Variable je názov premennej (hodnota parametra CD). Ostatné parametre premennej, zistené z PVI, sú v stĺpci Parameters. Posledný stĺpec Point obsahuje informáciu, či je už nakonfigurovaný meraný bod s takýmto názvom premennej.

Obrázok 6 - Browsovací dialóg protokolu B&R PVI Interface.

Pozorný čitateľ si na predchádzajúcom obrázku všimne lokálne premenné patriace tasku Program, ktoré majú názvy napr. Controll.cmd.Name, Controll.cmd.Run, Controll.cmd.SetPoint. V skutočnosti sa jedná o jednotlivé položky štruktúrovanej premennej Control, ktorá obsahuje vnorenú štruktúru cmd, ktorá má elementárne položky Name, Run a SetPoint. Nedokážeme síce pracovať s celou štruktúrovanou premennou naraz, ale jednotlivé položky (elementárnych typov) vieme namapovať na merané body.

A keď hovoríme o elementárnych typoch – aké typy premenných existujú v B&R PVI protokole? Aj na toto dáva odpoveď naša dokumentácia:

  • "i8", "i16","i32", "i64": 8 to 64-bit signed integer
  • "u8", "u16","u32", "u64": 8 to 64-bit unsigned integer
  • "f32", "f64": 32/64-bitfloating point
  • "boolean": Flag with element length of1 byte
  • "string": String with 8-bit charactersize
  • "wstring": String with 16-bitcharacter size
  • "struct": Structure
  • "time": 32-bit time in ms sincemidnight
  • "dt": 32-bit date and time in secondssince 1/1/1968
  • "date": 32-bit date,
  • "tod". 32-bit time of day,
  • "data": General variable type with1-byte element length

Podporené sú všetky typy okrem data (v prípade potreby bude v budúcnosti namapovaný do textovej premennej).

Záver

Protokolu B&R PVI Interface sa potešia tí naši zákazníci a OEM partneri, ktorí potrebujú komunikovať s rôznymi typmi PLC a priemyselných PC vyrábaných firmou Bernecker & Rainer. Tieto zariadenia sa na slovenskom trhu (a nielen na ňom) vyskytujú pomerne často. Doteraz sme na komunikáciu s nimi používali iné protokoly, ako napríklad OPC UA a IEC-104. Natívna podpora zjednoduší a zrýchli ich integráciu do SCADA a MES systémov postavených na technológii aplikačného servera reálneho času D2000.

7.4.2021, Ing. Peter Humaj, www.ipesoft.com

Iné blogy