System SZARP - dokumentacja techniczna: SZARP v.3.1 | ||
---|---|---|
Poprzedni | Rozdział 7. Obsługiwane urządzenia | Następny |
Zgodność ze specyfikacją: 4 .
Obsługiwane urządzenia: Sterownik do demona borutadmn, obsługujący protokół Modbus, powszechnie używany przez różnego rodzaju urządzenia pomiarowe, sterowniki PLC czy systemy SCADA.
Protokół komunikacji: Modbus RTU lub ASCII na łączu szeregowym (tryb master i slave), Modbus TCP przez połączenie sieciowe (tryb client i server)
Konfiguracja: Sterownik jest konfigurowany w pliku params.xml, w podelemencie unit elementu device. Opis dodatkowych atrybutów XML znajduje się w przykładzie poniżej.
Przykładowa konfiguracja:
<device xmlns:extra="http://www.praterm.com.pl/SZARP/ipk-extra" daemon="/opt/szarp/bin/borutadmn" path="/dev/null" ignorowany, zaleca się ustawienie /dev/null speed="9600" ignorowany > <unit id="1" identyfikator Modbus nasz lub strony przeciwnej (zależnie od trybu server/client); jeżeli jest literą lub pojedynczą cyfrą to interpretowany jest jako znak ASCII (czyli 'A' to 65, '1' to 49), wpp. interpretowany jest jako liczba (czyli '01' to 1); zaleca się używanie zamiast niego jednoznacznego atrybutu extra:od extra:id="1" identyfikator Modbus jednostki, nadpisuje atrybut 'id', zawsze interpretowany jako liczba type="1" ignorowany, powinno być "1" subtype="1" ignorowany, powinno być "1" bufsize="1" wielkość bufora uśredniania, 1 lub więcej extra:proto="modbus" nazwa protokołu, używana przez Borutę do ustalenia używanego sterownika, dla tego sterownika musi być "modbus" extra:mode="client" tryb pracy jednostki, "client" lub "server"; client oznacza stronę aktywną (master dla Modbus RTU, klient dla Modbus TCP); server oznacza stronę pasywną (slave dla Modbus RTU, serwer dla Modbus TCP) extra:medium="serial" medium transmisyjne, "serial" dla Modbus TCP, "tcp" dla Modbus TCP extra:tcp-address="172.18.2.2" adres IP do którego się podłączamy, wymagany dla trybu "client" i medium "tcp" extra:tcp-port="23" port IP na który się łączymy (mode "client") lub na którym nasłuchujemy (mode "server"), wymagany dla medium "tcp", extra:path="/dev/ttyS0" ścieżka do portu szeregowego dla medium "serial" extra:speed="19200" opcjonalna prędkość portu szeregowego w bps dla medium "serial", domyślna to 9600, inne możliwe wartości to 300, 600, 1200, 2400, 4800, 19200, 38400; ustawienie innej wartości spowoduje przyjęcie prędkości 9600 extra:parity="even" opcjonalna parzystość portu dla medium "serial", możliwe wartości to "none" (domyślna), "odd" i "even" extra:stopbits="1" opcjonalna liczba bitów stopu dla medium "serial", 1 (domyślnie) lub 2 extra:FloatOrder="msblsb" kolejność słów dla wartości zajmujących 2 rejestry (typu "long" lub "float"), domyślna to "msblsb" (najpierw bardziej znaczące słowo), inna możliwość to "lsbmsb" (najpierw mniej znaczące słowo); może być nadpisana dla konkretnego parametru extra:nodata-timeout="60" czas w sekundach po którym wygasa wartość parametru w przypadku braku komunikacji, domyślnie to 0 (brak wygasania) extra:nodata-value="-1" wartość wysyłana gdy wartość parametru SZARP nie jest dostępna, domyślnie 0 > <param elementy param oznaczają wartośći przesyłane/odczytywane z urządzenia do systemu SZARP name="Name:Of:Parameter" ... extra:address="0x12" wymagany, podany dziesiątkowo lub szesnastkowo bezpośredni adres Modbus pierwszego rejestru zawierającego wartość parametru, od 0 do 65535 extra:register_type="holding_register" typ rejestru Modbus - "holding_register" (domyślne) lub "input_register", decyduje która funkcja Modbus jest wykorzystywana do czytania wartości rejestru - (0x03 - ReadHoldingRegister or 0x04 - ReadInputRegister); dla trybu "server" nie ma to znaczenia - akceptowane są obie funkcje zapisujące - zarówno x06 (WriteSingleRegister) jak i 0x10 (WriteMultipleRegisters) extra:val_type="integer" wymagany, typ kodowania wartość - jeden z "integer", "bcd" (niewspierany dla elementów 'send'), "long" lub "float"; wartości typu "integer" i "bcd" zajmują 1 rejestr, "long" i "float" zajmują dwa kolejne rejestry extra:FloatOrder="lsbmsb" nadpisuje wartość atrybutu FloatOrder jednostki dla konkretnego parametru extra:val_op="MSW" opcjonalny operator pozwalający na konwersję wartości typu float i long na wartości parametrów SZARP; domyślnie wartośći te zamieniane są na 16-bitową reprezentację wartośći w systemie SZARP bezpośrednio, jedynie z uwzględnieniem precyzji parametru w SZARP; możliwe jest jednak przepisanie tych wartości do dwóch parametrów SZARP (tak zwane parametry 'kombinowane') co pozwala na nietracenie precyzji i/lub uwzględnienie większego zakresu; w tym celu należy skonfigurować 2 parametry SZARP z takimi samymi parametrami dotyczącymi adresu i typu, przy czym jeden z nich powinien mieć val_op ustawiony na "MSW", a drugi na "LSW" - przyjmą wartość odpowiednio bardziej i mniej znaczącego słowa wartości parametru Modbus ... /> ... <send elementy send oznaczają wartości przesyłane/czytane z systemu SZARP do urządzenia param="Name:Of:Parameter" nazwa parametru, którego wartość mamy przesyłać extra:address="0x12" adres Modbus docelowego rejestru extra:register_type="holding_register" jak dla elementu "param", ale ma znaczenie tylko dla trybu "server", dla trybu "klient" używana jest zawsze funkcja 0x10 (WriteMultipleRegisters) extra:val_type="integer" extra:FloatOrder="lsbmsb" extra:val_op="MSW" analogicznie jak dla elementu param ... </unit> </device>
Poprzedni | Spis treści | Następny |
Sterownik boruta_modbus | Początek rozdziału | Sterownik boruta_wmtp |