Promotic
WikipediaLinkedInYoutubeTwitterFacebook

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

Niniejszy driver służy do komunikacji poprzez protokół S-BUS i 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 przeznaczony do komunikacji pomiędzy systemem PROMOTIC i sterownikami PLC SAIA.
- Protokół S-BUS+ jest przeznaczony do komunikacji pomiędzy systemem PROMOTIC i sterownikami PLC DIGIControl.

Jest protokołem sieciowym typu 1Master x nSlave, gdzie ilość stacji Slave może wynosić najwyżej 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:
- Wykorzystanie tego drivera jest powiązane z zakupem licencji: PmSBUS. Z wersją freeeware PmFree lub przy opracowywaniu aplikacji (z licencją deweloperską w celach testowania) element ten zawsze funkcjonuje.
- Komunikacja przebiega poprzez Ethernet lub po łączu szeregowym komputera (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 PmComm.

Driver umożliwia stosowanie obiektów PmCommMsg i PmCommData. Dla zwykłych przypadków transmisji danych jest bardziej dogodne zastosowanie obiektu PmCommData.

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 - 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 - 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 w przypadku, kiedy 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 jednak 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 i 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) i jest transmitowany poprzez Ethernet UDP poprzez port 5558.
Limit czasu 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 PmCommData

Dla niniejszego drivera komunikacyjnego można stosować obiekty PmCommData. Dla zwykłych transmisji danych jest to bardziej dogodne niż zastosowanie obiektu PmCommMsg.

Zmiennych w obiekcie PmCommData (albo jeszcze lepiej zmiennych w obiekcie PmData 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 jest włączony konfigurator Odświeżanie danych zezwolone). Przy zapisie do zmiennej do urządzenia jest odesłana tylko zapisywana zmienna (jeżeli jest wybrany konfigurator Automatycznie przesyłaj przy zapisie do pozycji).

 
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 wykorzystać Makro wyrażenie (wartość jest obliczana przy 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 oznacza tzw. broadcast, tzn. komunikat zostaje przesłany do wszystkich stacji, i 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 "R" 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 i bit służą wyłącznie 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 PmCommData > Parametry > Parametry specjalne:
Domyślny adres PLCW tym miejscu wprowadzony adres można wykorzystać przy ustawianiu konfiguratora ItemID w zmiennych w danym obiekcie (tzn. w zmiennych w zakładce Dane lub rozszerzeniach danych ExtComm). Adres amożna wprowadzić w ItemID:
- jako na przykład dev1... - wtedy wartość zmiennej będzie odczytywana z 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") i GetSpecParam("SlaveAddr").

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

 
W zakładce PmCommMsg > 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 oznacza tzw. broadcast, tzn. komunikat zostaje przesłany do wszystkich stacji, i 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: (timery) Przy pmocy jednego komunikatu można przenieść najwyżej 32 timeró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 timera 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ę ilość maksymalna.

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

W zakładce PmCommMsg > 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 oznacza tzw. broadcast, tzn. komunikat zostaje przesłany do wszystkich stacji, i 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 właściwości Var.Bit.
 
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.
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice