建控电
野蛮其体魄、文明其精神!!
级别: 论坛先锋
精华主题: 0
发帖数量: 554 个
工控威望: 1591 点
下载积分: 3458 分
在线时间: 393(小时)
注册时间: 2013-12-16
最后登录: 2024-04-06
查看建控电的 主题 / 回贴
楼主  发表于: 26天前
请教各位同行,
封装气缸功能块时,气缸动作和复位的防呆条件,只对手动有效,还是手动/自动都生效?
同理,轴定位时,去各目标位置时防呆条件,手动通常会封装在轴功能块里.自动去各目标位的防呆条件是封装在轴功能块里,还是写在自动流程里?
思路不同,主要看看大家都是怎么考虑的!!
小地主22
级别: 略有小成
精华主题: 0
发帖数量: 331 个
工控威望: 379 点
下载积分: 1311 分
在线时间: 297(小时)
注册时间: 2020-04-30
最后登录: 2024-04-29
查看小地主22的 主题 / 回贴
1楼  发表于: 25天前
建议都有效
cdgong
级别: 探索解密
精华主题: 0
发帖数量: 39 个
工控威望: 111 点
下载积分: 1132 分
在线时间: 22(小时)
注册时间: 2022-04-18
最后登录: 2024-04-29
查看cdgong的 主题 / 回贴
2楼  发表于: 25天前
我现在尝试把条件写在流程里,功能块只做执行,解耦后方便其它项目使用
飞仙遁帝
学无止境
级别: 工控侠客
精华主题: 0
发帖数量: 391 个
工控威望: 2020 点
下载积分: 10918 分
在线时间: 588(小时)
注册时间: 2015-02-28
最后登录: 2024-04-29
查看飞仙遁帝的 主题 / 回贴
3楼  发表于: 23天前
可以在调用功能块外面把防呆有条件输出,不用防呆的就直接输出,这样改起来也方便
gxtmdb82164
级别: 论坛先锋
精华主题: 0
发帖数量: 655 个
工控威望: 1033 点
下载积分: 120 分
在线时间: 531(小时)
注册时间: 2019-09-22
最后登录: 2024-04-29
查看gxtmdb82164的 主题 / 回贴
4楼  发表于: 23天前
同一个功能块内部要尽量简单,越简单越好,换句话说就是功能越单一越好

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

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

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

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