Promotic

PmSBUS - Driver do komunikacji ze sterownikami PLC SAIA oraz DIGIControl poprzez protokół S-BUS/S-BUS+

Driver ten służy do komunikacji poprzez protokół S-BUS oraz S-BUS+. Oba protokoły są nawzajem kompatybilne w tym sensie, że można na jednej linii komunikacyjnej (np. na jednym RS485 lub na jednym Ethernecie) komunikować się przy pomocy jednego drivera komunikacyjnego z urządzeniami przy pomocy S-BUS tak i z urządzeniami przy pomocy S-BUS+.
- Protokół S-BUS jest używany do komunikacji pomiędzy systemem PROMOTIC oraz sterownikami PLC SAIA.
- Protokół S-BUS+ jest używany do komunikacji pomiędzy systemem PROMOTIC oraz sterownikami PLC DIGIControl.

Jest protokołem sieciowym typu 1Master x nSlave, gdzie ilość stacji Slave może wynosić maks. 254.

Przed zastosowaniem tego drivera w aplikacji PROMOTIC należy obejżeć "PROMOTIC wideo kurs 4 - Drivery komunikacyjne".

Podstawowe właściwości drivera:
- Zastosowanie tego drivera wymaga zakup licencji PmSBUS. Podczas wytwarzania aplikacji w trybie freeware PmFree lub z licencją deweloperską oraz podczas jej testowania w runtime element ten jest zawsze funkcjonalny.
- Komunikacja jest dla Ethernetu (aplikacja PROMOTIC jest klientem) lub dla łącza szeregowego (COM1, COM2 ...).
- Aplikacja PROMOTIC jest z punktu widzenia tej komunikacji Master (to znaczy, że wywołuje transmisję danych).
- Driver jest wbudowany do systemu PROMOTIC przy pomocy obiektu PmaComm.
Driver wspiera zastosowanie obiektów PmaCommMsg oraz PmaCommGroup. Dla zwykłych przypadków transmisji danych dogodniejszym jest zastosowanie obiektu PmaCommGroup.
Dla łatwego dodania tego drivera do aplikacji jest dogodne zastosować: Konfiguracje wstępne w grupie "S-BUS"


Zalecone wartości parametrów obiektu PmaComm:

Zalecane wartości dla pozycji Parametry łącza szeregowego:
Uwaga: Jeżeli komunikacja wykorzystuje interfejs RS485, wtedy zalecamy zastosowanie inteligentnego konwertera sprzętowego, który automatycznie przełącza sygnał RTS (patrz Drivery komunikacyjne).
Prędkość transmisjiFabrycznie bywa wstępnie ustawione na 9600 Bd ale można zwiększyć
Ilość bitów informacji8
ParzystośćNO (żaden), Dla Tryb transmisji=Parity ustawienie jest dynamicznie zmieniane.
Ilość bitów stopu1
Zalecane wartości dla pozycji Parametry Ethernet-klient - Dla urządzeń SAIA:
Numer zdalnego portu TCP/UDP5050 - Dla typu danych "SAIA S-BUS in UDP-frame".
Typ transmisji EthernetUDP - Dla typu danych "SAIA S-BUS in UDP-frame".
Zalecane wartości dla pozycji Parametry Ethernet-klient - Dla urządzeń DIGIControl:
Numer zdalnego portu TCP/UDP
5558 - Dla typu danych "DIGIControl S-BUS TBETH protocol".
5556 - Dla typu danych "Dane takie same jak dla łącza szeregowego".
Typ transmisji EthernetUDP
Opis i zalecane wartości dla pozycji Parametry protokołu:
Typ danych protokołuWyłącznie dla Ethernetu. Określa wygląd danych protokołu. Można wybrać:
Dane takie same jak dla łącza szeregowego - Opcję tą można wybrać na przykład jeżeli urządzenie jest wyposażone w łącze szeregowe i przy pomocy konwertera RS232/Ethernet jest podłączone do Ethernetu. Jeżeli konwerter nie zmienia transmitowanych danych, wtedy można w ten prosty sposób komunikować się poprzez Ethernet z urządzeniem, które nie posiada wyjścia Ethernet.
Jeżeli Tryb transmisji=Parity, wtedy transmisja poprzez EThernet jest trudniejsza, ponieważ konwerter nie może tylko transmitować dane, lecz także musi po stronie łącza szeregowego przelączaćbit parytetu! Niektóre typy konwerterów to potrafią ale tylko jeżeli jest zastosowane ich oprogramowanie do wirtualnego łącza szeregowego. Oprogramowanie to wtedy transmituje dane ale także polecenia systemowe do przełączenia bitu parytetu. W takiej konfiguracji jest konieczne w PROMOTIC driverze ustawić komunikację po łączu szeregowym komputera i komunikować się poprzez wirtualny COM port!
SAIA S-BUS in UDP-frame - Dla urządzeń SAIA. W porównaniu z danymi dla łącza szeregowego odróżnia się specjalnym nagłówkiem oraz jest transmitowany poprzez Ethernet UDP na porcie 5050.
DIGIControl S-BUS TBETH protocol - Dla urządzeń DIGIControl. W porównaniu z danymi dla łącza szeregowego odróżnia się specjalnym nagłówkiem (TBETH protocol) oraz jest transmitowany poprzez Ethernet UDP na porcie 5558.
Timeout odbioru odpowiedziWyłącznie dla łącza szeregowego. Okres czasu (w milisekundach) w którym driver będzie oczekiwać na odpowiedź po odesłaniu wiadomości.
Jeżeli do tego czasu nie zostanie odebrana żadna odpowiedź, wtedy transmisja wiadomości zostanie zakończona (zostanie wywołane zdarzenie onEndOfTransfer z błędem 24 lub 66).
Tryb transmisjiDla typu danych "Dane takie same jak dla łącza szeregowego".
1: Parity - W tym trybie jest znak parytetu wykorzystany do zaznaczenia początku wiadomości. W omawianym trybie nie jest ważne ustawienie tego bitu w parametrach łącza szeregowego przez projektanta, ponieważ bit ten jest dynamicznie ustawiany.
2: Data - jest tzw. trybem danych. W tym trybie bit parytetu nie jest dynamicznie ustawiany i przy pomocy tego protokołu można komunikować się również poprzez linie telefoniczne. Od roku 2007 już każdy sterownik PLC SAIA wspiera ten tryb.
SBUS adres tej aplikacjiDla typu danych "DIGIControl S-BUS TBETH protocol".

