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 1
Master x n
Slave, 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).
Zalecone wartości parametrów obiektu PmaComm:
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ść transmisji | Fabrycznie bywa wstępnie ustawione na 9600 Bd ale można zwiększyć |
Ilość bitów informacji | 8 |
Parzystość | NO (żaden), Dla Tryb transmisji=Parity ustawienie jest dynamicznie zmieniane. |
Ilość bitów stopu | 1 |
---|
Numer zdalnego portu TCP/UDP | 5050 - Dla typu danych "SAIA S-BUS in UDP-frame". |
Typ transmisji Ethernet | UDP - Dla typu danych "SAIA S-BUS in UDP-frame". |
---|
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 Ethernet | UDP |
---|
Typ danych protokołu | Wyłą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 odpowiedzi | Wyłą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 transmisji | Dla 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 aplikacji | Dla 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)
Domyślny adres urządzenia | W 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.