### CAM_GET -- 获取图像

类型 | 图像采集相关
描述 | 读取相机指定缓存的图像，对应的触发模式为软触发模式（0）或者外触发模式（1 ~N），使用 CAM_GET 指令获取图像之前要先调用开始采集指令 CAM_START。由于触发模式为多线程处理，为避免图像错乱，触发的图像只能读取一次，读取后缓存图像将被清理；如果缓存图像没有被读取则下一次触发采集的图像将覆盖旧的图像，但应注意在采集未完成之前使用 CAM_GET 仍可能读取到旧图像，即触发后读取的为上一次采集的图像，每次触发后的图像都进行读取可以避免此问题 为避免使用到上一次的图像或减少错误检查处理，采集前建议图像清空或置零 ZV_CLEAR(img)或 ZV_IMGSETCONST(img,0)
语法 | CAM_GET(img，buf_id,timeout=-1) 参数： img：ZVOBJECT 类型，获取的图像 buf_id：指定的缓存 id，序号为 0 开始 timeout：超时时间，大于等于 0，默认值-1 使用系统超时参数
适用控制器 | 支持ZV功能或者5系列以上的控制器
例子 | 例一 软触发方式获取单张图像 ZVOBJECT img CAM_SCAN("basler") '扫描basler相机 CAM_COUNT(0) '获取扫描到的相机个数 IF (0 = TABLE(0)) THEN '扫描到的相机个数为0个则返回 PRINT "未找到相机" RETURN ENDIF CAM_SEL(0) '选择序号为0的相机 CAM_SETMODE(0) '设置触发模式为软触发模式 CAM_START(1) '开启相机的采集，指定缓存数量1 CAM_SETPARAM("TriggerSoftware", 0) '使用软触发命令参数触发相机拍照，每触发一次拍照一次 CAM_GET(img,0) '获取相机缓存中指定id序号为0的图像存放到img图像中 例二 软触发方式实现连续采集图像 ZVOBJECT img CAM_SCAN("basler") '扫描basler相机 CAM_COUNT(0) '获取扫描到的相机个数 IF (0 = TABLE(0)) THEN '扫描到的相机个数为0个则返回 PRINT "未找到相机" RETURN ENDIF CAM_SEL(0) '选择序号为0的相机 CAM_SETMODE(0) '设置触发模式为软触发模式 CAM_START(1) '开启相机的采集，指定缓存数量1 WHILE(1) CAM_SETPARAM("TriggerSoftware", 0) '使用软触发命令参数触发相机拍照，每触发一次拍照一次 CAM_GET(img,0) '获取相机缓存中指定id序号为0的图像存放到img图像中 WEND 例三 外触发模式单张采集（move_op模式） ZVOBJECT img CAM_SCAN("basler") '扫描basler相机 CAM_COUNT(0) '获取扫描到的相机个数 IF (0 = TABLE(0)) THEN '扫描到的相机个数为0个则返回 PRINT "未找到相机" RETURN ENDIF CAM_SEL(0) ‘选择序号为0的相机 CAM_SETMODE(1) ‘设置触发模式为外触发模式 CAM_START(1) ‘开启相机的采集，指定缓存数量1 AXIS_ZSET(0)=2 ‘设置精准输出功能 Base(0) ‘选择轴 0 MOVEABS(100) ‘移动到机械坐标100的位置 MOVE_OP(0,ON) MOVE_OP(0,OFF) ‘下降沿触发拍照，操作输出口,触发拍照 MOVEABS(200) ‘移动到机械坐标200的位置 CAM_GET(img,0) ‘获取相机缓存中指定id序号为0的图像存放到img图像中 CAM_STOP() ‘停止相机采集 例四 外触发模式单张采集（hw模式） ZV0BJECT img CAM_SCAN("basler") '扫描basler相机 CAM_COUNT(0) '获取扫描到的相机个数 IF (0 = TABLE(0)) THEN '扫描到的相机个数为0个则返回 PRINT "未找到相机" RETURN ENDIF CAM_SEL(0) ‘选择序号为0的相机 CAM_SETMODE(1) ‘设置触发模式为外触发模式 CAM_START(1) ‘开启相机的采集，指定缓存数量1 AXIS_ZSET(0)=2 ‘设置精准输出功能 Table(100,99,100,101) '触发 op 口翻转机械坐标位置 HW_PSWITCH2(2) Hw_pswitch2(1, 0, 0, 100, 102,1) '设置操作输出口 0 翻转位置 Base(0) ‘选择轴 0 MOVEABS(200) ‘轴 0 移动到机械坐标200的位置,当相机设置为下降沿触发拍照，将在100-101的坐标触发拍照，图像自动保存到缓存0的通道 CAM_GET(img,0) ‘获取相机缓存中指定id序号为0的图像存放到img图像中 CAM_STOP() ‘停止相机采集