指令说明
本文介绍西门子 S7 系列 PLC 通过 TIA Portal 软件与Mech-Vision和Mech-Viz软件进行 Siemens PLC Snap 7 通信的指令。
指令说明
启动 Mech-Vision 工程
该指令用于只有 Mech-Vision 工程,没有 Mech-Viz 的场景。使用该指令触发 Mech-Vision 工程运行,执行相机拍照和视觉识别。
参数说明
输入参数:
-
Vision_Proj_Num:Mech-Vision 工程编号,可在 Mech-Vision 工程列表窗口中查看,工程名称前的数字表示工程编号;
-
Req_Pose_Num: 希望 Mech-Vision 输出的视觉结果数量,可设置范围[0-20],0 表示获取所有结果;
-
Robot_Pose_Type:机器人位姿类型,指定真实机器人的位姿将以何种形式传 Mech-Vision,其取值范围为 0~3;
-
Robot_Pose:机器人位姿,其值取决于 Robot_Pose_Type 参数值,数据类型为二维数组 Array[0..1, 0..5] of Real,其中 Array[0] 为机器人当前关节角,Array[1] 为机器人当前法兰位姿;
下表为 Robot_Pose_Type 与 Robot_Pose 参数取值的关系及说明。
Robot_Pose_Type 参数值 | Robot_Pose 参数值 | 说明 | 适用场景 |
---|---|---|---|
0 |
0, 0, 0, 0, 0, 0 |
无需向 Mech-Vision 传入机器人位姿 |
工程为 Eye To Hand 模式。若 Mech-Vision 工程中使用“路径规划”步骤,则路径规划的起始点为路径规划工具中设置的 Home 点。 |
1 |
机器人当前关节角+当前法兰位姿 |
需要将机器人的关节角和法兰位姿传入 Mech-Vision |
工程为 Eye In Hand 模式,除桁架机器人外的大多数机器人适用该设定。 |
2 |
机器人的当前法兰位姿 |
需要将机器人的当前法兰位姿传入 Mech-Vision |
工程为 Eye In Hand 模式,机器人无关节角数据,仅有法兰位姿数据(如桁架机器人)。 |
3 |
机器人路径规划起始点的关节角 |
需要将机器人路径规划起始点的关节角传入 Mech-Vision |
工程为 Eye To Hand 模式,并且 Mech-Vision 工程中存在“路径规划”步骤,且需要从机器人端设置“路径规划”步骤的起始点。 |
-
Start_Vision:触发 Mech-Vision 工程的运行,上升沿有效;
-
Trigger_Acknowledge:反馈 Command_Trigger 信号是否成功触发视觉系统,1表示触发成功,0表示未收到 Command_Trigger 信号;
输入/输出参数:
-
Set_Flag:“触发动作”标志位。
输出参数:
-
Vision_Proj_Num_O:Mech-Vision 工程编号;
-
Req_Pose_Num_O: Mech-Vision 输出的视觉点数量,0 表示获取所有视觉点;
-
Robot_Pose_Type_O:机器人位姿类型;
-
Robot_JPS:机器人关节角;
-
Robot_FL_Pose:机器人法兰位姿;
-
Command:指令码,由功能块自动赋值;
-
Command_Trigger:指令开关,由功能块自动触发。
MM Interface 数据块返回数据:
-
Status code:若无错误,则返回 1102 状态码,否则返回对应的错误码。
示例
示例说明
在该示例中,将"Camera_User".Step_Num设置为6,使能"MM_Start_Vis"功能,当变量 "Camera_User".Start_Vis 出现上升沿时,会触发 Mech-Vision 工程 1 的运行,并希望 Mech-Vision 工程 1 返回视觉结果,同时 PLC 将关节角和法兰位姿数据发送给 Mech-Vision 。
获取视觉目标点
该指令用于只用到 Mech-Vision 工程,无需用到 Mech-Viz 工程的场景。该指令用于启动 Mech-Vision 工程之后,获取视觉识别结果。
参数说明
输入参数:
-
Vision_Proj_Num:Mech-Vision 工程编号,可在 Mech-Vision 工程列表窗口中查看,工程名称前的数字表示工程编号;
-
Get_VisData:获取 Mech-Vision 工程的视觉识别结果,上升沿有效;
-
Trigger_Acknowledge:反馈 Command_Trigger 信号是否成功触发视觉系统,1表示触发成功,0表示未收到 Command_Trigger 信号。
输入/输出参数:
-
Set_Flag:“触发动作”标志位。
输出参数:
-
Vision_Proj_Num_O:Mech-Vision 工程编号;
-
Command:指令码,由功能块自动赋值;
-
Command_Trigger:指令开关,由功能块自动触发。
MM Interface 数据块返回数据:
-
Status code:若无错误,则返回 1100 状态码;否则返回对应的错误码;
-
Status of Pose Sent:1 表示写入的位姿数据为新数据。 PLC 读取位姿数据之后请将此寄存器复位;
-
Number of Pose Sent:视觉系统返回的识别结果个数。范围[1-20];
-
Target Pose:Mech-Vision 返回的机器人位姿数据,类型为 TCP;
-
Target Label:标签是 Mech-Vision 识别的该物体标签信息。返回标签值为整数。
示例
示例说明
在该示例中,将"Camera_User".Step_Num设置为8,使能"MM_Get_VisData"功能,当变量 "Camera_User".Get_VisData 出现上升沿时,用于获取 Mech-Vision 工程 1 的视觉结果。
切换 Mech-Vision 参数配方
Mech-Vision 软件的配方功能,用于不同工件识别时,修改 Mech-Vision 工程各步骤的参数,包括图像匹配模板、ROI、置信阈值等。该指令需要在 MM_Start_Vis 程序之前使用。
参数说明
输入参数:
-
Vision_Proj_Num:Mech-Vision 工程编号,可在 Mech-Vision 工程列表窗口中查看,工程名称前的数字表示工程编号;
-
Vision_Recipe_Num:Mech-Vision 工程中参数配方的编号。编号范围[1-99];
-
Switch_Recipe:切换 Mech-Vision 工程的参数配方,上升沿有效;
-
Trigger_Acknowledge:反馈 Command_Trigger 信号是否成功触发视觉系统,1表示触发成功,0表示未收到 Command_Trigger 信号。
输入/输出参数:
-
Set_Flag:“触发动作”标志位。
输出参数:
-
Vision_Proj_Num_O:Mech-Vision 工程编号;
-
Vision_Recipe_Num_O:Mech-Vision 工程中的参数配方编号;
-
Command:指令码,由功能块自动赋值;
-
Command_Trigger:指令开关,由功能块自动触发。
MM Interface 数据块返回数据:
-
Status code:若无错误,则返回 1107 状态码;否则返回对应的错误码。
示例
示例说明
在该示例中,将"Camera_User".Step_Num设置为4,使能"MM_Switch_Recipe"功能,当变量 "Camera_User".Switch_Recipe 出现上升沿时,会将 Mech-Vision 工程 1 的参数配方切换成编号为 2 的参数配方。
获取 Mech-Vision “路径规划”步骤的结果
在调用 MM_Start_Vis 之后,使用该指令获取 Mech-Vision 中“路径规划”步骤输出的免碰撞抓取路径。
在使用该指令时,Mech-Vision “输出”步骤的 端口类型 参数需要设置为“预定义(机器人路径)”。
在调用该指令前,请务必将 MM_Start_Vis 的 Req_Pose_Num 设置为 0,以减少调用该指令的次数。若 MM_Start_Vis 的 Req_Pose_Num 设置为 1,则每次调用该指令只会返回一个路径点,只有多次调用该指令才能接收全部路径点。 |
参数说明
输入参数:
-
Vision_Proj_Num:Mech-Vision 工程编号,可在 Mech-Vision 工程列表窗口中查看,工程名称前的数字表示工程编号;
-
Request_Pose_Type: 该参数用于指定“路径规划”步骤返回的路径点类型;
-
1
:路径点将以机器人关节角(JPs)的形式返回。 -
2
:路径点将以机器人工具位姿(TCP)的形式返回。
-
此处 Request_Pose_Type 和功能函数 MM_Start_Vis、MM_Start_Viz 中 Robot_Pose_Type 对应 MM Interface 数据块同一 “Pose Type” 变量,若需设定的值不同,则无法同时生效。 |
-
Get_VisData:获取 Mech-Vision “路径规划”步骤的结果,上升沿有效;
-
Trigger_Acknowledge:反馈 Command_Trigger 信号是否成功触发视觉系统,1表示触发成功,0表示未收到 Command_Trigger 信号。
输入/输出参数:
-
Set_Flag:“触发动作”标志位。
输出参数:
-
Vision_Proj_Num_O:Mech-Vision 工程编号;
-
Request_Pose_Type_O:“路径规划”步骤返回的路径点位姿类型,1 表示 JPs 类型,2 表示 TCP 类型;
-
Command:指令码,由功能块自动赋值;
-
Command_Trigger:指令开关,由功能块自动触发。
MM Interface 数据块返回数据:
-
Status code:若指令执行正常,则返回 1103 状态码;否则返回对应的错误码;
-
Status of Pose Sent:1 表示写入的位姿数据为新数据;PLC 读取位姿数据之后请将此寄存器复位;
-
Number of Pose Sent:“路径规划”步骤返回的路径点个数,范围[1-20];
-
Index of Vision Move:视觉移动路径点在路径中的位置;
-
Target Pose:数据格式为关节角或者 XYZ 欧拉角,取决于输入参数 Request_Pose_Type;
-
Target Label:Mech-Vision 识别的该物体标签信息,返回的标签值为整数;
-
Target Tool ID:路径规划工具中设置的末端工具编号。
示例
示例说明
在该示例中,将"Camera_User".Step_Num设置为12,使能"MM_Get_Planned_VisData"功能,当变量 "Camera_User".Get_VisData 出现上升沿时,用于接收 Mech-Vision 工程 1 返回的机器人移动路径,移动路径点数据类型为 JPs 类型。
获取 Mech-Vision 自定义数据
该指令用于从Mech-Vision“输出”步骤获取自定义端口的数据。
自定义端口的数据不能超过10个。获取的自定义数据是按照端口字母顺序(A~Za~z)排序。 |
参数说明
输入参数:
-
Vision_Proj_Num:Mech-Vision 工程编号,可在 Mech-Vision 工程列表窗口中查看,工程名称前的数字表示工程编号;
-
Get_VisData:获取 Mech-Vision 工程的视觉识别结果,上升沿有效;
-
Trigger_Acknowledge:反馈 Command_Trigger 信号是否成功触发视觉系统,1表示触发成功,0表示未收到 Command_Trigger 信号。
输入/输出参数:
-
Set_Flag:“触发动作”标志位。
输出参数:
-
Vision_Proj_Num_O:Mech-Vision 工程编号;
-
Command:指令码,由功能块自动赋值;
-
Command_Trigger:指令开关,由功能块自动触发。
MM Interface 数据块返回数据:
-
Status code:若无错误,则返回 1100 状态码;否则返回对应的错误码;
-
Status of Pose Sent:1 表示写入的位姿数据为新数据,PLC 读取位姿数据之后请将此寄存器复位;
-
Number of Pose Sent:视觉系统返回的识别结果个数,范围[1-20];
-
Target Pose:Mech-Vision 返回的机器人位姿数据,类型为 TCP;
-
Target Label:Mech-Vision 识别的该物体标签信息,返回的标签值为整数;
-
Custom Data Output:获取的自定义端口数据。
示例
示例说明
在该示例中,将"Camera_User".Step_Num赋值为10,使能"MM_Get_Custom_VisData"功能,当变量 "Camera_User".Get_VisData 出现上升沿时,用于获取 Mech-Vision 工程 1 的自定义端口数据。
启动 Mech-Viz 工程
该指令用于既用到 Mech-Vision 工程又用到 Mech-Viz 工程的场景,用于启动 Mech-Viz 工程,调用相应的 Mech-Vision 工程,并规划抓取路径。
参数说明
输入参数:
-
Robot_Pose_Type: 机器人位姿类型,指定真实机器人的位姿将以何种形式传 Mech-Viz,其取值范围为 0~2;
-
Robot_Pose:机器人位姿,其值取决于 Robot_Pose_Type 参数值,数据类型为二维数组 Array[0..1, 0..5] of Real,其中 Array[0] 为机器人当前关节角,Array[1] 为机器人当前法兰位姿;
下表为 Robot_Pose_Type 与 Robot_Pose 参数取值的关系及说明。
Robot_Pose_Type 参数值 | Robot_Pose 参数值 | 说明 | 适用场景 |
---|---|---|---|
0 |
0, 0, 0, 0, 0, 0 |
无需向 Mech-Viz 传入机器人位姿,Mech-Viz 中仿真机器人将从初始位姿 JPs = [0, 0, 0, 0, 0, 0] 开始移动到第一个路径点。 |
工程为 Eye To Hand 模式。不推荐使用该设定。 |
1 |
机器人当前关节角+当前法兰位姿 |
需要将机器人的当前关节角和法兰位姿传入 Mech-Viz,Mech-Viz 中仿真机器人将从传入的关节角开始移动到第一个路径点。 |
工程为 Eye In Hand 模式时,推荐使用该设定。 |
2 |
机器人端自定义的关节角 |
需要将机器人的一个示教点(非当前关节角)传入 Mech-Viz,用于在机器人处于拍照区域外时,提前触发 Mech-Viz 工程规划下一轮路径(如下图),Mech-Viz 中仿真机器人将从传入的示教点开始运动到第一个路径点。 |
工程为 Eye To Hand 模式时,推荐使用该设定。 |
Eye To Hand 模式下应将 Robot_Pose_Type 设为 2 的原因:
Eye To Hand 模式下,相机可在机器人回到拍照及抓取区域之前拍照,用于提前规划下一轮抓取路径,从而缩短节拍。 若此时将 Robot_Pose_Type 设为 1,即将机器人当前位姿发送给 Mech-Viz 仿真机器人,可能导致仿真机器人与真实机器人轨迹不一致,发生未预知的碰撞,造成危险。 即仿真机器人将直接从当前位姿移动至 Mech-Viz 中第一个移动步骤中设置的位姿,而真实机器人可能在移动至其他位姿后才移动至上述位姿。 所以应将 Robot_Pose_Type 参数设为 2。 |
-
Start_Viz:触发 Mech-Viz 工程的运行,上升沿有效;
-
Trigger_Acknowledge:反馈 Command_Trigger 信号是否成功触发视觉系统,1表示触发成功,0表示未收到 Command_Trigger 信号。
输入/输出参数:
-
Set_Flag:“触发动作”标志位。
输出参数:
-
Robot_Pose_Type_O:机器人位姿类型;
-
Robot_JPS:机器人关节角;
-
Robot_FL_Pose:机器人法兰位姿;
-
Command:指令码,由功能块自动赋值;
-
Command_Trigger:指令开关,由功能块自动触发。
MM Interface 数据块返回数据:
-
Status code:若无错误,则返回 2103 状态码;否则返回对应的错误码。
示例
示例说明
在该示例中,将"Camera_User".Step_Num设置为18,使能"MM_Start_Viz"功能,当变量 "Camera_User".Start_Viz 出现上升沿时,触发 Mech-Viz 工程运行,并将当前机器人的当前关节角和法兰位姿发送给 Mech-Viz。
停止 Mech-Viz 工程
该指令用于停止运行 Mech-Viz 工程。
参数说明
输入参数:
-
Stop_Viz:停止 Mech-Viz 工程的运行,上升沿有效;
-
Trigger_Acknowledge:反馈 Command_Trigger 信号是否成功触发视觉系统,1表示触发成功,0表示未收到 Command_Trigger 信号。
输入/输出参数:
-
Set_Flag:“触发动作”标志位。
输出参数:
-
Command:指令码,由功能块自动赋值;
-
Command_Trigger:指令开关,由功能块自动触发。
MM Interface 数据块返回数据:
-
Status code:若无错误,则返回 2104 状态码;否则返回对应的错误码。
示例
示例说明
在该示例中,将"Camera_User".Step_Num设置为20,使能"MM_Stop_Viz"功能,当变量 "Camera_User".Stop_Viz 出现上升沿时,停止运行 Mech-Viz 工程。
选择 Mech-Viz 分支
当 Mech-Viz 工程中有“消息分支”步骤时,该指令可控制 Mech-Viz 工程中的“消息分支”步骤走指定的出口。在调用该指令之前,需要先调用 MM_Start_Viz 。 Mech-Viz 运行到“消息分支”步骤时会等待该指令发送分支的出口号。
参数说明
输入参数:
-
Branch_Name:“消息分支”步骤编号,该参数为正整数;
-
Branch_Exit_Port:给定“消息分支”步骤的出口号,若将该参数值设置为N,则Mech-Viz工程将沿“消息分支”步骤的N-1出口继续执行;
-
Set_Branch:设置某分支的某分支出口;
-
Trigger_Acknowledge:反馈 Command_Trigger 信号是否成功触发视觉系统,1表示触发成功,0表示未收到 Command_Trigger 信号。
输入/输出参数:
-
Set_Flag:“触发动作”标志位。
输出参数:
-
Branch_Name_O:“消息分支”步骤编号;
-
Branch_Exit_Port_O:“消息分支”步骤的出口号;
-
Command:指令码,由功能块自动赋值;
-
Command_Trigger:指令开关,由功能块自动触发。
MM Interface 数据块返回数据:
-
Status code:若无错误,则返回 2105 状态码;否则返回对应的错误码。
示例
示例说明
在该示例中,将"Camera_User".Step_Num设置为24,使能"MM_Set_Branch"功能,当变量 "Camera_User".Set_Branch 出现上升沿时,会指定 Mech-Viz 工程执行到“消息分支”步骤名称为 1 的步骤时,走第 1 出口。
设置当前索引
索引类的移动步骤,比如按序列移动、按阵列移动、自定义垛型、预设垛型等,可调用该指令设置索引类步骤参数中的当前索引。在调用该指令之前,需要先执行 MM_Start_Viz 。
参数说明
输入参数:
-
Index_Name: 索引类步骤的步骤编号,该参数为正整数;
-
Index_Counter:索引类步骤的当前索引值,该参数为正整数。若将该参数值设置为N,则相应步骤的当前索引值为N-1;
-
Set_Index:触发信号,用于设置索引。
-
Trigger_Acknowledge:反馈 Command_Trigger 信号是否成功触发视觉系统,1表示触发成功,0表示未收到 Command_Trigger 信号。
输入/输出参数:
-
Set_Flag:“触发动作”标志位。
输出参数:
-
Index_Name_O:索引类步骤的步骤编号;
-
Index_Counter_O: 索引类步骤的当前索引值;
-
Command:指令码,由功能块自动赋值;
-
Command_Trigger:指令开关,由功能块自动触发。
MM Interface 数据块返回数据:
-
Status code:若无错误,则返回 2106 状态码;否则返回对应的错误码。
示例
示例说明
在该示例中,将"Camera_User".Step_Num设置为22,使能"MM_Set_Index"功能,当变量 "Camera_User".Set_Index 出现上升沿时,设置 Mech-Viz 工程中的步骤编号5的当前索引值为3。
获取规划路径
用于获取 Mech-Viz 工程规划的抓取路径。
参数说明
输入参数:
-
Request_Pose_Type: 要获取的路径上点的位姿类型;
-
Mech-Viz 返回的位姿类型为机器人 JPS ;
-
Mech-Viz 返回的位姿类型为机器人TCP。
此处Request_Pose_Type和MM_Start_Vis、MM_Start_Viz功能中的Robot_Pose_Type,对应MM Interface数据块中的同一变量Pose Type,若上述几处设置的值不同,将不能同时生效。
-
-
Get_VizData:获取 Mech-Viz 工程规划的抓取路径,上升沿有效;
-
Trigger_Acknowledge:反馈 Command_Trigger 信号是否成功触发视觉系统,1表示触发成功,0表示未收到 Command_Trigger 信号。
输入/输出参数:
-
Set_Flag:“触发动作”标志位。
输出参数:
-
Request_Pose_Type_O:Mech-Viz 返回的路径点位姿类型,1 表示 JPs 类型,2 表示 TCP 类型;
-
Command:指令码,由功能块自动赋值;
-
Command_Trigger:指令开关,由功能块自动触发。
MM Interface 数据块返回数据:
-
Status code:若无错误,则返回 2100 状态码;否则返回对应的错误码;
-
Status of Pose Sent:1 表示写入的位姿数据为新数据。 PLC 读取位姿数据之后请将此寄存器复位;
-
Number of Pose Sent:Mech-Viz 规划路径上目标点的个数。范围[1-20];
-
Index of Vision Move:视觉移动路径点在路径中的位置;
-
Target Pose:数据格式 JPS 或者 XYZ 欧拉角,取决于指令中设置的位姿类型;
-
Target Label:Mech-Vision 识别的该物体标签信息。返回标签值为整数;
-
Target Tool ID:Mech-Viz 工程中设置的末端工具编号。
示例
示例说明
在该示例中,将"Camera_User".Step_Num设置为26,使能"MM_Get_VizData"功能,当变量 "Camera_User".Get_VizData 出现上升沿时,用于接收 Mech-Viz 返回的机器人移动路径,移动点数据类型为 TCP。
获取吸盘DO信号
该指令用于获取Mech-Vision或Mech-Viz规划的吸盘DO信号。在调用该指令之前需要对应先调用MM_Get_Planned_VisData或者MM_Get_VizData。
在使用该指令前,用户需提前在Mech-Vision或Mech-Viz软件中进行如下配置。
-
配置Mech-Vision工程
-
在“路径规划”步骤参数中,单击配置向导。在全局配置中,将箱子拆垛开关置于打开状态。
-
在“路径规划”步骤参数中,单击配置向导,双击末端工具名称,工具类型选择拆垛吸盘,单击拆垛吸盘配置,根据需求配置DO信号。
-
-
配置Mech-Viz工程
-
在Mech-Viz软件中,“视觉移动”步骤的 抓取工艺 选择 箱子拆垛。
-
在Mech-Viz软件中,双击末端工具名称,工具类型选择拆垛吸盘,单击拆垛吸盘配置,根据需求配置DO信号。
-
参数说明
输入参数:
-
Vision_Proj_Num:指定吸盘DO信号的来源,可以为以下取值:
-
0:从Mech-Viz获取吸盘DO信号;
-
正整数:从Mech-Vision获取吸盘DO信号,此处设置的正整数就是Mech-Vision工程编号。
-
-
Depalletize_Tool_Section_Count:吸盘分区数量;
-
Get_DoList:获取 Mech-Vision或Mech-Viz 工程规划的分区 DO 信号列表,上升沿有效;
-
Trigger_Acknowledge:反馈 Command_Trigger 信号是否成功触发视觉系统,1表示触发成功,0表示未收到 Command_Trigger 信号。
输入/输出参数:
-
Set_Flag:“触发动作”标志位。
输出参数:
-
Vision_Proj_Num_O:吸盘DO信号的来源;
-
Depalletize_Tool_Section_Count_O:吸盘分区数量;
-
Command:指令码,由功能块自动赋值;
-
Command_Trigger:指令开关,由功能块自动触发。
MM Interface 数据块返回数据:
-
Status code:若无错误,则返回2102(成功从Mech-Viz获取吸盘DO信号)或1106(成功从Mech-Vision获取吸盘DO信号)状态码;否则返回对应的错误码;
-
DO :该指令返回 64 个 DO 端口值。
根据所搭建工程的不同,该指令返回的DO信号会有所不同,具体如下。
-
Mech-Vision工程规划的吸盘DO信号
-
在路径规划的全局配置中,若规划全部视觉结果开关处于关闭状态,则该指令返回64个DO信号,表示本轮规划的吸盘DO信号,其中有效的DO信号为非负整数,范围为 0~999;无效的DO信号为-1(作为占位值)。
例如,在下表中,返回的有效DO信号为1、3、5、6,即表示机器人需将上述DO信号对应的值设为ON。
第1个
第2个
第3个
第4个
第5个
第6个
第7个
第8个
…
第63个
第64个
1
3
5
6
-1
-1
-1
-1
…
-1
-1
-
在路径规划的全局配置中,若规划全部视觉结果开关处于打开状态,则Mech-Vision可以根据同一视觉结果进行多轮规划。该指令返回的64个DO信号是所有轮规划的吸盘DO信号。此时使用吸盘分区数量,即可区分每轮规划的吸盘DO信号。
例如,吸盘分区数量为4,该指令共返回64个DO信号,其中,每4个DO信号为一轮规划的多分区吸盘控制信号。
第1轮规划
第2轮规划
…
第16轮规划
第1个
第2个
第3个
第4个
第5个
第6个
第7个
第8个
…
第61个
第62个
第63个
第64个
1
3
4
-1
1
4
-1
-1
…
-1
-1
-1
-1
-
-
Mech-Viz工程规划的吸盘DO信号
-
若“视觉移动”步骤未勾选“复用视觉结果”,则该指令返回64个DO信号,表示本轮规划的吸盘DO信号,其中有效的DO信号为非负整数,范围为 0~999;无效的DO信号为-1(作为占位值)。
例如,在下表中,返回的有效DO信号为1、3、5、6,即表示机器人需将上述DO信号对应的值设为ON。
第1个
第2个
第3个
第4个
第5个
第6个
第7个
第8个
…
第63个
第64个
1
3
5
6
-1
-1
-1
-1
…
-1
-1
-
若“视觉移动”步骤勾选“复用视觉结果”,且“视觉移动”步骤在循环流程中,则Mech-Viz可以根据同一视觉结果进行多轮规划。该指令返回的64个DO信号是所有轮规划的吸盘DO信号。此时使用吸盘分区数量,即可区分每轮规划的吸盘DO信号。
例如,吸盘分区数量为4,该指令共返回64个DO信号,其中,每4个DO信号为一轮规划的多分区吸盘控制信号。
第1轮规划
第2轮规划
…
第16轮规划
第1个
第2个
第3个
第4个
第5个
第6个
第7个
第8个
…
第61个
第62个
第63个
第64个
1
3
4
-1
1
4
-1
-1
…
-1
-1
-1
-1
-
示例
示例说明
在该示例中,将"Camera_User".Step_Num设置为6,使能"MM_Get_DoList"功能,当变量 "Camera_User".Get_DoList 出现上升沿时,若 Vision_Proj_Num 为 0,Depalletize_Tool_Section_Count 为 3,则 Mech-Viz 返回的 DO 列表将保存到 DO 数组内。
向 Mech-Vision 传入物体尺寸
该指令用于Mech-Vision工程中传入物体尺寸。传入的物体尺寸就是“读取物体尺寸”步骤的 箱子尺寸设置 参数值。
参数说明
输入参数:
-
Vision_Proj_Num:Mech-Vision 工程编号,可在 Mech-Vision 工程列表窗口中查看,工程名称前的数字表示工程编号;
-
External_Input_Box_Dimension:比如箱子尺寸为长宽高,单位为毫米,数据类型为 Array[0..2] of Real ;
-
Set_Box_Dimension:动态传入 Mech-Vision 工程中的物体尺寸,上升沿有效;
-
Trigger_Acknowledge:反馈 Command_Trigger 信号是否成功触发视觉系统,1表示触发成功,0表示未收到 Command_Trigger 信号。
输入/输出参数:
-
Set_Flag:“触发动作”标志位。
输出参数:
-
Vision_Proj_Num_O:Mech-Vision 工程编号;
-
External_Input_Box_Dimension_O:物体的长、宽、高尺寸值;
-
Command:指令码,由功能块自动赋值;
-
Command_Trigger:指令开关,由功能块自动触发。
MM Interface 数据块返回数据:
-
Status code:若无错误,则返回 1108 状态码;否则返回对应的错误码。
示例
示例说明
在该示例中,将"Camera_User".Step_Num设置为2,使能"MM_Set_Box_Dimension"功能,当变量 "Camera_User".Set_Box_Dimension 出现上升沿时,将“读取物体尺寸”步骤的物体尺寸设置为 External_Input_Box_Dimension 变量值。
获取软件状态
该指令用于获取软件运行状态(目前该指令仅支持检测 Mech-Vision 软件是否可以开始运行工程)。
参数说明
输入参数:
-
Get_Status:检测 Mech-Vision 是否注册就绪,上升沿有效;
-
Trigger_Acknowledge:反馈 Command_Trigger 信号是否成功触发视觉系统,1表示触发成功,0表示未收到 Command_Trigger 信号。
输入/输出参数:
-
Set_Flag:“触发动作”标志位。
输出参数:
-
Command:指令码,由功能块自动赋值;
-
Command_Trigger:指令开关,由功能块自动触发。
MM Interface 数据块返回数据:
-
Status code:若为1101状态码,则表示Mech-Vision已就绪,否则表示Mech-Vision未就绪。
示例
示例说明
在该示例中,将"Camera_User".Step_Num设置为32,使能"MM_Get_Status"功能,当变量 "Camera_User".Get_Status 出现上升沿时,将获取的状态码保存到变量 Status code 中。
清空目标数据
用于清空已经获取的 Target Pose、Target Label、Target Tool ID 变量的数据。
参数说明
输入参数:
-
Start_Empty:触发清空已经获取的 Target Pose、Target Label、Target Tool ID 的数据,置位有效;
输入/输出参数:
-
Target_Pose:已获取的目标位姿数据;
-
Target_Label:已获取的目标标签;
-
Target_Tool_ID:已获取的末端工具编号;
该功能不能一直处于使能。由于Target_Pose、Target_Label和Target_Tool_ID为功能的输入/输出参数,如果功能一直处于使能,PLC在每个扫描周期都会读、写一次上述参数,偶尔会覆盖视觉系统已发送的数据。 |
示例
示例说明
在该示例中,将"Camera_User".Step_Num设置为14,使能"MM_Empty_Target"功能,当变量 "Camera_User".Start_Empty 置位时,将清空已经获取的 Target Pose、Target Label、Target Tool ID 变量的数据。
获取视觉移动规划数据或自定义数据
该指令用于获取Mech-Vision工程的视觉移动规划数据,或者获取Mech-Viz工程的视觉移动规划数据或自定义数据。
参数说明
输入参数:
-
Vision_Proj_Num:指定视觉移动规划数据的来源,可以为以下取值:
-
0:从Mech-Viz获取视觉移动规划数据;
-
正整数:从Mech-Vision获取视觉移动规划数据。此处设置的正整数就是Mech-Vision工程编号。
-
-
Request_Pose_Type:预期的返回数据格式,取值范围为1~4。
此处Request_Pose_Type和MM_Start_Vis、MM_Start_Viz功能中的Robot_Pose_Type,对应MM Interface数据块中的同一变量Pose Type,若上述几处设置的值不同,将不能同时生效。 -
当Vision_Proj_Num为0时,Request_Pose_Type 参数取值范围为 1~4,具体说明如下。
Request_Pose_Type 参数值 预期的返回数据 说明(每个字段的具体解释参见下文) 1
位姿(JPs 形式), 移动类型, 末端工具编号, 速度, 自定义数据项 1, …, 自定义数据项 N
2
位姿(TCP 形式), 移动类型, 末端工具编号, 速度, 自定义数据项 1, …, 自定义数据项 N
3
位姿(JPs 形式), 移动类型, 末端工具编号, 速度, Mech-Viz视觉移动规划数据, 自定义数据项 1, …, 自定义数据项 N
4
位姿(TCP 形式), 移动类型, 末端工具编号, 速度, Mech-Viz视觉移动规划数据, 自定义数据项 1, …, 自定义数据项 N
-
当Vision_Proj_Num为正整数时,Request_Pose_Type 参数取值范围为 1~2,具体说明如下。
Request_Pose_Type 参数值 预期的返回数据 说明(每个字段的具体解释参见下文) 1
位姿(JPs 形式), 移动类型, 末端工具编号, 速度, Mech-Vision视觉移动规划数据
2
位姿(TCP 形式), 移动类型, 末端工具编号, 速度, Mech-Vision视觉移动规划数据
位姿
路径点的位姿可以是机器人关节角或工具位姿,具体形式取决于 Request_Pose_Type 参数值。
移动类型
-
1:关节移动。
-
2:直线移动。
末端工具编号
路径点的末端工具编号。若值为-1,表示不使用末端工具。
速度
路径点的速度值,使用百分数表示。
视觉移动规划数据
Mech-Vision或Mech-Viz中“视觉移动”步骤规划的数据,包括被抓取工件的标签、已抓取的工件总数、本次抓取的工件数量、吸盘边角号、TCP偏移量、工件组朝向、单个工件朝向、工件组尺寸。
视觉移动规划数据的具体内容如下表所示。
名称 说明 维数 被抓取工件的标签
由10个整数组成,默认为10个0
10
已抓取的工件总数
累计已抓取的工件数量
1
本次抓取的工件数量
本次抓取的工件数量
1
吸盘边角号
本次吸盘所使用的边角号
1
TCP偏移量
工件组中心相对于末端工具中心的XYZ偏移量
3
工件组朝向
工件组与吸盘长边的朝向关系,0表示平行,1表示垂直
1
单个工件朝向
单个工件长边与吸盘长边的朝向关系,0表示平行,1表示垂直
1
工件组尺寸
本次抓取的工件组的长宽高
3
自定义数据项
当 Mech-Vision 工程中“输出”步骤的端口类型为“自定义”时,除 poses 和 labels 等之外其他自定义端口的数据。
自定义端口的数据不能超过10个。获取的自定义数据是按照端口字母顺序(A~Za~z)排序。
-
-
Get_VizData:获取视觉移动规划数据或自定义数据,上升沿有效;
-
Trigger_Acknowledge:反馈 Command_Trigger 信号是否成功触发视觉系统,1表示触发成功,0表示未收到 Command_Trigger 信号。
输入/输出参数:
-
Set_Flag:“触发动作”标志位。
输出参数:
-
Vision_Proj_Num_O:Mech-Vision 工程编号;
-
Request_Pose_Type_O:预期的返回数据格式;
-
Command:指令码,由功能块自动赋值;
-
Command_Trigger:指令开关,由功能块自动触发。
MM Interface 数据块返回数据:
-
Status code:若无错误,则返回2100(成功获取Mech-Viz工程的视觉移动规划数据或自定义数据)或1103(成功获取Mech-Vision工程的视觉移动规划数据)状态码;否则返回对应的错误码;
-
Status of Pose Sent:1 表示写入的位姿数据为新数据,PLC 读取位姿数据之后请将此寄存器复位;
-
Number of Pose Sent:路径点个数,范围1~20;
-
Index of Vision Picking Point:视觉移动路径点在路径中的位置;
-
Target Pose:数据格式为关节角或者 XYZ 欧拉角,取决于输入参数 Request_Pose_Type;
-
Target Label:物体的标签值;
-
Speed Percentage:路径点的速度值;
-
Custom Vision Output:自定义数据项;
-
Target IsVisualMove:路径点是否是视觉移动路径点,0表示该点不是视觉移动路径点,1表示该点是视觉移动路径点,只有视觉移动路径点才会携带视觉移动规划数据或自定义数据;
-
Target Move Type:移动类型;
-
Target Tool ID:末端工具编号;
-
VisualMove Planning Result:视觉移动规划数据。
示例
示例说明
在该示例中,将"Camera_User".Step_Num设置为4,使能"MM_Get_Planned_Result"功能,此时,Vision_Proj_Num为0,当变量"Camera_User".Get_VizData出现上升沿时,获取Mech-Viz工程输出的路径点数据,路径点的位姿类型为TCP。如果Target IsVisualMove为1,表示从视觉系统获取的路径点是视觉移动路径点,则VisualMove Planning Result保存视觉移动规划数据,Custom Vision Output保存自定义数据。
获取通知的消息
在触发Mech-Vision或Mech-Viz工程运行后,该指令用于获取“通知”步骤中预先设置的消息(暂时只支持整数)。
当Mech-Vision或Mech-Viz工程运行至“通知”步骤时,设置的消息只会在视觉系统中缓存1秒,因此用户在使用该指令时需要控制好调用时间才能获取到消息内容。另外,PLC在使用该消息后,需要自行清除该寄存器数据。 |
参数说明
-
Get_Notify:获取“通知”步骤的消息,上升沿有效;
-
Trigger_Acknowledge:反馈 Command_Trigger 信号是否成功触发视觉系统,1表示触发成功,0表示未收到 Command_Trigger 信号。
输入/输出参数:
-
Set_Flag:“触发动作”标志位。
输出参数:
-
Command:指令码,由功能块自动赋值;
-
Command_Trigger:指令开关,由功能块自动触发。
MM Interface 数据块返回数据:
-
Notify:“通知”步骤的消息,为整数。
示例
假设“通知”步骤中设置的消息为777,PLC在自动模式获取消息的示例如下。
示例说明
在该示例中,在自动模式下将"Camera_User".Step_Num设置为7,此时"MM Interface".FromCamera.Notify不等于777,使能"MM_Get_Custom_Notify"功能;当变量"Camera_User".Get_Notify出现上升沿时,获取“通知”步骤中预先设置的消息。 若成功获取到消息,则"MM Interface".FromCamera.Notify等于777;否则"MM Interface".FromCamera.Notify不等于777,PLC在3秒后提示对应报警信息。
附录
状态码(含错误码)定义
请参考 标准接口状态码及错误排查 。