VPLC系列机器视觉运动控制一体机快速入门(五)( 二 )

文章图片
4.在main.bas文件中添加主界面按下【测量设置】按钮时响应的函数并关联动作函数名 。
'主界面按下测量设置按钮时响应的函数
GLOBALSUBGoto_Meas()
HMI_SHOWWINDOW(13)
ENDSUB
↓
文章图片
5.在InitLocator.bas文件中初始化测量参数 。
'---------------------分割线------------------
'初始化测量参数1
d_meas_param1(0)=320.0'roi中心x
d_meas_param1(1)=240.0'roi中心y
d_meas_param1(2)=160'roi宽
d_meas_param1(3)=120.0'roi高
d_meas_param1(4)=0.0'roi角度
d_meas_param1(5)=1'插值方式
d_meas_param1(6)=20'子区域的个数
d_meas_param1(7)=5'子区域的尺寸
d_meas_param1(8)=3'滤波尺寸
d_meas_param1(9)=50'阈值
d_meas_param1(10)=0'极性
d_meas_param1(11)=0'选择边缘位置
'初始化测量参数2
d_meas_param2(0)=320.0'roi中心x
d_meas_param2(1)=240.0'roi中心y
d_meas_param2(2)=160'roi宽
d_meas_param2(3)=120.0'roi高
d_meas_param2(4)=0.0'roi角度
d_meas_param2(5)=1'插值方式
d_meas_param2(6)=20'子区域的个数
d_meas_param2(7)=5'子区域的尺寸
d_meas_param2(8)=3'滤波尺寸
【VPLC系列机器视觉运动控制一体机快速入门(五)】d_meas_param2(9)=50'阈值
d_meas_param2(10)=0'极性
d_meas_param2(11)=0'选择边缘位置
'初始化界面上显示的结果值
d_meas_rst1(0)=0
d_meas_rst1(1)=0
d_meas_rst1(2)=0
d_meas_rst1(3)=0
d_meas_rst2(0)=0
d_meas_rst2(1)=0
d_meas_rst2(2)=0
d_meas_rst2(3)=0
d_show_rst=0
'初始化标定参数和像素比例
CalibParam=0
WorldLength=0
PixLength=0
6.新建在“Set_Select”窗口界面按下【选择测量器区域1】按钮时弹出的“Set_Roi1”窗口,用于创建第一条尺寸边缘的直线测量器并设置检测直线的参数 。 
文章图片
7.在draw.bas文件中添加在“Set_Select”窗口界面按下【选择测量器区域1】按钮时响应的函数并关联动作函数名 。
'-----------------分割线-------------------------
'测量器绘制
DIMis_redraw
is_redraw=0
DIMset_roi_open_init
set_roi_open_init=0
DIMsr_mpos_x,sr_mpos_y,hit_pos
'''''''''''''''''''''''''''''''''''
'按下选择测量器区域1按钮时响应的函数
GLOBALSUBbtn_sel_roi1()
ZV_LATCHCLEAR(1)'清除锁存
ZV_LATCHSETSIZE(1,HMI_CONTROLSIZEX(14,1),HMI_CONTROLSIZEY(14,1))'设置锁存的大小
ZV_LATCH(grabImg,1)'显示图像在锁存上
SET_COLOR(RGB(0,255,0))
'图像roi转控件roi
is_redraw=0
TABLE(11,d_meas_param1(0),d_meas_param1(1))
ZV_POSFROMIMG(1,1,11,11)'图像坐标转换到HMI控件坐标
TABLE(13)=ZV_LENFROMIMG(1,d_meas_param1(2))
TABLE(14)=ZV_LENFROMIMG(1,d_meas_param1(3))
TABLE(15)=d_meas_param1(4)
HMI_SHOWWINDOW(14)
ENDSUB
↓
文章图片
8.在draw.bas文件中添加Roi1根据鼠标操作更新ROI位置的函数以及实时绘制Roi1的函数 。
'根据鼠标操作更新Roi1的位置
GLOBALSUBupdate_roi1()
ifmouse_scan(21)=1then'
扫描按下操作
hit_pos=ZV_HMIADJRECT2(table(21),table(22),11,-1)'只有按下时可以改变击中位置
?TABLE(21),TABLE(22)
is_redraw=1
endif
ifmouse_scan(21)=-1then'
扫描松开操作
ifTABLE(21)<(table(11)-table(13)or="">(TABLE(11)+TABLE(13)/2)orTABLE(22)<(table(12)-table(14)or="">(TABLE(12)+TABLE(14)/2)then
hit_pos=-1
endif
ZV_HMIADJRECT2(table(21),table(22),11,hit_pos)
?*TABLE(11,4)
is_redraw=1
endif
if(MOUSE_state(21))then
ZV_HMIADJRECT2(table(21),table(22),11,hit_pos)
is_redraw=1
endif
if(1=is_redraw)then
is_redraw=0
ZV_POSTOIMG(1,1,11,31)
d_meas_param1(0)=TABLE(31)
d_meas_param1(1)=TABLE(32)
d_meas_param1(2)=ZV_LENTOIMG(1,TABLE(13))
d_meas_param1(3)=ZV_LENTOIMG(1,TABLE(14))
d_meas_param1(4)=TABLE(15)
'如果选择了补正源 , 就保存roi基准
if(TABLE(110)=1)then
set_base_roi()
endif
SET_REDRAW
endif
ENDSUB
'设置测量区域的基准roi
GLoBALSUBset_base_roi()
d_meas_base_v1(0)=d_meas_param1(0)
d_meas_base_v1(1)=d_meas_param1(1)
d_meas_base_v1(2)=d_meas_param1(4)
d_meas_base_v2(0)=d_meas_param2(0)
d_meas_base_v2(1)=d_meas_param2(1)
d_meas_base_v2(2)=d_meas_param2(4)
ENDSUB
'更新Roi1位置后实时绘制图形
GLOBALSUBdraw_roi1()
SET_COLOR(C_BLUE)
TABLE(16,d_meas_param1(6),d_meas_param1(7))'设置子区域个数和宽度两个参数
- 码垛机器人参数及组成单元
- 聚焦民生小案|东郊派出所迅速破获一起系列盗窃电动车案
- 米兰壁纸墙布窗帘五星门店专访系列:紧跟公司走 量利双丰收
- 红米K40Pro:基本现货,红米K40:压力都在它那里红米K40系列热度持续中红米K40Pro的亮点非常多红米K40Pro抢购压力小很多红米K40Pro的压力确实很大红米K40没有
- 《苍穹雷霆 GUNVOLT》系列最新作《锁环》视频公布
- 碎片商店哪款皮肤最值得兑换?夏日系列占两席,288碎片给他不亏
- 劳力士超人气系列手表,水鬼和迪通拿哪款更保值?
- 一加8系列,唯一进入“最佳安卓手机”前四名的国产手机
- 王者荣耀策划承诺落空?绝美皮肤遭腰斩,梅兰竹菊系列没有菊
- 华为发力!全新旗舰平板或与P50系列一同到来
