样例程序1:MM_S1_Vis_Basic

程序简介

功能说明

PLC触发Mech-Vision工程运行,然后获取视觉结果。

文件路径

Mech-Vision和Mech-Viz软件安装目录下Communication Component/Robot_Interface/Siemens Snap7/TIA Portal/sample applications/SampleProjectSnap7.zip

所需工程

Mech-Vision工程

使用前提

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

  2. 已完成自动标定

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

程序解读

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

sample1 1
sample1 2
sample1 3
sample1 4
sample1 5
sample1 6

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

sample1 7

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

  • 关于西门子PLC使用Snap7通信的标准接口指令,可单击如下解释中指令名称的超链接,便可查看该指令的详细说明。

  • 关于西门子S7系列PLC自带的常用基本指令,可参考常用指令说明

流程 梯形图及说明

初始化参数

sample1 1
  • "MM Interface".FromCamera."Status Code":视觉系统状态码。

  • P_TRIG:扫描逻辑运算结果("MM Interface".FromCamera."Status Code"等于0)的信号上升沿。

  • MOVE:将"Camera_Pose_Ready"赋值为2。

  • "Camera_Pose_Ready":PLC是否已获取视觉结果,可取如下值。

    • 0:相机将要或已拍照,或Mech-Vision正在计算视觉结果,此时PLC未获取到视觉结果。

    • 1:相机已拍照,且PLC已获取到视觉结果。

    • 2:相机准备开始第一次拍照,此时PLC未获取到视觉结果。

因此,Network 1表示仅在"MM Interface".FromCamera."Status Code"等于0,且P_TRIG检测到上升沿时,将"Camera_Pose_Ready"初始化为2。

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

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

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

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

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

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

sample1 3
  • "User_Vision_Project_Num":Mech-Vision工程编号。

  • "User_Robot_Pose_Type":指定真实机器人的位姿将以何种形式传Mech-Vision工程。该参数值将赋值给MM_Start_Vis指令中Robot_Pose_Type参数。本样例此处设置为0,用户可根据实际需求修改此处值。

  • "Camera_User".Robot_Pose[0,0]~[0,5]:机器人6个关节角数据。该参数值将赋值给MM_Start_Vis指令中Robot_Pose[0,0]~[0,5]参数。本样例此处设置为0.0,用户可根据实际需求修改此处值,同时也可以添加机器人法兰位姿数据(MM_Start_Vis指令中Robot_Pose[1,0]~[1,5]参数)。

因此,Network 3表示,将Mech-Vision工程编号设置为1,将"User_Robot_Pose_Type"设置为0;若Mech-Vision工程编号等于1,且"User_Robot_Pose_Type"等于0,则将"Camera_User".Robot_Pose[0,0]~[0,5]依次设置为0.0。

触发外部拍照信号

sample1 4
  • "External_Photo_Signal":外部拍照信号,上升沿有效。

  • "MM Interface".FromCamera."Status Code":视觉系统状态码。1102表示PLC成功触发Mech-Vision工程运行。1100表示PLC成功获取到视觉结果。

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

  • "Camera_User".Get_VisData:触发获取Mech-Vision视觉结果的标志,上升沿有效。

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

  1. 首次拍照。"MM Interface".FromCamera."Status Code"等于0,且"Camera_Pose_Ready"等于2。

  2. 正常下次拍照。"MM Interface".FromCamera."Status Code"等于1100。

  3. 异常下次拍照。"MM Interface".FromCamera."Status Code"不等于1100,且"Camera_User".Status_Code_Error[0]和"Camera_User".Status_Code_Error[1]均等于False。

最后,将"Camera_User".Step_Num赋值为5,并复位"Camera_User".Start_Vis和"Camera_User".Get_VisData;同时将"Camera_Pose_Ready"赋值为0。

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

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

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

  1. 使能功能MM_Start_Vis,此时需要获取的位姿数量Req_Pose_Num默认为0(即获取所有视觉点,最大值为20)。

  2. 当"MM Interface".FromCamera."Trigger Acknowledge"等于False,且"Camera_User".Status_Code_Error[0]等于False时,置位"Camera_User".Start_Vis,PLC将触发Mech-Vision工程运行。

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

  4. 若"MM Interface".FromCamera."Status Code"等于1102,即视觉系统已成功执行PLC发送的指令,此时通过P_TRIG指令取该逻辑输出上升沿,将"Camera_User".Step_Num赋值为10,然后复位"Camera_User".Start_Vis和"Camera_User".Status_Code_Error[0]。

获取Mech-Vision视觉结果,并判断是否成功获取视觉结果从而做出不同处理

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

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

  1. 使能功能MM_Get_VisData

  2. 当"MM Interface".FromCamera."Trigger Acknowledge"等于False,且"Camera_User".Status_Code_Error[1]等于False时,置位"Camera_User".Get_VisData,PLC开始获取Mech-Vision工程输出的视觉结果。

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

  4. 若"MM Interface".FromCamera."Status Code"等于1100,即视觉系统已成功执行PLC发送的指令,此时复位"Camera_User".Get_VisData和"Camera_User".Status_Code_Error[1];通过P_TRIG指令取"MM Interface".FromCamera."Status Code"等于1100的逻辑输出上升沿,将"Camera_User".Step_Num赋值为0,将"Camera_Pose_Ready"赋值为1,即PLC已获取到视觉结果,可将获取的视觉结果转发给机器人使用。

我们重视您的隐私

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