Promotic
WikipediaLinkedInYoutubeTwitterFacebook

PmSBUS - Ovladač pro komunikaci s PLC 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é přečíst kapitolu: Komunikace pomocí PROMOTIC ovladačů.
 
Základní vlastnosti ovladače:
- Použití tohoto ovladače je vázáno na zakoupení licence: PmSBUS. S freeeware verzí PmFree nebo při vývoji aplikace (s vývojovou licencí pro testovací účely) je tato komponenta funkční vždy.
- Komunikace je přes Ethernet nebo přes standardní sériovou linku (COM1, COM2 ...).
- Aplikace PROMOTIC je z hlediska této komunikace vždy MASTER (tzn. že dává podnět k přenosu dat).
- Ovladač je začleněn do systému PROMOTIC pomocí objektu PmComm.

Ovladač podporuje používání objektů PmCommMsg a PmCommData. Pro běžné případy přenosu dat je výhodnější použít objekt PmCommData.

Pro snadné přidání tohoto ovladače do aplikace je vhodné použít: Předkonfigurace ve skupině "S-BUS protokol (SAIA, DIGIControl)"

 

Doporučené hodnoty parametrů:

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 - Pro PLC SAIA:
Číslo 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 - Pro PLC DIGIControl:
Číslo 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. Upřesňuje tvar dat protokolu. Lze zvolit:
Stejná data jak pro sériovou linku - Tuto volbu lze zvolit například když má zařízení 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 je přenos 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 jen za podmínky že 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 je však nutno Promotic ovladač nastavit jako komunikaci přes sériovou linku 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 seriovou 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ěď, přenos zprávy se ukončí (vyvolá se 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 v parametrech sériové linky paritu, neboť 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. Nyní (rok 2007) již podporuje každé PLC SAIA.
SBUS adresa této aplikacePro typ dat "DIGIControl S-BUS TBETH protocol"

Popis komunikace pomocí objektů PmCommData

Pro tento ovladač lze používat objekty PmCommData. Pro běžné případy přenosů dat je to výhodnější než použít objekt PmCommMsg.

Proměnné v objektu PmCommData (nebo ještě lépe proměnné v objektu PmData 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 je povolen konfigurátor Obnovování dat povoleno). Při zápisu do proměnné se posílá do zařízení jen tato jedna proměnná (pokud je povolen konfigurátor Automaticky zasílat při zápisu do položky).

 
Popis konfigurátoru ItemID:

ItemId je textový identifikátor položky, který slouží k adresaci veličiny 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 pomocí okna, které se otevře tlačítkem vpravo od konfigurátoru. Pro zadání lze použít Makro výraz (vyhodnocuje se při spouštění aplikace).

Text může mít podobu například "dev2.R33.L".

- 1.část určuje adresu PLC (device), se kterým se má komunikovat (dev2 = adresa 2). Adresa 255 představuje tzv. broadcast, tj. zprávu všem PLC a má smysl pouze pro zasílání dat (např. zaslání času všem PLC najednou).
- 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ží pouze ke č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 PmCommData > Parametry > Speciální parametry:
Přednastavená adresa PLCZde zadanou adresu lze využít při zadávání konfigurátoru ItemID u proměnných v tomto objektu (tzn. u proměnných v záložce Data nebo v datových rozšířeních ExtComm). Adresu lze zadat v ItemID:
- buď například dev1... - pak se hodnota proměnné bude načítat z PLC s adresou 1.
- nebo devD... - znak "D" zde znamená default, a znamená to, že adresa se přebere z tohoto konfigurátoru.

Tento parametr lze za běhu aplikace změnit a přečíst pomocí metod: SetSpecParam("SlaveAddr") a GetSpecParam("SlaveAddr").

Popis komunikace pomocí objektů PmCommMsg pro PLC SAIA (S-BUS)

 
V záložce PmCommMsg > Data-zaslání má 1.proměnná název "Slave". Do této proměnné zadejte adresu (staticky nebo dynamicky) PLC, kterému se daná zpráva má zasílat. Adresa 255 představuje tzv. broadcast, tj. zprávu všem PLC a má smysl pouze pro zasílání dat (např. zaslání času všem PLC najednou).
 
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 čárkou. 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. V datech vznikne 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 lze POUZE ČÍST, 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: Lze POUZE ČÍST CPU status v PLC. V datech vznikne 1 položka typy 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ů. Tzn. oblast DataBloků lze číst jako reálná čísla (real), přirozená čísla (long), množinu bajtů či 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 záložky Data-zaslání. Pokud tato hodnota je 0 (nebo není vůbec zadána), bere se za skutečný počet maximální počet.

Popis komunikace pomocí objektů PmCommMsg pro PLC DIGIControl (S-BUS+)

V záložce PmCommMsg > Data-zaslání má 1.proměnná název "Slave". Do této proměnné zadejte adresu (staticky nebo dynamicky) PLC, kterému se daná zpráva má zasílat. Adresa 255 představuje tzv. broadcast, tj. zprávu všem PLC a má smysl pouze pro zasílání dat (např. zaslání času všem PLC najednou).
 
Typ adresování registrů v PLC 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 hexadecimálně. 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. Většinou je dáno: 1,2,..,8 jsou vstupy, 9,10,..,16 jsou výstupy modulu.
Po zadání typu adresování se v záložce 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 0.bitem. Přístup k bitům lze v systému PROMOTIC provést pomocí vlastnosti Var.Bit.
 
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 čárkou. 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. V datech vznikne 1 položka typu Date.
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice