求助大神帮忙看看这个问题是否有思路 点击:381 | 回复:10



StarDust0v0

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 0回
  • 年度积分:53
  • 历史总积分:53
  • 注册:2024年7月06日
发表于:2024-08-02 18:12:41
楼主

机器在自动运行中,这时候发现了一个错误,需要我们手动更改气缸的位置,将它暂停切换为手动模式,然后点了气缸,此时没把气缸还原为手动模式前的状态。这时候再打自动是启动不了的,整个机器就呆住了,我想在这时做个防呆,并且需要报警出哪个气缸出错,需要复位。 这个逻辑要怎么写??



谢谢各位大神!



楼主最近还看过



PLC军团-yeye_carily

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 74回
  • 年度积分:2
  • 历史总积分:635
  • 注册:2012年3月21日
发表于:2024-08-04 12:29:02
1楼

具体是什么样的,我可以大约写程序,或者你把程序发上来看看

回复本条

    

呆萌哈士奇

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 45回
  • 年度积分:205
  • 历史总积分:3714
  • 注册:2016年8月04日
发表于:2024-08-05 15:25:24
2楼

打到手动时,先保存一下气缸位的Bit状态,再把所有的Bit组成一个字;关闭手动时先比较一下当前气缸的“组合字”和打手动时保存的“组合字”是否一致?不一致的话异或操作一下就可以知道哪几个气缸没有被复原,对应报警就可以了。

如果有疑问可V W1649739144

回复本条

    

cikeri

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 42回
  • 年度积分:0
  • 历史总积分:70
  • 注册:2012年8月03日
发表于:2024-08-07 09:04:24
3楼

如果不存在卡料的情况直接在自动之前写一个回位程序

回复本条

    

Zhao15

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 6回
  • 年度积分:0
  • 历史总积分:60
  • 注册:2019年10月11日
发表于:2024-08-07 14:59:22
4楼

切换到手动之前记录输出状态,再次切换到自动模式下进行对比,如果和记录不一样的那么就报警提示


回复本条

    

秋雨留雁聲

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 42回
  • 年度积分:1
  • 历史总积分:118
  • 注册:2011年1月04日
发表于:2024-08-12 16:04:22
5楼

你这个呆住了。是在步序中么?如果不在步序中,手动切换到自动时,可不可以把气缸全复位?

如果在步序中,想保留之前的步序。那么就可以用步序做报警,走一步给一步的反馈,没走就有反馈,可以直接报警,这样是不是就能定位报警点了?

回复本条

    

冲出枪林弹雨

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 68回
  • 年度积分:0
  • 历史总积分:886
  • 注册:2015年9月04日
发表于:2024-08-12 22:20:02
6楼

同意5楼的做法哈,切到自动呆住,无非就是条件没接通,流程走不下去;这种情况满足条件执行下一步,不满足条件就做一个报警提示,是比较快速实现的做法


如果不想停机人工干预,就直接根据不满足条件去跳到一个新步里,做一个满足条件的动作,跳回去;这个就稍稍麻烦点,根据实际情况,你可以自行调整;


流程步就执行一个到两个动作,不要搞太多动作在一个里面,这样维护和查看都便利些。


回复本条

    

幼儿园中班

  • 精华:0帖
  • 求助:3帖
  • 帖子:3帖 | 407回
  • 年度积分:301
  • 历史总积分:2607
  • 注册:2013年12月08日
发表于:2024-08-13 13:37:44
7楼

来学习打卡~

回复本条

    

fb19701226

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 8回
  • 年度积分:4
  • 历史总积分:11
  • 注册:2016年12月13日
发表于:2024-08-27 13:35:50
8楼

要检查下程序,看看暂停和手自动切换执行了哪些程序,对比步序对气缸位置的要求,发现异常时报警

回复本条

    

JSdanzi

  • 精华:0帖
  • 求助:0帖
  • 帖子:12帖 | 685回
  • 年度积分:25
  • 历史总积分:11865
  • 注册:2012年9月22日
发表于:2024-09-12 11:23:50
9楼

1. 定义状态变量

首先,你需要定义一些状态变量来跟踪气缸的状态:

  • 气缸状态(如 CylinderStatus):记录气缸当前的位置和模式(自动或手动)。

  • 气缸错误标志(如 CylinderError):当气缸位置不正确时设置为真。

  • 复位信号(如 ResetSignal):用于复位气缸状态。

2. 监测和设置气缸状态

在自动模式下,当气缸位置被更改时,检测气缸是否处于预期的位置。

Copy Code// 假设气缸位置监测输入为 CylinderPositionInput// 假设气缸状态为 CylinderMode(自动/手动)IF CylinderMode == MANUAL THEN    // 检查气缸是否在预期位置
    IF NOT ExpectedCylinderPosition THEN        // 设置错误标志
        CylinderError := TRUE;    ELSE
        CylinderError := FALSE;
    END_IFELSE
    // 自动模式下,清除错误标志
    CylinderError := FALSE;
END_IF

3. 处理启动自动模式

在自动模式下,检查是否有气缸错误标志,若有则报警并阻止启动。

Copy Code// 假设启动自动模式的输入为 StartAutoMode// 假设报警输出为 CylinderErrorAlarmIF StartAutoMode THEN    IF CylinderError THEN        // 激活报警
        CylinderErrorAlarm := TRUE;        
        // 停止启动过程
        AutoModeActive := FALSE;        
        // 显示哪个气缸出错
        // 假设显示气缸错误的函数为 ShowCylinderError
        ShowCylinderError();    ELSE
        // 继续启动自动模式
        AutoModeActive := TRUE;
        CylinderErrorAlarm := FALSE;
    END_IF
END_IF

4. 复位处理

当气缸错误标志被激活时,可以提供复位功能以允许操作员复位气缸。

Copy Code// 假设复位信号输入为 ResetSignal// 假设复位操作为 ResetCylinder()IF ResetSignal THEN    // 执行复位操作
    ResetCylinder();    
    // 清除气缸错误标志
    CylinderError := FALSE;    
    // 重置报警
    CylinderErrorAlarm := FALSE;
END_IF

5. 报警处理

设置报警显示和日志记录,确保操作员可以明确看到哪些气缸出错。

Copy Code// 显示报警信息IF CylinderError THEN    // 显示哪个气缸出错
    // 假设显示错误信息的函数为 DisplayErrorInfo
    DisplayErrorInfo();
END_IF


回复本条

    

Smile-lyc

  • [管理员]
  • 精华:136帖
  • 求助:54帖
  • 帖子:3608帖 | 23006回
  • 年度积分:1358
  • 历史总积分:162349
  • 注册:2006年8月04日
发表于:2024-09-21 10:17:37
10楼

感谢求助者和答疑者对求助答疑板块的厚爱,赠人玫瑰,手留余香。

对于求助者要求:

1、请在一个月内自行结贴,把悬赏积分(如果设置积分悬赏求助)发放给答疑者;

2、如果在求助答疑过程中,自己已经有效解决问题,建议大家把解决问题方法在自己求助帖分享,有效分享可以获得50积分奖励。

3、求助答疑板块版主结贴时间一般滞后30~45天,以方便大家对求助问题答疑足够时间,也为了每一个优秀答疑人员都可以获取到自己的积分和MP奖励。

4、2024龙年加油!龙年棒棒!


回复本条

    

热门招聘
相关主题

官方公众号

智造工程师