电工学习网

 找回密码
 立即注册

西门子S7-200自由口通信故障解决措施

2013-8-22 08:08| 编辑:电工学习网| 查看: 19309| 评论: 0

  西门子S7-200的自由口通信需要通过编程设置串口的工作模式,安排发送和接受指令的触发顺序,还要设定接收的起始和结束条件。对于刚刚开始使用s7-200的电气工程师来说,的确有很多细微处易犯错误。一般碰到客户抱怨通信不上的问题,就要逐一帮客户确认编程配置是否正确。虽然麻烦,不过逐条查下去,总能查到错误所在并解决问题。但是有一次客户遇到的问题颇出人意料,还真耗费了一些时间。

  客户反应在编写了自由口通信程序之后,plc可以发送数据给通信伙伴,但是却收不到任何伙伴方发出的数据。能发送数据给对方,说明通信端口设置没有问题。极有可能是端口被其他通信指令占用导致无法进入接收状态。比如说用常开点调用XMT,或者没有对接收的故障状态进行判断并终止接收,从而导致后续的XMT和RCV都无法被正确执行。客户表示他的程序并不存在这种情况。但是为了测试问题所在,客户下载了一个仅包含条件触发RCV的程序下去,还是接收不到数据。监控程序RCV指令已被正常执行。

  那么是不是接收的起始条件设置不当?客户使用的是起始字符,这并无不妥。并且改成空闲线检测之后,问题依然存在。难道是对方发送的信号有问题?用串口调试软件来测试,是可以接收到的。眼见这几个常见错误都没能cover住这个问题,我只好从头一步步地跟客户确认。但是还是没能发现任何破绽。郁闷之下,只好让客户把程序发过来看看。

  第一次检查程序的时候还真没注意到问题出在哪里。等到看出来了才觉得啼笑皆非:

  不知道大家看出来没有?客户在设定完空闲线时间SMW90和消息定时器溢出值SMW92后,惯性地将接受地最大字符数SMB94也写成了传送字SMW94。而西门子plc的高低字节是逆序的,也就是说SMB94为高有效字节,SMB95为低有效字节。见手册中的如下说明:

  结果就是最大字符数100被传给了SMB95,SMB95是神马呢?神马也不是,总之与接收条件无关。而真正最大字符数存储字节SMB94被赋值为0。最大字符数都为0了,那当然是接收不到任何数据了。

看过《西门子S7-200自由口通信故障解决措施》的人还看了以下文章:

发表评论

最新评论

  • PLC输入端和输出端怎么接线
  • 什么是COM端口?PLC中COM端口如何接线?
  • plc控制电动机正反转梯形图
  • 西门子S7-200系列PLC全套接线图
  • PLC十字路口的交通灯控制编程实例
  • plc基础知识指令27个
热点文章

电工学习网 ( )

GMT+8, 2023-5-29 14:59

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

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

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

返回顶部