数控系统的二次开发包括系统电气结构设计、驱动系统安装调试、机床参数设置和PLC参数设置及其控制程序开发等。其中,系统电气结构设计、驱动系统安装调试、机床参数设置3个部分具有相应的设计标准或说明,只需根据机床的实际情况和相关设计要求进行设计和参数设定。而PLC参数设置及其程序开发是数控系统预留的系统二次开发的主要技术平台,具有极大的灵活性和可设计性。在数控系统满足基本技术要求的前提下,可根据机床控制的不同特点,利用此平台,开发出相应PLC控制程序,实现机床的各种特殊控制功能。
西门子802C系统虽属中低端标准数控系统,同样提供了丰富的二次开发功能。通过系统相关参数的设置,可使机床适应不同配置的需求,并使其处于最佳运行状态。通过Programming Tool 802编程软件进行PLC编程,实现机床的逻辑控制,如PLC轴监控、诊断、报警等控制功能。
为了对802C数控系统的二次开发技术进行系统研究,我们搭建了SIEMENS数控系统实验平台,如图2所示。针对于802C二次开发技术,尤其是PLC开发技术,以此实验平台为基础,开展了一系列研究与仿真试验。
图2 SIEMENS数控系统实验平台
4、集成PLC开发
802C系统集成PLC为SIMATIC S7-200软件PLC,作为机床电器逻辑控制装置,处于CNC装置和机床之间,实现对M、S、T等辅助功能的控制功能。PLC通过输入、输出模块与机床、电气控制系统、伺服控制系统相连接,采集系统各部分的工作信息,根据CNC指令及PLC控制软件来控制各部分的运行。在CNC内部,通过数据块((Data Block简称DB)与NCK、MCP交换信息,以实现数控系统各部分之间的协调控制。
4.1 辅助功能应用
西门子802C数控系统的NC运动程序中可以编写以下辅助功能:M功能、T功能、S功能、F功能、D功能、SPOS功能等。其中,M功能和T功能常输送给系统集成PLC,经PLC程序相关控制模块处理激活相应动作。其中,一般M功能用于激活机床运行中的开关量动作,T功能用于机加工中的换刀控制。部分固定的M功能和T功能机床参数设置在系统默认的机床数据文件中已经存在,可直接在PLC程序中调用;但剩余的M功能和T功能必须经过相应的参数设定,才能在PLC程序中使用。
在进行辅助功能相关的机床参数设定后,PLC程序可直接调用辅助功能相应的CNC通道辅助功能接口,经PLC内部功能控制模块逻辑处理,就可实现辅助功能的相关操作,其中M功能CNC通道接口如图3所示,T功能CNC通道接口如图4所示。例如:调用辅助功能M20直接激活集成PLC中的输出端子Q0.0。在机床参数设定后,直接调用辅助功能M20的CNC通道接口V25001002.4激活集成PLC输出端子Q0.0,即可使输出端子Q0.0激活相应机床控制开关量,如图5所示。辅助功能T的调用方法与辅助功能M大致相同,只是数据类型为DWORD,使用时应加以注意。
图5 PLC程序段
4.2 PLC开发例程库
集成PLC程序的开发是数控系统二次开发的核心部分。为减少系统二次开发的工作量,西门子公司提供SIEMENS 802S/C/D数控系统子程序库。
子程序库例程是适用于普通2轴数控车床和3轴数控铣床的PLC实用程序。子程序库由2个PLC项目文件和相应的说明文件组成。项目文件SUBR_LIBRARY.PTP包含子程序库所提供的全部子程序和空的主程序(OB1),其子程序涵盖了各种基本功能(表2)。利用这些程序,可根据模块化设计的原则,像搭积木一样在主程序中调用相应的功能控制子程序。项目文件SAMPLE.PTP是利用SUBR_LIBRARY.PTP的子程序搭建的一个完整的实用程序,并将其预先装入系统中。对于SAMPLE.PTP控制功能可以覆盖机床控制功能的数控机床,只需要设定相应PLC参数,不必另行编写PLC程序。当然,如果例程库不能满足机床的控制功能要求,可以修改PLC程序,或填加相应的PLC功能控制模块。
802C系统PLC子程序库的应用大大减少了二次开发的工作量,减短了数控机床的设计开发周期,但PLC子程序库的应用也存在一些的弊端。首先,子程序存在一些缺陷,需要细致分析、仔细推敲,并在实际工程应用中不断检验改进。文献[3]中提出用于铣床刀具卡紧放松或车床卡盘控制的SBR49(LOCK_UNL)子程序在四个方面存在问题,并进行相应改进。其次,PLC例程库中的子程序需要适合多种数控机床实际使用,虽然这样使其具有一定的通用性,但这将不可避免地导致PLC程序结构冗余,使PLC工作循环周期延长,影响机床的PLC逻辑控制的实时性。
4.3 集成PLC与通用PLC的差异
在集成PLC开发过程中,必须要注意集成PLC与通用S7-200 PLC的差异,详见表3。表中列举的西门子802C数控系统集成PLC各项数据指标皆低于通用S7-200 PLC。因此,在进行集成PLC开发时,应仔细阅读相关手册,并从实际情况出发,不可简单地采用S7-200的例程或相关程序。