前言
Modbus通讯是最常用的硬件通讯协调,我PLC接触的不多。Modbus保证了简单又高效的数据传输。
Modbus Poll和Modbus Slave 软件下载:必须下载
NModbus
一般带N开头的都是.NET平台移植版本。比如NLog,Log4Net。
NModbus使用
一般这种GitHub小项目都是没有详细的github项目介绍,都是以Demo的形式给你的。对于编程能力不强,英语能力不强的同学来说有点困难。
简单使用
注意:一定要先把Modbus Poll和Modbus Slave软件用明白。再去调试C# 程序。
这里以Modbus TCP 为例
static void Main(string[] args)
{
Task.Run(ReadModbusTcp) ;
Console.WriteLine("运行完毕");
Console.ReadKey();
}
//简单的Task任务
public async static Task ReadModbusTcp()
{
using (TcpClient client = new TcpClient("127.0.0.1", 502))
{
Console.WriteLine("启动Tcp连接");
var factory = new ModbusFactory();
IModbusMaster master = factory.CreateMaster(client);
master.Transport.ReadTimeout = 2000;
master.Transport.Retries = 10;
// 从地址0开始,读取10个数据。
ushort startAddress = 0;
ushort numInputs = 10;
while (true)
{
var inputs = master.ReadInputRegisters(1, startAddress, numInputs);
for (int i = 0; i < numInputs; i++)
{
Console.WriteLine($"Input {( startAddress + i )}={( inputs[i] )}");
}
await Task.Delay(1000);
}
}
}