电工学习网

 找回密码
 立即注册

Modbus细节决定成败

2015-3-17 11:38| 编辑:电工学习网| 查看: 5699| 评论: 0|原作者: hynnoed84|来自: 西门子工程师故事

本人做工控七年,没有做过Modbus,想想也是醉了,只能分享一个接受培训,老师讲的一个他调试例子,不知道让不让播。
一个风和日丽的早上,客户打电话说CPU414H做Modbus TCP通讯有问题,Modbus TCP Red V2与调试工具Modscan死活通讯不上,并且已经折腾了两天,还是通讯不上。于是,开始电话和客户沟通,检查组态和参数:检查CP443-1的设置、检查NetPro的网络组态和TCP 连接状态,这些都是按照示例做的。
然后检查FB 907的初始化设置及检查FB 907数据区的设置,发现在初始化时仅对使用的数据区域进行了参数赋值,不使用的区域没有处理。这样初始化参数作用会在FB 907的输出状态报W#16#0102地址区域重叠错误,让客户修改不使用的数据区域初始化为0,重新下装程序。客户操作之后,反映还是通讯不上。
然后检查服务器程序FB 907,看NDR_x管脚是否动作,因为服务器程序对请求进行响应和处理之后会对NDR_x输出1操作,建议客户监控程序,观察NDR_x是否有值在变化。一分钟之后,客户反映NDR_x值不变化,始终是0;这些情况了解之后,觉得是发送接收环节出了问题。
询问除了FB 907之外还加载了哪些程序块到CPU中。回答:有FB 907,FB 906,FC 10,FC 11就这些。终于了解到了,客户没有下载FC 50(AG_LSEND),FC 60(AG_LRECV)到CPU中去,所以服务器程序就根本没接收到客户端发送来的数据请求,下载FC 50(AG_LSEND),FC 60(AG_LRECV),客户再检查Modscan,数据通讯上了。
其实在西门子Modbus TCP Red V2的例子程序和快速入门文档中已经详细地介绍了程序块的使用,客户只要仔细观察例子程序的结构,就不会忽略掉FC 50(AG_LSEND),FC 60(AG_LRECV)这两个发送接收块,真是细节决定成败。

看过《Modbus细节决定成败》的人还看了以下文章:

发表评论

最新评论

  • 电表怎么看度数
  • 插座烧毁原因_插座烧后还可以继续使用吗?
  • 注册电气工程师考试挂靠,到底富了谁?
  • 电工证可以“挂靠“吗
  • 电工证怎么考?如何自考电工证
  • 电工证种类和图片大全
热门资讯

电工学习网 ( )

GMT+8, 2021-12-6 20:47

Powered by © 2011-2021 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

返回顶部