Timeout odbioru odpowiedzi | Wyłącznie dla łącza szeregowego. Ma to sens tylko w wiadomościach typu Master. 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). |
---|---|
Odczytane dane będą zawsze tylko w jednym pakiecie | Wyłącznie dla Ethernetu.
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 jeżeli nie można stosować ETX: 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. |
Stosuj STX | Określa, czy dany protokół stosuje specjalny znak oznaczający początek transmisji. Jeżeli stosowanie znaku początkowego wiadomości jest włączone, wtedy przed wysłaniem danych zdefiniowanych przez użytkownika zostaje automatycznie wysłany znak początku transmisji. I odwrotnie, przy każdym odbiorze danych zostaje przeprowadzony test, czy na początku wiadomości znajduje się znak początku transmisji. W przypadku braku tego znaku, wiadomość komunikacyjna zostaje zakończona z błędem. |
Wartość STX | Określa wartość ASCII znaku początku transmisji (znak początku transmisji ma zazwyczaj wartość 2). |
Stosuj ETX | Określa, czy dany protokół wykorzystuje specjalny znak oznaczający koniec transmisji. Jeżeli jest włączone wykorzystanie znaku końcowego, wtedy za danymi definiowanymi przez użytkownika zostaje automatycznie wysłany znak końca wiadomości. I odwrotnie, przy odbiorze wiadomości przebiega test, czy na końcu wiadomości znajduje się znak końca wiadomości. W przypadku jego braku odbiór wiadomośći komunikacyjnej kończy się błędem. Zastosowanie znaku ETX optymalizuje szybkość odbioru jeżeli odbierane wiadomości mają zmienną długość (odbierane do wartości typu String). Bezpośrednio po odbiorze znaku ETX system uważa wiadomość za zakończoną (ewentualnie oczekuje tylko znaki sumy kontrolnej) i szybko zakończy odbiór, zamiast oczekiwania timeoutu między odbiorem dwu znaków. |
Wartość ETX | Określa wartość ASCII znaku końca transmisji (znak końca transmisji ma zazwyczaj wartość 3). |
Suma kontrolna | Określa sposób obliczenia sumy kontrolnej:
- żadna: komunikacja bez sumy kontrolnej.
- XOR 1 byte: Jest zastosowana suma kontrolna typu XOR (chodzi o tzw. pionową kontrolę parzystości). Ma wielkość 1 bajt i matematycznie jest to XOR wszystkich bajtów, które są zagarnięte do sumy kontrolnej.
- SUM 1 byte: Jest zastosowana suma kontrolna typu suma. Ma wielkość 1 bajt i matematycznie jest to suma arytmetyczna wszystkich bajtów, które są zagarnięte do sumy kontrolnej (obcięte do 1 bajta).
- SUM 2 byte: tak samo jak "SUM 1 byte" lecz ma wielkość 2 bajtów (obcięta na 2 bajty).
- CRC 2 byte CCITT [polynom 0x1021 = x16+x12+x5+1, use SBUS]: (Cyclical Redundancy Check) - Specjalna suma kontrolna, która jest stosowana na przykład w komunikacji PmSBUS.
- CRC 2 byte IBM [polynom 0xA001 = x16+x15+x2+1, use Modbus]: (Cyclical Redundancy Check) - Specjalna suma kontrolna, która jest stosowana na przykład poprzez protokół Modbus.
- CRC 2 byte IBM [polynom 0x8005 = x16+x15+x2+1, use DF1]: (Cyclical Redundancy Check) - Specjalna suma kontrolna, która jest stosowana na przykład w komunikacji PmABradleyDF1.
Można wprowadzić, gdzie zostanie umiejscowiona suma kontrolna: - na koniec wiadomości (za ETX)
- przed ETX
Można wprowadzić, które dane wiadomości mają zostać zagarnięte do sumy kontrolnej: - Wszystkie dane przed sumą kontrolną
- Wszystkie dane przed sumą kontrolną z wyjątkiem pierwszego znaku (z wyjątkiem STX)
- Wszystkie dane przed sumą kontrolną z wyjątkiem ostatniego znaku (z wyjątkiem ETX)
- Wszystkie dane przed sumą kontrolną z wyjątkiem pierwszego i ostatniego znaku (z wyjątkiem STX i ETX)
Jeżeli suma kontrolna jest stosowana, wtedy jest automatycznie wysyłana. I odwrotnie, przy każdym odbiorze danych przebiega kontrola, czy na końcu wiadomości znajduje się poprawna suma kontrolna. W przypadku braku poprawnej sumy kontrolnej wiadomość zostanie zakończona błędem. Obliczenie sumy kontrolnej można wykonać także przy pomocy metody PmBuffer.CalcCheckSum. |
Stosować zamianę znaków w odebranych danych | można zaktywować, jeżeli w odbieranych danych chcesz zamienić rzeczywiście odebrany znak za inny znak. Najczęściej wykorzystuje się w przypadku, kiedy chcesz odebrane dane zapisać do wartości typu String lecz w danych odebranych może wystąpić znak 00hex (zero binarne). W tym przypadku jest konieczne zamienić znak 00hex za inny znak, ponieważ znak 00hex uznaje się za koniec tekstu. Patrz poniższy opis.
Wartość znaku określa się w układzie dziesiątkowym, patrz Tabela kodów ASCII. |
W 'Dane-wysłanie' jest tylko HexaString | Jeżeli jest zaznaczone, wtedy przyjmuje się, że w karcie "Dane-wysłanie" występuje tylko jedna zmienna typu String. Zawartością tej zmiennej jest tzw. HexaString, przy pomocy którego można typie String przekazywać dowolne wartości binarne następująco:
Na 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). |
---|---|
W 'Dane-odbiór' jest tylko HexaString | To samo jak poprzedni konfigurator, tylko dla karty Dane-odbiór.
Do opracowania odebranych danych można zastosować metodę Pm.TransformValue(241). |
Wiadomość ta będzie wykorzystywać następujące parametry (zamiast tych, które są zdefiniowane w parametrach protokołu) | (tylko dla wiadomości typu Master) Jeżeli jest zaznaczone, wtedy są wyświetlone takie same konfiguratory jak w przypadku parametrów protokołu (czy stosować znaki STX, ETX oraz czy stosować sumę kontrolną). Te parametry są stosowane w czasie transmisji tej wiadomości zamiast parametrów protokołu. |