【视觉运控一体机小课堂】三分钟实现相机采集和图像保存

本文介绍了如何使用VPLC516E视觉运控一体机进行相机图像采集和保存。通过ZDevelop软件,步骤包括相机扫描、选择采集设备、设置触发模式、开始采集、触发拍照、获取图像以及保存图像。文章还提供了详细的软件实现过程,包括HMI界面设计和响应函数编写,并强调了ZV_WRITEIMAGE指令在图像保存中的应用。
摘要由CSDN通过智能技术生成

一、背景

机器视觉方案实施的目的是通过图像处理算法对产品目标进行自动化检测并输出判断状态和数据结果,因此图像采集是机器视觉方案实施的基础。

图像采集的方法有两种:一是从相机中获取图像数据,二是从本地文件中获取图片进行脱机调试。

在上期课程中,我们讲述了如何使用VPLC系列视觉运控一体机三分钟读取本地图像的课程。本期课程正运动小助手给大家分享一下VPLC系列视觉运控一体机实现相机采集和图像保存的课程。

【视觉运控一体机小课堂】三分钟实现相机采集和图像保存

二、VPLC控制器

(一)VPLC516E构架图

1.png

(二)课前准备

1.电脑一台,安装ZDevelop3.10以上版本软件

2.VPLC516E一台

3.24V直流电源一个

4.网线一根

5.WinSCP软件

6.电线若干

三、课程知识点

1.扫描相机:使用CAM_SCAN指令扫描出现与控制器连接的相机。

2.png

2.获取扫描到的相机数量:使用CAM_COUNT指令扫描与控制器连接的相机数量。

3.png

3.选择采集设备:使用CAM_SEL指令选择进行采集操作的相机序号。

4.png

4.设置相机触发模式:使用CAM_SETMODE指令选择进行设置相机的触发模式。

5.png

5.开始采集图像:使用CAM_START指令选择进行设置相机开始采集图像。

6.png

6.发送触发指令给相机拍照:使用CAM_SETPARAM指令选择进行触发相机拍照,每触发一次拍照一次。

7.png

7.获取图像:使用CAM_GET指令在相对应触发模式下,获取一帧图像。

8.png

8.保存图像:使用ZV_WRITEIMAGE指令将图像保存在默认路径下。

9.png

四、软件实现

1.打开ZDevelop软件:新建名称为“相机采集和保存图像例程.zpj”项目→新建HMI文件→新建main.bas文件(用于编写界面响应函数、并开启HMI自动运行任务)→文件添加到项目。

10.png

2.设计HMI主界面。

11.png

3.编写HMI界面按下扫描相机按钮响应的函数,并去关联它的动作函数名。

'*******************定义全局变量区**********************

GLOBAL DIM  cam_num                 '定义并初始化相机数量

cam_num = 0

GLOBAL DIM  set_mode                '选择采集模式,0-自由采集,1-软件触发,2硬件触发

GLOBAL DIM  cur_mode                '当前选择模式

GLOBAL ZVOBJECT image              '定义获取的图片变量

'*******************定义全局变量区**********************



'HMI界面初始化函数

GLOBAL SUB init_hmi()   

   ZV_LATCHCLEAR(0)   '清空锁存通道0

   set_mode=1      '采集模式默认为软件触发模式  

END SUB



'HMI界面按下扫描相机按钮响应的函数,扫描相机函数一般作为相机初始化函数,扫描到相机后不需要重复执行

GLOBAL SUB scan_all_cams()

   CAM_SCAN("zmotion")        '扫描正运动自品牌相机  

   cam_num = CAM_COUNT()      '获取扫描相机的数量  

   if (0 = cam_num) then      '如果数量=0则提示未找到相机

      ? "未找到相机"  

      return                  '退出子函数不再往下执行

   endif 

   ?"相机数量:" cam_num       '数量!=0则提示扫描相机的数量

    

   set_mode=1          '选择软件触发,设置采集模式并开启相机

   CAM_SEL(0)          '选择相机id 

   CAM_SETMODE(0)      '设置相机为软件触发采集模式

   CAM_START(0)        '开启相机

   cur_mode=set_mode   '将当前设置的采集模式赋值给当前模式变量

   

   DIM tmp(32)

   CAM_GETPARAM("ResultingFrameRate",32,0) '相机帧率

   DMCPY tmp(0), TABLE(0), 32

   ?"cam_get_param:cam_ResultingFrameRate = "tmp

END SUB

12.png

4.编写HMI界面按下相机采集按钮时响应的函数,并去关联它的动作函数名。

'HMI界面按下相机采集按钮时响应的函数

GLOBAL SUB btn_grab()

   if (0 = cam_num) then                '如果数量=0则提示扫描相机

      ? "请先扫描相机!"

      return                            '退出子函数不再往下执行

   endif                                '数量!=0继续往下执行 

   if (set_mode=1) then 

      CAM_SETPARAM("TriggerSoftware", 0)'发送软触发信号

      CAM_GET(image, 0)          '获取相机缓存中指定id序号为0的图像

   endif

   ZV_LATCH(image, 0)            '显示image图像到锁存通道0中

END SUB

13.png

5.编写HMI界面按下保存图像按钮时响应的函数,并去关联它的动作函数名。

'HMI界面按下保存图像按钮时响应的函数

GLOBAL SUB btn_saveImg()

   ZV_WRITEIMAGE(image,"SAVE.bmp",0)

   ?"保存成功" 

END SUB

14.png

注意:如果项目运行在仿真器,默认情况下文件路径对应ZDevelop软件下的flash目录。

如果项目运行在控制器,默认情况下文件路径对应…zmc/flash/目录,且可使用ZV_SETSYSSTR(“DataDir”,"")指令设置成自己想要的路径。同时如果需要在PC上查看图像,可以通过WinSCP软件连接控制器到相应目录下取出图像。

6.效果演示。

【视觉运控一体机小课堂】三分钟实现相机采集和图像保存操作演示部分

15.png

本次,正运动技术【视觉运控一体机小课堂】三分钟实现相机采集和图像保存,就分享到这里。

更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师。

本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正运动技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值