VPLC系列机器视觉运动控制一体机快速入门(二)
供稿:深圳市正运动技术有限公司
- 关键词:正运动技术,VPLC,视觉运动一体机
- 摘要:上期课程,我们讲述了机器视觉的原理、优势、应用领域以及实现机器视觉方案的硬件环境和软件环境的搭建。
上期课程,我们讲述了机器视觉的原理、优势、应用领域以及实现机器视觉方案的硬件环境和软件环境的搭建。
本期课程我们和大家一起分享机器视觉方案实施的第一步——相机的基本使用。
接口分类
相机的接口方式决定了相机输出图像数据的传输方式和输出效率。工业相机按照不同接口方式分类可分为USB接口相机、IEEE1934接口相机、CamLink接口相机、Gige千兆以太网接口相机。
Gige千兆网接口由于传输速度快,成本低,连接方便,因此被广泛地应用于机器视觉选型方案中。本期课程我们也选用了海康威视的Gige千兆网口相机为例进行讲解。
采集模式
相机的采集模式包括自由采集模式和触发采集模式,触发采集模式根据触发来源不同又分为软件触发模式和硬件触发模式。
在ZDevelop软件中,不同采集模式的选择需要使用SET_MODE(mode)指令来进行设置,具体的编程实现方式稍后会进行详细说明。
参数设置
要使相机获取到清晰的图像,突出检测目标特征,需要设置相机的相关参数如曝光值、伽马值等。在某些检测速度要求不高的场合,可适当降低帧率,减少目标在运动中拍照产生的拖影现象。
常用的相机设置参数如下:
相机配件
本课程中以海康相机MV-CE050-30GM 500 万像素 1/2.5” CMOS 千兆以太网工业面阵相机为例。
接入设备
相机在接入设备时仅需使用网线将相机网口和VPLC516E控制器的自带网口LAN2连接,并使用相机自带电源适配器和6pin hirose I/O线的power接口和GND接口连接后,电源适配器的插头直接插入插座即可正常使用。
自由采集子函数
'HMI界面按下自由采集按钮响应的函数
GLOBAL SUB btn_con_grap()
if(grap_switch=1) then '如果已经在自由采集状态,打印提示信息
?"正在自由采集中,请勿重复操作"
return
endif
if (cam_num=0) then '如果没有扫描相机,提示先扫描相机
?"请先扫描相机"
return
endif
'*************初始化相机操作*********************
CAM_SEL(0) '选择第一个相机
CAM_SETMODE(-1) '选择相机为自由采集模式
'*************结束初始化相机*********************
grap_switch=1 '自由采集状态置1,开启循环采集任务
if (1 = grap_switch) then
if (0 = PROC_STATUS(grab_task_id)) then
RUNTASK grab_task_id, grab_task
endif
endif
END SUB
'自由采集任务
grab_task:
while(1)
if (0 = grap_switch) then
exit while
endif
CAM_GRAB(image) '自由采集模式下,采集一帧图像
ZV_LATCH(image,0) '将采集图像显示到图片元件中
wend
END
'HMI界面按下停止采集按钮时响应的函数
GLOBAL SUB btn_stop_grab()
if(grap_switch = 0)then
?"未开启连续采集"
return
endif
grap_switch = 0
END SUB
软件触发采集
软件触发子函数
'HMI界面按下软件触发按钮时响应的函数
GLOBAL SUB btn_softtrigger() '扫描相机
CAM_SCAN("mvision") '扫描海康相机
cam_num = CAM_COUNT()
if (0 = cam_num) then
? "未找到相机"
return
endif
CAM_SEL(0) '选择相机id
CAM_SETMODE(0) '设置相机为软触发采集模式
CAM_START(0) '开启相机
CAM_SETPARAM("TriggerSoftware", 0) '发送软触发信号
CAM_GET(image, 0) '获取相机缓存中指定 id 序号为 0 的图像
ZV_LATCH(image, 0) '显示图像
END SUB
硬件触发子函数
'HMI界面按下硬件触发按钮时响应的函数
GLOBAL SUB btn_line0trigger() '扫描相机
CAM_SCAN("mvision") '扫描海康相机
cam_num = CAM_COUNT()
if (0 = cam_num) then
? "未找到相机"
return
endif
CAM_SEL(0) '选择相机id
CAM_SETMODE(1) '设置相机为硬件触发采集模式
CAM_SETPARAM("TriggerActivation",1) '设置相机接收下降沿触发信号有效
CAM_START(0) '开启相机
MOVE_OP(0,ON)
MOVE_OP(0,OFF) '控制器OUT0输出下降沿信号
CAM_GET(image, 0) '获取相机缓存中指定 id 序号为 0 的图像
ZV_LATCH(image, 0) '显示图像
END SUB
读取图像
ZDevelop软件可支持从本地文件中获取图像数据进行仿真调试,此时需要用到读取图像功能。
读取图像功能的实现比较简单,只需调用ZV_READIMG指令,并在传参中输入获取图像的路径即可。如下所示:
指令汇总