modbus-tcp协议通过Java代码获取从机数据
生活随笔
收集整理的這篇文章主要介紹了
modbus-tcp协议通过Java代码获取从机数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、軟件下載
1、modscan32軟件下載,里面包含modscan32(主機),以及modsim32(從機),下載地址有很多大家可以直接到網上搜索下載modsacn32
二、modsim32從機配置準備
1.連接從機
2.設置端口號,這里默認端口號為502
3.設置參數
4.點擊坐標例設置對應的值
這里設置值有兩中方式,一種是設置固定值,第二種是點擊自動模擬獲取隨機數
三、編寫Java代碼充當主機獲取數據
1.添加jlibmodbus依賴
<dependency><groupId>com.intelligt.modbus</groupId><artifactId>jlibmodbus</artifactId><version>1.2.9.7</version></dependency>2.這里用來演示的是功能碼03
public static void main(String[] args) {try {// 設置主機TCP參數TcpParameters tcpParameters = new TcpParameters();// 設置TCP的ip地址-本地地址InetAddress adress = InetAddress.getByName("127.0.0.1");// tcpParameters.setHost(InetAddress.getLocalHost());tcpParameters.setHost(adress);// TCP設置長連接tcpParameters.setKeepAlive(true);// TCP設置端口,這里設置是默認端口502tcpParameters.setPort(502);// 創建一個主機ModbusMaster master = ModbusMasterFactory.createModbusMasterTCP(tcpParameters);Modbus.setAutoIncrementTransactionId(true);int slaveId = 1;//從機地址int offset = 0;//寄存器讀取開始地址int quantity = 10;//讀取的寄存器數量System.out.println("準備執行開啟連接");try {if (!master.isConnected()) {master.connect();// 開啟連接}System.out.println("讀取對應從機的數據");//讀取對應從機的數據,這里演示的是功能碼03//功能碼01 readCoils()//功能碼02 readDiscreteInputs()//功能碼03 readHoldingRegisters()//功能碼04 readInputRegisters()int[] registerValues = master.readHoldingRegisters(slaveId, offset, quantity);System.out.println("成功!");// 控制臺輸出for (int value : registerValues) {System.out.println("Address: " + offset++ + ", Value: " + value);}} catch (ModbusProtocolException e) {e.printStackTrace();} catch (ModbusNumberException e) {e.printStackTrace();} catch (ModbusIOException e) {e.printStackTrace();} finally {try {master.disconnect();} catch (ModbusIOException e) {e.printStackTrace();}}} catch (RuntimeException e) {throw e;} catch (Exception e) {e.printStackTrace();}}3.輸出結果
準備執行開啟連接 讀取對應從機的數據 成功! address: 0, value: 11 address: 1, value: 23 address: 2, value: 30 address: 3, value: 47 address: 4, value: 33 address: 5, value: 0 address: 6, value: 24 address: 7, value: 0 address: 8, value: 66 address: 9, value: 0總結
以上是生活随笔為你收集整理的modbus-tcp协议通过Java代码获取从机数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mongodb [main] Autom
- 下一篇: Java库 学习笔记 - POI 在Wo