User Tools

Site Tools


struktura:marklar-driver-modbus:eurotherm

Eurotherm

Komunikace se zarizenimi od Eurothermu (e3508, Nanodac) probiha pres protocol Modbus. Zarizeni je pripojeno vyhradne pres sitovou kartu ethernetovym kabelem, po nemz jsou data prenasena pres TCP protocol (Modbus over TCP/IP).

Vyuziva se knihovna jamod, kterou bylo treba lehce modifikovat (pokud zarizeni nebylo k dispozici, pripojeni hodilo vyjimku teprve za 30 s). Aktualne modifikovana knihovna jamod je ted k dispozici v repozitari na Beryho serveru.

Connection je reprezentovano tridou ModBusTcpConnection, kteda dedi od tridy IntAddrConnection. K dedeni viz Instrument. Trida poskytuje nasledujici hlavni metody

public ModBusTcpConnection(InetAddress addr, int port, int slaveAddress, int timeout, IntAddrDevice device);
public ModBusTcpConnection(InetAddress addr, int slaveAddress, IntAddrDevice device);
public synchronized int readIntFromIntAddr(int address);
public synchronized int writeIntToIntAddr(int address, int value);
public synchronized void readMultipleDoubleFromIntAdd(List<DoubleValueIntAddrComponent> components);

Posledni z techto metod byla pridana kvuli tomu, ze pri cteni rychlejsim nez 200 ms vypadavalo pripojeni. Zpravidla je treba cist nekolik sousednich adres, tato metoda to umoznuje uskutecnit pri jednom cteni. Prectene hodnoty se pak ulozi do Component, ktere tato metoda dostane jako vstup. Reseni ma daleko od idealu, poslouzilo k jednomu projektu. V ostatnich projektech metoda readMultipleDoubleFromIntAdd nebyla potreba.

Tato trida nepotrebuje zadne dalsi modifikace. Pri implementaci v konkretni aplikaci staci vytvorit instanci tohoto pripojeni s patricnym nastavenim predanym jednim z konstruktoru (druhy konstruktor pouziva defaultni port=502 a defaultni timeout=1000).

struktura/marklar-driver-modbus/eurotherm.txt · Last modified: 2016/07/21 14:02 by jlochman