基于C#调用库实现Modbus RS-232串口与TCP/IP通讯 含调试界面 已与台达PLC...

张开发
2026/4/5 12:47:45 15 分钟阅读

分享文章

基于C#调用库实现Modbus RS-232串口与TCP/IP通讯 含调试界面 已与台达PLC...
基于C#的Modbus RS-232串口通信和网口TCP/IP通讯这个是调用库写的自己简单做了个调试界面与台达PLC调试过 公司用的就是这个库通讯的自动化设备上位机用这个很方便 注意…手上只有台达PLC其它PLC没试过不知道可以用不 联系送C#学习资料自学必备 联系送C#多种帮助类 有详细的解释文档想看源码可以送反编译软件查看源码前阵子帮公司搭自动化设备的上位机调试工具本来想从零写Socket通信后来嫌麻烦直接找了个现成的Modbus库搞定顺便做了个简陋的WinForms调试界面目前只测过台达的PLC别的牌子暂时没试过不知道能不能通用。这个库直接NuGet搜NModbus就能装包很小但功能全不管是TCP网口还是RS232串口都能搞定贴两段我当时写的测试代码首先是TCP网口的版本连台达PLC的时候直接填设备IP和默认502端口就行// 初始化Modbus TCP客户端填PLC的IP和端口 var modbusTcpClient new ModbusIpMaster(192.168.1.100, 502); try { modbusTcpClient.Connect(); if (modbusTcpClient.IsConnected) { Console.WriteLine(TCP连接成功); // 读保持寄存器台达的D寄存器一般对应这里 ushort[] registers modbusTcpClient.ReadHoldingRegisters(0, 10); foreach (var reg in registers) { Console.Write($D{Array.IndexOf(registers, reg)}: {reg} ); } } } catch (Exception ex) { Console.WriteLine($连不上咋回事{ex.Message}); } finally { modbusTcpClient.Disconnect(); }当时踩过一个小坑一开始直接按默认参数读结果全是0后来翻台达的手册才发现有些型号的PLC寄存器地址需要偏移一下比如要读D1的话得把起始参数改成1差点耽误一下午调试。基于C#的Modbus RS-232串口通信和网口TCP/IP通讯这个是调用库写的自己简单做了个调试界面与台达PLC调试过 公司用的就是这个库通讯的自动化设备上位机用这个很方便 注意…手上只有台达PLC其它PLC没试过不知道可以用不 联系送C#学习资料自学必备 联系送C#多种帮助类 有详细的解释文档想看源码可以送反编译软件查看源码然后是RS232串口的版本参数一定要和PLC那边对上我这边台达设备默认是9600波特率、8位数据位、无校验// 配置串口参数COM口根据自己设备改 var serialPort new SerialPort(COM3, 9600, Parity.None, 8, StopBits.One); var modbusRtuMaster ModbusSerialMaster.CreateRtu(serialPort); try { serialPort.Open(); if (serialPort.IsOpen) { Console.WriteLine(串口连好啦); // 读台达的Y线圈输出 bool[] coils modbusRtuMaster.ReadCoils(1, 0, 8); for (int i 0; i coils.Length; i) { Console.WriteLine($Y{i}: {(coils[i] ? 亮着 : 灭着)}); } } } catch (Exception ex) { Console.WriteLine($串口炸了{ex.Message}); } finally { serialPort.Close(); }后来为了不用每次开命令行敲代码就用WinForms拖了个简陋的界面就是几个输入框填IP/COM口、连接按钮再加几个读写按钮平时自己调试或者给车间师傅临时用都挺方便公司现在也在用这个当临时调试工具比买的付费软件省事儿多了。不过说真的我手上只有台达的PLC像西门子、三菱这些别的牌子的没试过不知道能不能直接用毕竟不同厂商的寄存器映射可能不太一样要是有朋友测过别的牌子的可以留言说说情况。对了这段时间整理了不少C#的自学资料从基础语法到WinForms、ASP.NET的教程都有还有平时写代码攒的各种帮助类——比如串口封装、Modbus工具类、JSON处理、日志记录这些都是平时干活攒下来的好用的东西要是有人需要的话直接找我就行免费发。还有那个Modbus库的源码要是想看看底层是怎么实现CRC校验、怎么处理报文的我这有现成的反编译工具直接就能扒源码看不用自己找半天破解版的省心。

更多文章