上一篇已经实现了ModbusTcp服务器和8个主要的功能码,只是还没有实现错误处理功能。 但是在测试客户端时却发现了上一篇的一个错误,那就是写数据成功,服务器不需要响应。 接下来要做的就是实现ModbusTcp客户端。有了清晰的协议,代码循规蹈矩的写就行了。 原始数据 其中只读寄存器和线圈都有可分辨的值 交互 改变线圈和寄存器的值 向线圈写入4个1 向寄存器写入4个11 将每个栈的值查询出来 结果 可以看到数据已变成我们设定的值 工作流程 命令行输入指令 解析指令 根据功能码跳转到相应分支 构造、发送请求 解析响应 根据协议,每次发请求,事务标识符都会自增。 客户端需要实现8种功能码,因此每个功能码都需要一个方法去实现。 //WebModbus.cs // 读 读写线圈 public async Task<bool[]> Request_01(ushort startIndex, ushort length){} // 读 只读线圈 public async Task<bool[]> Request_02(ushort startIndex, ushort length){}...