TIA_V19中,使用MCL运动解释器进行运动控制,怎么实现暂停功能?

已锁定

农夫山自来水

  • 帖子

    51
  • 精华

    0
  • 被关注

    0

论坛等级:侠士

注册时间:2019-05-06

黄金 黄金 如何晋级?

TIA_V19中,使用MCL运动解释器进行运动控制,怎么实现暂停功能?

1104

3

2024-03-15 09:45:01

展开查看
引用自找答案,问题ID:303583

TIA19可以组态运动解释器的工艺对象,一般运动控制都会有程序暂停的工艺要求,例如运动机构在由A点向B点进行线性运动时按下暂停按钮,机构减速停止。点击启动后,程序继续执行。
MCL程序是顺序向下执行(已经处理完的程序,不在扫描。),MC_StopProgram能使解释器程序停止,但再次触发MC_RunProgram指令后,程序会重新开始执行。
执行解释器程序时,不能调用其他PLCOpen指令,如MC_GroupInterrupt,否则会解释器工艺对象会报错。

提问者:农夫山自来水


菜鸟中的菜鸡 回答道:

在TIA Portal V19(假设您提到的是这个版本)中,组态运动控制系统时,确实需要考虑到程序的暂停和恢复功能。对于您描述的场景,即当运动机构在由A点向B点进行线***时按下暂停按钮,机构减速停止,然后点击启动后,程序继续执行,我们需要采取特定的策略来实现这一需求,因为标准的MC_StopProgram指令会导致程序完全停止并从头开始,而不是从停止的位置继续执行。

首先,关于您提到的错误,将`MC_GroupInterrupt`误写为`MC_GroupStop`。`MC_GroupStop`确实可以使轴组停下来,但如果在运动解释器程序中使用它,可能会导致解释器报错,因为这违反了解释器的执行逻辑。解释器期望按照既定的顺序执行运动命令,而突然停止整个轴组可能会导致状态同步问题。

为了实现您想要的功能,即在不引发错误的情况下暂停和恢复运动,我们可以采用以下策略:

1. **状态监测与控制变量:** 在您的程序中定义一个控制变量(如`isPaused`),用于监测是否接收到了暂停指令。同时,在运动任务执行过程中,通过检查这个变量来决定是否需要进入暂停状态。

2. **使用MC_Halt进行暂停:** 当检测到暂停条件(如按钮被按下)时,可以使用`MC_Halt`指令来减速停止当前的运动。`MC_Halt`允许您在保持当前位置的情况下停止运动,这样就能在之后从这个点继续执行。

3. **记录当前位置和状态:** 在执行暂停操作时,记录下当前的位置以及必要的状态信息,以便在之后恢复运动时使用。

4. **恢复运动:** 当接收到恢复指令时(如再次点击启动按钮),根据之前记录的位置和状态信息,使用`MC_MoveAbsolute`或`MC_MoveRelative`等指令从停止的位置继续执行运动。

5. **逻辑处理:** 在整个过程中,需要确保逻辑处理得当,避免在运动暂停和恢复过程中出现冲突或错误。例如,确保在恢复运动之前,所有的准备条件都已满足。

通过上述策略,您可以在不直接使用`MC_GroupStop`导致解释器报错的情况下,实现运动控制程序的暂停和恢复功能。需要注意的是,具体实现时还需要考虑到您的系统特定要求和配置,上述策略可能需要相应地调整和优化。

还有1人在找答案上回答了该问题,查看全部>
感谢回答者“菜鸟中的菜鸟”的回答,其提到使用MC_Halt进行暂停,但我也尝试过,确实能暂停成功,但暂停完成后,运动解释器工艺对象便会报警。
这是V19的运动解释器示例项目,大家可以看看。
https://support.industry.siemens.com/cs/document/109826233/simatic-motion-interpreter-getting-started?dti=0&dl=en&lc=zh-CN
TIA_V19中,使用MCL运动解释器进行运动控制,怎么实现暂停功能? 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10611条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。