modbus串口数据格式,C,读写串口Modbus数据

人气:170 ℃/2024-07-03 18:59:30

一、测试结果

1、读取操作

连接COM6

2、写入操作

二、测试条件

① Visual Studio 2022社区版

只需安装其中的“.NET桌面开发” 即可

② Modsim32

③ VSPD虚拟串口

三、测试过程

1、打开VS 2022,创建新项目

2、引入NModbus4类库

3、界面设计

部分控件需修改属性

4、代码

using Modbus.Device;using System;using System.Collections.Generic;using System.Drawing;using System.IO.Ports;using System.Linq;using System.Text;using System.Text.RegularExpressions;using System.Windows.Forms;namespace ModbusRTU{ public partial class Form1 : Form { private SerialPort serialPort = new SerialPort(); //创建串口实例 private static IModbusMaster master; //创建Modbus主站实例 public Form1() //构造窗体 { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) //窗体加载 { cbxPort.Items.AddRange(SerialPort.GetPortNames()); //获取设备串口 cbxBaudRate.Items.AddRange(new object[] { 9600, 14400,19200, 38400,56000,57600,115200,128000,256000 }); //可选波特率 cbxParity.Items.AddRange(new object[] { "None", "Odd", "Even", "Mark", "Space" }); //可选奇偶校验 cbxDataBits.Items.AddRange(new object[] { 5, 6, 7, 8 }); //可选数据位 cbxStopBits.Items.AddRange(new object[] { 1, 1.5, 2 }); //可选停止位 cbxMode.Items.AddRange(new object[] { "读输出线圈","读离散输入","读保持寄存器","读输入寄存器", "写单个线圈","写多个线圈","写单个寄存器","写多个寄存器" }); //可选读写模式 cbxPort.SelectedIndex = 1; //各参数默认项 cbxBaudRate.SelectedIndex = 0; cbxParity.SelectedIndex = 0; cbxDataBits.SelectedIndex = 3; cbxStopBits.SelectedIndex = 0; cbxMode.SelectedIndex = 0; nudLength.Minimum = 1; nudSlaveID.Minimum = 1; nudStartAdr.Minimum = 0; rbxRWMsg.ImeMode = ImeMode.Disable; //默认输入法 } .....................................................................

文末附完整程序链接。

5、使用VSPD构建虚拟串口对COM5、COM6

6、使用Modsim32模拟Modbus从站数据

连接COM5,站号1,通讯参数:9600/8/1/N

关于VSPD和Modsim32的使用,可参考之前的文章:

7、程序运行测试

四、源程序

链接:https://pan.baidu.com/s/1C2oXs6CP1UnjrtFQ1c3MbA?pwd=7777

提取码:7777

五、参考

该网址程序拷贝后,运行起来有些不正常,已修改并另有小改动。

百科

More+
首页/电脑版/网名
© 2025 NiBaKu.Com All Rights Reserved.