固高控制卡高速捕获

本文介绍了在高速运动轴中如何利用固高科技的运动控制器,通过HSIO口进行位置比较和捕获,实现相机飞拍时的触发以及Laser采集信息的精确控制过程,包括设置捕获模式、比较数据和查询触发状态的函数使用。

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

前几年做相机飞拍的时候,需要运动轴在高速运动的过程中,触发相机拍照,当年写的没做记录,然后忘记了。最近又碰到了高速轴在运动时候,触发Laser采集信息的功能。查了下固高说明书,需要用高速捕获功能。现做个记录!

运动控制器端子板共有 2 个位置比较输出通道(也即 HSIO 口), CN14 HSIO 1 6 脚差分输
HSIO0 2 7 脚差分输出 HSIO1 5 脚是 5V 9 脚是地。位置比较脉冲输出电压为 5V
使用 GT_SetCaptureMode 指令,把某一编码器的捕获模式设置为 CAPTURE_HSIO0
CAPTURE_HSIO1 HSIO 作为捕获源时使用上升沿触发,即可在 HSIO0 HSIO1 口输出上升沿
的同时锁存指定编码器的值。
这里主要用到三个函数。触发前 设置 GT_SetCaptureMode   GT_CompareData , 触发完成后,调用 GT_GetCaptureStatus 查询完成状态
mode为捕获模式,CAPTURE_HSIO0(HSIO0 口捕获) CAPTURE_HSIO1  HSIO1 口捕获  看电气接的是哪个口。
这里需要注意的点是,pBuf给出的位置是要触发的位置相对于运动起始位置的相对值,而不是绝对值!!!触发可以输出电平,也可以输出脉冲,看自己的实际使用情况。
说明书实例
个人写的代码示例:
    double nPos1 = 0;
	double nPos2 = 0;
	g_pDev->GetAxisPlanPos(StationID_1,DEV_AXIS_PCB_Y,nPos1);
	nPos1 = nPos1 * g_pData->m_cAxis[DEV_AXIS_PCB_Y][StationID_1].nRatio;

	g_pDev->m_cHeightIP[0].XDLaserTrigModeSet(TRIG_ENCODER_LEVEL);

	double dPluse1 = g_pData->m_LaserTestTrig1*g_pData->m_cAxis[DEV_AXIS_PCB_Y][StationID_1].nRatio - nPos1;
	double dPluse2 = g_pData->m_LaserTestTrig2*g_pData->m_cAxis[DEV_AXIS_PCB_Y][StationID_1].nRatio - nPos1;
	long pBuf[2] = {dPluse1,dPluse2};  //这里比较位置为相对于开始运动的点位偏移量
	short sRtn = -1;
	sRtn = GT_CompareData(g_pData->m_cAxis[DEV_AXIS_PCB_Y][StationID_1].nCardID,
		g_pData->m_cAxis[DEV_AXIS_PCB_Y][StationID_1].nAxisID,
		1,1,0,0,pBuf,2,NULL,0);   // 位置1到2中间要输出高电平

	// 启动Hsio 捕获 
	sRtn = GT_SetCaptureMode(g_pData->m_cAxis[DEV_AXIS_PCB_Y][StationID_1].nCardID, 
    g_pData->m_cAxis[DEV_AXIS_PCB_Y][StationID_1].nAxisID,CAPTURE_HSIO0); 

	//打开Laser触发 ,开始运动
	g_pDev->m_cHeightIP[0].XDLaserTrigOn();
	g_pDev->AxisMove(StationID_1,DEV_AXIS_PCB_Y,g_pData->m_LaserTestEnd,DEV_POS_VEL);
	g_pDev->m_cHeightIP[0].XDLaserTrigOff();

//查询触发状态。这里是采用软件查询。也可以万用表去测量实际电压值,有触发的话,电压值会瞬间变化
	short pSts=0;
	long pVal=0;
	sRtn = GT_GetCaptureStatus(g_pData->m_cAxis[DEV_AXIS_PCB_Y][StationID_1].nCardID, g_pData->m_cAxis[DEV_AXIS_PCB_Y][StationID_1].nAxisID, &pSts, &pVal);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值