Konfiguracja modułu ADAM-4017+ (8 wejść analogowych) z obsługą protokołu Modbus/RTU

12.09.2012 Informacje produktowe / Sterowanie i akwizycja danych
Konfiguracja modułu ADAM-4017+ (8 wejść analogowych) z obsługą protokołu Modbus/RTU
Wizerunek autora
Producent: Advantech
  • Zakłady przemysłowe

Moduł ADAM-4017+ jest obecnie najpopularniejszym - najpowszechniej stosowanym przez naszych klientów - modułem wejść analogowych w serii ADAM-4k. Za pomocą interfejsu szeregowego RS-485 umożliwia wykonanie zdalnych pomiarów wielkości analogowych (standardowe sygnały napięciowe i prądowe stosowane w automatyce przemysłowej). Wykorzystywany jest zarówno jako urządzenie współpracujące bezpośrednio z komputerem, oraz jako rozszerzenie I/O sterowników programowalnych.

Moduł posiada osiem kanałów wejściowych, przy czym każdy z nich (indywidualnie) może zostać skonfigurowany na jeden z dostępnych zakresów pomiarowych (±150mV, ±500mV, ±1V, ±5V, ±10V, ±20mA, 4÷20mA). Komunikacja urządzenia nadrzędnego (komputera, sterownika itp.) z modułem odbywać się może za pośrednictwem protokołu ADAM-ASCII (prosty protokół znakowy opracowany przez producenta) lub Modbus/RTU. Wraz z modułem dostarczane jest oprogramowanie narzędziowe ADAM.NET Utility służące do jego konfiguracji jak i diagnostyki. Podobnie jak wszystkie moduły I/O serii ADAM-4k przystosowany jest do montażu nasciennego lub na szynie DIN oraz do zasilania napięciem stałym w zakresie 10÷30VDC.

Kilka bardzo istotnych informacji na temat wykorzystania modułu:

  • Włączenie zakresu prądowego wymaga zarówno odpowiedniego wpisu do konfiguracji modułu jak i przełożenia zworki (wewnątrz obudowy), która powoduje włączenie w obwód wejściowy bocznikowego rezystora 120Ω (mierzony jest tak na prawdę spadek napięcia na tym rezystorze).

  • W przypadku wykorzystania protokołu Modbus/RTU wartości mierzone zwracane są w 16-to bitowych rejestrach typu WORD (0÷65535), o adresach 40001÷40007. Wartość tę należy odpowiednio (oczywiście liniowo) przeskalować do wartości wielkości mierzonej (napięcia lub prądu) w odniesieniu do aktualnie wykorzystywanego zakresu pomiarowego, czyli wg. schamatu:

       0 -> dolny próg wykorzystywanego zakresu pomiarowego
       65535 -> górny próg wykorzystywanego zakresu pomiarowego

    I tak na przykład, przy wykorzystaniu zakresu pomiarowego 4÷20mA uzyskana wartość 52317 (0xCC5D) odpowiadać będzie wartości prądu równej: 4+52317/65535*16=16.773mA.

    Natomiast przy wykorzystaniu zakresu pomiarowego ±10V uzyskana wartość 41956 (0xA3E4) odpowiadać będzie wartości napięcia równej: -10+41956/65535*20=2.804V.

  • Przy korzystaniu z protokołu Modbus/RTU oraz zakresu pomiarowego 4÷20mA bardzo istotną rzeczą jest zachowanie modułu w przypadku wykrycia (pomiaru) prądu poniżej dolnego progu zakresu pomiarowego (czyli poniżej 4mA). W normalnych warunkach wartość mierzonego prądu zwracana jest zawsze jako 16-to bitowa wartość (WORD) w zakresie od 0 (odpowiadającej 4mA) do 65535 (odpowiadającej 20mA). Powstaje więc pytanie jak ma zostać zasygnalizowane wykrycie wartości prądu poniżej dolnego progu (np. w przypadku przerwania toru pętli pomiarowej). Pozostają dwie możliwości: albo zwrócenie wartości dolnej odpowiadającej 4mA, albo wartości górnej odpowiadającej 20mA. To, która wartość będzie bezpieczniejsza zależne jest już tylko od specyfiki naszej aplikacji/obiektu sterowania. Wyboru dokonać możemy poprzez odpowiednie skonfigurowanie modułu. Za jego zachowanie w takiej sytuacji odpowiada parametr Scale, który przybierać może dwie wartości:

    Full Scale - zwrócona zostanie wartość 65535 (max zakresu)
    Under Scale - zwrócona zostanie wartość 0 (min zakresu)

    Aby ustawioną wartość (domyślnie jest to Full Scale) zmienić, skorzystać musimy (koniecznie w trybie INIT) z komendy konfiguracyjnej %AANNTTCCFF. Zgodnie instrukcją użytkownika mamy:

    AA - oznacza heksadecymalną reprezentację adresu modułu który konfigurujemy (tu 00 - bo działamy w trybie INIT)
    NN - oznacza heksadecymalną reprezentację adresu, który chcemy konfigurowanemu modułowi nadać
    TT - ocnacza kod zakresu wejściowego
    CC - oznacza kod prędkości transmisji (baudrate)
    FF - oznacza kod dodatkowych parametrów konfiguracyjnych

    W parametrze FF istotne są poszczególne bity, z czego tutaj najbardziej interesuje nas bit 3:

    7 6 5 4 3 2 1 0
    Integration
    Time


    0: 50ms (60Hz)
    1: 60ms (50Hz)
    Checksum
    Status


    0: Disabled
    1: Enabled
    Not used Scale


    0: Full Scale
    1: Under Scale
    Protocol


    0: Advantech
    1: Modbus
    Data Format

    00: Engineering units
    01: % of FSR
    10: hexadecimal

    Znając strukturę komendy (kody zakresów i baudrate znajdziemy w dokumentacji lub możemy je odczytać komendą $AA2) możemy już określić jej zawartość. Zakładając, że nasz moduł ADAM-4017+ będzie pracował z adresem 5, na zakresie ±10V, na prędkości 9600bsp, z włączonym protokołem Modbus/RTU musimy do niego wysłać komendę konfiguracyjną o postaci:

    %000508068C - aby włączyć tryb Under Scale
    %0005080684 - aby włączyć tryb Full Scale

    Na obecną chwilę nie ma niestety możliwości zmmiany tego parametru bezpośrednio z poziomu ADAM.NET Utlity, ale możemy to w dość łatwy sposób zrobić korzystając z menu Tools -> Terminal for Command Testing w tym programie narzędziowym, lub oczywiscie korzystając z dowolnego terminala (typu Windows Hyper Terminal).

Skontaktuj się ze specjalistą Elmark

Masz pytania? Potrzebujesz porady? Zadzwoń lub napisz do nas!