数控机床顺序控制的逻辑离散信息如主轴起停和正反转等开关量信息的处理,是由可编程序逻辑控制器(PLC)完成的。PLC在机床中以独立型和内置型两种形式存在。独立型PLC是各个厂家生产的常见的自成独立自动控制设备,有成熟的系统运行平台和程序实现方法;而内置型PLC是内嵌在CNC装置内,从属于CNC装置并与CNC装置集成于一体,对其运行方式和程序实现知之甚少。下面通过利用c语言编写的PLC源程序在华中数控系统中的实现,使用户能对数控机床进行更好的故障诊断和维护,对完善PLC程序、进一步提升机床的性能有一定的实际意义。
1 华中数控内置式PLC的软件结构及其运行过程
和一般c语言程序都必须提供Main()函数一样,用户编写内置式PLC的C语言程序必须提供如下系统函数定义及系统变量值:
extern void init(void);//初始化PLC
extern unsigned plcl—time;//函数plcl()的运行周期,单位:ms
extern void plcl(void);//PLC程序人口1
extem unsigned ple2一time;//函数plc2()的运行周期,单位:ms
extern void pie2(void);//PLC程序人口2
开机数控系统初始化PLC时,将调用PLC提供的init()函数(该函数只被调用一次)。在系统初始化完成后,数控系统将周期性地运行如下过程:
(1)从硬件端口及数控系统成批读人所有X、F、P寄存器的内容;
(2)如果plel—time所指定的周期时间已到,调用函数plcl();
(3)如果plc2一time所指定的周期时间已到,调用函数plc2();
(4)系统成批输出G、Y、B寄存器。一般地,plcl—time总是小于pie2一time,即函数plel()较plc2()调用的频率要高。因此,华中数控称函数plcl()为PLC高速扫描进程、plc2()为低速扫描进程。
2 利用华中数控系统平台生成PLC源程序
华中数控系统PLC源程序的编译环境为:BorlandC++3.1和MS.DOS 6.22。数控系统约定PLC源程序后缀为“.cld”,即“*.cld”文件为PLC源程序。打开华中数控系统并进入DOS界面,按如下步骤操作:
(1)在DOS环境下,进入数控软件PLC所安装的目录,如:
C:\HNC-21TF\PLC
(2)在DOS提示符下敲入如下命令:
C:\HNC-21\plc)edit plc—null.cld(回车)
此项操作的作用是建立一个文本文件,也就是用
c语言编写的PLC源程序,并命名为“plc—null.eld”,其程序其框架结构为:
//*
//plc—null.cld:
//PLC程序空框架,保证可以编译运行,但什么功能也不提供
//版权所有:武汉华中数控系统有限公司,保留所有权利。
//http://huazhongenc.com email:market@hua—
zhongcnc.com
#pragma inline
#Include”plc.h”//PLC系统头文件
void init(){}//PLC初始化函数
void plcl(void)//PLC程序人口1
{plcl—time=16;//系统将在16 ins后再次调用plcl()函数
}
void plc2(void)//PLC程序人口2
{Plc2一time=32;//系统将在32ms后再次调用plc2()函数
}