Promotic

PmSBUS - Ovladač pro komunikaci s PLC automaty SAIA a DIGIControl protokolem S-BUS/S-BUS+

Tento ovladač slouží pro komunikaci protokolem S-BUS a S-BUS+. Oba protokoly jsou vzájemně kompatibilní v tom smyslu, že lze na jedné lince (např. na jedné RS485 nebo na jednom Ethernet připojení) komunikovat jedním ovladačem se zařízeními pro S-BUS i se zařízeními pro S-BUS+.
- Protokol S-BUS je určen pro komunikaci mezi systémem PROMOTIC a PLC SAIA.
- Protokol S-BUS+ je určen pro komunikaci mezi systémem PROMOTIC a PLC DIGIControl.

Oba protokoly jsou síťové protokoly typu 1Master x nSlave, kde počet Slave stanic může být max. 254.

Před použitím tohoto ovladače v aplikaci PROMOTIC je vhodné shlédnout "PROMOTIC video kurz 4 - Komunikační ovladače".

Základní vlastnosti ovladače:
- Použití tohoto ovladače vyžaduje zakoupení licence PmSBUS. Při vývoji aplikace ve freeware módu PmFree nebo s vývojovou licencí a při jejím testování v runtime je tato komponenta vždy funkční.
- Komunikace je pro Ethernet (aplikace PROMOTIC je klient) nebo pro sériovou linku (COM1, COM2 ...).
- Aplikace PROMOTIC je z hlediska této komunikace vždy Master (to znamená, že dává podnět pro přenos dat).
- Ovladač je začleněn do systému PROMOTIC pomocí objektu PmaComm.
Ovladač podporuje použití objektů PmaCommMsg a PmaCommGroup. Pro běžné případy přenosu dat je lepší použít objekt PmaCommGroup.
Pro snadné přidání tohoto ovladače do aplikace je vhodné použít: Předkonfigurace ve skupině "S-BUS"


Doporučené hodnoty parametrů objektu PmaComm:

Doporučené hodnoty pro Parametry sériové linky:
Upozornění: Pokud komunikace využívá rozhraní RS485, pak doporučujeme inteligentní převodník, který sám přepíná signál RTS (viz Komunikační ovladače).
RychlostBývá továrně přednastaveno na 9600 Bd ale lze zvýšit.
Počet datových bitů8
ParitaNO (žádná), Pro Mód přenosu=Parity je však toto nastavení dynamicky měněno.
Počet stopbitů1
Doporučené hodnoty pro Parametry Ethernet-klient - Pro PLC SAIA:
Číslo vzdáleného TCP/UDP portu5050 - Pro typ dat "SAIA S-BUS in UDP-frame".
Typ Ethernet přenosuUDP - Pro typ dat "SAIA S-BUS in UDP-frame".
Doporučené hodnoty pro Parametry Ethernet-klient - Pro PLC DIGIControl:
Číslo vzdáleného TCP/UDP portu
5558 - Pro typ dat "DIGIControl S-BUS TBETH protocol".
5556 - Pro typ dat "Stejná data jak pro sériovou linku".
Typ Ethernet přenosuUDP
Popis a doporučené hodnoty pro Parametry protokolu:
Typ dat protokoluJen pro Ethernet. Určuje tvar dat protokolu. Lze zvolit:
Stejná data jak pro sériovou linku - Tuto volbu lze vybrat například pokud zařízení má sériovou linku a převodníkem RS232/Ethernet je zapojeno do Ethernetu. Pokud převodník nemění přenášená data, pak lze takto jednoduše komunikovat přes Ethernet se zařízením, který nemá Ethernet výstup.
Pokud Mód přenosu=Parity, pak přenos je po Ethernetu složitější, protože převodník nemůže jen převádět data, ale musí na straně sériové linky přepínat paritní bit! Některé typy převodníků to umí ale pouze pokud se použije jejich software pro virtuální COM port. Tento software pak posílá data ale i systémové příkazy pro přepnutí paritního bitu. V této konfiguraci však je nutno PROMOTIC ovladač nastavit jako komunikaci přes sériový port počítače a komunikovat přes virtuální COM port!
SAIA S-BUS in UDP-frame - Pro PLC SAIA. Proti datům určeným pro sériovou linku se liší speciální hlavičkou a přenáší se přes Ethernet UDP na portu 5050.
DIGIControl S-BUS TBETH protocol - Pro PLC DIGIControl. Proti datům určeným pro sériovou linku se liší speciální hlavičkou (TBETH protocol) a přenáší se přes Ethernet UDP na portu 5558.
Timeout příjmu odpovědiJen pro sériovou linku. Čas (v milisekundách) po který bude ovladač čekat na odpověď při vyslání zprávy.
Pokud do této doby nepřijde vyžádaná odpověď, pak se přenos zprávy ukončí (je vyvolána událost onEndOfTransfer s chybou 24 nebo 66).
Mód přenosuPro typ dat "Stejná data jak pro sériovou linku".
1: Parity - V tomto módu je používán paritní bit přenosu k příznaku začátku zprávy. V tomto módu je jedno jak nastaví projektant paritu v parametrech sériové linky, protože tato je pak dynamicky měněna.
2: Data - je tzv. datový režim. V tomto módu již paritní bit není ovlivňován a lze tedy tento protokol bez obtíží přenášet i přes telefonní linky. Od roku 2007 již podporuje každé PLC automat SAIA.
SBUS adresa této aplikacePro typ dat "DIGIControl S-BUS TBETH protocol".

