nodejs中使用modbus-serial库创建Modbus TCP读取设备的数据

本文介绍了如何在Node.js环境中使用modbus-serial库通过Modbus TCP协议读取非甲烷总烃设备的监测数据。详细阐述了安装过程,并给出了设备的Modbus寄存器地址定义表,以及读取特定寄存器数据的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

nodejs中使用modbus-serial库创建Modbus TCP读取设备的数据

在nodejs中安装modbus-serial库

本人使用的开发环境是Windows10下的VSCode,安装并配置好了npm、node、cnpm等工具,使用cnpm安装了modbus-serial库,可以在npm中搜到modbus-serial包以及它的介绍,
在对应的VSCode终端下使用cnpm install modbus-serial -g安装modbus-serial库

cnpm install modbus-serial -g

本来想使用libmodbus的javascript库的,不过在npm官网搜到对应的libmodbus 3.1.4的javascript库,有如下声明:

This is binding to native library libmodbus (http://libmodbus.org/).

Now working only in *nix system.

Module have native function and framework.

说是modbus目前只支持类nix系统,比如Linux、Unix系统。所以我选择了modbus-serial库,当然如果使用C和C++的话,直接使用libmodbus库的C语言版本,官网是:https://libmodbus.org,Github地址是:https://github.com/stephane/libmodbus,Linux下编译libmodbus源代码很简单,Windows下配置相对麻烦点。

非甲烷总烃设备的Modbus寄存器地址定义表

例如,要读取非甲烷总烃设备的总烃、甲烷CH4、NMHC非甲烷总烃对应的浓度,
相关监测因子参数的Modbus寄存器定义如下:
名称 | 数据 | 地址 | 系数 | 值
-------- | ----- | -----| -----| -----| -----
系统参数 | 仪器状态 | 1 | 1 | 0
系统参数 | 运行状态 | 2 | 1 | 1
系统参数 | 控制指令 | 3 | 1 | 8
采样时间 | 年 | 10 | 1 | 2019
采样时间 | 月 | 11 | 1 | 11
采样时间 | 日 | 12 | 1 | 14
采样时间 | 时 | 13 | 1 | 14
采样时间 | 分 | 14 | 1 | 26
采样时间 | 秒 | 15 | 1 | 22
TVOC | 状态 | 20 | 1 | 0
TOVC | 峰面积 | 21 | 0.01 | 1908
总烃 | 浓度 | 22 | 0.01 | 254
CH4 | 状态 | 23 | 1 | 0
CH4 | 峰面积 | 24 | 0.01 | 1729
CH4 | 浓度 | 25 | 0.01 | 200
NMHC | 状态 | 26 | 1 | 0
NMHC | 峰面积 | 27 | 0.01 | 0
NMHC | 浓度 | 28 | 0.01 | 57
苯 | 状态 | 29 | 1 | 8
苯 | 峰面积 | 30 | 0.01 | 0
苯 | 浓度 | 31 | 0.01 | 0
甲苯 | 状态 | 32 | 1 | 8
甲苯 | 峰面积 | 33 | 0.01 | 0
甲苯 | 浓度 | 34 | 0.01 | 0
乙苯 | 状态 | 35 | 1 | 8
乙苯 | 峰面积 | 36 | 0.01 | 0
乙苯 | 浓度 | 37 | 0.01 | 0
间二甲苯 | 状态 | 38 | 1 | 8

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值