西欧工控
多试一次,就会成功
级别: 工控侠客
精华主题: 0
发帖数量: 625 个
工控威望: 3344 点
下载积分: 78346 分
在线时间: 299(小时)
注册时间: 2010-09-21
最后登录: 2025-08-30
查看西欧工控的 主题 / 回贴
楼主  发表于: 3天前
时序上有没有不一样的可能

sail88
傻傻滴什么都不懂
级别: 略有小成
精华主题: 0
发帖数量: 200 个
工控威望: 306 点
下载积分: 3274 分
在线时间: 457(小时)
注册时间: 2020-08-09
最后登录: 2025-08-30
查看sail88的 主题 / 回贴
1楼  发表于: 3天前
结果一样,不一样的应该是M100置位时间不一样,1比2快。但肉眼出不来
西欧工控
多试一次,就会成功
级别: 工控侠客
精华主题: 0
发帖数量: 625 个
工控威望: 3344 点
下载积分: 78346 分
在线时间: 299(小时)
注册时间: 2010-09-21
最后登录: 2025-08-30
查看西欧工控的 主题 / 回贴
2楼  发表于: 前天
引用
引用第1楼sail88于2025-08-28 20:28发表的  :
结果一样,不一样的应该是M100置位时间不一样,1比2快。但肉眼出不来

没有找到相关资料说明
crgtom
人生三宝:家庭,事业,健康。
级别: 网络英雄

精华主题: 0
发帖数量: 1375 个
工控威望: 9744 点
下载积分: 104664 分
在线时间: 983(小时)
注册时间: 2009-09-21
最后登录: 2025-08-30
查看crgtom的 主题 / 回贴
3楼  发表于: 前天
你把梯形图转换成助记符对比一下
技术是有时效性的,一旦过了市场周期,都会变成垃圾!
a9f18263
级别: 探索解密
精华主题: 0
发帖数量: 32 个
工控威望: 135 点
下载积分: 101 分
在线时间: 24(小时)
注册时间: 2022-07-04
最后登录: 2025-08-30
查看a9f18263的 主题 / 回贴
4楼  发表于: 前天
从这个程序看,M10.0都会被置位,因为就是个简单的move指令,不会存在指令报错导致ENO不输出的情况。
如果前面用了DIV_I除法指令,你/0了导致指令报错,这时候他的ENO不会输出,那么就会导致M10.0不会被置为1。
a9f18263
级别: 探索解密
精华主题: 0
发帖数量: 32 个
工控威望: 135 点
下载积分: 101 分
在线时间: 24(小时)
注册时间: 2022-07-04
最后登录: 2025-08-30
查看a9f18263的 主题 / 回贴
5楼  发表于: 前天
图片:
图片:
至于时序,我没看出任何差距。1500测试的trace也没感觉到明显差异。中间还加了1001次循环。
多嘴一句,你们可以先了解PLC怎么执行的,就没这个问题了。
fczxjh
级别: 论坛先锋
精华主题: 0
发帖数量: 657 个
工控威望: 1622 点
下载积分: 128 分
在线时间: 284(小时)
注册时间: 2019-07-15
最后登录: 2025-08-30
查看fczxjh的 主题 / 回贴
6楼  发表于: 前天
这两种写法,都在一个扫描周期内输出结果,无论扫描先后,对于不是重复扫描的对象(重复扫描的对象以最后扫描的状态为准),两种结果都一样,不会有区别。

扫描周期的原理,首先读取IO映射区,然后扫描一遍程序,再更新IO映射区。

那你应该能理解,无论用哪种方法写,一个周期扫描的结果一样就不存在谁先谁后,因为结果是扫描完统一更新到IO映射区。
西欧工控
多试一次,就会成功
级别: 工控侠客
精华主题: 0
发帖数量: 625 个
工控威望: 3344 点
下载积分: 78346 分
在线时间: 299(小时)
注册时间: 2010-09-21
最后登录: 2025-08-30
查看西欧工控的 主题 / 回贴
7楼  发表于: 前天
4楼回复比较正确,这时只是简单演示,第一个是为了保证有些指令执行正确,第2就不管正不正确都置位了
一朝风月
级别: 探索解密
精华主题: 0
发帖数量: 163 个
工控威望: 194 点
下载积分: 1255 分
在线时间: 94(小时)
注册时间: 2023-08-07
最后登录: 2025-08-29
查看一朝风月的 主题 / 回贴
8楼  发表于: 前天
PLC是一行一行扫描执行的,内存中寄存器值实时刷新,但在程序扫描一个周期完成才会驱动物理输出点.