200自由口通讯和1个关于扫描周期的问题

一、手册上200的扫描周期先执行程序逻辑,再执行通讯任务,那是不是程序里遇到xmt指令时候并不执行,等到扫描周期到执行通讯时才发送,
LD     SM0.1
MOVB   16#09, SMB30
Network 2 
LD     SM0.1
MOVB   1, VB0
Network 3 
LD     SM0.1
MOVB   16#41, VB1
Network 4 
LD     SM0.1
XMT    VB0, 0
Network 5 
LD     SM0.1
MOVB   16#42, VB1
最后发送的应该是41H,还是42H,为什么我试验的结果大部分是42H,极少时候会是41H?
二、我在数据里赋值vb0是1,然后程序逻辑修改vb0为0,然后进入stop模式,再进入运行状态,vb0这时候是几?如果写个程序验证的话应该怎么写?请各位不吝赐教,谢谢。

最佳答案

最后发送的是41H,因为赋值完41H,就执行了XMT指令。实际上监控VB1,其值为42H,因为最后又给VB1赋值是42H。通过PLC测试一下就知道了。
手册上200的扫描周期先执行程序逻辑,再执行通讯任务,我认为只是概念上的,实际上应该存在时间片的概念,可以参考S7-300手册上的相关描述。

二,应该是最后的赋值,断电后一般V区都保持的,所以上电后保持最后值。

提问者对于答案的评价:
感谢三位的回答,半瓶醋和touch++的回答对我都有很大帮助,可惜我只能采纳一次。谢谢。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日
下一篇 2020年10月31日

相关推荐