TwinCAT Vision模块GigE相机连接及图像处理

本文介绍了如何使用TwinCAT Vision模块连接GigE相机并进行图像处理。首先,详细阐述了安装EtherCAT和TwinCAT驱动的过程,然后展示了如何在PLC中编写程序读取摄像头数据。接着,讨论了相机与PLC的映射、系统配置,包括内存分配和CPU核设置。在图像处理部分,提到了霍夫变换法和轮廓-外接圆法的效果。此外,还讲解了多台相机的连接方法,并在结尾总结了常见问题及解决策略,如相机未连接、图像跳动等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

显示Vision模块

在这里插入图片描述

安装EtherCAT驱动

安装TwinCAT网卡驱动
在这里插入图片描述
在这里插入图片描述
选择相机网卡,并点击右侧Install,完成安装。

有时安装后(有的电脑)在for demo use only,有时安装后(有的电脑)在realtime capable,不知是何原因。第一种情况貌似是后面不出现Online(失败)的原因,待考证。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择对应的网卡
在这里插入图片描述
在这里插入图片描述
搜索相机在这里插入图片描述
在这里插入图片描述

显示为Online即表示连接成功在这里插入图片描述

重启后,有时需再次确认相机
在这里插入图片描述

编写PLC程序读取摄像头

PROGRAM MAIN
VAR
  hr : HRESULT;
  fbCamera : FB_VN_SimpleCameraControl;
  eState : ETcVnCameraState;
  ipImageIn : ITcVnImage;
  ipImageInDisp : ITcVnDisplayableImage;
END_VAR

eState := fbCamera.GetState();
CASE eState OF
TCVN_CS_INITIAL, TCVN_CS_OPENING, TCVN_CS_OPENED, TCVN_CS_STARTACQUISITION:
  hr := fbCamera.StartAcquisition();
TCVN_CS_ACQUIRING:
  hr := fbCamera.GetCurrentImage(ipImageIn);
	…….
  hr := F_VN_CopyIntoDisplayableImage(ipImageIn, ipImageInDisp, hr);
TCVN_CS_ERROR:
  hr := fbCamera.Reset();
END_CASE

生成PLC程序。

相机和PLC映射

在这里插入图片描述
在这里插入图片描述

系统配置

内存分配 SYSTEM > Real-Time > Settings > Router Memory (Mbyte).
在这里插入图片描述
CPU核分配:SYSTEM > Real-Time > Settings
在这里插入图片描述
在这里插入图片描述
Read from Target ,左侧3表示共享核,右侧1表示单独核,把视觉的Task置于单独的核中,设置好后Set on target,重启生效。
在这里插入图片描述
Floating point exceptions 取消勾选;Watchdog stack勾选。

在这里插入图片描述
设置网卡,仅保留图中所示的TwinCAT Ethernet Protocol和IPv4。

在这里插入图片描述
在这里插入图片描述
Promiscuous Mode (use with Wireshark only) 取消。

若出现如下提示,点击否:在这里插入图片描述

  • 注意:不要更改VnTaskADS和VnTaskImgAcq任务的周期

Taks添加job task,并设置如下:
在这里插入图片描述
Job Task不要和Vision PLC task、PlcAuxTask同核,多个Job Task不要同核。

图像处理

  • 霍夫变换法:
PROGRAM MAIN
VAR
	hr					:	HRESULT;
	fbCamera			:	FB_VN_SimpleCameraControl;
	eState				:	ETcVnCameraState;
	
	ipImageIn			: 	ITcVnImage;
	ipImageInDisp		: 	ITcVnDisplayableImage;	
	ipImageRes			: 	ITcVnImage;
	ipImageResDisp		:	ITcVnDisplayableImage;	
	ipImageTempDisp		:	ITcVnDisplayableImage;
	
	//???
	hrWD				:	HRESULT;
	tStop				:	DINT := 500000000;
	tRest				:	DINT;
	nFraction			:	UDINT;
	
	//????
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值