工控网首页
>

应用设计

>

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

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

上期课程,我们讲述了机器视觉的原理、优势、应用领域以及实现机器视觉方案的硬件环境和软件环境的搭建。

本期课程我们和大家一起分享机器视觉方案实施的第一步——相机的基本使用。

image.png

接口分类

相机的接口方式决定了相机输出图像数据的传输方式和输出效率。工业相机按照不同接口方式分类可分为USB接口相机、IEEE1934接口相机、CamLink接口相机、Gige千兆以太网接口相机。

Gige千兆网接口由于传输速度快,成本低,连接方便,因此被广泛地应用于机器视觉选型方案中。本期课程我们也选用了海康威视的Gige千兆网口相机为例进行讲解。

image.png

采集模式

相机的采集模式包括自由采集模式和触发采集模式,触发采集模式根据触发来源不同又分为软件触发模式和硬件触发模式。

在ZDevelop软件中,不同采集模式的选择需要使用SET_MODE(mode)指令来进行设置,具体的编程实现方式稍后会进行详细说明。

image.png

参数设置

要使相机获取到清晰的图像,突出检测目标特征,需要设置相机的相关参数如曝光值、伽马值等。在某些检测速度要求不高的场合,可适当降低帧率,减少目标在运动中拍照产生的拖影现象。

常用的相机设置参数如下:

image.png

image.png

相机配件

本课程中以海康相机MV-CE050-30GM 500 万像素 1/2.5” CMOS 千兆以太网工业面阵相机为例。

image.png

接入设备

相机在接入设备时仅需使用网线将相机网口和VPLC516E控制器的自带网口LAN2连接,并使用相机自带电源适配器和6pin hirose I/O线的power接口和GND接口连接后,电源适配器的插头直接插入插座即可正常使用。

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

自由采集子函数

'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

软件触发采集

image.png

软件触发子函数

  '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

image.png

硬件触发子函数

  '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指令,并在传参中输入获取图像的路径即可。如下所示:

image.png

image.png

image.png

指令汇总

image.png

审核编辑(
王静
)
投诉建议

提交

查看更多评论
其他资讯

查看更多

正运动技术自主研发运动控制实时软核MotionRT7软件安装流程

Windows实时运动控制软核(六):LOCAL高速接口测试之Matlab

Windows实时运动控制软核(五):LOCAL高速接口测试之VC6.0

Windows实时运动控制软核(四):LOCAL高速接口测试之VB.NET

Windows实时运动控制软核(三):LOCAL高速接口测试之C++