Promotic

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 PROMOTIC driverów.

Podstawowe właściwości drivera:
- Zastosowanie tego drivera wymaga zakup licencji PmChar. Podczas wytwarzania aplikacji z licencją deweloperską oraz podczas jej testowania w runtime element ten jest zawsze funkcjonalny. Element ten nie działa w trybie freeware PmFree.
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 jest 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 wspiera zastosowanie 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 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 obiektu PmaComm:

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 obiektu PmaCommMsg typu Slave

Ten typ obiektu może zostać ulokowany w obiekcie PmaComm tylko raz.
Obiekt ten będzie odbierać wszystkie przychodzące wiadomości oraz ewentualnie odpowiadać na takie wiadomości.
Parametry wiadomości:
W 'Dane-wysłanie' jest HexaStringW karcie "Dane-wysłanie" jest zawsze zmienna Data 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 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 karty Dane-odbiór.
Jeżeli jest zaznaczone, wtedy do opracowania odebranych danych można zastosować metodę Pm.TransformValue(241).


W karcie "Dane-wysłanie" znajdują się zmienne:
Data - (String) Dane przeznaczone do wysłania.
W karcie "Dane-odbiór" znajdujuą się zmienne:
Data - (String) Tu zostaną zapisane odebrane dane.


Kolejność transmisji dla tego typu wiadomości jest następująca:
- Obiekt oczekuje na odbiór danych z drugiej strony.
- Po odbiorze wiadomości 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 (określona w karcie "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 karcie "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 karcie "Dane-wysłanie".
- Jeżeli w karcie "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 karcie "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.

Opis komunikacji przy pomocy obiektu PmaCommMsg typu Master

Ten typ obiektu może zostać ulokowany w obiekcie PmaComm kilkakrotnie.
Obiekt ten działa tylko jeżeli konfigurator "Typ transmisji Ethernet" jest ustawiony na TCP.
Obiekt ten będzie tylko wysyłać wiadomości dla danego klienta, nie będzie niczego odbierać. Jest przeznaczony do sytuacji, kiedy serwer potrzebuje wysłać informacje o sobie, bez wymogu danych od strony klienta.
Zastosowanie tego obiektu jest narazie ograniczone tylko dla przypadków, kiedy do serwera podłącza się tylko jeden klient.
Parametry wiadomości:
W 'Dane-wysłanie' jest HexaStringW karcie "Dane-wysłanie" jest zawsze zmienna Data 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 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 karcie "Dane-wysłanie" znajdują się zmienne:
Data - (String) Dane przeznaczone do wysłania.
ClientId - (String) Identyfikator klienta, który powinien otrzymać wiadomość. Narazie istnieje ograniczenie, że może istnieć tylko jeden klient i dlatego wartość identyfikatora musi zostać nieokreślona .
W karcie "Dane-odbiór" nie ma żadnej zmiennej. Ten obiekt PmaCommMsg tylko wysyła i nie czeka na odczyt.

Historia:
Pm9.00.15: Uogólnienie zastosowania obiektu PmaCommMsg typu Master. Narazie tylko w przypadku, kiedy komunikacja przebiega tylko z jednym klientem.
Pm9.00.03: Wytworzono
© MICROSYS, spol. s r. o.