S7200自由口通讯

我用S7200自由口与一个设备通讯,这个设备必须要向它发送询问命令以后才会回一个消息,所以只用XMT发送,马上再用RCV接收,一般情况下通讯能够正常,但是如果那个设备故障了,它就不回消息了,这时RCV就读不到结束符0A,那么SMB86一直是0,请问这时如何关掉RCV?
 我现在是检测到SMB86=0保持5秒后,认为通讯异常,然后我送16#30到SMB87禁用RCV,接着再送16#B0到SMB87打开RCV,这样做了以后,发现SMB86里面是128,请问,128是什么原因才出现的,如何解决?

问题补充:
我的通讯设置:
 SMB30  16#49
 SMB87  16#B0
 SMB89  16#0A
 SMB94  16#255

最佳答案

1 如何人为结束RCV接收状态?
 接收指令控制字节(SMB87/SMB187)的en位可以用来允许/禁止接收状态。可以设置en为“0”,然后对此端口执行RCV指令,即可结束RCV指令。
 即
 R SM87.7,1
 RCV VBX,0

 2 SMB86=128表示接收信息被用户禁止

提问者对于答案的评价:
感谢大家的回答;现在搞定了;因为我接收的信息没有开始字符,只有结束字符,一开始我用空闲线时间开始,但是与从站的配合有时候有问题,我设了空闲线时间是5MS,但是有时候从站在5MS内就回了消息,这样就会出错,而且用空闲线时间做,如果接受不到结束字符,就是说如果从站故障时没回消息,RCV就一直是0,不能结束,这时候理论上应该设SM87.7为0,再启动一起RCV,因为只有启动RCV,系统才会去看SM87.7,启动以后系统会发现RCV被禁用了,这时就会把RCV停止,这时去看SM86里面是128,表示RCV被禁用,然后再把SM86恢复为B0,开启RCV功能,同样要启动RCV一次来让系统知道,但是因为我的没有开始字符,不适合这样做,后来我用了任意字符开始,写16#49到SM30,16#BC到SM86,16#0A到SM89,16#0A到SMW90,1000到SMW92,100到SMB94,RCV启动后马上开始接受,接受到任意字符就认为开始,然后收到结束符认为结束,如果这个时间超过1000MS就超时,系统会把SM86写成4,这时再重新开始发送接收,如果还超时就一直循环,直到从站恢复通讯,PLC会立即恢复与从站的通讯

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc350018.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日
下一篇 2021年7月5日

相关推荐

  • CPU222CN 数据转换传输问题

    CPU与电路板(PC经232转485可控制以完成),实验目的使用编码器经PLC传输数据控制电路板编码器增益型    电路板485通讯&nbs…

    SIMATIC S7-200 2017年6月8日
  • WINCCflexible 和s7 200仿真通讯如何设置

    我使用PC PPI电缆和S7 200连接,想使用winccflexible 2008sp3仿真系统测试画面,但是一直无法连接到PLC,请问有什么需要特…

    SIMATIC S7-200 2021年7月5日
  • PLC扩展模块EM235

    EM235能够测量工频交流信号吗? 问题补充:我主要是想通过EM235直接测量工频下的同一时刻的三路电压信号。这样我可以通过比较大小来得到三相电压的电角度关系,甚至相序关系(满足一…

    SIMATIC S7-200 2021年7月5日
  • CP243-1的错误提示

    控制器用的cpu224,接一个EM235,后面挂了一个CPU243-1,组态时候CPU243的模块位置为1,下载程序的时候为什么提示智能模块CP243-1的位置不对呢,52个系统,…

    SIMATIC S7-200 2021年7月4日
  • MODBUS slave

    用自由口编写了一个modbusSLAVE的,其通讯线缆联到MASTER的设备上,这跟通讯线可以自己做吗?怎么做啊? 最佳答案 我们这边的通信电缆都是自己做的,可以参照西门子485口…

    SIMATIC S7-200 2021年7月5日
  • 关于顺序流程图

    在做顺序流程图,发现步上面还有一个条件才能输出,可是我看别人的顺序流程图,步后面就直接输出,这条件怎么加啊,有大神看图帮我解释一下吗 问题补充:感觉没说清楚,我又补充了一张图2,就…

    2017年5月29日
  • s7-200 计数器达到预设值后复位时间点

    如图的程序,当C0计数值达到5时,C0是立即复位吗?下一条程序为什么还会执行呢?求教详细说明! 问题补充:我将数据传送部分程序段写在计数器计数的上面网络段中后,数据传送部分还是会执…

    2017年6月3日
  • 模拟输入不同类型

    模拟量输信模块EM231 (4输入)我想测量传感器发出的4-20mA信号,又要测量变频器输出的0-10V信号,有何方法可以解决,另外模块输入点 +、 …

    SIMATIC S7-200 2021年7月5日
  • 两台226PLCmodbus通讯为题

    我想实现主站PLC将从站的输出Q0.0置1以下是我的程序:主站:Network 1 // 网络标题// 网络注释LD  …

    SIMATIC S7-200 2020年11月1日
  • 求教大神cpu226与斯菲尔pd194e-9hy电表的通讯后读出来的参数和电表显示不一样

    200PLC和斯菲尔电表用modbus-rtu通讯,程序什么的都正常,就是读出来的电压值显示的有问题,电表显示的225V,可我读出来的只有8,附图,请各位工控大神们指点小弟迷津,究…

    2021年7月5日

发表回复

登录后才能评论