和上一篇博文一样,之前的程序莫名其妙用不了了,无法初始化驱动器。我是用驱动器的ASCII协议通信的,先要初始化驱动器才能进行后续的控制。我的问题具体表现在:以前我的电机的阶跃响应是无静差的,其误差顶多是驱动器自身的误差:正负3(单位0.1r/min),后来用着用着误差变大了(变成正负7左右),我想可能是电机精度下降了,就没理他。后来我对电机进行精确建模时发现驱动器中内置了PID控制器,我需要关掉这个PID控制器才能对电机建模,因此我对驱动器又折腾了一番,结果电机转不起来了,于是打电话问售后工程师,解决方案是恢复出厂设置(其实是我无意中设置了扭矩的限制),然后我之前能够让电机无静差转动的驱动器众参数的值都没有了(忘了记录下来),后来电机能转了,都一直有静差!!!最近做系统辨识、确定输入信号参数的时候一直出问题,于是我想可能还是电机的问题,于是我拔掉了驱动器和ARM串口通信的火线转串口线(即6针的1394口转RS232口),接上了100多RMB买来的调试线接PC,使用调试软件查看驱动器众多寄存器的值,发现有几个可能影响电机静差的参数没有使用默认值,我把他们都记下了,但我没有改,因为我觉得这几个参数的值不至于影响我的辨识结果,于是我又换回1394 to 232的线,打算用ARM控制驱动器,在ARM中烧写原来的程序,结果无法初始化化确定器!!!!
我找原因,ARM和驱动器的接线有问题?我把这段线分段、一段一段的查(因为mini2440接台达B2系列驱动器需要多个接口之间的转化的:4针TTL电平-->9针RS232串口-->6针1394火线口)。没发现问题!!!这到底是怎么了?算了,暂时先不管它,把我项目中的其他工作先完成!!
未完待续。。。。。。。。。。。。