26.3.2024

Komunikácia - GPIO protokol

Protokol GPIO je čerstvou novinkou v procese D2000 KOM, ktorá bola implementovaná v priebehu tohto leta. Ako funguje, čo vyžaduje a čo ponúka?

 

Platforma a požiadavky

 

Protokol GPIO bude dostupný v D2000 verzii 12, ktorej vydanie sa pripravuje túto jeseň. Na rozdiel od väčšiny protokolov založených na sériovej, TCP alebo UDP komunikácii, ktoré fungovali na všetkých podporovaných operačných systémoch (32 a 64-bitové Windows, OpenVMS a HPUX), GPIO je dostupný iba pre jednu platformu. Takže - ktorú zo spomenutých?

 

Odpoveď znie – žiadnu z nich. Protokol GPIO umožňuje prácu s GPIO (general purpose I/O pinmi) na počítačoch Raspberry PI a s I/O počítačov postavených na základe Raspberry PI Compute Module. V súčasnosti je podporený priemyselný počítač Techbase NPE X500, do budúcna je možná podpora aj ďalších výrobcov (spomenieme existujúce priemyselné počítače Sfera Labs Strato Pi a IonoPi, Kunbus Revolution PI alebo Compulab Industrial Raspberry Pi IoT Computer).

 

Predchádzajúci odstavec nepriamo povedal, že pripravovaná D2000 verzia 12 bola portovaná na architektúru ARM/Linux, konkrétne Raspberry PI (a kompatibilné počítače) na operačný systém Raspbian. Takže pokiaľ vaša aplikácia nemá príliš veľké nároky a stačí jej 1 GB RAM a výkon štvorjadrového 1.2 GHz procesora Raspberry PI 3 (prípadne 1.4 GHz verzie 3+), môžete pre svoj SCADA systém použiť cenovo dostupný a energeticky nenáročný ARM počítač. Jeho pamäť a CPU by mali postačovať pre aplikácie s rozsahom niekoľkých stoviek až tisícov tagov.

 

Funkčnost

 

Na platforme Raspberry PI bol GPIO protokol implementovaný s využitím knižnice pigpio a umožňuje použiť jednotlivé GPIO piny na tieto operácie:

  • Načítavanie hodnôt digitálnych vstupov (vstupné napätie 3.3V zodpovedá logickej jednotke a 0V zodpovedá logickej nule). Interval vzorkovania je konfigurovateľný v parametroch stanice (s presnosťou na sekundy), pričom vyššie frekvencie vzorkovania sa dajú dosiahnuť nastavením nulového oneskorenia a konfiguráciou parametra protokolu “Read Delay Ms” vkladajúci oneskorenie (v milisekundách) medzi jednotlivé čítacie cykly.
  • Nastavovanie hodnôt digitálnych výstupov na 3.3V (logická 1) alebo 0V (logická 0).
  • Počítanie hrán digitálneho signálu. Podporené je počítanie nábežných, zostupných, prípadne všetkých hrán, pričom je možné špecifikovať aj časový filter – pokiaľ je medzi dvoma sledovanými udalosťami menší časový odstup ako definovaný filter, druhá udalosť je ignorovaná a nespôsobí zväčšenie hodnoty počítadla. Časový filter je špecifikovaný v mikrosekundách, pričom použitá knižnica pigpio vykonáva vzorkovanie v 5 µs intervaloch.
  • Nastavenie digitálneho výstupu ako pulzne-šírkovo modulovaného výstupu (PWM), čo umožňuje napr. meniť intenzitu svietenia pripojenej LED diódy.

 

Gpio-1

Obr: Broadcom (BCM) číslovanie GPIO pinov na konektore Raspberry PI. Pri konfigurácii meraných
bodov sa zadáva číslo pinu podľa BCM. Obrázok je prevzatý z http://pinout.xyz.

 

 

Gpio-4

Obr: Schéma použitá pri vývoji a testovaní GPIO protokolu na Raspberry PI.

 

Na platforme Techbase NPE X500 bol GPIO protokol implementovaný s využitím knižnice x1000gpio výrobcu Techbase. Na rozdiel od Raspberry PI obsahuje tento priemyselný počítač analógové vstupy (0-10V), digitálne vstupy (0-3.3V), digitálne výstupy typu open collector, reléové výstupy, dve užívateľsky riaditeľné LED diódy (zelená/červená), bzučiak a užívateľské tlačidlo. Konkrétny počet jednotlivých vstupov a výstupov závisí od zvolenej konfigurácie. Protokol GPIO umožňuje:

  • Načítavanie hodnôt digitálnych vstupov (rozpojený vstup zodpovedá logickej jednotke a spojený so zemou zodpovedá logickej nule).
  • Nastavovanie hodnôt digitálnych výstupov - logická 1 otvorí kolektor a pripojí výstup k zemi.
  • Nastavovanie hodnôt reléových výstupov.
  • Načítavanie hodnôt analógových vstupov (napätiam 0-10V zodpovedajú hodnoty 0-4095, pričom čítanie jedného vstupu trvá cca. 20ms).
  • Nastavovanie a zisťovanie stavu LED diód.
  • Ovládanie bzučiaka.
  • Zisťovanie stavu užívateľského tlačidla.
Gpio-2

Obr: NPE X500 na DIN lište s napájacím zdrojom a pripojenými prípravkami
na testovanie digitálnych a analógových vstupov a výstupov.

 

Gpio-3

Obr: Schéma použitá pri vývoji a testovaní priemyselných vstupov, výstupov
a dvoch sériových portov NPE X500 (konfigurovateľne RS232/RS485).

 

Záver

 

GPIO protokol slúžiť na komunikáciu so vstupmi a výstupmi Raspberry PI a priemyselného počítača NPE X500. Jeho súčasná funkcionalita môže byť v budúcnosti rozširovaná (napr. o možnosť nastavenia vzorkovacej frekvencie a ďalšie funkcie, ktoré knižnica pigpio podporuje). Podobne môže byť v prípade potreby rozšírený o podporu aj iných priemyselných počítačov postavených základe Raspberry PI. Umožňuje tak vytvorenie vzdialeného KOM servera (v prípade potreby s použitím funkcionality KOM Archív), prípadne embedded SCADA riešenia postaveného na ARM počítači.

 

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

 

Iné blogy