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 PmChar. Podczas wytwarzania aplikacji z
licencją deweloperską oraz podczas jej testowania 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 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:
Odebrane dane będą zawsze tylko w jednym pakiecie | Jeżeli jest zaznaczone, wtedy zakłada się, że cała zawartość odebranej wiadomości zawsze zmieści się do jednego pakietu IP.
Ustawienie to ma wpływ na optymalizację prędkości odczytu:
Po odbiorze 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 HexaString | W 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 następująco:
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 HexaString | To 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.
Opis 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ść odebranej wiadomości 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.
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
na razie ograniczone tylko dla przypadków, kiedy do serwera podłącza się tylko jeden klient.
Parametry wiadomości:
W 'Dane-wysłanie' jest HexaString | W 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 następująco:
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ść. Na razie istnieje ograniczenie, że może istnieć tylko jeden klient i dlatego wartość identyfikatora musi być nieokreślona .