【硬件数据模拟】 使用Modbus Slave软件模拟数据
本文最后更新于:21 分钟前
下载Modbus Slave软件
下载完成之后,单击Connection->Connect,弹出注册窗口。这个软件有一个月的试用,或者是在网上找该软件的破解方式。弹出窗口如图所示:
设置参数
ip设置为本机地址,端口设置为502,波特率设置为9600,协议设置为Modbbus Tcp/Ip,串口设置为COM1。
连接Modbus Slave
- Modbus还有一个客户端,modbus poll专门用来测试modbus连接,但是这里我展示用node.js获取的Modbus Slave模拟数据。
- 引入modbus-serial包, 使用npm i modbus-serial下载安装,新建modbus-port.js文件,代码如下新建一个publish.js发布收到的模拟数据
1
2
3
4
5
6
7
8
9
10// create an empty modbus client
var ModbusRTU = require("modbus-serial")
var ModbusRTUClient = new ModbusRTU();
// open connection to a tcp line
// 创建Modbus TCP连接,IP是127.0.0.1,端口502
ModbusRTUClient.connectTCP("127.0.0.1", { port: 502 });
module.exports = ModbusRTUClient1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18const moment = require('moment');
const mqtt = require('mqtt');
const MqttServer = require('./server'); // 这里是我创建的mqtt服务器
const ModbusRTUClient = require('./modbus-port.js');
const client1 = mqtt.connect('mqtt://127.0.0.1:1883'); // 这里是我创建的mqtt服务器
setInterval(() => {
ModbusRTUClient.readHoldingRegisters(0, 10, function(err, data){
// 获取当前时间
//moment.locale('zh-cn');
let value = data.data[0];
let humidity = data.data[1];
client1.publish("temperature", value.toString(), { qos: 0, retain: true }); // 使用mqtt服务发布
client1.publish("humidity", humidity.toString(), { qos: 0, retain: true });
console.log("----------------------------------------------------------------------");
console.log("数据时间是:" + moment().format('YYYY年MM月DD日 HH时mm分ss秒'));
});
}, 2000);
这个软件还有很多用处,请参考其他文献使用……
本博客所有文章除特别声明外,如需转载或引用,请注明出处!