努力瑞
级别: 探索解密
精华主题: 0
发帖数量: 52 个
工控威望: 146 点
下载积分: 869 分
在线时间: 97(小时)
注册时间: 2016-06-04
最后登录: 2024-03-22
查看努力瑞的 主题 / 回贴
楼主  发表于: 2022-07-12 13:53
    之前有用过FX5U做过的项目,点数比较多,程序的会步数比较多,再加上很多使用FB块,使得程序很臃肿,造成程序扫描时间长达50-70ms!请问一下大家,这个有什么好的办法来解决
投湖自尽的鱼
级别: 略有小成
精华主题: 0
发帖数量: 299 个
工控威望: 346 点
下载积分: 1269 分
在线时间: 268(小时)
注册时间: 2020-10-23
最后登录: 2024-04-29
查看投湖自尽的鱼的 主题 / 回贴
1楼  发表于: 2022-07-12 16:59
尽量少用FB,会增加程序容量
枫落云端
施主,脚抬一下
级别: 略有小成

精华主题: 0
发帖数量: 341 个
工控威望: 465 点
下载积分: 1590 分
在线时间: 408(小时)
注册时间: 2017-10-10
最后登录: 2024-04-24
查看枫落云端的 主题 / 回贴
2楼  发表于: 2022-07-12 17:14
是否内部循环次数太多和很多根本不需一直执行的程序每次都执行。
比如
1、初始化程序,或者一些条件满足才允许一下的程序。
     PLC开机运行一次即可,可以使用跳转CJ加Px调用。ST语言使用IF语句可以达到按需调用子程序的目的。

2、循环语句同理,需要执行的时候调用一下即可,不需每个PLC扫描周期都执行。

3、一些重复或者有规律的赋值和置位,可以批量处理。
比如 某条件成立时, 需要多个连续的Mx值置位或复位,如 MOV K0 K4M0 可以把M0到M15全部复位。
如 D0到Dn 要全部赋值零, FMOV D0 Kn