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

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();

}

}





分享到:
久久免费福利,精品视频在线你懂得,精品视频网站,国产激情综合
丝袜亚洲精品中文字幕一区| 欧美成人国产| 亚洲精品91| 欧美一区二区三区激情视频| 黄色在线网站噜噜噜| 中文一区一区三区高中清不卡免费| 麻豆视频一区二区| 国产 日韩 欧美 综合 一区| 欧美国产另类| 中文字幕在线高清| 精品视频国产| 999国产精品永久免费视频app| 久久国产小视频| 先锋影音国产一区| 日韩精品社区| 麻豆精品国产91久久久久久| 日本а中文在线天堂| 99国产精品99久久久久久粉嫩| 羞羞答答国产精品www一本| 亚洲91网站| 美女国产一区二区三区| 超碰在线99| 亚洲欧美日本日韩| 国产欧美综合一区二区三区| 国产a亚洲精品| 欧美aa一级| 日韩影片在线观看| 欧美少妇精品| 日韩一区二区三区在线看| 久久亚洲人体| 在线国产一区二区| 国产精品一国产精品k频道56| 久久蜜桃精品| 国产精品sm| 91久久午夜| 日韩国产在线| 国产一区二区亚洲| 麻豆高清免费国产一区| 美女精品一区| 久久久精品日韩| 高清一区二区三区| 亚洲最大av| 91久久国产| 国产亚洲一区二区手机在线观看| 国产精品久久久久久久久久白浆| 亚洲一区二区三区无吗| 制服诱惑一区二区| 毛片在线网站| 国产亚洲观看| 一区二区精彩视频| 久久久久国产| 久久99视频| 日韩欧美高清一区二区三区| 久久精品亚洲人成影院 | 日本特黄久久久高潮| 亚洲一区二区三区无吗| 久久久精品久久久久久96| 欧美日韩 国产精品| 亚洲欧美网站| 91综合网人人| 在线人成日本视频| 国产精区一区二区| 日韩福利在线观看| 亚洲高清二区| 9久re热视频在线精品| 亚洲一级影院| 欧美不卡在线| 久久国产免费| 99久久久国产精品美女| 国产精品s色| 日韩国产欧美一区二区三区| 久久影视一区| 日韩超碰人人爽人人做人人添| 中文字幕亚洲影视| 蜜臀久久久99精品久久久久久| 久久亚洲美女| 久久电影tv| 天堂中文av在线资源库| 日本欧美国产| 桃色一区二区| av最新在线| 欧美 日韩 国产精品免费观看| 成午夜精品一区二区三区软件| 亚洲a一区二区三区| 国产韩日影视精品| 国产精品一区二区av交换| 国产精品18| 成人高清一区| 欧美日韩国产在线观看网站 | 日韩理论片av| 蜜桃视频欧美| 国产欧美日韩亚洲一区二区三区| 国产精品久久久久久久久久久久久久久| 精品久久福利| 精品一区毛片| 麻豆久久一区| 亚洲黄色网址| 亚洲精品麻豆| 国产精品综合| 亚洲无线一线二线三线区别av| 五月激激激综合网色播| 国产精品黄色| 综合亚洲自拍| 久久香蕉国产| 国产精品乱战久久久| 久久久久91| 青青青国产精品| 福利一区二区三区视频在线观看| 97精品久久| 国产精品调教| 亚洲一卡久久| 亚洲精品影视| 国产精品亚洲四区在线观看| 欧美中文高清| 久久久亚洲欧洲日产| 国产精品xx| 欧美日韩国产一区二区三区不卡| 亚洲欧美激情诱惑| 国产亚洲欧美日韩在线观看一区二区| 国产精品hd| 另类中文字幕国产精品| 每日更新成人在线视频| 日韩中文字幕| 老牛国内精品亚洲成av人片 | 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 欧美aa国产视频| 亚洲福利久久| 玖玖玖国产精品| 亚洲精品自拍| 日韩电影免费网站| 亚洲成人精品| 国产精品资源| 亚洲免费福利| 国产欧美日韩精品高清二区综合区| 日韩综合精品| 国产欧美日韩在线一区二区| 欧美国产小视频| 99久久99视频只有精品| 在线精品亚洲欧美日韩国产| 欧美精品羞羞答答| 国产一区调教| 国产精品一区三区在线观看| 黑丝美女一区二区| 国产欧洲在线| 精品国产中文字幕第一页| 日本亚洲视频| 老色鬼久久亚洲一区二区| 欧美激情五月| 国产精品国码视频| 青青伊人久久| 日本三级亚洲精品| 亚洲va久久| 日韩精品一区二区三区免费观影| 国产亚洲高清视频| 日韩精品91| 国产精品99视频| 日韩精品一区二区三区中文在线| 久久久国产亚洲精品| 欧美国产三级| 中文字幕免费一区二区| 欧美~级网站不卡| 国产一区二区三区视频在线| 亚洲精华国产欧美| 四虎4545www国产精品| 国产高清精品二区| 国产日韩亚洲| 7777精品| 日本色综合中文字幕| 免费一级片91| 亚洲一区二区网站| 黄色日韩在线| 夜夜嗨网站十八久久| 婷婷综合亚洲| 午夜日本精品| 石原莉奈在线亚洲三区| 免费欧美日韩| 日本成人中文字幕| 蜜臀精品一区二区三区在线观看 | 在线天堂资源www在线污| 欧美国产免费| 久久青青视频| 蜜臀91精品国产高清在线观看 | 男女男精品网站| 三级在线观看一区二区| 国产亚洲一级| 777久久精品| 国产精品黄色| 日韩电影免费网址| 九九久久婷婷| 亚洲作爱视频| 日本一区二区中文字幕| 欧美成人精品一级| 欧美va天堂| 欧美极品中文字幕| 亚洲精品va| 精品久久久久久久| 美女久久一区| 国产成人精品一区二区三区免费 | 狠狠色狠狠色综合日日tαg| 91精品国产自产精品男人的天堂|