Opis komunikacji przy pomocy obiektu PmaCommGroup

Dla niniejszego drivera komunikacyjnego można zastosować obiekty PmaCommGroup. Dla zwykłych transmisji danych jest to bardziej dogodne niż zastosowanie obiektu PmaCommMsg.
Zmiennych w obiekcie PmaCommGroup (lub jeszcze lepiej zmiennych w obiekcie PmaData z rozszerzeniem danych ExtComm) może być dowolna ilości, mogą być dowolnego typu danych i w dowolnej kolejności. Driver sam w zoptymalizowany sposób odczyta dane z urządzenia przy pomocy wewnętrznie wytworzonych wiadomości komunikacyjnych.
Odczytywane są wszystkie zmienne (jeżeli konfigurator "Odświeżanie danych zezwolone" jest zaznaczony). Przy zapisie do zmiennej do urządzenia jest odesłana tylko zapisywana zmienna (jeżeli konfigurator "Automatycznie przesyłaj przy zapisie do pozycji" jest zaznaczony).

Opis konfiguratora "ItemId":
ItemId jest identyfikator tekstowy pozycji, który służy do adresacji pozycji w urządzeniu. Z konfiguratora ItemId driver stwierdzi, w jaki sposób ma zostać wartość pozycji wczytana lub wysłana.
Tekst można wpisać ręcznie, lub ułożyć w oknie, które zostanie otwarte przy pomocy przycisku wprawo od konfiguratora.
Do wprowadzenia można zastosować Makro wyrażenie (wartość jest obliczana po uruchomieniu aplikacji).
Identyfikator ItemId może mieć wygląd na przykład "dev2.R33.L", gdzie:
- 1. część określa adres sterownika PLC (device), z którym ma być prowadzona komunikacja (dev2 = adres 2).
Adres 255 przedstawia tzw. broadcast, tzn. wiadomość zostaje przesłany do wszystkich stacji, oraz ma sens tylko podczas wysyłania danych (np. równocześnie przesłanie czasu do wszystkich sterowników).
- 2. część określa typ i adres pozycji danych (R33 = rejestr pod adresem 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. część określa typ danych.
Jest wprowadzana tylko dla rejestrów (R, Rp). Jednostką adresacji rejestrów jest 4-bajt i dlatego wartości o typie danych Byte oraz bit służą tylko do odczytu i określa się w nich jeszcze indeks w 4-bajcie (np. "dev2.R33.B0").
- R = Real = 4 Byte floating-point
- L = Long = 4 Byte integer
- B = Byte (Read Only)
- b = bit (Read Only)

Opis konfiguratora "PmaCommGroup > Parametry > Parametry specjalne":
Domyślny adres urządzeniaW tym miejscu wprowadzony adres można zastosować przy ustawianiu konfiguratora "ItemId" w zmiennych w tym obiekcie (tzn. w zmiennych w karcie "Dane" lub w rozszerzeniu danych ExtComm). Adres można wprowadzić w ItemId:
- jako na przykład dev1... - wtedy wartość zmiennej będzie odczytywana ze sterownika PLC pod adresem 1.
- lub devD... - znak "D" w tym miejscu oznacza default (to znaczy, że adres zostanie przejęty z niniejszego konfiguratora).

Parametr ten można w runtime zmienić i odczytać w skrypcie przy pomocy metod: SetSpecParam("SlaveAddr") oraz GetSpecParam("SlaveAddr").

Opis komunikacji przy pomocy obiektu PmaCommMsg dla sterowników PLC SAIA (S-BUS)



W karcie "PmaCommMsg > Dane-wysłanie" znajduje się jako 1. zmienna o nazwie "Slave". Adres urządzenia (do którego ma być wysłana wiadomość) jest wprowadzany (statycznie lub dynamicznie) do tej zmiennej. Adres 255 przedstawia tzw. broadcast, tzn. wiadomość zostaje przesłany do wszystkich stacji, oraz ma sens tylko podczas wysyłania danych (np. równocześnie przesłanie czasu do wszystkich sterowników).

Ze sterownika PLC SAIA można odczytywać/zapisywać następujące dane (typy wiadomości):
- Register: Wiadomości typu "Read/Write Register". Przy pomocy jednego komunikatu jest możliwe przeniesienie najwyżej 32 rejestrów w spójnym odcinku adresów. Rejestry można odczytywać/zapisywać jako:
- as Real: rejestry przedstawiają liczby rzeczywiste z kropką dziesiętną.
W danych powstaną pozycje typu Single (dla każdego rejestru 1 pozycja).
- as Long: rejestry przedstawiają liczby naturalne (bez przecinka dziesiętnego).
W danych powstaną pozycje typu Long (dla każdego rejestru 1 pozycja).
- as 4 Bytes: rejestry przedstawiają grupę bajtów (każdy rejestr przedstawia 4 bajty).
W danych powstaną pozycje typu Byte (dla każdego rejestru 4 pozycje).
- as 32 Bits: rejestry przedstawiają grupę bitów (każdy rejestr przedstawia 32 bitów).
W danych powstaną pozycje typu Boolean (dla każdego rejestru 32 pozycji).
- RealTimeClock: Wiadomości typu "Read/Write RealTimeClock".
Można odczytać/zapisać czas w sterowniku PLC.
W danych powstanie 1 pozycja typu Date.
- Counter: (liczniki)
Przy pmocy jednego komunikatu można przenieść najwyżej 32 liczników w spójnym obszarze adresów.
Liczniki można odczytywać/zapisywać, są uważane za liczby naturalne. W danych powstaną pozycje typu Long (dla każdego licznika 1 pozycja).
- Timer: (czasomierzy) Przy pmocy jednego komunikatu można przenieść najwyżej 32 czasomierzów w spójnym obszarze adresów.
Czasomierza można odczytywać/zapisywać, są uważane za liczby naturalne.
W danych powstaną pozycje typu Long (dla każdego czasomierza 1 pozycja).
- Flag: Przy pmocy jednego komunikatu można przenieść najwyżej 128 znaczników (flagów) w spójnym obszarze adresów.
Znaczniki można odczytywać i zapisywać, są uważane za wartości logiczne.
W danych powstaną pozycje typu Boolean (dla każdego znacznika 1 pozycja).
- Input: (wejścia) Przy pmocy jednego komunikatu można przenieść najwyżej 128 wejść w spójnym obszarze adresów.
Wejścia są tylko do odczytu, są uważane za wartości logiczne.
W danych powstaną pozycje typu Boolean (dla każdego wejścia 1 pozycja).
- Output: (wyjścia) Przy pmocy jednego komunikatu można przenieść najwyżej 128 wyjść w spójnym obszarze adresów.
Wyjścia można odczytywać/zapisywać, są uważane za wartości logiczne.
W danych powstaną pozycje typu Boolean (dla każdego wyjścia 1 pozycja).
- CPU Status: Tylko do odczytu. W danych powstanie 1 pozycja typu String.
Zmienna ta będzie posiadać wartość 1 znaku ASCII z grupy: "S", "H", "R", "C", "D".
- Data Block: W obszarze DataBloków można zapisywać/odczytywać podobnie jak do obszarze rejestrów. To znaczy, że obszar DataBloków można odczytywać jako liczby rzeczywiste (real), liczby naturalne (long), grupę bajtów lub bitów.
DataBloki mogąbyć odczytywane lub zapisywane także o dynamicznie zmiennej długości. W parametrach wiadomości ustawia się bowiem tylko maksymalna ilość danych. Rzeczywista ilość danych następnie jest wpisywana w zmiennej Size karty "Dane-wysłanie". Jeżeli wartość ta jest równa 0 (lub w ogóle nie jest wprowadzona), wtedy za rzeczywistą ilość uważa się maksymalna ilość.

Opis komunikacji przy pomocy obiektu PmaCommMsg dla sterowników PLC DIGIControl (S-BUS+)

W karcie "PmaCommMsg > Dane-wysłanie" znajduje się jako 1. zmienna o nazwie "Slave". Adres urządzenia (do którego ma być wysłana wiadomość) jest wprowadzany (statycznie lub dynamicznie) do tej zmiennej. Adres 255 przedstawia tzw. broadcast, tzn. wiadomość zostaje przesłany do wszystkich stacji, oraz ma sens tylko podczas wysyłania danych (np. równocześnie przesłanie czasu do wszystkich sterowników).

Typ adresacji rejestrów w sterowniku PLC DIGIControl można wybrać w parametrze wiadomości "Typ adresu rejestru":
- jako jedna liczba całkowita: Rejestr jest adresowany jedną liczbą typu Long.
Liczby ta odpowiada 4 liczbom w drugim rodzaju adresacji następująco: Jeżeli jest adres rejestru na przykład 90383 (w układzie dziesiątkowym), wtedy w układzie szesnastkowym jest to 01610f. Pierwsze dwie cyfry (01) to Chart, trzecia cyfra (6) to Col, czwarta cyfra (1) to Row a ostatnie dwie cyfry (0f) to Item.
- jako 4 liczby (chart/column/row/item): adresacja rejstru jest założona na 4 numerach:
1) Chart = numer strony oprogramowania źródłowego
2) Col = kolumna w której znajduje się wymagany moduł
3) Row = wiersz w którym znajduje się moduł
4) Item = numer wejścia/wyjścia modułu. Zazwyczaj jest dane: 1,2,..,8 oznaczają wejścia, 9,10,..,16 oznaczają wyjścia modułu.
Po określeniu rodzaju adresacji w karcie "Dane-wysłanie" zostanie wytworzona albo jedna zmienna (Addr) albo cztery zmienne (Chart/Col/Row/Item). Do wymienionych zmiennych następnie wprowadzany jest adres rejestru.

