[ST] Vlastní sériový protokol

Patron Neuron Gate Unipi 1.1 Axon

Při implementaci systému se občas setkáte také s potřebou použití protokolu, který není v prostředí Mervis k dispozici. Taková situace může nastat například tehdy, kdy instalujete PLC Unipi jako náhradu za jiné PLC a potřebujete připojit i některé původní periferie, nebo v případě, kdy potřebujte PLC Unipi připojit k vlastnímu zařízení s vlastním protokolem.

V následujícím článku jsou popsány základní informace potřebné k úspěšné implementaci sériového protokolu a v závěru také ukázkový projekt.

Co budete potřebovat?

  • Jednotku Unipi s Mervis OS a Mervis IDE ve verzi 2.4.2 nebo novější
  • Připojení k místní síti (libovolný switch, nebo router)
  • Základní znalost programování ve strukturovaném textu (ST)

Vzhledem k tomu, že implementace sériového protokolu diagramem funkčních bloků (FBD) je náročnější a složitější, než implementace ve strukturovaném textu (ST), doporučujeme implementaci jazykem ST.

Aby bylo možné vytvářet programy, funkce či funkční bloky jazykem ST, je nejprve nutné přepnout sestavu do plného módu.

V Mervis je dostupných celkem 5 funkcí pro práci s (sériovými) porty:

  1. Open Port - otevře komunikaci podle zadaných parametrů
  2. Get Port Status - vrací status komunikace
  3. Write Port - zapíše data na zadaný port
  4. Read Port - čte data z daného portu
  5. Close Port - uzavře komunikaci na daném portu

Popis vstupů a výstupů výše zmíněných funkcí je dostupný v nápovědě Mervis IDE
(cesta: Tvorba software → Knihovny → Communications → Input/Output Functions)

V rámci ukázkového projektu je implementován stavový automat pro komunikaci po vybraném sériovém portu na principu dotaz/odpověď, kdy je po zaslání dotazu očekávána odpověď. Tento ukázkový projekt tedy neobsahuje stavový automat, který by očekával spontánní tok dat ze vzdáleného zařízení.

Implementována je také tabulka sériových portů (dle tabulek níže) pomocí odvozených datových typů (struktur) a webové rozhraní HMI simulující terminálové okno pro jednoduché otestování komunikace.

Projekt je vytvořen v Mervis IDE 2.6.5.

Od Mervis IDE 2.6.5 je tabulka sériových portů (struktura) součástí Lib.Unipi, což umožňuje jednoduchý výběr dle typu kontroléru.

Příklad použití:

FUNCTION_BLOCK Custom_Serial

  VAR
    serialPort : unipi_serial.v1_0.Patron_M567;
    str,def : string;
  END_VAR

  INIT
    def := 'serial:'; // první část definice
    def := CONCAT(IN1:=def,IN2:=serialPort.RS485_1_1); // sloučení první části definice s vybraným sériovým portem
    def := CONCAT(IN1:=def,IN2:=':9600,8,N,1'); //sloučení s poslední částí definice
  END_INIT

  str := serialPort.RS485_1_1;

END_FUNCTION_BLOCK

Unipi Edge

RS485-S1 RS232-S2
E41012
E4111-
E41212
E41312

Společné porty

USB110
USB211
LTE20
M-Bus M130
M-Bus M231

Unipi Patron

RS485-1 RS232(485)-2 RS485-3 RS485-4
S107621-
S1176321
S167 LTE61--
S2071---
RS485-1.1 RS232(485)-1.2 RS485-1.3 RS485-2.1
M207621-
M267 LTE61--
M5276217
M5376217
M567 LTE61-7
L207621-
L5276217

Společné porty

USB110
USB211
LTE20

Unipi Neuron

RS485-1.1 RS485-2.1 RS485-3.1
S103 6 - -
S103-G 6 - -
M103 6 - -
M203 6 - -
M303 6 - -
M403 6 - -
M503 6 7 -
M523 6 7 -
L203 6 - -
L303 6 - -
L403 6 - -
L503 6 7 -
L523 6 7 -
L513 6 7 8
L533 6 7 8

Společné porty

USB1 10
USB2 11
USB3 12
USB4 13
GSM1

Unipi Gate

RS485-1 RS485-2
G1002-
G11023

Společné porty

USB 10

Unipi 1.1 / Lite

UART 1
USB1 10
USB2 11
USB3 12
USB4 13

Unipi Axon

RS485-1 RS232(485)-2 RS485-3 RS485-4
S105632-
S1156132
S155632-
S165 LTE62--
S2052---
S21523--
S5052---
S51523--
RS485-1.1 RS232(485)-1.2 RS485-1.3 RS485-2.1
M205632-
M265 LTE62--
M5056327
M51523-6
M5256327
M53523-6
M565 LTE62-7
L205632-
L5056327
L5256327

Společné porty

USB110
USB211
LTE20
Tento web používá cookies. Používáním těchto stránek souhlasíte s ukládáním cookies do vašeho počítače. Také berete na vědomí, že jste si přečetli a porozuměli našim Zásadám ochrany osobních údajů. Pokud nesouhlasíte s odchodem z webu.Více informací