|
|
|
| Info | Support | Contact | About | ||
|
How to integrate the Protocol in your ApplicationSerial ProtocolsLet's assume we want to talk to a Modbus slave device with slave address 1.The registers for reading are in the reference range 4:00100 to 4:00119 and the registers for writing are in the range 4:00200 to 4:00219. The discretes for reading are in the reference range 0:00010 to 0:00019 and the discretes for writing are in the range 0:00020 to 0:00029. 1. Import the library package import com.focus_sw.fieldtalk.*;
2. Device data profile definition Define the data sets which reflects the slave's data profile by type and size: short[] readRegSet = new short[20] short[] writeRegSet = new short[20] boolean[] readBitSet = new boolean[20] boolean[] writeBitSet = new boolean[20] If you are using floats instead of 16-bit shorts define: float[] readRegSet = new float[10] float[] writeRegSet = new float[10] If you are using 32-bit ints instead of 16-bit shorts define: int[] readRegSet = new int[10] int[] writeRegSet = new int[10] 3. Declare and instantiate a protocol object MbusRtuMasterProtocol mbus = new MbusRtuMasterProtocol ();
4. Open the protocol port mbus.openPort("COM1", 9600, MbusRtuMasterProtocol.DATABITS_8,
MbusRtuMasterProtocol.STOPBITS_1,
MbusRtuMasterProtocol.PARITY_NONE);
5. Perform the data transfer functions
6. Close the protocol port if not needed any more mbus.closePort(); 7. Error Handling Serial protocol errors like slave device failures, transmission failures, checksum errors and time-outs throw appropriate exceptions, which are all derived from the IOException and BusProtocolException class. The following code snippet can handle these errors:
try { mbus.readMultipleRegisters(1, 100, dataSetArray); } catch (BusProtocolException e) { Has to be caught before IOException! Protocol error management, something is wrong with the slave device or the bus. } catch (IOException e) { If this occurrs after we checked for a BusProtocolException then it signals that the local I/O subsytem failed, which is fatal. } An automatic retry mechanism is available and can be enabled with mbus.setRetryCnt(3) before opening the protocol port. TCP/IP ProtocolsLet's assume we want to talk to a Modbus slave device with unit address 1 and IP address 10.0.0.11.The registers for reading are in the reference range 4:00100 to 4:00119 and the registers for writing are in the range 4:00200 to 4:00219. The discretes for reading are in the reference range 0:00010 to 0:00019 and the discretes for writing are in the range 0:00020 to 0:00029. 1. Import the library package import com.focus_sw.fieldtalk.*;
2. Device data profile definition Define the data sets which reflects the slave's data profile by type and size: short[] readRegSet = new short[20] short[] writeRegSet = new short[20] boolean[] readBitSet = new boolean[20] boolean[] writeBitSet = new boolean[20] If you are using floats instead of 16-bit shorts define: float[] readRegSet = new float[10] float[] writeRegSet = new float[10] If you are using 32-bit ints instead of 16-bit shorts define: int[] readRegSet = new int[10] int[] writeRegSet = new int[10] 3. Declare and instantiate a protocol object MbusTcpMasterProtocol mbus = new MbusTcpMasterProtocol ();
4. Open the protocol port mbus.openConnection("10.0.0.11);
5. Perform the data transfer functions
6. Close the connection if not needed any more mbus.closeConnection(); 7. Error Handling TCP/IP protocol errors like slave failures, TCP/IP connection failures and time-outs throw appropriate exceptions, which are all derived from the IOException and BusProtocolException class. The following code snippet can handle these errors:
try { mbus.readMultipleRegisters(1, 100, dataSetArray); } catch (BusProtocolException e) { Protocol error management, something is wrong with the slave device but the connection is still alive. } catch (IOException e) { If this occurrs after we checked for a BusProtocolException then it signals that the the TCP/IP connection was lost or closed by the remote end. Before using further data and control functions the connection has to be re-opened succesfully. } Examples |
|||||||||||||||||||||||||||||||
| Back | Top of page | Info | Support | Contact | About | ||
|
Information in this document is subject to change without notice.
Copyright © 2000-2007 proconX Pty Ltd.
All rights reserved.
All product and brand names mentioned on this page may be trademarks or registered trademarks of their respective owners. |