样例程序2:MM_S2_Viz_Basic

程序简介

功能说明

PLC触发Mech-Viz工程运行,然后获取Mech-Viz规划的路径。

文件路径

Mech-Viz和Mech-Viz软件安装目录下Communication Component/Robot_Interface/EthernetIP/Programming Samples/AB PLC EthernetIP/sample applications/ExportedRoutineOfSampleProjects/MM_S2_Viz_Basic.L5X

所需工程

Mech-Vision工程和Mech-Viz工程

使用前提

  1. 已完成标准接口通信配置

  2. 已完成自动标定

此样例程序仅是示例程序。用户需根据实际情况在此基础上进行修改,请勿直接使用该程序。

程序解读

以下为MM_S2_Viz_Basic样例程序的梯形图及相关解释说明。

sample2 1
sample2 2
sample2 3
sample2 4
sample2 5
sample2 6
sample2 7

上述样例程序梯形图对应的流程如下图所示。

sample2 8

下表为上述程序的逻辑解读。

  • 关于AB PLC的标准接口指令,可单击如下解释中指令名称的超链接,便可查看该指令的详细说明。

  • 关于AB PLC自带的常用基本指令,可参考常用指令说明

流程 梯形图及说明

PLC与视觉系统建立通信

sample2 1
  • ToCamera.COMM_ENABLE:是否使能触发信号。True表示触发信号将起作用,视觉系统将接收PLC发送的指令。False表示视觉系统将忽略PLC发送的指令。

  • S:FS:仅在第一个扫描周期导通。

  • MOV:将Camera_Pose_Ready赋值为2。

  • Camera_Pose_Ready:PLC是否已获取规划路径,可取如下值。

    • 0:相机将要或已拍照,或Mech-Viz正在计算规划路径,此时PLC未获取到规划路径。

    • 1:相机已拍照,且PLC已获取到规划路径。

    • 2:相机准备开始第一次拍照,此时PLC未获取到规划路径。

因此,Rung 0表示置位ToCamera.COMM_ENABLE,仅在第一个扫描周期时将Camera_Pose_Ready赋值为2。

复位视觉系统状态码异常标志

sample2 2
  • Camera_User.Status_Code_Error[0]:视觉系统状态码异常标志。True表示Mech-Viz工程未成功运行,即视觉系统发生异常。

  • Camera_User.Status_Code_Error[1]:视觉系统状态码异常标志。True表示Mech-Viz工程未成功输出规划路径,即视觉系统发生异常。

  • External_Reset_Camera_Error:外部复位信号。在视觉系统发生异常时,当信号从False变为True,将其后的Camera_User.Status_Code_Error[0]和Camera_User.Status_Code_Error[1]复位。

因此,Rung 1表示External_Reset_Camera_Error导通时,复位Camera_User.Status_Code_Error[0]和Camera_User.Status_Code_Error[1]。

设置Mech-Viz工程相关的接口参数

sample2 3
  • User_Robot_Pose_Type:指定真实机器人的位姿将以何种形式传Mech-Viz工程。该参数需要与MM_Start_Viz指令中Robot_Pose_Type参数保持一致。本样例此处设置为2,用户可根据实际需求修改此处值。

因此,Rung 2表示将User_Robot_Pose_Type设置为2。

sample2 4
  • Camera_User.Robot_Pose_JPS[0]~[5]:机器人6个关节角数据。当User_Robot_Pose_Type为2时,此处关节角是机器人端自定义的关节角。Camera_User.Robot_Pose_JPS[0]~[5]需要与MM_Start_Viz指令中Robot_Pose_JPS参数保持一致。本样例此处将机器人J1~J6的关节角依次设置为10000、20000、30000、40000、50000、60000,用户可根据实际需求修改此处值,同时也可以添加机器人法兰位姿数据(即MM_Start_Viz指令中Robot_Pose_TCP参数)。

因此,Rung 3表示,若User_Robot_Pose_Type等于2,则将Camera_User.Robot_Pose_JPS[0]~[5]依次设置为10000、20000、30000、40000、50000、60000。

触发外部拍照信号

sample2 5
  • External_Photo_Signal:外部拍照信号,上升沿有效。

  • Camera_User.Set_Edge[0]:通过ONS指令获取External_Photo_Signal上升沿。

  • FromCamera.STATUS_CODE:视觉系统状态码。2103表示PLC成功触发Mech-Viz工程运行。2100表示PLC成功获取到Mech-Viz规划的路径。

  • FromCamera.COMMAND_COMPLETE:视觉系统是否已将PLC发送的指令执行完成。True表示已执行完成,False表示未执行完成。

  • Camera_User.Start_Viz:触发Mech-Viz工程运行的标志,上升沿有效。

  • Camera_User.Get_VizData:触发获取Mech-Viz规划路径的标志,上升沿有效。

因此,Rung 4表示获取外部拍照信号External_Photo_Signal上升沿,串联如下三种拍照场景。

  1. 首次拍照。FromCamera.STATUS_CODE等于0,且Camera_Pose_Ready等于2。

  2. 正常下次拍照。FromCamera.STATUS_CODE等于2100,且FromCamera.COMMAND_COMPLETE等于True。

  3. 异常下次拍照。FromCamera.STATUS_CODE不等于2100,且Camera_User.Status_Code_Error[0]和Camera_User.Status_Code_Error[1]均等于False。

最后,将Camera_User.Step_Num赋值为5,将Camera_Pose_Ready赋值为0,并复位Camera_User.Start_Viz和Camera_User.Get_VizData。

触发Mech-Viz工程运行,并判断是否成功触发工程从而做出不同处理

sample2 6
在MM_Start_Viz指令中,关于各输入与输出参数的详细解释,可参考MM_Start_Viz指令说明。

Rung 5表示,若Camera_User.Step_Num等于5,则执行以下逻辑。

  1. 使能功能块MM_Start_Viz

  2. 当MM_Start_Viz.EnableOut等于True,且FromCamera.TRIGGER_ACKNOWLEDGE等于False时,置位Camera_User.Start_Viz,PLC将触发Mech-Viz工程运行。

  3. 若FromCamera.STATUS_CODE大于等于2001,且小于等于2099,即视觉系统发生异常,此时通过ONS指令获取该逻辑输出上升沿,置位Camera_User.Status_Code_Error[0],并复位Camera_User.Start_Viz。用户可根据标准接口状态码及错误排查手册查找具体状态码对应的错误原因。

  4. 若FromCamera.STATUS_CODE等于2103,且FromCamera.COMMAND_COMPLETE等于True,即视觉系统已成功执行PLC发送的指令,此时通过ONS指令取该逻辑输出上升沿,将Camera_User.Step_Num赋值为10,然后复位Camera_User.Status_Code_Error[0]和Camera_User.Start_Viz。

获取Mech-Viz规划路径,并判断是否成功获取规划路径从而做出不同处理

sample2 7
在MM_Get_VizData指令中,关于各输入与输出参数的详细解释,可参考MM_Get_VizData指令说明。

Rung 6表示,若Camera_User.Step_Num等于10,则执行以下逻辑。

  1. 使能功能块MM_Get_VizData

  2. 当MM_Get_VizData.EnableOut等于True,且FromCamera.TRIGGER_ACKNOWLEDGE等于False时,置位Camera_User.Get_VizData,PLC开始获取Mech-Viz工程输出的规划路径。

  3. 若FromCamera.STATUS_CODE大于等于2001,且小于等于2099,即视觉系统发生异常,此时通过ONS指令取该逻辑输出上升沿,置位Camera_User.Status_Code_Error[1],并复位Camera_User.Get_VizData。用户可根据标准接口状态码及错误排查手册查找具体状态码对应的错误原因。

  4. 若FromCamera.STATUS_CODE等于2100,且FromCamera.COMMAND_COMPLETE等于True,即视觉系统已成功执行PLC发送的指令,此时复位Camera_User.Status_Code_Error[1]和Camera_User.Get_VizData;通过ONS指令取FromCamera.STATUS_CODE等于2100、FromCamera.COMMAND_COMPLETE等于True的逻辑输出上升沿,将Camera_Pose_Ready赋值为1,将Camera_User.Step_Num赋值为0,即PLC已获取到Mech-Viz规划路径,可将获取的规划路径转发给机器人使用。

我们重视您的隐私

我们使用 cookie 为您在我们的网站上提供最佳体验。继续使用该网站即表示您同意使用 cookie。如果您拒绝,将使用一个单独的 cookie 来确保您在访问本网站时不会被跟踪或记住。