Popis komunikace pomocí objektu PmaCommGroup

Pro tento ovladač lze použít objekty PmaCommGroup. Pro běžné případy přenosu dat je to výhodnější než použít objekt PmaCommMsg.
Proměnné v objektu PmaCommGroup (nebo ještě lépe proměnné v objektu PmaData s datovým rozšířením ExtComm) mohou být v libovolném množství, libovolného typu v libovolném pořadí. Ovladač sám optimálním způsobem vnitřně vytvořenými komunikačními zprávami vyčítá data ze zařízení.
Proměnné se vyčítají všechny (pokud konfigurátor "Obnovování dat povoleno" je zatržen). Při zápisu do proměnné se posílá do zařízení jen tato jedna proměnná (pokud konfigurátor "Automaticky zasílat při zápisu do položky" je zatržen).

Popis konfigurátoru "ItemId":
ItemId je textový identifikátor položky, který slouží k adresaci položky v zařízení. Z konfigurátoru ItemId ovladač pozná, jak se má hodnota položky přijímat nebo vysílat.
Text lze buď napsat ručně, nebo sestavit v okně, které se otevře tlačítkem vpravo od konfigurátoru.
Pro zadání lze použít Makro výraz (vyhodnocuje se po spuštění aplikace).
Identifikátor ItemId může mít podobu například "dev2.R33.L", kde:
- 1. část určuje adresu PLC automatu (device), se kterým se má komunikovat (dev2 = adresa 2).
Adresa 255 představuje tzv. broadcast, tzn. zpráva všem zařízením a má smysl pouze pro zasílání dat (např. zaslání času všem zařízením současně).
- 2. část určuje typ a adresu data (R33 = registr na adrese 33).
- R = Register SAIA
- Rp = Register DigiControl
- K = RealTimeClock SAIA
- Kp = RealTimeClock DigiControl
- C = Counter SAIA
- T = Timer SAIA
- F = Flag SAIA
- I = Input SAIA
- O = Output SAIA
- S = CPU status SAIA (0-6=CPU Number, 7=Own)
- 3. část určuje datový typ.
Zadává se pouze pro registry (R, Rp). Adresovací jednotkou registrů je 4-bajt a proto veličiny s datovým typem Byte a bit slouží jen pro čtení a určuje se u nich ještě index ve 4-bajtu (např. "dev2.R33.B0").
- R = Real = 4 Byte floating-point
- L = Long = 4 Byte integer
- B = Byte (Read Only)
- b = bit (Read Only)

