建控电
野蛮其体魄、文明其精神!!
级别: 论坛先锋
精华主题: 0
发帖数量: 555 个
工控威望: 1593 点
下载积分: 3462 分
在线时间: 394(小时)
注册时间: 2013-12-16
最后登录: 2024-12-16
查看建控电的 主题 / 回贴
楼主  发表于: 2024-04-04 23:05
请教各位同行,
封装气缸功能块时,气缸动作和复位的防呆条件,只对手动有效,还是手动/自动都生效?
同理,轴定位时,去各目标位置时防呆条件,手动通常会封装在轴功能块里.自动去各目标位的防呆条件是封装在轴功能块里,还是写在自动流程里?
思路不同,主要看看大家都是怎么考虑的!!
小地主22
级别: 家园常客
精华主题: 0
发帖数量: 522 个
工控威望: 573 点
下载积分: 1714 分
在线时间: 425(小时)
注册时间: 2020-04-30
最后登录: 2024-12-19
查看小地主22的 主题 / 回贴
1楼  发表于: 2024-04-05 08:14
建议都有效
刺猬果果
级别: 探索解密
精华主题: 0
发帖数量: 93 个
工控威望: 172 点
下载积分: 2995 分
在线时间: 86(小时)
注册时间: 2022-04-18
最后登录: 2024-12-19
查看刺猬果果的 主题 / 回贴
2楼  发表于: 2024-04-05 20:47
我现在尝试把条件写在流程里,功能块只做执行,解耦后方便其它项目使用
飞仙遁帝
学无止境
级别: 工控侠客
精华主题: 0
发帖数量: 406 个
工控威望: 2446 点
下载积分: 13444 分
在线时间: 695(小时)
注册时间: 2015-02-28
最后登录: 2024-12-19
查看飞仙遁帝的 主题 / 回贴
3楼  发表于: 2024-04-07 09:54
可以在调用功能块外面把防呆有条件输出,不用防呆的就直接输出,这样改起来也方便
gxtmdb82164
级别: 论坛先锋
精华主题: 0
发帖数量: 769 个
工控威望: 1147 点
下载积分: 397 分
在线时间: 604(小时)
注册时间: 2019-09-22
最后登录: 2024-12-19
查看gxtmdb82164的 主题 / 回贴
4楼  发表于: 2024-04-07 13:52
同一个功能块内部要尽量简单,越简单越好,换句话说就是功能越单一越好

气缸的执行块最好就是只有气缸的动作执行,剩下的一切可以剥离的东西都提到外面去

同时,手动和自动也都调用同一个功能块,这样也不存在手动要写一份,自动又要写一份了,因为本质上你这两部分程序的区别(导致其不能共用)是因为调用方的逻辑不同,比如手动下少一些防呆处理等等,调用方的区别怎么可能要求被调用方去兼容呢,如果要兼容就要塞一堆东西进去,违反了上面能剥离的尽量剥离的原则

我自己的程序典型结构就是能分开的尽量分开,就以气缸控制为例,手动/自动模式切换有个明确的标志位,自动有自动的气缸使能,手动有手动的气缸使能,只有在正确的模式下,对应的使能才有效,我的习惯是在命名上用前缀区分,加上现在很多PLC编程软件有自动补全的了,写起来很快的

最后说一下防呆,这个一定都是定制的逻辑,和结构、工艺强相关的,这种代码就是非常dirty的(或者说标准化的成本很高,不可能有简洁又迅速的方法去实现),所以我都是直接写在气缸输出块的头顶上最近的位置,再复杂的防呆无非与或非组合,一两行梯形图足够,但是写在这里方便后续调试看过程变量