久久免费福利,精品视频在线你懂得,精品视频网站,国产激情综合

MODBUS讀取的整數數據如何按位取值?

作者:領祺@玉嬌龍 日期:2023-02-04 閱讀量:

按位取值是指該測點的數據類型為16位有/無符號、32位有/無符號時,將讀到的值按BIT位解析,起始位終止位相同時,表示解析1位數據,值為0或1;起始位和終止位根據數據類型不同,最小0,最大31;

例如讀到的值為十進制的10,那么將其轉換為二進制為0000 1010,其第0位(起始位和終止位都配置成0)0,第1為1,第2位為0,第3位為1。

杭州領祺科技智能物聯網關支持MODBUS采集、轉發、監聽,支持485串口MODBUS異構組網,支持多上位機WEB組態同時接收信息,支持MODBUS和M-BUS協議轉換,MODBUS TCP MODBUS RTU等各種協議轉換、混采。

在線幫助文檔

https://dingiiot.com/help-doc/drive_page/modbus-rtu%E9%87%87%E9%9B%86/

設備地址:從設備的地址編號

CRC校驗:用來確認接收消息完整性和正確性

Java代碼取值實現

網上有許多開源的modbos工具包,例如modbus4j、jamod等。這里選用jamod,以Modbus RTU通訊為例

maven依賴如下,同時需要在C://Windows//System32目錄下,放入RXTXcomm.jar、rxtxParallel.dll、rxtxSerial.dll三個文件,用來實現串口通信

net.wimpi

jamod

1.2

創建和串口的連接

public class ModBusConnection {

public static SerialConnection getSerialConnection() throws Exception {

SerialParameters parameters = new SerialParameters();

// 串口名稱

parameters.setPortName("COM2");

// 波特率

parameters.setBaudRate(9600);

// 數據位8位

parameters.setDatabits(SerialPort.DATABITS_8);

// 停止位2位

parameters.setStopbits(SerialPort.STOPBITS_2);

// 無奇偶校驗位

parameters.setParity(SerialPort.PARITY_NONE);

// rtu模式,取代默認的ascii模式

parameters.setEncoding("rtu");

SerialConnection connection = new SerialConnection(parameters);

connection.open();

return connection;

}

}

創建request取數工具類

public class ModBusUtil {

/**

* 讀寫 boolean類型 function code 01

* @param connection con

* @param param param

* @return BitVector

*/

public static BitVector readCoils(SerialConnection connection, ModBusRequest param) throws Exception {

ReadCoilsRequest request = new ReadCoilsRequest(param.getAddressNo(), param.getWordCount());

request.setUnitID(param.getSlaveId());

ReadCoilsResponse response = (ReadCoilsResponse) getResponse(connection, request);

return response.getCoils();

}

/**

* 只讀 boolean類型 function code 02

* @param connection con

* @param param param

* @return BitVector

*/

public static BitVector readInputDiscretes(SerialConnection connection, ModBusRequest param) throws Exception {

ReadInputDiscretesRequest request = new ReadInputDiscretesRequest(param.getAddressNo(), param.getWordCount());

request.setUnitID(param.getSlaveId());

ReadInputDiscretesResponse response = (ReadInputDiscretesResponse) getResponse(connection, request);

return response.getDiscretes();

}

/**

* 讀寫 int類型 function code 03

* @param connection con

* @param param param

* @return InputRegister

*/

public static InputRegister[] readMultipleRegisters(SerialConnection connection, ModBusRequest param) throws Exception {

ReadMultipleRegistersRequest request = new ReadMultipleRegistersRequest(param.getAddressNo(), param.getWordCount());

request.setUnitID(param.getSlaveId());

ReadMultipleRegistersResponse response = (ReadMultipleRegistersResponse) getResponse(connection, request);

return response.getRegisters();

}

/**

* 只讀 int類型 function code 04

* @param connection con

* @param param param

* @return InputRegister

*/

public static InputRegister[] readInputRegisters(SerialConnection connection, ModBusRequest param) throws Exception {

// 寄存器地址編號 屬性數據數量

ReadInputRegistersRequest request = new ReadInputRegistersRequest(param.getAddressNo(), param.getWordCount());

// 從設備編號

request.setUnitID(param.getSlaveId());

ReadInputRegistersResponse response = (ReadInputRegistersResponse) getResponse(connection, request);

return response.getRegisters();

}

/**

* 獲取response

* @param connection con

* @param request req

* @return ModbusResponse

*/

private static ModbusResponse getResponse(SerialConnection connection, ModbusRequest request) throws Exception {

ModbusSerialTransaction transaction = new ModbusSerialTransaction(connection);

transaction.setRequest(request);

transaction.execute();

return transaction.getResponse();

}

}

main方法測試類

public class SerialPortTest {

public static void main(String[] args) throws Exception {

SerialConnection connection = ModBusConnection.getSerialConnection();

ModBusRequest param = new ModBusRequest();

// 從設備id編號

param.setSlaveId(1);

// 寄存器地址編號 這邊使用了function 01,addressNo=0表示寄存器地址為00001

param.setAddressNo(0);

// 讀取數據個數

param.setWordCount(1);

InputRegister[] registers = ModBusUtil.readInputRegisters(connection, param);

for (InputRegister register : registers) {

System.out.println(register.getValue());

}

connection.close();

}

}





