# node-modbus **Repository Path**: enjoy-iot/modbus ## Basic Information - **Project Name**: node-modbus - **Description**: 基于modbus-serial开发的一款方便易用的modbus驱动 - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 5 - **Created**: 2024-08-16 - **Last Updated**: 2025-02-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # node-modbus #### 介绍 基于 modbus-serial 包开发的一款方便易用的 modbustcp 驱动,更适合自动化工程师的使用习惯。 #### 安装教程 1. 下载项目 https://gitee.com/eagleye/modbus.git 2. cd modbus 3. npm install(国内可以用cnpm install) #### 使用说明 1. npm install -g typescript (如果没有TypeScript环境则需要安装) 2. cd 到项目并使用 npm run build 进行编译 3. test_tool 文件夹中有测试工具 modscan 与 modsim(需要自己模拟一些数据) 4. 执行 npm run test 查看效果 #### 例子 ```ts import ModbusTCPClient from './modbus_tcp'; import { EnumDataType } from './enum'; import { Register } from './interface'; /** * 寄存器 */ let registerArr: Register[] = [ // { register: "000100", dataType: EnumDataType.Bit }, // { register: "400100", dataType: EnumDataType.SwappedDouble }, // { register: "400100", dataType: EnumDataType.Binary }, // { register: "400100", dataType: EnumDataType.Int }, // { register: "400100", dataType: EnumDataType.Decimal }, { register: '400100', dataType: EnumDataType.Float }, ] /** * 读取一次断开的例子 */ async function example1() { let modbusTcpClient = new ModbusTCPClient({ host: '10.211.55.15', port: 502, deviceID: 1 }) let result = await modbusTcpClient.setRegisters(registerArr).readOnce(); console.log(JSON.stringify(result.get('400100'))); } // example1() /** * 轮询的例子 */ async function example2() { let modbusTcpClient = new ModbusTCPClient({ host: '10.211.55.15', port: 502, deviceID: 1 }) let result = await modbusTcpClient.setRegisters(registerArr).polling(); console.log(result); } // example2() /** * 写数据的例子 */ async function example3() { let modbusTcpClient = new ModbusTCPClient({ host: '10.211.55.15', port: 502, deviceID: 1 }) let result = await modbusTcpClient.setRegisters(registerArr).writeData('400100', 12.54); console.log(result); } example3() ```