nmodbus C#modbus库

2 篇文章 0 订阅

Provides connectivity to Modbus slave compatible devices and applications. Supports serial ASCII, serial RTU, serial over USB ASCII, serial over USB RTU, TCP, and UDP protocols.


开源的modbus库,使用C#开发。

网址http://code.google.com/p/nmodbus/


modbus-rtu读取holding寄存器值,代码如下:

SerialPort port = new SerialPort();
            //配置串口
            port.PortName = com;
            port.BaudRate = 9600;
            port.DataBits = 8;
            port.Parity = Parity.None;
            port.StopBits = StopBits.One;
            port.ReadTimeout = 500;
            port.WriteTimeout = 500;
            port.Open();


            // create modbus-rtu master
            master = ModbusSerialMaster.CreateRtu(port);
int slave_id = 1;
int reg_addr = 10;


            //读取多个holding寄存器
ushort[] vals = master.ReadHoldingRegisters(slave_id, reg_addr, 2);
            if (vals == null)
            {

}
else
{
}


儿童图书、玩具超值优选


C#中的NModbus是一个流行的.NET,用于读写Modbus RTU(Remote Terminal Unit)通信协议的数据。Modbus RTU是一种工业通讯协议,常用于自动化控制系统中设备间的通信。使用NModbus进行读取操作,你需要以下几个步骤: 1. 引入NuGet包:在你的C#项目中,首先需要安装NModbus的NuGet包。你可以通过NuGet Package Manager或命令行(`dotnet add package NModbus`)来添加。 ```csharp using NModbus; using NModbus.Packets; ``` 2. 创建连接:你需要创建一个`NModbusSerialMaster`对象,指定Modbus设备的串口配置,如波特率、校验方式等。 ```csharp string portName = "COM1"; // 替换为实际的串口号 int baudRate = 9600; // 通常Modbus RTU的默认波特率 NModbusSerialSettings settings = new NModbusSerialSettings { PortName = portName, BaudRate = baudRate, DataBits = 8, StopBits = StopBits.One, Parity = Parity.None }; ModbusSerialMaster master = new ModbusSerialMaster(settings); ``` 3. 发送请求:调用`ReadCoils()`或`ReadHoldingRegisters()`方法来读取寄存器数据,根据需要选择相应的函数代码。 ```csharp ushort_slaveId = 1; // 设备的(slave ID) ushort_address = 0x0001; // 需要读取的寄存器地址 ushort numberOfPoints = 1; // 一次读取的点数 ushort[] coilsOrValues = await master.ReadCoilsAsync(slaveId, address, numberOfPoints); ``` 4. 解析响应:收到数据后,`coilsOrValues`数组会包含读取到的结果。根据数据类型(布尔值(Coils)或数值(Registers))进行解析。 5. 关闭连接:完成操作后,记得关闭连接以释放资源。 ```csharp master.Close(); ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值