找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
并不是程序 BUG;
在一个扫描周期中程序的自上而下执行的。
在每个扫描周期中,CPU 都会写入输出、读取输入、执行用户程序、更新通信模块以及响应用户中断事件和通信请求。 在扫描期间会定期处理通信请求。
以上操作(用户中断事件除外)按先后顺序定期进行处理。
PC/PG属于通讯请求的一部分。它总是在扫描周期的最后执行,也就是你程序逻辑执行完成后执行,这一点很重要。可参考系统手册中 5.1.2 章节----在 RUN 模式下处理扫描周期部分。
SIMATIC S7 S7-1200可编程控制器系统手册
ID:109741593发布日期 2016年9月16日
https://support.industry.siemens.com/cs/document/109741593
解释如下:
1、
测试①开始 m100.0=0 m100.1=0。先设置m100.0为1 则附图中上一行先执行,这个复位 M100.1的指令在每一个扫描周期都会执行复位 M100.1,使得 M100.1 一直为0。
不管你怎么修改 M100.1,这个修改时在扫描周期的最后执行的,那么在下一个扫描周期,这个写入的值会被第一行复位为0。你是先后写的,图中上一行程序都执行了好多个扫描周期了;
那它下面的那个网络,则由于 M100.1 一直为0 ,则能流在 M100.1 处断开了,那么后面的复位 M100.0 是不执行的。所以M100.0 并不会被复位,保持了 1。
2、
按这个思路同样分析你说的第二种情况,并不是BUS,而是扫描周期执行的机理所在。
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城