分享

【伺服圆桌会】浅谈S7-1500T 运动控制指令的控制时序

 阿明哥哥资料区 2020-03-31
       在1500T的用户程序中,可以通过运动控制指令将作业传送到工艺对象中。并通过这些运动控制指令的输入参数,对该作业进行定义。当前作业的状态将在输出参数中显示。如下图所示:

轴的绝对定位指令

工艺对象”TO_1”通过运动控制指令MC_MoveAbsolute进行绝对定位,左侧输入参数设置绝对定位的动态参数,右侧输出状态显示工艺对象”TO_1”当前的状态。

通过设置运动控制指令的参数“Execute”或“Enable”可以启动运动控制作业。运行运动控制作业时,应该同时注意工艺对象的状态。应该按如下步骤启动运动控制作业:

· 查询工艺对象的状态。

· 初始化用于工艺对象的新作业。

· 检查作业状态。

还是以绝对定位指令为例进行说明:

1.  查询工艺对象的状态

1)  是否已释放工艺对象

为了执行运动作业,必须启用工艺对象。例如:可以使用运动控制指令MC_Power完成启用.MC_Power.Status参数<TO>.StatusWord.X0 (Enable)的值必须显示为 True。

2)  是否有未决工艺报警

为了执行运动控制指令,不得有未决工艺报警或报警响应。例如: 工艺对象 <TO>.ErrorDetail.Number.<TO>.ErrorDetail.Reaction的变量值必须显示为零。如果需要复位错误,可以使用运动控制指令“MC_Reset”对未决报警进行确认。

3)  工艺对象是否已归位

为了执行绝对定位作业,必须使定位轴/同步轴工艺对象回原点。例如:工艺对象<TO>.StatusWord.X5 (HomingDone) ”变量的值必须显示为 True 。可以使用运动控制指令“MC_Home”实现回原点操作。

2.  初始化用于工艺对象的新指令

在指令” MC_MoveAbsolute”的输入参数”position””velocity”等参数中指定轴的动态响应参数.此后将在参数”execute”的上升沿启动作业.

3.  检查指令状态

运动控制指令的参数“Done”表示作业已成功完成(在本示例中表示已到达目标位置)。如果检测到错误,则运动控制指令的参数“Error”被设置为 True,且作业被拒绝。

每次调用运动控制指令时,都会更新这些状态参数.在跟踪作业时,会区分为以下三种形式:

· 带”Done”参数的运动控制指令

· 不带”Done”参数的运动控制指令

·  运动控制指令”MC_Movejog”(特例)

以下分别对以上三种形式为例,来对运动控制指令的时序进行说明:

1.  带”Done”参数的运动控制指令

带“Done”参数的运动控制指令的作业在参数“Execute”上升沿开始。如果该作业已经完成且未出现错误或者未被其它任务中断(例如“MC_MoveAbsolute”:已经到达目标位置),则参数“Done”会显示值 TRUE。

以下通过不同情形对这些参数特性进行说明:

1)完成作业执行过程


     从图中可以看出,如果在完成作业前”Execute”被设置为False,则参数”Done”仅在一个执行周期内显示为True.

2)作业中止

    从图中可以看出,如果在完成作业前”Execute”被设置为False,则参数”CommandAborted”仅在一个执行周期内显示为True.

      3)作业执行期间出错

    从图中可以看出,如果在完成作业前”Execute”被设置为False,则参数”Error”仅在一个执行周期内显示为True.

2.不带”Done”参数的运动控制指令

不带“Done”参数的运动控制指令使用特殊参数来指示已达到指令目标(例如,“InVelocity”、“InGear”)。

以下以”MC_MoveVelocity”指令为例来对运动控制指令的时序进行说明:

在参数“Execute”的上升沿开始“MC_MoveVelocity”作业。当达到指定的速度且轴以恒定速度移动时,就达到了作业目标。在达到并保持指定的速度时,将在参数“InVelocity”中用值为 True 进行指示。

以下通过不同情形对这些参数特性进行说明:

1)达到并维持指定的速度

从图中可以看出”Invelocity”与”Busy”的状态与”Execute”无关.

2)作业在达到分配的速度前中止

如果在达到分配的速度前,运动控制指令被另一个作业中止,例如”MC_halt”,则会通过参数”CommandAborted”=True进行指示,从图中可以看出,此状态的显示时间受到”Execute”的信号状态影响,如果在中止作业之前,已经将”Execute”设置为False,则”CommandAborted”仅在一个周期内显示为True.

3)达到指定的速度前出错

       如果在达到分配的速度前,在执行运动控制工作时出错,则会通过参数“Error”= True进行指示。从图中可以看出,此状态的显示时间受到”Execute”的信号状态影响,如果在中止作业之前,已经将”Execute”设置为False,则”Error”仅在一个周期内显示为True.

3.运动控制指令”MC_Movejog”

通过设置参数“JogForward” 或 “JogBackward”启动“MC_MoveJog”作业。当达到指定的速度且轴以恒定速度移动时,就达到了作业目标。在达到并保持指定的速度时,将在参数“InVelocity”中用值为 True 进行指示。

当参数“JogForward”或“JogBackward”的值已设置为 False 并且轴已停止时,作业完成。

以下通过不同情形对这些参数特性进行说明:

1)达到并维持指定的速度

从图中可以看出轴在执行作业的期间”Busy”会显示为True,在到达指定速度后”Invelocity”会变为True.

轴在重置参数”JogForward”或者”JogBackward”时,轴将会减速,此时”Invelocity”会变为False,但是当轴停止以后”Busy”的值才会变为False.

      2)作业在执行期间中止

从图中可以看出在中止作业时”Busy”会变为False,“CommandAborted”将变为True。

但是在重置参数”JogForward”或者”JogBackward”时,参数“CommandAborted”也将变为False.

      3)在执行作业期间发生错误

      从图中可以看出在发生错误时,”Busy”会变为False, ”Error”将变为”True”,但是在重置”JogForward”或者”JogBackward”时,参数”Error”也将变为False.

综上所述,我们可以获取轴的当前状态,例如:轴是否定位完成等等,通过获取到的轴状态,我们可以进行进一步的编程,实现顺序控制等功能,同时必须要强调在编程中考虑轴的指令状态的存在时间,以防止在某些情况下,由于轴的状态存在时间很短导致无法获取当前状态,造成顺序控制无法执行下去的问题.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多