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

发布时间:2021年7月21日 10:50  人气:   审核编辑(王静 )
更多内容请访问(深圳市正运动技术有限公司
相关链接

我有需求