分享到:
久久免费福利,精品视频在线你懂得,精品视频网站,国产激情综合
亚洲va久久| 日韩在线中文| 在线综合亚洲| 激情欧美日韩一区| 日本一二区不卡| 色婷婷色综合| 欧美xxxx中国| 久久婷婷激情| 久久精品91| 91成人精品视频| 国产精品普通话对白| 99成人在线| 亚洲视频二区| 欧美有码在线| 国产精品男女| 福利片在线一区二区| 中文在线а√天堂| 日本欧美不卡| 在线亚洲一区| 亚洲一区中文| 日韩精品免费视频人成| 国产精品99精品一区二区三区∴| 久久午夜影院| 久久精品卡一| 亚洲综合中文| 免费一区二区三区在线视频| 欧美成a人免费观看久久| 亚洲激情不卡| 日本成人在线视频网站| 久久av综合| 日韩av首页| 爽爽淫人综合网网站| 精品中文一区| 日韩av网站免费在线| 欧美国产中文高清| 91精品韩国| 亚洲aa在线| 精品国产精品国产偷麻豆| 九色porny丨国产首页在线| 免费观看在线综合| 国产剧情在线观看一区| 日韩欧美精品综合| 视频一区二区三区在线| 国产精品麻豆成人av电影艾秋 | 激情综合自拍| 天堂久久av| 麻豆高清免费国产一区| 亚洲高清久久| 影音先锋久久精品| 中文字幕人成乱码在线观看 | 人人香蕉久久| 欧美一区二区三区久久精品| 黄色在线网站噜噜噜| 亚洲电影在线一区二区三区| 国产精一区二区| 99精品电影| 国产精品嫩模av在线| 亚洲福利精品| 国产精品一区二区精品| 国产婷婷精品| 精品中文在线| 欧美日韩三区| 久久精品国产免费| 美女日韩在线中文字幕| 国产成人精品三级高清久久91| 国产精品婷婷| 日韩av在线中文字幕| 亚洲精品看片| 色偷偷偷在线视频播放| 日本成人在线一区| 久久精品欧美一区| 欧美黑人做爰爽爽爽| 男女激情视频一区| 成人啊v在线| 久久精品一区二区国产| 亚洲毛片视频| 久久蜜桃av| 老司机精品在线| 亚洲一级淫片| 亚洲免费高清| 不卡一二三区| 欧美亚洲福利| 亚洲在线一区| 色欧美自拍视频| 免费在线观看一区| 日韩国产欧美| 99热国内精品| 国产日韩欧美三区| 一区在线观看| 日韩电影在线视频| 久久永久免费| 日本欧美在线看| 亚洲天堂成人| 免费看一区二区三区| 亚洲一区欧美| 亚洲午夜91| 亚洲精品永久免费视频| 国产精品一区二区精品视频观看| 丝袜美腿亚洲一区二区图片| 成人va天堂| 国产拍在线视频| 国产精品1区| 亚洲精品第一| 久久xxxx| 中文在线不卡| 合欧美一区二区三区| 人人香蕉久久| 电影91久久久| 红杏一区二区三区| 欧美精品97| 久久99蜜桃| 欧美韩一区二区| 国产精品亚洲一区二区在线观看| 日韩精品亚洲专区在线观看| 久久久久欧美精品| 99在线观看免费视频精品观看| 亚洲特级毛片| 欧美日韩精品一区二区三区视频 | 亚洲免费福利| 先锋亚洲精品| 色爱综合网欧美| 日本午夜精品| 激情五月综合| 精品久久电影| av亚洲免费| 欧洲激情综合| 婷婷中文字幕一区| 久久一区二区三区电影| 久久天堂精品| 日本久久成人网| 国产精品1区| 蜜桃av一区二区在线观看| 中文精品视频| 一区二区三区午夜视频| 亚洲天堂免费| 天海翼亚洲一区二区三区| 亚洲精品三级| 三上悠亚国产精品一区二区三区| 日韩中文影院| 亚洲一区不卡| 久久亚洲色图| 日韩国产91| 久久天堂影院| 成人日韩在线| 亚洲免费观看| 一区福利视频| 中文不卡在线| 国产精品18| 亚洲天堂av影院| 在线亚洲国产精品网站| 综合五月婷婷| 国产福利亚洲| 激情欧美一区二区三区| 亚洲专区一区| 国产精品免费99久久久| 97精品一区| 欧美 日韩 国产精品免费观看| 在线国产精品一区| 国产精品久久久久久久久久齐齐 | 日本中文字幕一区二区视频| 日本成人在线视频网站| 免费观看亚洲天堂| 激情欧美一区| 亚久久调教视频| 国产一区二区色噜噜| 亚洲a在线视频| 午夜天堂精品久久久久| 国产一区二区三区网| 国产v综合v| 日本亚洲不卡| 日韩av在线播放网址| 午夜在线观看免费一区| 免费亚洲婷婷| 狠狠爱www人成狠狠爱综合网| 日本强好片久久久久久aaa| 国产不卡人人| 亚洲aa在线| 色婷婷综合网| 国产91在线播放精品| 欧美成人日韩| 男人的天堂久久精品| 老牛国内精品亚洲成av人片| 欧美日韩一区二区三区视频播放| av不卡免费看| 国产美女久久| 欧美中文字幕一区二区| 日韩不卡一区二区| 日韩不卡视频在线观看| 91成人精品观看| 99精品在线免费在线观看| 日韩成人精品一区二区三区| 日韩国产欧美| 青青草91视频| 色爱av综合网| 欧美日韩亚洲一区| 136国产福利精品导航网址| 国产精品一区二区三区www| 黄色av一区| 久久中文字幕一区二区| 蜜桃久久久久久久|