Popis konfigurátoru "PmaCommGroup > Parametry > Speciální parametry":
Přednastavená adresa zařízeníZde zadanou adresu lze použít při zadávání v konfigurátoru "ItemId" v proměnných v tomto objektu (tzn. v proměnných v kartě "Data" nebo v datovém rozšíření ExtComm). Adresu lze zadat v ItemId:
- buď například dev1... - pak se hodnota proměnné bude načítat z PLC automatu s adresou 1.
- nebo devD... - znak "D" zde znamená default (to znamená, že adresa se přebere z tohoto konfigurátoru).

Tento parametr lze v runtime změnit a přečíst ve skriptu pomocí metod: SetSpecParam("SlaveAddr") a GetSpecParam("SlaveAddr").

Popis komunikace pomocí objektu PmaCommMsg pro PLC automaty SAIA (S-BUS)



V kartě "PmaCommMsg > Data-zaslání" je 1. proměnná s názvem "Slave". Do této proměnné se zadává (staticky nebo dynamicky) adresa zařízení (kterému se daná zpráva má zasílat). Adresa 255 představuje tzv. broadcast, tzn. zpráva všem zařízením a má smysl pouze pro zasílání dat (např. zaslání času všem zařízením současně).

Z PLC SAIA lze číst/zapisovat následující údaje (typy zpráv):
- Register: Zprávy typu "Read/Write Register". Jednou zprávou lze přenést maximálně 32 registrů ve spojitém úseku adres. Registry lze číst/zapisovat jako:
- as Real: registry se považují za reálná čísla s desetinnou tečkou.
V datech vzniknou položky typu Single (pro každý registr 1 položka).
- as Long: registry se považují za přirozená čísla (bez desetinné čárky).
V datech vzniknou položky typu Long (pro každý registr 1 položka).
- as 4 Bytes: registry se považují za množinu bajtů (každý registr představuje 4 bajty).
V datech vzniknou položky typu Byte (pro každý registr 4 položky).
- as 32 Bits: registry se považují za množinu bitů (každý registr představuje 32 bitů).
V datech vzniknou položky typu Boolean (pro každý registr 32 položek).
- RealTimeClock: Zprávy typu "Read/Write RealTimeClock".
Lze číst/zapisovat čas v PLC automatu.
V datech se vytvoří 1 položka typu Date.
- Counter: (čítače) Jednou zprávou lze přenést maximálně 32 čítačů ve spojitém úseku adres.
Čítače lze číst/zapisovat, považují se za přirozená čísla.
V datech vzniknou položky typu Long (pro každý čítač 1 položka).
- Timer: (časovače) Jednou zprávou lze přenést maximálně 32 časovačů ve spojitém úseku adres.
Časovače lze číst/zapisovat, považují se za přirozená čísla.
V datech vzniknou položky typu Long (pro každý časovač 1 položka).
- Flag: Jednou zprávou lze přenést maximálně 128 flagů ve spojitém úseku adres.
Flagy lze číst/zapisovat, považují se za logické hodnoty.
V datech vzniknou položky typu Boolean (pro každý flag 1 položka).
- Input: (vstupy) Jednou zprávou lze přenést maximálně 128 vstupů ve spojitém úseku adres.
Vstupy jsou jen pro čtení, považují se za logické hodnoty.
V datech vzniknou položky typu Boolean (pro každý vstup 1 položka).
- Output: (výstupy) Jednou zprávou lze přenést maximálně 128 výstupů ve spojitém úseku adres.
Výstupy lze číst/zapisovat, považují se za logické hodnoty.
V datech vzniknou položky typu Boolean (pro každý výstup 1 položka).
- CPU Status: Jen pro čtení. V datech se vytvoří 1 položka typu String.
Toto dato bude mít hodnotu 1 ASCII znaku: "S", "H", "R", "C", "D".
- Data Block: Do oblasti DataBloků lze číst/zapisovat podobně jako do oblasti registrů. To znamená, že oblast DataBloků lze číst jako reálná čísla (real), přirozená čísla (long), množinu bajtů nebo bitů.
DataBloky lze číst nebo zapisovat i s dynamicky proměnnou délkou. V parametrech zprávy se totiž zadává jen maximální počet dat. Skutečný počet dat se pak zadává v proměnné Size karty "Data-zaslání". Pokud tato hodnota je 0 (nebo není vůbec zadána), pak se bere za skutečný počet maximální počet.

