华中数控PLC编程说明书
extern void plc2(void); //PLC程序入口2 其中:
1) 函数init()是用户PLC程序的初始化函数,系统将只在初始化时调用该
函数一次。该函数一般设置系统M、S、B、T等辅助功能的响应函数及系统复位的初始化工作;
2) 变量plc1_time及plc2_time的值分别表示plc1()、plc2()函数被系统周
期调用的周期时间,单位:毫秒。系统推荐值分别为16毫秒及32毫秒,即plc1_time=16, plc2_time=32;
3) 函数plc1()及plc2()分别表示数控系统调用PLC程序的入口,其调用周
期分别由变量plc1_time及plc2_time指定。
系统初始化PLC时,将调用PLC提供的init()函数(该函数只被调用一次)。在系统初始化完成后,数控系统将周期性地运行如下过程:
1) 从硬件端口及数控系统成批读入所有X、F、P寄存器的内容; 2) 如果plc1_time所指定的周期时间已到,调用函数plc1(); 3) 如果plc2_time所指定的周期时间已到,调用函数plc2(); 4) 系统成批输出G、Y、B寄存器。
一般地,plc1_time总是小于plc2_time,即函数plc1()较plc2()调用的频率要高。因此,华中数控称函数plc1()为PLC高速扫描进程、plc2()为低速扫描进程。
因此,用户提供的plc1()函数及plc2()函数必须根据X及F寄存器的内容正确计算出G及Y寄存器的值。
第二章 华中数控内置式PLC的编程与安装
本章介绍PLC程序的编写、编译及运行安装过程
2.1 华中数控PLC程序的编写及其编译
华中数控 PLC程序的编译环境为:Borland C++3.1+MSDOS6.22。因此,要编写PLC程序您必须在您计算机上安装Borland C++3.1软件及MSDOS6.22或MS Windows 9X操作系统。
9
华中数控PLC编程说明书
华中数控系统约定PLC源程序后辍为“.CLD”,即“*.CLD”文件为PLC源程序。
最简单的PLC程序只要包含系统必须的几个函数和变量定义(请参见1.2节)即可编译运行,当然它什么事也不能做。
在DOS环境下,进入数控软件PLC所安装的目录,如C:\\HCNC2000\\PLC,在DOS提示符下敲入如下命令:
c:\\hcnc2000\\plc> edit plc_null.cld <回车>
建立一个文本文件并命名为plc_null.cld,其文件内容为:
//
//plc_null.cld: // PLC程序空框架,保证可以编译运行,但什么功能也不提供 // // 版权所有?2000,武汉华中数控系统有限公司,保留所有权利。 // http://huazhongcnc.com email: market@huazhongcnc.com // tel: +86-27-87545256,87542713 fax: +86-27-87545256,87542713 // 最后更改日期: 2000.10.31
// 作者:阳道善email: yang@HuazhongCNC.com
#include \系统头文件
void init()//PLC初始化函数 { }
void plc1(void) //PLC程序入口1 {
plc1_time=16; // 系统将在16毫秒后再次调用plc1()函数 }
void plc2(void); //PLC程序入口2 {
plc2_time=32; // 系统将在32毫秒后再次调用plc1()函数 }
如果您安装了MSDOS6.22及Borland C++3.1软件,在铣床数控系统的PLC目录下,输入如下命令:
c:\\hcnc2000\\plc> makeplc plc_null.cld <回车> 系统会响应:
1 file(s) copied
MAKE Version 3.6 Copyright (c) 1992 Borland International
10
华中数控PLC编程说明书
Available memory 64299008 bytes
bcc +plc.CFG -S plc.cld
Borland C++ Version 3.1 Copyright (c) 1992 Borland International plc.cld:
Available memory 4199568
TASM /MX /O plc.ASM,plc.OBJ
Turbo Assembler Version 3.1 Copyright (c) 1988, 1992 Borland International
Assembling file: plc.ASM Error messages: None Warning messages: None Passes: 1 Remaining memory: 421k
tlink /t/v/m/c/Lc:\\BC31\\LIB @MAKE0000.$$$
Turbo Link Version 5.1 Copyright (c) 1992 Borland International Warning: Debug info switch ignored for COM files 1 file(s) copied
并且又回到DOS提示符下:
c:\\hcnc2000\\plc>
这时表示我们的第一个PLC程序编译成功。编译结果为文件plc_null.com。然后,我们可以更改数控软件系统配置文件NCBIOS.CFG,并加上如下一行文本让系统启动时加载我们新近编写的PLC程序:
device=c:\\hcnc2000\\plc\\plc_null.com
以上就是在华中数控系统平台上编写并编译C语言PLC程序的全过程,非常简单。
下面,让我们多做一点工作。假设我们在用户按下操作面板的“循环起动”键时,点亮“+X点动”灯。假定“循环起动”键的输入点为X0.1,“+X点动”灯的输出点位置为Y2.7。
更改plc_null.cld文件的plc1()函数如下:
void plc1(void) //PLC程序入口1 {
plc1_time=16; // 系统将在16毫秒后再次调用plc1()函数 if ( X[0] & 0x02 ) // “循环起动键”被按下 Y[2] |= 0x80; // 点亮“+X点动”灯 else // 循环起动键没有被按下 Y[2] &= ~0x80; // 灭掉“+X点动”灯 }
11
华中数控PLC编程说明书
重新输入命令makeplc plc_null,并将编译所得的文件plc_null.com放入NCBIOS.CFG所指定的位置,重新起动铣床数控系统后,当我们按下“循环起动”键时,“+X点动”灯应该被点亮。
更复杂的PLC程序,可参考您所在数控系统PLC目录下的*.CLD文件,其中应该有一个是您数控系统的PLC源程序。另外,本说明书的最后一章详细讲解了步进电机三坐标铣床的PLC源程序,请参考。
2.2 华中数控PLC程序的安装
从上节,我们已经知道PLC源程序编译后,将产生一个DOS可执行.COM文件。要安装写好的PLC程序,我们必须更改华中数控系统的配置文件NCBIOS.CFG。
在DOS环境下,进入数控软件所安装的目录,如C:\\HCNC2000,在DOS提示符下敲入如下命令:
c:\\hcnc2000> edit ncbios.cfg <回车>
可编辑数控系统配置文件。一般情况下,配置文件的内容如下(具体内容因机床的不同而异,分号后面是为说明方便添加的注释):
DEVICE=C:\\HCNC2000\\bin\\sv_step.drv DEVICE=C:\\HCNC2000\\bin\\hc5904.drv PARMPATH=C:\\HCNC2000\\PARM DATAPATH=C:\\HCNC2000\\DATA PROGPATH=C:\\HCNC2000\\PROG DISKPATH=A:
BINPATH=C:\\HCNC2000\\bin
;步进电机伺服驱动 ;5904驱动程序 ;PLC程序 ;系统参数所在目录 ;系统数据所在目录 ;数控G代码程序所在目录
;软盘 ;系统BIN目录
DEVICE=C:\\HCNC2000\\plc\\plc_null.com
用粗体突出的第三行即设置好了上文编写的PLC程序plc_null.com。
第三章 华中数控PLC寄存器定义与接口函数说明
第一章说明了PLC的逻辑结构及各寄存器的含义。已经知道,PLC的G及F寄存器是数控系统与PLC约定好的,用户不可随便更改其寄存器各位(bit)
12