1 控制器的软件构造
该控制系统最大的特点在于位置、速度、电流三种控制方式可随时变更。为了获得可调的直流电压,利用电力电子器件的完全可控性,采用PWM脉宽调制技术,直接将恒定的直流电压调制成可变大小和极性的直流电压作为电机的电枢端电压,实现系统的平滑调速。在每一个控制周期,三种控制模式独立计算,控制器将计算结果以PWM信号形式输出到电机驱动器,同时电机的位置、速度和电流能实时测量并送到主控微机,从而机器人的各个关节能根据不同的外部环境采取不同的控制方式。该控制器的控制原理如图1所示。
为了实现上述目标,在控制器软件的开发上,采用了模块化和子程序嵌套的设计思想。控制器的计算周期T为400μs,每一个周期划分成32个处理模块,利用中断处理在每一个处理模块(t=12.5μs)中对电机位置译码的脉冲进行计数测量。控制器软件构造及主要模块的功能如图2所示。
2 操作指令
该控制器的操作指令包括控制指令、设定指令、询问指令等。指令格式的最高字节为命令字节,即控制器的ID号和Code(指令号)。ID指出控制器的识别号码,Code指出指令代码,它们各占4位。
需要注意的是,对于控制和设定指令,紧随命令字节的是n个字节组成的控制或设定指令数据,但询问指令仅有命令字节,没有指令数据。
2.1 控制指令
伺服控制系统的三种控制模式均有相应的控制指令。
位置控制应用于进行连续点控制的插补点位置控制。位置控制数据由三个字节的有符号数来表示,其最大值和最小值分别为223-1(=7FFFFFH)和-223+1(=800000H)。其中,0H~7FFFFF为电机的正方向,800000H~FFFFFFH为电机的负方向。位置控制指令的格式如图3所示。
速度控制应用于机器人关节以一定速度运动的场合。速度控制数据由一个字节的有符号数来表示,其最大值和最小值分别为27-1(=7F)和-27+1(=80)。
其中,0H~7F为电机的正方向,80H~FFH为电机的负方向。在速度控制模式下,需要停止指令、目标值为零的速度或电流控制指令或到达极限位置时,系统才能停止运行。
电流控制(转矩控制)不仅可以应用于电机的转动方向和电流的控制方向相同的场合,还可以应用在外力作用下,电机处于停止状态或电机的转动方向和电流的控制方向相反的场合。电流控制指令的格式和数据字节的最大最小值与速度控制指令相同。在电流控制模式下,停止方式也和速度控制模式相同。
位置速度复合控制应用于一般位置控制,包括启动阶段的加速控制、速度控制、到达目标前的减速控制和位置控制四个部分。位置速度复合控制指令的控制数据包括3个字节的目标位置数据,1个字节的目标速度数据,1个字节的最大电流数据,共5个字节。各数据的最大最小值分别对应同上。
2.2 设定指令
控制增益设定指令用于设定位置、速度和电流控制的比例和积分常数。其指令格式如图4所示。
运动范围设定指令用于设定机器人关节的极限位置,其指令格式如图5所示。其中动作端A和动作端B分别表示正方向的最大和最小位置。
系统设定主要用于根据控制系统的需要设定各种系统数据。设定数据由一个字节的无符号数来表示。
2.3 询问指令
询问指令的主要功能是查询各电机的位置、速度和电流数据,并且发信侧只有接收到受信侧返回的数据后才能发送下一个询问指令,即询问指令通过一问一答的形式进行通信。询问指令仅由命令字节组成。
位置询问指令的返信数据格式同图3。
速度和电流询问指令的返信数据均只有一个命令字节和一个数据字节。其返信数据的格式如图6所示。
3 通 信
3.1 控制系统连接方式
由于该控制器的通信接口为RS 485,PC机一般只有常用的RS 232串行通信口,主控微机通过转换器将标准的RS 232C转换为RS 485后与控制器连接。一个串口可接16个控制器。控制器包括串联通信接口,电机位置传感器脉冲接收接口,电机电流检测A/D转换接口,PWM控制输出接口和其他I/O接口。主控微机、控制器、驱动器和电机的连接如图7所示。
当主控微机对控制器进行控制时,所有的控制器均接收指令。每个控制器对接收的指令首先要进行ID校验,如果接收的数据ID与本身的ID号一致,则执行该指令,否则忽略该指令,如图8所示。
3.2 通信时间
主控微机和控制器之间的通信速率为38 400 b/s。在每一个控制周期,设计了两次接收和送信程序,即控制器在一个控制周期最多可同时接收和送出两个字节的数据。需要注意的是,主控微机和控制器之间采用的是10位为一帧的异步串行通信方式,因此每个字节的通信时间还应包括帧的起始位和停止位的传输时间。若传输两个字节的数据,则通信时间为[2×(8+2)×1 000]/38 400=0.521 ms,依此类推,即可计算出各指令的通信时间。主要指令及其通信时间如表1所示。