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`导致解释器报错的情况下,实现运动控制程序的暂停和恢复功能。需要注意的是,具体实现时还需要考虑到您的系统特定要求和配置,上述策略可能需要相应地调整和优化。