刺猬果果
级别: 探索解密
精华主题: 0
发帖数量: 93 个
工控威望: 172 点
下载积分: 2995 分
在线时间: 86(小时)
注册时间: 2022-04-18
最后登录: 2024-12-19
查看刺猬果果的 主题 / 回贴
楼主  发表于: 2024-05-09 23:23
最近在做气缸FB块,需要实现任意状态下手动点动过就要报警手动中自动不能启动,除非回到自动运行的状态,



  
第一个做出来了效果,就是过于繁琐,需要操作的变量太多了,准备优化下,
目前进度在第二张简化了很多,准备在三种状态下保存需要对比的记忆,自动,初始化,上电,实在想不到比较全的办法了;
诚心请教一下各位有什么思路吗
编程的灰松鼠
级别: 正式会员
精华主题: 0
发帖数量: 75 个
工控威望: 90 点
下载积分: 638 分
在线时间: 25(小时)
注册时间: 2024-04-28
最后登录: 2024-09-29
查看编程的灰松鼠的 主题 / 回贴
1楼  发表于: 2024-05-10 13:25
其实气缸标准块代码不少的,复杂是正常的。
手动操作过,就置一个位,可以设置为块的In_Out类型,气缸被手动操作过就置这个位,然后外层的程序当需要自动的时候,这个位就可以要求设备必须完成初始化才能后续
编程的灰松鼠
级别: 正式会员
精华主题: 0
发帖数量: 75 个
工控威望: 90 点
下载积分: 638 分
在线时间: 25(小时)
注册时间: 2024-04-28
最后登录: 2024-09-29
查看编程的灰松鼠的 主题 / 回贴
2楼  发表于: 2024-05-10 13:30
外层程序在开始初始化时复位这个手动操作过的记忆位
编程的灰松鼠
级别: 正式会员
精华主题: 0
发帖数量: 75 个
工控威望: 90 点
下载积分: 638 分
在线时间: 25(小时)
注册时间: 2024-04-28
最后登录: 2024-09-29
查看编程的灰松鼠的 主题 / 回贴
3楼  发表于: 2024-05-10 18:11
引用
引用第7楼望穿秋水月于2024-05-10 15:19发表的  :
会报警的,自动时的状态,和手动操作后的状态一致的话不会报警,气缸自动时是伸出,手动操作后也是伸出,不会报警,手动时是缩回,才会报警。

这样做不好,可以被人手动操作一下,把本该判废的零件放出去了。严格来说,手动操作过,设备复位,按找工件记忆恢复流程,如果工件状态根据记忆和传感器状况OK,就流转到该工艺步继续,如果零件有无法继续风险,直接走报废流程
编程的灰松鼠
级别: 正式会员
精华主题: 0
发帖数量: 75 个
工控威望: 90 点
下载积分: 638 分
在线时间: 25(小时)
注册时间: 2024-04-28
最后登录: 2024-09-29
查看编程的灰松鼠的 主题 / 回贴
4楼  发表于: 2024-05-10 18:18
引用
引用第5楼cdgong于2024-05-10 14:38发表的  :

我现在就是传入一个结构体变量,自动手动都是操作同一个变量控制气缸,这样需要急停也可以在外部直接控制变量;
状态记忆在自动模式未发生手动报错情况下一直保存气缸的状态,初始化过程中启动保存气缸状态


不好意思,你写的ST语言,实在耐不下心来看。
气缸块自己开发过几次,也读过其他大公司开发的块,目前还没碰到过完全满意的。 后来自己开发的气缸块,只能用来适用主控程序和触摸屏上做faceplate, 就是触摸屏标准快

想要做一个完美的块,同时考虑断电保持,光栅切入暂停,和安全联动,自动手动联锁,暂时没还没见到过,就是哪些50+年龄的老自动化公司也没有那么完美的,所以每次都在一个基础上根据项目的阀的使用方法和安全相关逻辑的修改成一个适用块
编程的灰松鼠
级别: 正式会员
精华主题: 0
发帖数量: 75 个
工控威望: 90 点
下载积分: 638 分
在线时间: 25(小时)
注册时间: 2024-04-28
最后登录: 2024-09-29
查看编程的灰松鼠的 主题 / 回贴
5楼  发表于: 2024-05-10 20:56
这个是回上一楼的,放弃这个思路,算是老人的忠告。 因为设备一多,回涉及互锁,判断互锁自动回归这个算法接近早期人工智能把所有应对方法对应一遍,非常繁杂。所以都是初始化设备再从起始点开始流程
[ 此帖被编程的灰松鼠在2024-05-10 21:48重新编辑 ]
编程的灰松鼠
级别: 正式会员
精华主题: 0
发帖数量: 75 个
工控威望: 90 点
下载积分: 638 分
在线时间: 25(小时)
注册时间: 2024-04-28
最后登录: 2024-09-29
查看编程的灰松鼠的 主题 / 回贴
6楼  发表于: 2024-05-10 21:02
引用
引用第11楼cdgong于2024-05-10 19:41发表的  :

我比较喜欢功能块只做报警,操作气缸单独用一个函数或者单独操作映射输出的点位,这样遇到光栅阻断断气退出再恢复气缸这些就好处理多了


直接置位和复位气缸的确是很简单有效,而且各种状态下切换也很方便,我的老东家之一就喜欢这样

这个模式唯一让人不舒服的时候是IO是别人命名的而且命名的一塌糊涂那时候,就想用功能块了,这样IO只要对一次就可以了