Promotic
WikipediaLinkedInYoutubeTwitterFacebook

PmCharServer - Driver do komunikacji przy pomocy ASCII/BIN protokołu zdefiniowanego przez użytkownika

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 PmChar. Z wersją freeeware PmFree lub przy opracowywaniu aplikacji (z licencją deweloperską w celach testowania) element ten zawsze funkcjonuje.

Należy wykupić odpowiednią ilość licencji PmDataClient. Ilość ta znajduje się w konfiguratorze "Maksymalna ilość klientów".

- W wersji PmFree dozwolona ilość licencji to 2.
- Podczas tworzenia aplikacji do celów testowych dozwolona ilość licencji to 10.
- Komunikacja przebiega dla Ethernetu (aplikacja PROMOTIC jest serwerem) (dla Ethernet-klienta lub dla łącza szeregowego jest przeznaczony driver komunikacyjny PmChar).
- Driver jest wbudowany do systemu PROMOTIC przy pomocy obiektu PmaComm.

Driver umożliwia wykorzystanie obiektu PmaCommMsg. Obiekt PmaCommGroup nie można zastosować.

Dla łatwego dodania tego drivera do aplikacji jest dogodne zastosować: Konfiguracje wstępne w grupie "PmChar Konfigurowalny protokół"

 
Driver jest proste oraz mocne narzędzie do komunikacji określonym przez użytkownika protokołem. Jest przeznaczony przedze wszystkim do komunikacji, do których nie trzeba stosować specjalistycznych protokołów komunikacyjnych.

Zastosowanie drivera jest więc zwłaszcza odpowiednie dla:

- komunikacji bardzo prostych.
- komunikacji orientowanych tekstowo lub binarnie.
- prób i testowania.
 
Driver narazie umożliwia tylko wykorzystanie wiadomości typu Slave.
 
Driver PmCharServer nie jest przeznaczony do emulacji bardziej złożonych protokołów. Z zadowoleniem doradzimy Ci przy podejmowaniu decyzji, czy do danego protokołu można wykorzystać driver PmCharServer; prosimy o kontakt! (sw-support@microsys.cz).
 

Zalecone wartości parametrów:

Opis i zalecane wartości dla pozycji Parametry protokołu:
Odczytane dane będą zawsze tylko w jednym pakiecieJeżeli jest zaznaczone, wtedy zakłada się, że cała zawartość odczytanej wiadomości zawsze zmieści się do jednego pakietu IP.

Ustawienie to ma wpływ na optymalizację prędkości odczytu:

Po odczycie jednego pakietu zostanie on zawsze zakończony bez oczekiwania na timeout (określony w konfiguratorze "Timeout transmisji jednego pakietu [ms]").

Wielkość pakietów określa dana sieć. Może to być np. 521 bajtów, 1024 bajtów itd.

Opis komunikacji przy pomocy obiektów PmaCommMsg

Parametry wiadomości:
W 'Dane-wysłanie' jest HexaStringW zakładce "Dane-wysłanie" jest zawsze jedna zmienna typu String.
Jeżeli jest zaznaczone, wtedy przyjmuje się, że zawartością tej zmiennej jest tzw. HexaString, przy pomocy którego można typie String przekazywać dowolne wartości binarne w następujący sposób:

Przykład: jeżeli mają zostać przesłane 4 bajty o wartościach binarnych 01 A0 00 B3 (w układzie szesnastkowym), wtedy jest konieczne ustawić do tej zmiennej typu String wartość "01A000B3" - tzn. tekst o długości 2*4=8 znaków.

W ten prosty sposób można przesyłać również dane, które zawierają także binarne zera, które w wartości typu String nie mogą występować.

Do przygotowania wysyłanych danych można zastosować metodę Pm.TransformValue(240).

Jeżeli nie jest zaznaczone, wtedy nie można wysyłać danych binarnych ale tylko dane tekstowe - zostanie wysłane dokładnie to co jest zawarte w zmiennej typu String.
W 'Dane-odbiór' jest HexaStringTo samo jak poprzedni konfigurator, tylko dla zakładki Dane-odbiór.

Jeżeli jest zaznaczone, wtedy do opracowania odebranych danych można zastosować metodę Pm.TransformValue(241).

 
W zakładce "Dane-wysłanie" znajdują się zmienne:
Data - (String) Dane przeznaczone do wysłania.
W zakładce "Dane-odbiór" znajdujuą się zmienne:
Data - (String) Tu zostaną zapisane odebrane dane.
 
Obiekt PmaCommMsg można ustawić narazie tylko dla wiadomości typu Slave. Kolejność transmisji dla tego typu wiadomości jest następująca:
- Obiekt oczekuje na odbiór danych z drugiej strony.
- Po odbiorze z drugiej strony zostanie określone, do którego obiektu typu Slave należą odebrane dane. Jeżeli istnieje tylko jeden obiekt typu Slave, wtedy odebrane dane są mu przekazywane, w innym przypadku decyzja jest podejmowana następująco:

Zostanie określona długość odebranych danych i zostanie sprawdzona wymagana długość danych w poszczególnych obiektach w zakładkach Dane-odbiór. Odebrane dane są przydzielone do obiektu, którego wymagana długość jest równa (lub najbliższa większa) długości odebranej wiadomości.

- Po zapisaniu odebranych danych do zmiennej Data w zakładce "Dane-odbiór" odpowiedniego obiektu zostanie wywołane zdarzenie onDataReceive. W tym miejscu projektant może na podstawie odebranych danych ustawić dane do wysłania w zakładce "Dane-wysłanie".
- Jeżeli w zakładce "Dane-wysłanie" zmienna Data zawiera pusty łańcuch, wtedy transmisja zostaje zakończona (zostanie wywołane zdarzenie onEndOfTransfer). Jest stosowane, jeżeli PROMOTIC nie ma przesyłać odpowiedzi drugiej stronie.
- Jeżeli w zakładce "Dane-wysłanie" zmienna Data zawiera niepusty łańcuch, wtedy zawartość tej zmiennej zostanie opracowana (np. zostanie dokonana konwersja z HexaString do formy binarnej) i opracowane dane są przesłane drugiej stronie.
- Po wysłaniu danych zostanie wywołane zdarzenie onEndOfTransfer.

Historia:
Pm9.00.03: Wytworzono
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice