用LabVIEW软件编写USB1020运动控制卡的定位控制程序,在本软件设计中需要用到的相关驱动函数有:
该函数用于创建USB设备对象,并返回其设备对象句柄。若执行成功,则返回对象句柄,否则返回错误代码。
该函数的功能是初始化指定轴定长或连续驱动,需要设置的参数有hDevice设备对象句柄、pDL公共参数结构体指针、pLC直线和S曲线参数结构体指针。若执行成功,返回TRUE,否则返回FALSE。
该函数的功能是启动单轴直线S曲线驱动,需要设置的参数有hDevice设备对象句柄、AxisNum轴号。若成功,返回TRUE,否则返回FALSE。
该函数的功能是释放设备对象所占用的系统资源及设备对象自身。需要设置的参数有hDevice设备对象句柄。若成功,则返回TRUE,否则返回FALSE。
该结构体的作用是用于设置伺服电机运动的倍率、初始速度、驱动速度、加减速度和加减速度变化率等参数。
该参数结构体主要用于设置伺服电机进行直线和S曲线运动的相关参数,例如轴号、定长或连续驱动配置等。了解了上述USB1020控制卡的驱动函数之后,就可以着手配置每个运动轴的控制驱动程序了。考虑到定位运动控制程序需要与后面的数据采集程序结合起来,且检测平台每次测量的点数较多,会使整个定位控制与数据采集系统的程序冗杂,因此宜把对四个运动控制轴的运动参数配置编写成子程序,以方便整个系统控制程序对定位控制程序的调用。
在对可移动L型皮托管传感器的移动控制上,并不要求控制四个伺服电机的X、Y、Z、R轴同步运动,也没有严格的顺序控制关系,而且USB1020运动控制卡可以实现对四个伺服电机的独立运动控制,因此编写X、Y、Z、U四轴的定位控制程序时采用LabVIEW软件的顺序控制结构来编写X、Y、Z、R轴的控制程序。由于程序篇幅的限制,图5-7给出了X轴的LabVIEW控制程序,Y、Z、R轴的控制程序与此相类似。
从上图的X轴定位控制程序可以看出,需要对HANDLE CreateDevice函数、BOOLInitLVDV(HANDLE hDevice PUSB1020_PARA_DataListpDL,PUSB1020_PARA_LCDatapLC)函数、BOOLStarLVDV(HANDLE hDeviceLONG AxisNum)函数、BOOLReleaseDevice(HANDLE hDevice)函数都要设置它们的轴编号为0,表示控制的是X轴,同理对Y轴编号、Z轴编号、R轴编号分别为设置为1、2、3。在公用参数结构体、直线和S曲线参数结构体里设置X轴伺服电机的运动控制参数。
从图5-7可知,相关的运动参数包括初始速度、驱动速度、加速度、减速度、加速度变化率、减速度变化率、驱动方式(定长驱动还是连续驱动)、减速方式(自动减速还是手动减速)、脉冲方式(CW/CCW方式还是CP/DIR方式)、驱动脉冲的方向(正方向还是负方向)、逻辑信号输出的逻辑电平(设置为0时表示低电平为正方向,设置为1时表示高电平为正方向)、运动方式(直线运动还是曲线运动)、运动方向(正方向还是反方向)、定量输出脉冲数等。
在本定位控制程序设置中,只需要对X轴来进行定位控制,因此可以根据实际运动的需要,把初始速度和驱动速度设置为相同值。加速度、减速度、加速度变化率、减速度变化率不做要求,采用默认值。运动方式选择定长驱动,参数为0;减速方式采用默认值0,为自动减速;脉冲方式选择CW/CCW方式,参数值设置为0,表示独立2脉冲输出方式。驱动脉冲的方向采用默认参数值0,表示正方向。定量脉冲输出数是最为重要的参数,用于控制伺服电机的位移。定量脉冲数由伺服电机需要走的位移值与整个检测平台的一个脉冲当量的比值来决定。同理,其他轴的运动控制参数也是根据实际的运动控制要求来进行相关的设置。
上述运动控制子程序作为一个可供整个系统程序调用的子程序,提供了每个轴的运动控制参数的输入端口,包括伺服电机运动的速度、方向和位移。运动控制程序的输入端口如图5-8所示。图5-9为生成的运动控制子程序图标。http://www.dgzhenghang.net