检测算子读数显示到视场窗口

 

检测算子读数可以在控件读数面板显示外,用户可以通过编程方式将检测算子读数值显示到视场窗口的标记控件上。下面详细介绍如何将检测算子读数显示到视窗窗口。本文使用的图像文件下载地址:http://www.lottav.com/noing/imagebase/parts1.rar

 

1.  解压parts1.rar文件,使用目录中的图像建立一个虚拟相机。添加物体提取算子,适当调整检测区。

   

2.  双击物体提取算子,显示物体提取算子参数设置窗口。设置参数如下:

   

切换到“读数”页,将cnt srcp读数设置为“仅计算不输出”。

3.  添加标记点,直线箭头控件各1个,添加2个文本标签控件,将名字分别修改为wz jd。另外增加2个文本标签控件。在视场导航栏,可以看到控件信息如下:

点击树形框的文本标签,选中以后,点击鼠标右键, 弹出下拉菜单。

   

点击“设置参数”菜单项,弹出“文字”窗口,输入“显示内容”为“当前位置”。

点击“字体属性”按钮,弹出“字体属性”窗口,设置颜色和字体样式,点击“确定”按钮,完成并回到“文本”窗口。

点击“确定”按钮,完成当前文本标签参数的设置。重复前面的步骤,设置其它几个标签的属性。整个视场窗口的设计如下图:

   

4.  点击“助理->设置”菜单,常规页面,设置检测类型为“默认”。

5. 点击“运行->检测变量”菜单。

 

   选中变量列表中数值2变量,选中“作为检测工艺参数”复选框, 修改新名称为“箭头长度”,初始值为66,点击“修改”按钮,最后点击“确认”按钮完成设置。

6. 点击“运行->编辑脚本”菜单,显示“编辑脚本”窗口,在STARTUP子流程中输入如下脚本:

sight1.shot()

sight1.blob1.inspect()

 

IF(sight1.blob1.cnt > 0) 

       SET pt = sight1.blob1.cp[1]

     

      sight1.pos1.x = pt.x + sight1.blob1.left

      sight1.pos1.y = pt.y+ sight1.blob1.top

    

       sight1.line1.x1 =  sight1.pos1.x

       sight1.line1.y1 =  sight1.pos1.y

       sight1.line1.x2 = sight1.pos1.x  + cos(sight1.blob1.sr[1]) *var.n[2]

       sight1.line1.y2 = sight1.pos1.y + sin(sight1.blob1.sr[1]) *var.n[2]

 

       sight1.wz.text = nxt(sight1.pos1.x, 0) .. ", " .. nxt(sight1.pos1.y, 0)

       sight1.jd.text = nxt(sight1.blob1.sr[1], 1) 

END

 

sight1.refresh()

上面的脚本对当前视场sight2里面的blob1cnt度数进行判断,如果数量大于0,那么将第一个BLOB的质心坐标加上blob1本身位置以后,赋值给sight2pos1的位置标记控件的xy属性。然后,视场的line1箭头线控件的端点1设置为同样的值。 根据blob1的斜率和作为工艺参数的变量n[2]的值计算并设置line1箭头线控件的端点2的位置。

将位置控件pos1x,和y坐标转换成文本并连接到一起,赋值给wz文本控件的text属性。将blob1sr斜率(角度)转换成文本后,赋值给jd文本控件的text属性。

点击“确定”按钮,完成脚本编写。

7. 点击“运行->启动”菜单,进行检测运行。

8. 点击“运行->停止”菜单,停止检测运行。点击运行->参数变量菜单,显示检测参数窗口。将箭头长度参数设置为166。重复步骤7

可以发现视场窗口的箭头长度发生了变化。

 

如果是从http://www.lottav.com/noing/examples.htm下载的本例程工程文件, 可能需要重新设置图像源