3.3 通信错误处理机制
由于外界干扰或电压波动等原因,主控微机和控制器之间的通信可能会出现错误,导致数据丢失,受信侧不能正常接收数据或系统运行错误。为了确保通信的连续性和可靠性,设计了通信错误处理机制。
由于各指令的通信时间均在2 ms之内,如果受信侧在2 ms之内依然没有接收到完整的数据,则认为通信出现错误,系统将进行恢复处理。受信侧会把已接收的数据清零并等待重新接收,送信侧将再次发送数据。如此循环,如果发送三次之后依然不能恢复正常通信,系统将停止运行。
3.4 通信协议软件
通信协议软件在Windows XP操作系统上用汇编语言开发而成,其编制方案简要介绍如下:
(1)主控微机发送数据
当主控微机发送数据时,需要自动记录指令的命令字节,即需要记录接收该指令的控制器ID号以及指令号Code。
(2)控制器接收数据
控制器接收数据时,首先将会进行ID校验,如果一致则接收,然后根据指令号Code决定需要接收的数据字节数。如果指令ID号与自身的ID号不一致或者在2 ms内没有接收到完整的数据,控制器将会把已接收的数据清零并等待主控微机重新发送。
(3)控制器发送数据
当控制器接收到询问指令,并确认ID一致后,将返回该指令的命令字节(ID+Code)和相应的询问数据。对于控制指令和设定指令,则只返回一个命令字节(ID+Code)。
(4)主控微机接收数据
主控微机接收到控制器返回的数据后,对于控制和设定指令,将会把返回的数据与发送记录相比较,如果一致则删除发送记录,否则,认为通信有误,进行出错处理;对于询问指令,将把接收到的数据显示或储存以备后用。
4 实 验
图9是开发出来的控制器和驱动器。根据软件设计方案编制和调试程序后进行了位置控制、速度控制、电流控制的实机实验。
位置控制实验结果如图10所示。位置控制的单位是编码器的脉冲数(Pulse)。图10指出当目标位置是2 795时,位置控制能够精确地控制电机到达指定的位置。通过多次重复实验,其误差均小于±0.2脉冲。
速度控制实验结果如图11所示。速度控制以脉冲数/周期(Pulse/0.4 ms)为单位。
图11指出当目标速度是30 Pulse/O.4 ms时,速度控制能够精确地控制电机以指定的速度运行。通过多次重复实验,其误差均小于±2 Pulse/O.4 ms。
电流控制实验结果如图12所示。电流控制以电机的额定电流与最大指令比(A/7 FH)为单位。图12指出当目标电流是2 A时,电流控制能够精确地控制电机在指定的电流下运行。通过多次重复实验,其误差均小于±O.1 A。
实验表明本文提出的控制器位置精度、速度精度、电流精度能满足多轴服务机器人的需要。
5 结 语
提出的控制器为嵌入式服务机器人控制器的研究和开发提供了一种新的控制和通信模式。实验结果指出该控制器的控制精度能满足多轴服务机器人的需要。该项目的研究将有助于推动我国服务机器人控制器的发展,具有较好的应用前景。