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



  
第一个做出来了效果,就是过于繁琐,需要操作的变量太多了,准备优化下,
目前进度在第二张简化了很多,准备在三种状态下保存需要对比的记忆,自动,初始化,上电,实在想不到比较全的办法了;
诚心请教一下各位有什么思路吗
刺猬果果
级别: 探索解密
精华主题: 0
发帖数量: 84 个
工控威望: 162 点
下载积分: 2834 分
在线时间: 76(小时)
注册时间: 2022-04-18
最后登录: 2024-11-19
查看刺猬果果的 主题 / 回贴
1楼  发表于: 2024-05-10 11:11
引用
引用第1楼望穿秋水月于2024-05-10 08:58发表的  :
B站的,手自动切换时的处理,梯形图写的。https://www.bilibili.com/video/BV1yr4217749/?spm_id_from=333.999.list.card_archive.click

谢谢,这个参考过,但是这个程序在气缸自动伸出切换到手动控制缩回后是不会报警的
刺猬果果
级别: 探索解密
精华主题: 0
发帖数量: 84 个
工控威望: 162 点
下载积分: 2834 分
在线时间: 76(小时)
注册时间: 2022-04-18
最后登录: 2024-11-19
查看刺猬果果的 主题 / 回贴
2楼  发表于: 2024-05-10 14:38
引用
引用第3楼编程的灰松鼠于2024-05-10 13:25发表的  :
其实气缸标准块代码不少的,复杂是正常的。
手动操作过,就置一个位,可以设置为块的In_Out类型,气缸被手动操作过就置这个位,然后外层的程序当需要自动的时候,这个位就可以要求设备必须完成初始化才能后续

我现在就是传入一个结构体变量,自动手动都是操作同一个变量控制气缸,这样需要急停也可以在外部直接控制变量;
状态记忆在自动模式未发生手动报错情况下一直保存气缸的状态,初始化过程中启动保存气缸状态
刺猬果果
级别: 探索解密
精华主题: 0
发帖数量: 84 个
工控威望: 162 点
下载积分: 2834 分
在线时间: 76(小时)
注册时间: 2022-04-18
最后登录: 2024-11-19
查看刺猬果果的 主题 / 回贴
3楼  发表于: 2024-05-10 14:43


再优化了一下,
自动为出现手动中就一直保存气缸状态;
初始化过程中标志位给cyl.i_Memory 赋值使能状态记忆;
刺猬果果
级别: 探索解密
精华主题: 0
发帖数量: 84 个
工控威望: 162 点
下载积分: 2834 分
在线时间: 76(小时)
注册时间: 2022-04-18
最后登录: 2024-11-19
查看刺猬果果的 主题 / 回贴
4楼  发表于: 2024-05-10 19:36
引用
引用第7楼望穿秋水月于2024-05-10 15:19发表的  :
会报警的,自动时的状态,和手动操作后的状态一致的话不会报警,气缸自动时是伸出,手动操作后也是伸出,不会报警,手动时是缩回,才会报警。

我看只在手动下气缸进才置位了M408,退回就会复位,只有一个标志位实现不了两种状态检测啊
刺猬果果
级别: 探索解密
精华主题: 0
发帖数量: 84 个
工控威望: 162 点
下载积分: 2834 分
在线时间: 76(小时)
注册时间: 2022-04-18
最后登录: 2024-11-19
查看刺猬果果的 主题 / 回贴
5楼  发表于: 2024-05-10 19:41
引用
引用第9楼编程的灰松鼠于2024-05-10 18:18发表的  :


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

.......

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