在机床数控系统中,电气设备的控制占有重要的地位。目前,一般采用可编程控制器(PLC)进行机床电气控制。PLC可靠性高,使用方便,对于复杂的,控制点数较多的应用场合,可以在PLC基本单元外加上一定数目的扩展单元,实现复杂的电气控制功能。在数控机床上。如果采用PLC进行电气控制,必需在PLC与NC间建立电气联系,否则,NC程序中的MST指令反映不到PLC中,PLC也就不可能做出相应的动作。目前市场上出售的PLC一般都具有通讯功能,可以利用这种功能在PLC与NC之间建立联系。由于PLC的通讯方式为串行通讯,通讯速度比较低,对于数控机床的某些实时性要求很强的信号如急停,超程等。就难以胜任一必需采取其它措施满足这些特殊需要,但这又增加了系统的复杂程度。为了提高速度,降低戚本。在数控系统中t可以采用开关量I/O板加外接继电器,配台主机的软件对电气开关进行控制。但此方案周NC主机要直接参与电气控制逻辑的运算过程。占用了主机的部分工作时间,增加了软件的复杂程度。更重要的是。把过多的功能集中到主机使主机-发生故障的风险加大出于对实时性和可靠性的考虑。作者在研制五轴联动数控系统的过程中。设计了一种嵌入式PLC.在保证实时性的同时。使故障风险相对分散。
1嵌入式PLC的硬件结构
我们研制的五轴联动数控系统是一种基于工业PC的多CPU分布式开放化数控系统。做为其中的一部分,嵌入式PLC的设计也必需遵循开放化的原则。其硬件是模块化的。按照标准的工控机插卡进行设计。目前,工控机的底板总线有两类:ISA总线和PCI总线。ISA总线的数据转输速率比PCI总线要低得多。但已完全能够满足一般工业控制的需要,而且ISA总线对工控机扩展卡的要求比PCI要宽松。从已有的工业应用经验看。可靠性也比较高。因此我们仍选择ISA总线做为嵌入式PLC设计的基础。
嵌入式PLC的组成参图1
嵌入式PLC的CPU采用Intel16位单片机80C196。其独特的寄存器一累加器结构以及三操作数指令可以大大减少程序中数据传送类指令的数目,提高程序运行的效率图1中双口存储器用于PLC与数控系统主机之间交换信息,数控系统运行过程中.PLC在不斯地进行电气控制逻辑运算的同时。也周期性地刷新双口RAM中的内容,把电气开关状态.PLC运行状态等反映到双口RAM中。有一部分面板按键如循环启动,进给保持。手动等用于NC操作,不能按一般的I/O点处理。嵌入式PLC识别按键操作并在双口RAM中维护一个循环队刊记录这些按键操作。另一方面,NC软件根据加工程序中的M、S和T指夸修改双口RAM中特定的数据,PLC周期性地读取这些数据,并据此控制电气设备的通断。对于实时性要求很高的信号,PLC可在更新双口RAM内容后,通过ISA总线向NC发出中断。
这里运用双口RAM完成NC与嵌入式PLC之间的信息交换,与采用并行口的方案相比。该方法简洁明了,无需复杂的通讯协议,NC可以随时了解外部设备开关状态而不需额外消耗时间。效率高于其它实现方式。
图1中包括一片的静态RAM芯片6264,用后备电池供电-主要用于存储PLC梯形图程序。在NC中对电气控制逻辑进行编程,编译后经双口RAM存入6264中。PLC运行这部分程序。完成电气控制。
2软件设计
嵌入式PLC软件设计有两部分内容,一个是工控PC机中相关程序设计,另一个是嵌入式PLC自身所带监控程序设计。前者的主要功能模块参图2。
梯形图编程模块为用户提供方便的PLC电气控制逻辑编程手段,其生成结果为梯形图文件。梯形图文件仅存储I/0点之间的逻辑关系,其格式与嵌入式PLC所用CPU类型无关,以提高编程模块的适应性及可重用性。梯形图编译模块则用于把该文件转化为一系列的80C196机器指令,并加上一些必要的附加指令,产生BIN文件,即机器码文件。此部分应当考虑到PLC中I/O点的资源分布情况,使最后生成的BIN文件的指令与实际I/O资源协调一致。通讯模块用于把BIN文件传输到双口RAM中,再由PLC监控程序把它转储到6264中。此部分提供用户开发接口,以便用户自行控制BIN文件的传输,为用户提供对PLC进行现场编程的功能。监控模块提供用户I/O点监视与设置、PLC运行状态/编程状态设置等功能,方便用户现场调试。另外,为了使用户能够在自主开发的应用程序中对嵌入式PLC进行有效的监控,此部分也提供开放的用户接口。
嵌入式PLC的监控程序主要实现以下功能:6264中逻辑处理程序(即由工控机传来的BIN文件)及运行状态的有效性检验,I/O点及双口RAM映射区域的周期性刷新,运行故障监铡,面板按键的检测等。当6264中已存有有效的BIN文件,且已设置好有效的运行标志时,启动运行6264中的逻辑处理程序。另外在运行期问。运用WatchDog对运行是否正常加以监视。防止并处理诸如运行6264中程序时发生超时错,6264中的逻辑处理程序出错等异常情况此系统设计的优点总结如下:
(1)采用插卡式设计,NC与PLC之间无多余导线连接,可靠性高,实时性有保证。
(2)运用双口RAM进行信息交换。速度快,线路简洁。
(3)嵌入到工拉机系统中。开发、调试、使用和维护方便。便于与用户的软硬件组台成更复杂的系统。
3在数控系统中使用嵌入式PLC
如前所述。数控机床的电气控制可以采用三类方法。即:外装式PLC,虚拟PLC和嵌入式PLC如果采用常规的程序设计方法,对于以上三种电气控制方式。就得设计不同的软件接口,数控系统软件主体就会直接涉及到电气控制的实现方式及其细节。一但控制方式发生变化,将不得不对软件进行大量修改。这样编写出的软件通用性差,难以适应变化为了增加软件与设备之间的相互独立性。我们运用面向对象技术对系统进行了开放化设计。
显然,不论哪一种控制方式,其目标都是相同的。经认真分析,我们找出了三者之问的共同点,由此得出一抽象类CPLC,它提供了数控机床电气控制所有的外部特征,为数控系统主体软件提供了完备的接口函数,数控系统中其它部分只需调用相应接口函数就可使电气开关做出相应的动作。但该部分不涉及电气操作过程中的细节。考虑到数控系统中电气控制点数比较多,为每个控制动作如液压开,液压关等等各设计一个接口函数会导致过多的接口函数,应用不方便,因此,我们设计了一个通用的接口函数,其定义如下:
如果定义液压开关编号为1,冷却开关编号为2,……,
则开液压的函数调用为
在抽象类CPIC的基础上,针对三种方式分别定义了派生类CExternalPlc、CVirtualPLc和CEmbedPLc,在这些类中,才真正对接口函数编程,完成硬件操作。按照这种设计思想得到的电气控制部分软件具有图3所示的结构。由图中3可以看出,这种设计方法在数控系统主体软件与电气控制硬件之间加入了抽象类层次,使其相互依赖性减弱,成为相对独立的两部分。运用这种方法得到的数控系统软件具有与设备无关的特征当有新的硬件设备出现时。只需在原抽象类上派生出新的类,按照共同的标准对接口函数进行解释。操纵硬件做出相应的动作即可,无需对软件其它部分做任何修改。太太提高了软件设计的效率。实际上。在对接口函数参数的意义做出明确的规范后,其它任何人都可以参照该规范设计出新的电气控制硬件及相应的驱动程序,集成人系统中。这也就是数控系统开放化设计的主要目的。
4结束语
数控系统的开放化设计设计者的知识范围和经驻密切相关。只有在充分了解现有设计技术及用户需要,并对其近期内的发展做出预测的基础上,运用工程设计方法,才有可能得到完善的开放化数控系统。目前对开放化的讨论多着眼于系统硬件结构。操作系统及开发环境。具体如何实现开放化特别是软件的开放化则谈的很少。本文从硬件到软件对电气控制子系统进行了开放化设计。对此做出了有益的探索。该子系统已集成人我们开发的五轴联动数控系统中。从使用效果来看,其开放的接口标准以及与设备无关的软件设计有助于减少编写数控系统主体软件时的错误,有较强的适应性和可靠性。