自由口通讯RCV指令不结束?


1. 一台电脑监控程序及状态表,另一台电脑用串口调试助手监控串口数据。电脑,电缆,串口等都没有问题。
2. 手册上的自由口通讯例程已经做通的。
3. 我现在要做一个自由口通讯,发送和接收均是 以7e开始 以5e结束。
4. 我的程序是首先PLC发送一个数据包,然后接收。
5. 本来已经提了一个问题,结果在问题补充的时候,补充了好几次都弄不上去。就新建了问题。


下午题的问题中,程序有点问题,用的手册上的例程,本来想屏蔽的,结果没有把NOT指令屏蔽掉,因为在NOT指令后面有一个RCV指令。现将新的程序贴上
主程序:
网络1
LD     SM0.1
MOVB   16#09, SMB30                //初始化自由口
MOVB   16#9C, SMB87                // 16#B2.16#B0 均设置过,没有成功
MOVB   16#7E, SMB88                //起始字符
MOVB   16#5E, SMB89                ///结束字符
MOVW   25, SMW90                   ///空闲超过5毫秒
MOVW   50, SMW92                   ///计时器超过15毫秒
MOVB   100, SMB94                  ////最大接收100个字符
ATCH   INT_0:INT0, 23              /// 连接中断0到接收结束事件
ATCH   INT_2:INT2, 9               /// 连接中断2到发送结束事件
XMT    VB500, 0                    /// 发送数据
ENI
INT_0          /// 中断0
LD     SM0.0
+D     1, VD2000                   ///////中断计数,监控中断
XMT    VB500, 0
INT_2 
LD     SM0.0
+D     1, VD2008                   ///中断计数,监控中断
RCV    VB300, 0

我的程序本意是想RCV指令在设定的时间内不管有没有收到信息都自动停止接收,再次转入发送(XMT)。但是上述程序经过测试发现,PLC没有收到串口的数据,还是不自动停止接收。收到数据后立即发送数据。
请教我如何完成这个功能:在一定的时间内不管有没有收到信息都自动停止接收,停止RCB指令。要不怎么都发不了数据。

最佳答案

SM87.7(SM187.7)被修改后,必须执行一次RCV指令才能启停接收功能。也就是说:在设定的时间内,无论是否有数据,都将SM87.8复位,然后执行一次RCV指令关闭接收功能。如果不执行RCV指令,RCV的状态是不会发生变化的。

提问者对于答案的评价:

问题在前天已经解决,思路是鼠老爹这种思路。看来还是我理解错了。我的理解是只要设置了SMW90和SMW92,SMB87设置为16#9C等,只要设置了正确了这几个参数,经过设定的时间,RCV指令有没有接收到数据都会自动接收终止,自动放开自由口的占用。实际做了大量测试,都没有成功。按照鼠老爹的说法,就算终止条件满足了,还得复位SM87.7,同时调用一次RCV指令才能结束对自由口的占用。
感谢各位的关注,感谢鼠老爹大侠!

专家置评

关于自由口通信,论坛上有个精华贴,大家可以有时间参考一下!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日 下午3:00
下一篇 2020年11月1日 下午3:00

相关推荐

  • vw数值是怎么给定的

    最近碰见这样一段程序:LD  M5.0TON  T41  VW2204其中M5.0变化5次,每次VW2204的数值都不同…

    SIMATIC S7-200 2020年11月1日
  • EM277浮点数的传送方法

    EM277浮点数的传送方法整数能传送到s7300里但浮点数不会请帮助 最佳答案 用整数结合标定的方法来实现吧!类似模拟量处理。其实只要实数格式一样就可以,但主站的人不一定愿意多试。…

    SIMATIC S7-200 2017年11月25日
  • 数值转换

    请问如何将一个整数地址数值转换成二个整数地址数值,比如VW0=12,如何转换后使VW10=1,VW11=2,小弟新手,一直想不出,请各位帮忙 最佳答案 除以10,商放到vw10,余…

    SIMATIC S7-200 2021年7月5日
  • 80个网络的程序大概是多少步啊?或者占多大的存储空间啊?

    80个网络的程序大概是多少步啊?或者占多大的存储空间啊?跟三菱的好像不一样 最佳答案 三菱以步来计算存储空间,每个分支都是一步和西门子的存储空间有本质的区别,编程方式也是有区别,西…

    SIMATIC S7-200 2020年11月1日
  • 和第三方hmi通信,使用以太网线监控不了程序?

    和第三方hmi通信,使用以太网线监控不了程序? 最佳答案 1、转西门子专家置评:、关于触摸屏,第三方hmi通过以太网口和smart连接,有可能占用编程资源,以太网口只有一个编程资源…

    SIMATIC S7-200 2017年6月5日
  • 西门子200编程问题

    主程序中的Q0.5是由主程序中的M0.5和子程序中的M16.5并行控制,当调用子程序的条件不再适合时.子程序按理不再调用.那时应该M16.5=0,但是由于M16.5依然不置0导致Q…

    SIMATIC S7-200 2021年7月5日
  • 请教汽液热交换器控制编程的问题

    请问一个汽液热交换器的编程,就是有一个闭环控制的有温度控制器传感器调节阀和热交换器,是蒸汽和液体的混合,有蒸汽阀和液体阀,要求使其保持在给定的温度数值下,温度高加液体,温度低加热蒸…

    SIMATIC S7-200 2020年10月31日
  • 西门子200PLC做主站,modsim做从站的问题

    我写了一个用200PLC做主站,我的I0.1按一次,30001就读取一次,然后根据读取到的值做比较,大于10,我就给40001写入1,小于10,我就给40001写入0,我的从站我用…

    2017年12月9日
  • 西门子200与WINCC通讯超时判断

    上位机是用wincc组态软件,下位机是s7-200,当上位机故障时,下位机开始存储数据,大概保存7天,下位机怎么判断上位机没有接收到数据,而开始在下位机存储数据呢?谢谢大家 问题补…

    SIMATIC S7-200 2020年10月31日
  • S7-200 PID指令用法

    请教S7-200 PID指令用法   我在S7-200编程软件里面用向导创建了PID指令,都是默认设置.用在实际中,为什么给定值和反馈值相差…

    SIMATIC S7-200 2021年7月4日