背景:每天学点,坚持
要安装好虚拟串口和modbus poll,方便调试(相关资源在文末,也可以私信找我要)
传感器部分使用的是达林科技的DL11B-MC-D1,当时42软妹币买的(官网上面有这个传感器的说明:广州达林电子科技有限公司-DL11B_MC_D1温度传感器)
然后照着所给说明使用modbus-poll进行调试,可以后就在C#中使用NModbus库来方便读取温度
控制台显示温度的简单样例:
cs
class Program
{
static void Main(string[] args)
{
// 设置串口参数
using (SerialPort port = new SerialPort("COM7"))
{
port.BaudRate = 9600;
port.DataBits = 8;
port.Parity = Parity.None;
port.StopBits = StopBits.One;
port.Open();
// 创建 Modbus 工厂
var factory = new ModbusFactory();
// 使用工厂创建 Modbus 主站 (Master)
var master = factory.CreateRtuMaster(port);
try
{
// 读取保持寄存器(功能码 03),假设温度数据存储在地址 0x0000
ushort startAddress = 0x0000;
ushort[] holdingRegisters = master.ReadHoldingRegisters(1, startAddress, 1);
// 解析读取到的温度数据
// 假设寄存器的值即为温度数据(例如,温度为21.8度,可能存储为218)
float temperature = holdingRegisters[0] / 10.0f;
// 将温度值显示在控制台
Console.WriteLine("当前温度: " + temperature + " °C");
}
catch (Exception ex)
{
Console.WriteLine("读取温度失败: " + ex.Message);
}
}
// 保持控制台打开
Console.ReadLine();
}
}
串口助手破解
链接:https://pan.baidu.com/s/1Q5DNgR8v1EWzBD1BF5OYMw?pwd=csdn
提取码:csdn