课题四可编程控制器PLC与调试.docx
《课题四可编程控制器PLC与调试.docx》由会员分享,可在线阅读,更多相关《课题四可编程控制器PLC与调试.docx(32页珍藏版)》请在冰点文库上搜索。
课题四可编程控制器PLC与调试
实验四、可编程控制器(PLC)与调试
一、实验目的与要求
1、了解可编程控制器基本原理和结构,了解内置式PLC实现原理。
2、了解用C语言编写PLC程序的方法,掌握数控系统PLC调试方法。
二、实验仪器设备
1、HED-21S数控系统综合实验台一套
2、专用连接线一套
3、万用表一个
三、基础知识
1、可编程控制器的原理
可编程控制器(PLC,ProgrammableLogicController)是计算机技术与自动控制技术有机结合的一种通用工业控制器。
在PLC出现之前,机床的顺序控制是以机床当前运行状态为依据,使机床按预先规定好的动作依次地工作,这种控制方式的实现,是由传统的继电器逻辑电路(RLC,RelayLogicCircuit)完成的。
这种电路是将继电器、接触器、开关、按钮等机电分立元件用导线连接而成的控制回路,由于它存在体积大、耗电多、寿命短、可靠性差、动作迟缓、柔性差、不易扩展等许多缺点,逐渐被PLC组成的顺序控制系统所代替。
现在PLC已成为数控机床不可缺少的控制装置。
CNC和PLC协调配合共同完成数控机床的控制,其中CNC主要完成与数字运算和管理等有关的功能,如零件程序的编辑、插补运算、译码、位置伺服控制等。
PLC主要完成与逻辑运算有关的一些动作,没有轨迹上的具体要求;控制辅助装置完成机床相应的开关动作,如工件的装夹、刀具的更换、冷却液的开关等一些辅助动作;它还接受机床操作面板的指令,一方面直接控制机床的动作,另一方面将一部分指令送往CNC用于加工过程的控制。
2、可编程控制器的类型
用于数控机床的PLC一般分为两类:
一类是CNC的生产厂家为实现数控机床的顺序控制,而将CNC和PLC综合起来设计,称为内装型(或集成型)PLC。
内装型PLC是CNC装置的一部分;另一类是以独立专业化的PLC生产厂家的产品来实现顺序控制系统,称为独立型(或外装型)PLC。
内装型PLC与CNC间的信息传送在CNC内部实现,PLC与机床(MT,MachineTool)间信息传送则通过CNC的输入/输出接口电路来实现。
一般这种类型的PLC不能独立工作,它只CNC向PLC功能的扩展,两者是不能分离的。
在硬件上,内装型PLC可与CNC共用一个CPU,也可以单独使用一个CPU。
由于CNC功能和PLC功能在设计时就一同考虑,因而这种类型的系统在硬件和软件整体结构上合理、实用,性能价格比高,适用于类型变化不大的数控系统。
由于PLC和CNC间没有多余的连线,且PLC上的信息能通过CNC显示器显示,PLC的编程更为方便,而且故障诊断功能和系统的可靠性也有提高。
“世纪星”HNC-21TF车床数控装置采用内装型PLC,内装型PLC与CNC共用一个CPU。
与CNC装置相对独立的独立型PLC,可采用不同厂家的产品,这使用户有选择的余地,选择自己熟悉的产品。
而且功能易于扩展和变更,当用户在向FMS、CIMS发展时,不至于使原系统做很大的变动。
独立型PLC和CNC之间是通过输入输出接口连接的。
3、可编程控制器的编程语言
(1)梯形图
梯形逻辑图简称梯形图(RelayLadderLogic-RLL),它是从继电器-接触器控制系统的电气原理图演化而来的,是一种图形语言,它沿用了继电器的触点、线圈串并联等术语和图形符号,也增加了一些简单的计算机符号,来完成时间上的顺序控制操作。
继电器和触点图形符号就是编程语言的指令符号,如常开触点—||—,线圈—()—(或—○—)。
数字0、1、2、…是对应元件地址编号。
图1所示为简单三相感应电动机的启动停止控制电路,其中SB1为常开触点,SB2为常闭触点,KM为继电器线圈,其工作原理为:
当常开触点SB1闭合时,SB2常闭触点不动为闭合,因此继电器线圈KM通电,使得常开触点KM闭合;当常开触点SB1断开后,继电器线圈KM仍然继续保持通电,只有当SB2常闭触点断开,继电器线圈KM才断电,形成了一个继电器线圈通电自锁电路。
用梯形图的形式来描述三相感应电动机启动停止控制电路如图2所示,该图用OMRON的C20普及型可编程控制器的梯形图,其中0001和0002为输入继电器的编号,0500为输出继电器的编号。
不同的厂家生产的PLC或同一厂家生产的PLC的型号不同,其继电器的编号也不同。
使用时可查阅使用说明书。
通过梯形图对三相电动机启停电路的编程,可以看到这种编程语言简单、形象、直观、容易掌握,是目前应用最广泛的编程语言之一。
图1三相感应电动机启动停止控制原理图
图2三相感应电动机启动停止控制梯形图
用梯形图编程也有它一定的要求,下面简单介绍其编程原则:
1)梯形图按自上而下,从左到右排列。
2)继电器线圈只能引用一次,而作为它的常开常闭触点可引用多次。
3)输入输出继电器和内部继电器的驱动方式不同。
4)计时器、计数器使用前要赋值。
5)力求编程简单,结构简化。
6)不存在几条并列支路同时运行的情况。
(2)指令语句表(指令编码表)
指令语句表类似于计算机的汇编语言,它是由语句助记符来编程的。
不同的机型有不同的语句助记符,但都要比汇编语言简单得多,很容易掌握,也是目前用得最多的编程方法。
指令语句表是由若干个指令组成的程序,一般每一条指令又是由操作码和操作数组成。
操作码是用助记符表示的,它表明CPU要完成的某种操作:
如逻辑运算中的“与”、“或”、“非”;算术运算中的+、-、×、÷;时间或条件控制中的计时、计数、移位、转移等功能。
操作数是指助记符对哪个继电器进行操作,操作数实际上就是某个继电器的编号。
如图1的指令语句表为:
地址指令数据
0200LD0001
0201OR0500
0202AND-NOT0002
0203OUT0500
其中LD用于靠近母线或分支母线的继电器指令,用于常开点,OR是指常开触点0500和输入继电器0001是并联关系,AND-NOT是指输入触点为常闭触点与前两个常开触点0001、0500是串联关系,OUT用于驱动输出线圈0500。
从程序中就可以看到,编程简单明了,语句少,其结构类似于电路的串并联方式,容易掌握。
(3)C语言
C语言简洁、紧凑,使用方便、灵活,可移植性好,可用于任何通用微机中,表达和运算能力强,可以实现梯形图法和指令编程法难以实现的复杂逻辑控制功能,但它没有梯形图法形象,比指令编程法复杂,使用者需具有一定的C语言编程的基本知识,因此较难掌握。
(4)逻辑功能
这种方式基本上引用了半导体逻辑电路的逻辑方块图来表示。
(5)逻辑方程式(布尔代数式)
该方法利用布尔代数,将继电器电气控制原理图中各触点、开关、继电器之间的逻辑关系直接进行编程,用“与”、“或”、“非”等逻辑关系表达式写出。
编程直接,不需要将继电器电气控制原理图转化为梯形图,而直接根据电气控制原理图写出逻辑方程式。
图1可写成下面逻辑方程式:
0500=0002·(0001+0500)
后两种编程方式不常用,有它的局限性,因此大部分编程方式都采用梯形图法、指令编程法和C语言。
目前常用的PLC很多,不同厂家的PLC各种指标和性能不同,其编程方法和继电器编号也不同,当具体操作时,可查阅有关产品说明书。
4、华中数控内置式PLC基本原理
华中数控PLC采用C语言编程,具有灵活、高效、使用方便等特点。
图3华中世纪星內置式PLC
(1)华中数控内置式PLC的结构及相关寄存器的访问
华中数控铣削数控系统的PLC为内置式PLC,其逻辑结构如图3所示。
其中:
X寄存器为机床输出到PLC的开关信号,最大可有128组(或称字节,下同);
Y寄存器为PLC输出到机床的开关信号,最大可有128组;
R寄存器为PLC内部中间寄存器,共有768组;
G寄存器为PLC输出到计算机数控系统的开关信号,最大可有256组;
F寄存器为计算机数控系统输出到PLC的开关信号,最大可有256组;
P寄存器为PLC外部参数,可由机床用户设置(运行参数子菜单中的PMC用户参数命令即可设置),共有100组;
B寄存器为断电保护信息,共有100组。
X、Y寄存器会随不同的数控机床而有所不同,主要和实际的机床输入/输出开关信号(如限位开关、控制面板开关等)有关。
但X、Y寄存器一旦定义好,软件就不能更改其寄存器各位的定义;如果要更改,必须更改相应的硬件接口或接线端子。
R寄存器是PLC内部的中间寄存器,可由PLC软件任意使用。
G、F寄存器由数控系统与PLC事先约定好的,PLC硬件和软件都不能更改其寄存器各位(bit)的定义。
P寄存器可由PLC程序与机床用户任意自行定义。
对于各寄存器,系统提供了相关变量供用户灵活使用。
首先,介绍访问中间继电器R的变量定义。
对于PLC来说,R寄存器是一块内存区域,系统定义如下指针对其进行访问:
externunsignedcharR[];//以无符号字符型存取R寄存器
注:
对于C语言,数组即相当于指向相应存储区的地址指针
同时,为了方便对R寄存器内存区域进行操作,系统定义了如下类型指针(无符号字符型、字符型、无符号整型、整型、无符号长整型、长整型)对该内存区进行访问。
即这些地址指针在系统初始化时被初始化为指向同一地址。
externunsignedcharR_uc[];//以无符号字符型存取R寄存器
externcharR_c[];//以字符型存取R寄存器
externunsignedR_ui[];//以无符号整型存取R寄存器
externintR_i[];//以整型存取R寄存器
externunsignedlongR_ul[];//以无符号长整型存取R寄存器
externlongR_l[];//以长整型存取R寄存器
同理,和R寄存器一样,系统提供如下类似数组指针变量供用户灵活操作各类寄存器:
externunsignedcharX_uc[],Y_uc[],*F_uc[],*G_uc[],P_uc[],B_uc[];
externcharX_c[],Y_c[],*F_c[],*G_c[],P_c[],B_c[];
externunsignedX_ui[],Y_ui[],*F_ui[],*G_ui[],P_ui[],B_ui[];
externintX_i[],Y_i[],*F_i[],*G_i[],P_i[],B_i[];
externunsignedlongX_ul[],Y_ul[],*F_ul[],*G_ul[],P_ul[],B_ul[];
externlongX_l[],Y_l[],*F_l[],*G_l[],P_l[],B_l[];
externunsignedcharX[],Y[];
externunsigned*F[],*G[],P[],B[];
(2)华中数控内置式PLC的软件结构及其运行原理
和一般C语言程序都必须提供main()函数一样,用户编写内置式PLC的C语言程序必须提供如下系统函数定义及系统变量值:
externvoidinit(void);//初始化PLC
externunsignedplc1_time;//函数plc1()的运行周期,单位:
毫秒
externvoidplc1(void);//PLC程序入口1
externunsignedplc2_time;//函数plc2()的运行周期,单位:
毫秒
externvoidplc2(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寄存器的值。
(3)华中数控PLC程序的编写及其编译
华中数控PLC程序的编译环境为:
BorlandC++3.1+MSDOS6.22。
数控系统约定PLC源程序后辍为“.CLD”,即“*.CLD”文件为PLC源程序。
最简单的PLC程序只要包含系统必须的几个函数和变量定义即可编译运行,当然它什么事也不能做。
在DOS环境下,进入数控软件PLC所安装的目录,如C:
\HNC-21\PLC,在DOS提示符下敲入如下命令:
C:
\HNC-21\plc>editplc_null.cld<回车>
建立一个文本文件并命名为plc_null.cld,其文件内容为:
//
//plc_null.cld:
//PLC程序空框架,保证可以编译运行,但什么功能也不提供
//
//版权所有©2000,武汉华中数控系统有限公司,保留所有权利。
//email:
market@
#include"plc.h"//PLC系统头文件
voidinit()//PLC初始化函数
{
}
voidplc1(void)//PLC程序入口1
{
plc1_time=16;//系统将在16毫秒后再次调用plc1()函数
}
voidplc2(void);//PLC程序入口2
{
plc2_time=32;//系统将在32毫秒后再次调用plc1()函数
}
在数控系统的PLC目录下,输入如下命令(在车床标准PLC系统中,需自行编写makeplc.bat文件):
C:
\HNC-21\plc>makeplcplc_null.cld<回车>
系统会响应:
1file(s)copied
MAKEVersion3.6Copyright(c)1992BorlandInternational
Availablememory64299008bytes
bcc+plc.CFG-Splc.cld
BorlandC++Version3.1Copyright(c)1992BorlandInternational
plc.cld:
Availablememory4199568
TASM/MX/Oplc.ASM,plc.OBJ
TurboAssemblerVersion3.1Copyright(c)1988,1992BorlandInternational
Assemblingfile:
plc.ASM
Errormessages:
None
Warningmessages:
None
Passes:
1
Remainingmemory:
421k
tlink/t/v/m/c/Lc:
\BC31\LIB@MAKE0000.$$$
TurboLinkVersion5.1Copyright(c)1992BorlandInternational
Warning:
DebuginfoswitchignoredforCOMfiles
1file(s)copied
并且又回到DOS提示符下:
C:
\HNC-21\plc>
这时表示PLC程序编译成功。
编译结果为文件plc_。
然后,更改数控软件系统配置文件NCBIOS.CFG,并加上如下一行文本让系统启动时加载新近编写的PLC程序:
device=C:
\HNC-21\plc\plc_
例如,当按下操作面板的“循环起动”键时,点亮“+X点动”灯。
假定“循环起动”键的输入点为X0.1,“+X点动”灯的输出点位置为Y2.7。
更改plc_null.cld文件的plc1()函数如下:
voidplc1(void)//PLC程序入口1
{
plc1_time=16;//系统将在16毫秒后再次调用plc1()函数
if(X[0]&0x02)//“循环起动键”被按下
Y[2]|=0x80;//点亮“+X点动”灯
else//循环起动键没有被按下
Y[2]&=~0x80;//灭掉“+X点动”灯
}
重新输入命令makeplcplc_null,并将编译所得的文件plc_放入NCBIOS.CFG所指定的位置,重新起动数控系统后,当按下“循环起动”键时,“+X点动”灯应该被点亮。
更复杂的PLC程序,可参考数控系统PLC目录下的*.CLD文件。
(4)华中数控PLC程序的安装
PLC源程序编译后,将产生一个DOS可执行.COM文件。
要安装写好的PLC程序,必须更改华中数控系统的配置文件NCBIOS.CFG。
在DOS环境下,进入数控软件所安装的目录,如C:
\HNC-21,在DOS提示符下敲入如下命令:
C:
\HNC-21>editncbios.cfg<回车>
可编辑数控系统配置文件。
一般情况下,配置文件的内容如下(具体内容因机床的不同而异,分号后面是为说明方便添加的注释):
DEVICE=.\DRV\HNC-21.DRV;世纪星数控装置驱动程序
DEVICE=.\DRV\SV_CPG.DRV;伺服驱动程序
DEVICE=C:
\HNC-21\plc\plc_;PLC程序
PARMPATH=.\PARM;系统参数所在目录
DATAPATH=.\DATA;系统数据所在目录
PROGPATH=.\PROG;数控G代码程序所在目录
BINPATH=.\BIN;系统BIN文件所在目录
TMPPATH=.\TMP;系统临时文件所在目录
HLPPATH=.\HLP;系统帮助文件所在目录
NETPATH=X:
;网络路径
DISKPATH=A:
;软盘
用粗体突出的第三行即设置好了上文编写的PLC程序plc_。
5、车床标准PLC系统
为了简化PLC源程序的编写,减轻工程人员的工作负担,华中数控开发了标准PLC系统。
车床标准PLC系统主要包括PLC配置系统和标准PLC源程序两部分。
其中,PLC配置系统可供工程人员进行修改,它采用的是友好的对话框填写模式,运行于DOS平台下,与其他高级操作系统兼容,可以方便、快捷地对PLC选项进行配置。
配置完以后生成的头文件加上标准PLC源程序就可以编译成可执行的PLC执行文件了。
(1)基本操作说明
图4主菜单
1)在图4所示的主操作界面下,按F10键进入扩展功能子菜单。
菜单条的显示如图5所示。
图5扩展功能子菜单
图6PLC子菜单
图7输入权限口令
图8确认输入权限口令
图9标准PLC配置系统
2)在扩展功能子菜单下,按F1键,系统将弹出如图6所示的PLC子菜单;
3)在PLC子菜单下,按F2键,系统将弹出如图7所示的输入口令对话框,在口令对话框输入初始口令HOG,则弹出如图8所示的输入口令确认对话框,按Enter确认,便进入如图9所示的标准PLC配置系统;
4)按F2键,便进入车床标准PLC系统;
5)Pgup、Pgdn为五大功能项相邻界面间的切换键;同一功能界面中用Tab键切换输入点;用←、↑、→、↓键移动蓝色亮条选择要编辑的选项;按Enter键编辑当前选定的项;编辑过程中,按Enter键表示输入确认,按Esc键表示取消输入;无论输入点还是输出点,字母“H”表示为高电平有效,即为“1”,字母“L”表示低电平有效,即为“0”;在任何功能项界面下,都可按ESC键退出系统。
6)在查看或设置完车床标准PLC系统后,按ESC键,系统将弹出如图10、图11所示的系统提示,按Enter键确认后,系统将自动重新编译PLC程序,并返回系统主菜单,新编译的PLC程序生效。
图10系统提示
图11系统提示
(2)配置数详细说明
车床标准PLC配置系统涵盖大多数车床所具有的功能,具体有以下五大功能项:
●机床支持选项配置;
●主轴输出点定义(主要用于电磁离合器输入点配置);
●刀架输入点定义;
●面板输入输出点定义;
●外部I/O输入输出点定义。
1)机床支持选项配置
机床支持选项配置主画面如图12,在本PLC配置界面中,字母“Y(Yes)”表示支持该功能,字母“N(No)”表示不支持该功能;
图12机床支持选项配置主画面
下面分别讲解系统支持功能选项每一项所代表的意思:
a)进给系统选项
●步进驱动器------指的是系统使用的是步进电机作进给系统。
●11型数字式伺服------指的是系统使用的驱动器是华中数控开发的HSV_11型数字交流伺服作进给系统驱动。
●16型全数字式伺服------指的是系统使用的驱动器是华中数控开发的HSV_16型全数字交流伺服作进给系统驱动。
●模拟伺服------指的是系统使用的驱动是由其他厂家生产的伺服驱动器作进给系统驱动,如:
Panasonic,FANUC,SIEMENS等。
●X轴抱闸------指的是系统是否有X轴抱闸功能。
如果没有此项功能,则要选”N”屏蔽此项功能。
b)主轴系统选项
●变频换档------指的是系统带有变频器,通过调节DA值的方式来调节系统主轴的转速。
●手动换档------指的是通过手工换档方式,既没有变频器,也不支持电磁离合器自动换档,是一种纯手工换档方式。
●自动换档------指的是电磁离合器换档,如:
“重庆第二机床厂”的八档位电磁离合器自动换档,“诸暨机床厂”的通过高、低速线圈切换来换档,这种方式称高低速自动换档。
●支持星三角------是指主轴电机在正转或反转时,先用星型线圈启动点机正转或反转,过一段时间后切换成三角线圈来转动电机。
●支持抱闸------指的是系统是否支持主轴抱闸功能。
如果没有此项功能,则要选”N”屏蔽此项功能。
c)刀架系统选项
●支持双向选刀------指的是系统的刀架既可以正转又可以反转,如果既可以正转又可以反转,在选刀时就可以根据当前使用刀号判断出选中目标刀号是要正转还是反转,以达到使刀架旋转的最小角度就能选中目标刀。
●刀架锁紧定位销------指的是在当前要选用的目标刀号已经旋转到位,此时刀架停止转动,然后刀架打出一个锁紧定位销锁住刀架。
一般的刀架是锁紧定位销打出一段时间后反转刀架来锁紧