日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

modbus-tcp协议通过Java代码获取从机数据

發布時間:2023/12/10 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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代码获取从机数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。