最近调试工控上位机与电表的通讯功能时,遇到了网络连通性异常、数据无法读取的问题,踩了不少坑,整理了从 IP 配置到通讯测试的完整排查步骤,记录下来方便自己后续复用,也给有需要的同行参考。
首先我们先修改与电表的网络模块相连的IP地址,将其改为“192.168.0.40”,如下图所示:
打开cmd,ping一下电表网络模块的IP,一般来说网络模块的原始IP为“192.168.0.7”,我在这里用“192.168.0.1”做示范:
发现ping通的话,就可以进行下面的操作,打开浏览器输入网络模块的IP“192.168.0.7”,进入操作界面,接下来按照下图进行修改。
1、将网络模块的IP修改为“192.168.250.101”,与其他的通讯设备的网段一样,方便与上位机的通信。
2、修改波特率、数据位、校验位、停止位,要与电表的参数保持一致,否则我们将无法与电表进行通讯,具体如下图所示:
3、修改通用功能,具体如下图所示:
以上修改完成之后,要记得保存配置,接下来我们修改本地的IP,将其修改为与网络模块一个网段,如下图所示:
接下来,我们打开cmd,ping一下网络模块修改后的IP,具体如图所示:
到此说明网络模块的IP修改成功,接下来我们打开程序,在这个位置输入该电表的电表号,注意电表号就像我们的身份证一样,是电表的唯一标识,具体如下:
string srPatten = ""; string Result = "0"; string address = "251119316760"; //电表地址,表号 12位数字 string send = "33333333"; //指令码:总功率 ,用电量 00 00 00 00 byte[] hexBytes = convertSend(address, send, ref srPatten);接下来我们打开软件,打个断点测试一下,我们发现已经成功接收到电表电量,具体如下图所示:
我们点开程序,点击测试按钮,会显示出电表电量,如下图所示:
查看电表的电量,电表的电量是波动,但是当我们点击测试的时候,电表的瞬间值会发送给我们,到此就说明上位机和电表已经成功完成通信:
以上就是上位机与电表通讯问题的完整解决流程,核心是 IP 网段匹配与通讯参数一致性校验,希望对有需要的同行有所帮助。
如果这篇内容对你有帮助,欢迎点赞、收藏、关注,后续会更新更多工控设备通讯的实战笔记~