Rejestry typu Bit są przenoszone jako wartości typu Long z odpowiednio ustawionym bitem 0. Dostęp do bitów można w systemie PROMOTIC uzyskać przy pomocy metod PmVar.GetBit / PmVar.SetBit.

Ze sterownika PLC DIGIControl można odczytywać/zapisywać następujące dane (typy wiadomości):
- Register: Wiadomości typu "Read/Write SBUS+ Register". Przy pomocy jednego komunikatu jest możliwe przeniesienie najwyżej 32 rejestrów w spójnym odcinku adresów. Rejestry można odczytywać/zapisywać jako:
- as Real: rejestry przedstawiają liczby rzeczywiste z kropką dziesiętną.
W danych powstaną pozycje typu Single (dla każdego rejestru 1 pozycja).
- as Long: rejestry przedstawiają liczby naturalne (bez przecinka dziesiętnego).
W danych powstaną pozycje typu Long (dla każdego rejestru 1 pozycja).
- as 4 Bytes: rejestry przedstawiają grupę bajtów (każdy rejestr przedstawia 4 bajty).
W danych powstaną pozycje typu Byte (dla każdego rejestru 4 pozycje).
- as 32 Bits: rejestry przedstawiają grupę bitów (każdy rejestr przedstawia 32 bitów).
W danych powstaną pozycje typu Boolean (dla każdego rejestru 32 pozycji).
- RealTimeClock: Wiadomości typu "Read/Write SBUS+ RealTimeClock". Można odczytać/zapisać czas w sterowniku PLC.
W danych powstanie 1 pozycja typu Date.

Historia:
Pm9.00.25: Usunięty błąd: Odbiór "CPU Status" w obiektach PmaCommGroup i PmaCommMsg nie działał.
Pm8.01.01:
- W obiekcie PmaCommGroup jest nowy konfigurator "Domyślny adres urządzenia".
- Uogólnienie dla DigiControl Ethernet.
Pm8.00.02: Usunięty błąd: przy pomocy obiektu PmaCommGroup nie był możliwy zapis do rejestrów rael oraz odczyt flag
© MICROSYS, spol. s r.o.