Promotic
WikipediaLinkedInYoutubeTwitterFacebook

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

Niniejszy driver 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 zaznajomić się z rozdziałem: Komunikacja przy pomocy driverów PROMOTIC.
 
Podstawowe właściwości drivera:
- Zastosowanie tego drivera wymaga zakup licencji PmSBUS. Z wersją freeeware PmFree lub przy opracowywaniu aplikacji (z licencją deweloperską w celach testowania) element ten zawsze funkcjonuje.
- Komunikacja przebiega dla Ethernet-klienta lub dla łącza szeregowego (COM1, COM2 ...).
- Aplikacja PROMOTIC jest z punktu widzenia tej komunikacji MASTER (tzn. wywołuje transmisję danych).
- Driver jest wbudowany do systemu PROMOTIC przy pomocy obiektu PmaComm.

Driver umożliwia stosowanie obiektów PmaCommMsg oraz PmaCommGroup. Dla zwykłych przypadków transmisji danych jest bardziej dogodne zastosowanie obiektu PmaCommGroup.

Dla łatwego dodania tego drivera do aplikacji jest dogodne zastosować: Konfiguracje wstępne w grupie "Protokół S-BUS (SAIA, DIGIControl)"

 

Zalecone wartości parametrów:

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 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 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żliwe opcje:
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 driverze PROMOTIC 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 poprzez port 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 poprzez port 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 komunikatu. 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 niniejszej aplikacjiDla typu danych "DIGIControl S-BUS TBETH protocol"

Opis komunikacji przy pomocy obiektów 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 (albo 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 identyfikatorem tekstowym pozycji, który służy do adresacji parametru 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ć przy pomocy okna, które zostanie otwarte przy pomocy przycisku wprawo od konfiguratora. Do wprowadzenia można zastosować Makro wyrażenie (wartość jest obliczana po uruchomieniu aplikacji).

Tekst może mieć wygląd na przykład "dev2.R33.L".

- 1. część określa adres sterownika PLC (device), z którym ma przebiegać transmisja (dev2 = adres 2). Adres 255 przedstawia tzw. broadcast, tzn. komunikat zostaje przesłany do wszystkich stacji, oraz ma sens tylko podczas wysyłania danych (np. jednoczesne przesłanie czasu do wszystkich sterowników).
- 2. część określa rodzaj 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 PLCW tym miejscu wprowadzony adres można zastosować przy ustawianiu konfiguratora "ItemID" w zmiennych w tym obiekcie (tzn. w zmiennych w zakładce "Dane" lub rozszerzeniach danych ExtComm). Adres można wprowadzić w ItemID:
- jako na przykład dev1... - wtedy wartość zmiennej będzie odczytywana ze sterownika PLC o adresie 1.
- lub devD... - znak "D" w tym miejscu oznacza default, a oznacza to, że adres zostanie przejęty z niniejszego konfiguratora.

Ten parametr można podczas biegu aplikacji zmienić i odczytać w skrypcie przy pomocy metod: SetSpecParam("SlaveAddr") oraz GetSpecParam("SlaveAddr").

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

 
W zakładce "PmaCommMsg > Dane-wysłanie" znajduje się jako 1.zmienna o nazwie "Slave". Do tej zmiennej jest konieczne wpisanie adresu PLC (statycznie lub dynamicznie), do którego ma zostać wysłany komunikat. Adres 255 przedstawia tzw. broadcast, tzn. komunikat zostaje przesłany do wszystkich stacji, oraz ma sens tylko podczas wysyłania danych (np. jednoczesne przesłanie czasu do wszystkich sterowników).
 
Ze sterownika PLC SAIA można odczytywać/zapisywać następujące dane (typy komunikatów):
- Register: Komunikaty 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 przecinkiem dziesiętnym. 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: Komunikaty 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 można WYŁĄCZNIE ODCZYTYWAĆ, 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: WYŁĄCZNIE ODCZYTYWAĆ można statut CPU w sterowniku PLC. W danych powstanie 1 pozycja typy 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ć w podobny sposób jak do obszarze rejestrów. To znaczy, że obszar DataBloków można odczytywać jako liczby rzeczywiste (real), liczby naturalne (long), grupę bajtów czy też bitów. DataBloki mogąbyć odczytywane lub zapisywane także o dynamicznie zmiennej długości. W parametrach komunikatu ustawia się bowiem tylko maksymalna ilość danych. Rzeczywista ilość danych następnie jest wpisywana do zmiennej Size w zakładce Dane-wysłanie. Jeżeli wartość jest równa 0 (lub w ogóle nie jest wprowadzona), wtedy za rzeczywistą ilość uważa się maksymalna ilość.

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

W zakładce "PmaCommMsg > Dane-wysłanie" znajduje się jako 1.zmienna o nazwie "Slave". Do tej zmiennej jest konieczne wpisanie adresu PLC (statycznie lub dynamicznie), do którego ma zostać wysłany komunikat. Adres 255 przedstawia tzw. broadcast, tzn. komunikat zostaje przesłany do wszystkich stacji, oraz ma sens tylko podczas wysyłania danych (np. jednoczesne 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ętnym), 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. W większości przypadków jest dane: 1,2,..,8 oznaczają wejścia, 9,10,..,16 oznaczają wyjścia modułu.
Po określeniu rodzaju adresacji w zakładce "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 0.bitem. 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 komunikatów):
- Register: Komunikaty 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 przecinkiem dziesiętnym. 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: Komunikaty typu "Read/Write SBUS+ RealTimeClock". Można odczytać/zapisać czas w sterowniku PLC. W danych powstanie 1 pozycja typu Date.

Historia:
Pm8.01.01:
- W obiekcie PmaCommGroup wprowadzony konfigurator "Domyślny adres PLC".
- 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
Pm7.05.01: przyśpieszono przesył oraz odczyt danych poprzez Ethernet bey czekania na timeout.
Pm7.03.03: Uogólnienie adresacji rejestrów dla PLC DIGIControl. Teraz można określić adres rejestru również jako jedną liczbę.
Pm7.01.03: Uogólnienie do komunikacji poprzez Ethernet. Uogólniono również o powiadomienia dla protokołu S-BUS+. To znaczy, że ten driver teraz można zastosować nie tylko do komunikacji ze sterownikami SAIA, ale na przykład również ze sterownikami DIGIControl. Dlatego zmieniono nazwę drivera z PmSaiaSbus na PmSBUS.
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice