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 1
Master x n
Slave, 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).
Doporučené hodnoty parametrů objektu PmaComm:
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).
Rychlost | Bývá továrně přednastaveno na 9600 Bd ale lze zvýšit. |
Počet datových bitů | 8 |
Parita | NO (žádná), Pro Mód přenosu=Parity je však toto nastavení dynamicky měněno. |
Počet stopbitů | 1 |
---|
Číslo vzdáleného TCP/UDP portu | 5050 - Pro typ dat "SAIA S-BUS in UDP-frame". |
Typ Ethernet přenosu | UDP - Pro typ dat "SAIA S-BUS in UDP-frame". |
---|
Čí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řenosu | UDP |
---|
Typ dat protokolu | Jen 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ědi | Jen 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řenosu | Pro 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 aplikace | Pro 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)
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í následovně: 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.