nanoFramework.Iot.Device.Modbus 1.0.261

保留前缀
dotnet add package nanoFramework.Iot.Device.Modbus --version 1.0.261                
NuGet\Install-Package nanoFramework.Iot.Device.Modbus -Version 1.0.261                
此命令旨在在Visual Studio的包管理器控制台中使用,因为它使用了NuGet模块的Install-Package版本。
<PackageReference Include="nanoFramework.Iot.Device.Modbus" Version="1.0.261" />                
对于支持包引用的项目,请将此XML节点复制到项目文件以引用包。
paket add nanoFramework.Iot.Device.Modbus --version 1.0.261                
#r "nuget: nanoFramework.Iot.Device.Modbus, 1.0.261"                
#r指令可用于F# Interactive和Polyglot Notebooks。请将此复制到互动工具或脚本源码中以引用包。
// Install nanoFramework.Iot.Device.Modbus as a Cake Addin
#addin nuget:?package=nanoFramework.Iot.Device.Modbus&version=1.0.261

// Install nanoFramework.Iot.Device.Modbus as a Cake Tool
#tool nuget:?package=nanoFramework.Iot.Device.Modbus&version=1.0.261                

Modbus - 机器到机器通信协议

Modbus通信协议为分布式自动化系统中的多个市场细分地址架构。它可以是串行端口基于或基于网络的。本实现是序列端口基于,但可以轻松调整以支持网络。

文档

Modbus规范可在Modbus组织网站找到。

用法

如果您正在使用ESP32,必须初始化引脚以使用串行端口,如下所示

// SerialPort COM2
Configuration.SetPinFunction(16, DeviceFunction.COM2_RX);
Configuration.SetPinFunction(17, DeviceFunction.COM2_TX);
Configuration.SetPinFunction(18, DeviceFunction.COM2_RTS);

使用ESP32,您几乎可以使用任何引脚执行任何功能。当使用STM32或其他MCU时,引脚通常是固定的。请参考您的MCU文档以了解使用哪个引脚。

Modbus客户端

要初始化和使用Modbus客户端,您可以执行以下操作

// Modbus Client
var client = new ModbusClient("COM3");
client.ReadTimeout = client.WriteTimeout = 2000;

client.WriteMultipleRegisters(2, 0x5, new ushort[] { 3, 5, 2, 3 });
client.Raw(2, FunctionCode.Diagnostics, new byte[] { 0x01, 0x01, 0x01, 0x01 });

var data1 = client.ReadHoldingRegisters(2, 0x7, 4);
var data2 = client.ReadCoils(2, 0x23, 2);

如示例所示,您有多种可能性,可以写入多个寄存器,使用原始功能,也可以读取多个寄存器。

Modbus服务器

也可以找到服务器实现

// Modbus Server
var server = new ModbusServer(new Device(1), "COM2");
server.ReadTimeout = server.WriteTimeout = 2000;
server.StartListening();

本服务端实现将使您能够作为服务器进行操作。它可以进行扩展。

硬件实现

当使用 RS485 时的 Modbus,例如您可以使用 MAX485 来作为传统串行端口和 RS485 之间的接口

MAX485

RS232 支持

如果您使用 RS232 上的 Modbus,您可以修改构造函数中的 mode 参数为 0 (SerialMode.Normal)

// Modbus Client
var client = new ModbusClient("COM3",SerialMode.Normal); 
// Modbus Server
var server = new ModbusServer(new Device(1), "COM2",mode:SerialMode.Normal);

限制

注意: nanoFramework 只(目前)支持 "Modbus-RTU" 协议。

产品 兼容的和额外的计算目标框架版本。
.NET 框架 net 是兼容的。
兼容的目标框架
包含的目标框架(在包中)
了解更多关于 目标框架.NET Standard 的信息。

NuGet 包

此包不用于任何 NuGet 包。

GitHub 仓库

此包不用于任何流行的 GitHub 仓库。

版本 下载 最后更新
1.0.261 38 8/5/2024
1.0.223 87 6/14/2024
1.0.201 108 5/15/2024
1.0.193 106 4/25/2024
1.0.189 108 4/15/2024
1.0.181 88 4/10/2024
1.0.89 266 11/10/2023
1.0.44 140 9/15/2023
1.0.43 117 9/15/2023
1.0.1 137 7/6/2023