引言:在2010年的时候,在北京的一个数控公司工作。产品采用的是通过运动控制卡发脉冲的方式,控制机床的X、Y、Z轴进行加工。 机床在加工产品的时候,一直存在着精度的问题,例如DMG的机床可以达到0.01的加工精度,但是我们的就不行。 当时作为一个小底层员工,猜测可能有两点造成的这个问题。一点是我们的控制系统是基于微软的WINDOWS XP开发的。 微软的系统不是实时操作系统,在操作系统的任务切换上有些力不从心,然后公司的女同事写的代码还巨臃肿(对操作系统的任务切换和内存分配机制都不了解就可以写代码,领导还真放心),运行效率看着我都担心CPU会不会过载累死 虽然公司的领导层屏蔽并精简了很多系统上用不到的功能,降低系统负荷,但是微软的系统在面对实时控制上依然力不从心,是不争的事实。 在风河系统一统实时系统的时代,这么大的公司还在用XP,有点说不通啊~当然换平台也是大工程,没个果敢的勇气还真下不了决心。 第二点是我们的伺服控制器是通过发脉冲的方式控制的,这种方式很容易有干扰,并且给上位机造成的工作压力也不小。当时就觉得领导层为什么不狠心把这种方式改掉,改成CAN通信也好啊。 后来一次偶然的机会,从单位仓库里搞了一套西班牙法格的数控系统,将我们机床的机械部分接到法格上,控制机床加工,当加工产品出来后,精度比我们自己的系统好很多(关键那套系统还是法格几年前的产品),这回问题明显了:同样是发脉冲,别人的脉冲比我们的好多了,尤其在三轴脉冲的同步控制上比我们的产品好多了。如果操作系统换不了,那么想提高精度,唯一的办法就是换成总线通信了,估计能对加工精度提高不少。但是很遗憾的是12年就离职了,我的猜测也没法验证了~~
随着IT产业的蓬勃发展,工厂内设备的自动化也全面进入了要以网络来联机的时代,这也使得"PC Based"的控制器在工厂设备中被运用的比例也愈来愈高,在图一中所展现的是一个开放式架构 (Open Architecture) 工厂自动化 (Factory Automation) 的网络结构,包含了硬件及各式的通讯协议。
在硬件方面可以看出走向串行式是一个共通的趋势,因为串行式通讯本身就有「维修容易」、「简省成本」、「远程控制」等的特点。但其不方便的地方就是在于很难找出一种通用于所有组件及设备之间的通讯协议。举例来说,串行式影像的标准通讯协议:Camera Link 和串行式运动控制的标准通讯协议:SERCOS就是完全不同的语言。彼此并不能共享一条线而彼此沟通。
本文将着重在探讨串行式运动控制的技术。在近年来,由于半导体制造设备等相关的电子制造设备市场大幅成长,而使得机器设备上的运动控制系统出现了以下数点的技术需求:
1. 多轴运动控制
机器设备因自动化程度提高而使得单一机器上所需要的轴数增多,一台设备上十几轴是常见的事情。在轴数变多后,如何协调各轴动作就是一个重要的课题。
2. 体积要小
由于厂房空间的限制,机器的体积要越小越好,机器内控制器的体积也就被要求愈来愈小,相对地走线空间也愈来愈少。
3. 要更精准
随着半导体制程已经精密到100nm以下,在制程及检测相关设备所要求的运动精度也要更精确,其它如LCD设备、SMD制程设备也有相同要求。
4. 要更稳定
因为设备的投资经费庞大,系统停机的成本就更显的突出,因此所有机器设备制造商都必须追求系统的稳定性。同时也必须考虑在组件损坏须要维修时,必须能快速替换且不出差错。
然而,综合以上几点的需求分析可以看到,既要在一个控制器内进行多轴运动控制,又要控制器的体积更小,配线的维修要更容易,这些条件看来是相冲突的。可以这样说,「串行式运动控制」技术便是因应这些新时式机器设备的需求而产生的。以下各节将深入介绍此技术之内涵。
传统AC伺服定位系统
图二所示是一个传统「模拟式AC伺服定位系统」的方块图,驱动器的内层回路是一个相量控制的电流死循环系统以控制电机的转矩,外圈是转速死循环控制。运动控制卡读回 encoder 位置来作定位死循环控制。通常控制卡会利用DA输出电压到驱动器当成转速指令。
图三所示为改良后的「脉冲式AC伺服定位系统」,因为伺服驱动器的进步而将定位死循环控制移入驱动器内执行。(也就是将速度环移到了驱动器内部)。运动控制卡输出脉冲指令来同时控制马达的位置及转速,同时读回encoder位置以作定位修正之用。
不论是传统或是改良式的控制架构都一定会遇到下列的瓶颈:
1. 配线太多。每轴至少需要12个讯号以作为反馈,指令及其它I/O点控制用途。
2. 分辨率的限制。在模拟式驱动器的架构里,须要藉AD/DA转换来传送指令,以一个16bit分辨率的AD为例,其保证分辨率为14bit。必须对应到最大正负转速,例如:+/-4500rpm,则每一位所代表的分辨率为9000rpm/2^14=0.55rpm。这样的分辨率没有办法对应到目前高性能驱动器所要求的控速比,在许多的高精度加工场合是不足的。
而在脉冲式驱动器架构里,分辨率则是被脉冲的最大传输速度限制住了,此点在后面章节还会解释。
3. 偏移误差(Offset)及噪声。只要是模拟讯号必定会有所谓偏移误差的问题,造成传送指令的位准误差,此问题在零转速附近会特别明显,必须靠校正来补偿,另外在高压大电流的AC伺服系统必须特别注意噪声带来的干扰,否则也很容易引起脉冲指令误差。
4. 缺乏自我检测功能。这两类驱动器架构都很难令外界控制器读取或实时调整伺服参数,伺服驱动器内的参数多达百种,没有办法藉由传统配线方式就读取这些参数,如此就没有办法在控制器上完全掌握这些参数,也就没有办法进行自我检测及调试。
各式串行式运动控制通讯协议
随着串行式通讯科技的日新月异,如:Ethernet,运用串行式通讯来解决传统服务器驱动问题也有很大的进展,就如第一节中所述,串行式系统的不便之处在于没有共同遵守的通讯标准,就连在单项的运动控制系统目前也没有大家遵守的标准,不论是在硬件或通讯协议。虽然没有标准,但是技术内涵的需求都是一样的:
1. 要能在固定周期内实时地传输控制指令,
2. 此周期是快速到约0.1ms~5ms之间,
3. 非周期性地收集外围所有I/O资料,
4. 选择性地、非周期地传收伺服参数数据,
5. 数据结构上要含数据正确性编码,以防在噪声干扰时作数据修正。
图四所示是市面上可以看到的各式串行式运动控制通讯协议的一览表,及其主要支持的厂商。硬件传输媒介主要有:RS485、IEEE1394、光纤及Ethernet四种,通讯协议方面目前还是百家争鸣,虽然SERCOS (IEC 61491)是仅见的国际标准,但是日本、美国伺服大厂仍是定义自己的通讯协议。很难下定结论那一个通讯协议就是最好的通讯协议。传输速度愈快,当然伺服控制周期时间可以更短,而使得频宽增加,可控制轴数变多,但毕竟这还不是决定性的因素。在应用层面还是要从系统规格往下看,根据性能/价格比来找到最好组合的运动控制卡+伺服(步进)驱动系统来发展应用。
下节我们将以日本伺服大厂:三菱电机所开发的串行式伺服技术:SSCNET为例,更深入地探讨此技术为运动控制技术带来如何的进步。
SSCNET串行式伺服技术
日本三菱电机自从九十年代初期开始开发SSCNET(Servo System Control Network)技术,到目前已经是等二代SSCNTⅡ,在市场上已经有超过一百万轴伺服马达应用SSCNET的成功实绩,可以说是串行式伺服的成功案例。在三菱电机所有类型伺服的出货比例也逐年提高。SSCNET的传输媒介是类似 RS 485 技术,传输距离最长可达30米,传输速度为5.625Mbps,控制用的通信周期为0.888ms。控制方式采主从式架构,控制卡上一颗主控IC(Master Controller)可以控制六颗Slave的伺服马达,所以最多可控轴数,要看控制卡上能放多少 Master Controller,可控轴数为 6*N轴。各主控 IC之间还可以作同步,使得被控伺服轴得以同步。目前主控IC是由三菱电机独家提供。
在通信协议方面可以参考图五,主控IC与受控伺服驱动器之间数据传送的时序如下:
1. 主控IC与伺服驱动器的通信时脉同步后,控制器侧产生第一个绝对位置指令并写入主控IC。
2. 在第二个时脉时,由主控IC透过传输线将指令广播出去,各伺服驱动器各自接收自己的位置指令。
3. 在第三时脉时,各伺服驱动器根据位置指令而执行死循环定位控制。
除了固定周期的位置指令外,还可以不定期地读写各伺服驱动器内参数。
综观SSCNET技术,我们可以整理出它带给运动控制使用者下列的好处:
1. 减少体积、节省配线
传统一张运动控制卡约可以出线控制4~6轴,目前一张SSCNET控制卡便可到12轴。配线便大幅减少且变得容易很多,并使得配线人工成本及配线错误造成的损坏降到最低。
2. 高速高分辨率伺服控制之实现
由图六所示可以看到随着编码器技术的进步,也使得服务器的频宽进步到550Hz。这对机器带来的效益就是加工速度大幅提高,因为它使得到位后稳定时间(Settling time)降低了。目前大多数是编码器分辨率多在17位131,072pulse/rev。可是要发挥这些编编器所能达到的定位分辨率,在3000rpm时脉冲式控制器就必须送出约 6.5MHz 的脉波。这已经到达脉波传输线的极限。但是透过SSCNET在每个时序脉冲传送32位的绝对位置指令,便很容易地达到17位的定位分辨率。
3. 绝对同步的实现
由图七所示可以看到,在传统的伺服系统在各轴之间,由于脉冲命令传送的时间误差(约0.5ms)造成各轴真正在执行位置命令时时间也有误差,如此在多轴插补动作时便会有些许的时间误差而造成插补曲线的不完美,而透过SSCNET就可以轻易地达到每一轴完全地同步动作。
4. 控制器上管理所有伺服轴参数
透过SSCNET各伺服轴的参数可以统一在控制器上作调整及读取,如此可把伺服调机与真正机台控制结合在同一个环境下实现。
5. 绝对位置系统的建构
透过SSCNET控制器上读到的是32位的绝对位置,不像脉冲式伺服只能得到增量式位置。读到绝对位置能方便在紧急状况 (ALARM)造成系统停机又重开后,不必再执行回原点的动作。
6. 可靠度的提高
在数字数据传输时,藉由HDLC所拥有的CRC Error Check功能,通信品质的信赖度就大幅提高,不会像传统式伺服易受噪声干扰。
PC Based SSCNET解决方案
图八所示是一个PC Based 的SSCNET控制系统示意图。Host PC透过PCI Bus 向卡上的DSP下各轴的位置,速度曲线命令。DSP运算成为各轴的位置命令后在各周期下命令到伺服驱动器。借着运算功能强大的DSP,各式复杂的运动机能都可以达成。如多轴插补、连续运动、运动间改变速度或端点位置等。为了达到真正的「位置死循环控制」,卡上还可以接受外部增量式编码器的反馈,而后输出SSCNET命令。如此可以克服机械传动组件所造成的定位误差。
在软件的开发方面,随着控制卡也附有 Win32的函数库在各种不同操作系统上,一个Motion Creator的调试软件可会跟随在软件上。从图九可以看到在SSCNET的Motion Creator软件上,可以使伺服参数调整,到试机调校在同一平台下完成,大幅减少了系统开发验证的时间。
实际应用与未来发展
本节举一实例来说明SSCNET在实用上的好处。图十所示为一个双轴的传送机构, 由两个伺服电机带动两个滚珠螺杆来作传动。在此系统中, 两个轴的位置必须完全同步,否则就会在两个滚珠螺杆上出现剪应力。 图十的左下图所示是传统伺服的应用方式。 第一轴作位置控制,同时第一轴输出电流指令来下到第二轴来作扭力控制。如此就可以使第二轴跟随第一轴同动。可是指令的时间差还是会造成无法完全同动。右下图是利用SSCNET的双轴同动。可以看到在控制方式及配在线都精简很多。目前此应用已出现在搬运第五代TFT基板的Robot系统上。
未来SSCNET的发展还会朝着传输速度更快,传输距离更长来前进。对于客户带来的则是更高速更精准的自动化控制愿景。