基于CPLD的开放式四轴运动控制器的设计
来源:电子工程世界 作者:—— 时间:2010-04-06 11:01
2、运动控制器软件设计
运动控制器的软件采用Borland C++语言编写,可以按照库函数的方式调用。根据实时运动控制的特点硬件资源的结构,函数库分为两类:
(1)控制运动控制器硬件操作的函数库。包括针对运动控制器硬件基本操作的函数,通过调用这些函数可以充分利用硬件资源,实现定制的应用。运动控制器上的各个硬件功能的存取操作是通过一组读写控制命令实现的,每一个控制命令占用一个PC机I/O空间地址,对每一个地址分别进行读或写操作将产生不同的功能。硬件操作函数库按照C++语言类的方式构造,每个命令都是以运动控制器硬件操作类的公有成员函数形式存在。这些命令主要实现以下功能:
①控制光电编码器脉冲计数器,读取或清除计数值;
②设置运动控制器的工作方式以及配置系统的各个硬件资源;
③开关量输入输出操作,实现包括通用I/O和专用I/O的查询和设置、控制器硬件资源工作状态查询等功能;
④模拟量控制命令,用于控制D/A转换器和A/D转换器实现模拟量输出和模拟信号采集等。
(2)定制应用算法函数库。根据实际应用的要求,以控制运动控制器硬件操作的函数库为基础,可以有针对性地设计应用算法函数。本文以运动控制为例设计了针对运动控制的算法函数库,实现运动规划、伺服控制等功能。其它控制算法和功能也可以在此基础上进一步扩展。运动控制算法函数库的各命令也采用C++语言类的方式进行封装,控制算法类是运动控制器硬件操作类的继承,调用和修改都十分方便,因而在结构上具有很好的开放性。
在伺服运动控制算法上,控制器将当前规划的运动位置、进给速度送入伺服控制器与反馈的实际位置进行比较,得到位置跟踪误差,经过位置控制器后,送到D/A转换器,输出伺服驱动器的控制信号。位置控制算法可根据实际的要求采用多种控制策略。