Popis komunikace pomocí objektu PmaCommMsg pro PLC automaty DIGIControl (S-BUS+)

V kartě "PmaCommMsg > Data-zaslání" je 1. proměnná s názvem "Slave". Do této proměnné se zadává (staticky nebo dynamicky) adresa zařízení (kterému se daná zpráva má zasílat). Adresa 255 představuje tzv. broadcast, tzn. zpráva všem zařízením a má smysl pouze pro zasílání dat (např. zaslání času všem zařízením současně).

Typ adresování registrů v PLC automatu DIGIControl lze zvolit v parametru zprávy "Typ adresy registru":
- jako jedno celé číslo: Registr se adresuje jedním číslem typu Long.
Toto číslo odpovídá 4 číslům v druhém typu adresování takto: Pokud je adresa registru například 90383 (decimálně), pak je to 01610f v hexadecimálním tvaru. První dvě cifry (01) je Chart, třetí cifra (6) je Col, čtvrtá cifra (1) je Row a poslední dvě cifry (0f) je Item.
- jako 4 čísla (chart/column/row/item): adresování registru je založeno na 4 číslech:
1) Chart = číslo listu zdrojového programu
2) Col = sloupec ve kterém je požadovaný modul
3) Row = řádek ve kterém je modul
4) Item = číslo vstupu/výstupu modulu. Obvykle je dáno: 1,2,..,8 jsou vstupy, 9,10,..,16 jsou výstupy modulu.
Po zadání typu adresování se v kartě "Data-zaslání" vygeneruje buď jedna proměnná (Addr) nebo čtyři proměnné (Chart/Col/Row/Item). Do těchto proměnných se pak musí zadat adresa registru.

Registry typu Bit se přenášejí jako hodnoty typu Long s příslušně nastaveným bitem 0. Přístup k bitům lze v systému PROMOTIC provést pomocí metod PmVar.GetBit / PmVar.SetBit.

Z PLC DIGIControl lze číst/zapisovat následující údaje (typy zpráv):
- Register: Zprávy typu "Read/Write SBUS+ Register". Jednou zprávou lze přenést maximálně 32 registrů ve spojitém úseku adres. Registry lze číst/zapisovat jako:
- as Real: registry se považují za reálná čísla s desetinnou tečkou.
V datech vzniknou položky typu Single (pro každý registr 1 položka).
- as Long: registry se považují za přirozená čísla (bez desetinné čárky).
V datech vzniknou položky typu Long (pro každý registr 1 položka).
- as 4 Bytes: registry se považují za množinu bajtů (každý registr představuje 4 bajty).
V datech vzniknou položky typu Byte (pro každý registr 4 položky).
- as 32 Bits: registry se považují za množinu bitů (každý registr představuje 32 bitů).
V datech vzniknou položky typu Boolean (pro každý registr 32 položek).
- RealTimeClock: Zprávy typu "Read/Write SBUS+ RealTimeClock". Lze číst/zapisovat čas v PLC automatu.
V datech se vytvoří 1 položka typu Date.

Historie:
Pm9.00.25: Opravená chyba: Příjem "CPU Status" v objektu PmaCommGroup i PmaCommMsg nefungoval.
Pm8.01.01:
- V objektu PmaCommGroup je nový konfigurátor "Přednastavená adresa zařízení".
- Zobecnění pro DigiControl Ethernet.
Pm8.00.02: Opravená chyba: objektem PmaCommGroup nešly zapisovat real registry a číst flagy.
© MICROSYS, spol. s r.o.