7
6ES7322-1CF00-0AA0型号规格
1.程序家族有哪些成员?
PLC的控制程序一般由主程序、子程序和中断程序组成。西门子的S7-300/400将子程序分为功能(Function,或称为函数)和功能块(Function Block)。
在每一个扫描循环周期,CPU都要调用一次主程序,用户程序必须有一个并且只能有一个主程序。小型控制系统可以只有主程序。
中断程序用于快速响应中断事件。在中断事件发生时,CPU将停止执行当时正在处理的程序或任务,去执行用户编写的中断程序。执行完中断程序后,继续执行被暂停执行的程序或任务。
2.哪些情况需要使用子程序?
当系统规模很大、控制要求复杂时,如果将全部控制任务放在主程序中,主程序将会非常复杂,既难以调试,也难以阅读。使用子程序可以将程序分成容易管理的小块,使程序结构简单清晰,易于调试、查错和维护。
子程序也可以用于需要多次反复执行相同任务的地方,只需要编写一次子程序,别的程序在需要的时候多次调用它,而*重写该程序。
3.怎样调用子程序?
主程序可以调用子程序,子程序也可以嵌套调用别的子程序。嵌套调用的层数是有限制的,例如S7-200的较大嵌套深度为8级。
执行完子程序后,返回调用它的程序中的调用指令的下一条指令。
4.每个扫描周期都会执行子程序吗?
子程序的调用可以是有条件的,在被调用期间,每个扫描周期都要执行一次被调用的子程序。调用条件不满足时不会执行子程序中的指令,因此使用子程序可以减少扫描循环时间。
5.停止调用子程序后,子程序中的线圈处于什么状态?
停止调用子程序后,不再执行子程序中的指令。子程序中线圈对应的编程元件如果没有受到别的程序的控制,将保持子程序最后一次执行后的状态不变。即使控制这些线圈的触点的状态变化,该线圈对应的元件的状态也不会变化,因为这时根本就没有执行子程序中的指令。
6.怎样实现子程序的无条件调用?
有的PLC的子程序调用指令不能直接接到左侧的垂直“电源”线上,需要通过触点电路来控制是否调用子程序,即子程序的调用是有条件的。可以用一直为ON的特殊位元件(例如S7-200的SM0.0或FX系列的M8000)的常开触点来实现子程序的无条件调用。
不同品牌的PLC的子程序大致可以分为两种,一种子程序没有输入、输出参数和局部变量,另一种则有。
1.什么是全局变量和局部变量?
以西门子的S7-200为例,输入I、输出Q、变量存储器V、内部存储器位M、定时器T、计数器C等属于全局变量,可以在符号表中为全局变量定义符号名。
程序组织单元(Program Organizational Unit)简称为POU,包括主程序、子程序和中断程序。每个POU均有自己的64字节局部变量,局部变量用L(Local)来表示,局部变量只能在它所在的POU中使用。与此相反,全局变量可以在各POU中使用。
2.局部变量有哪些类型?
子程序可以使用下列局部变量:
1) TEMP (临时变量)是暂时保存在局部数据区中的变量。只有在执行该POU时,定义的临时变量才被使用,POU执行完后,不再保存临时变量的数值。主程序和中断程序的局部变量表中只有TEMP变量。
2) IN(输入参数)由调用它的POU提供的传入子程序的输入参数。
3) OUT(输出参数)是子程序的执行结果,它被返回给调用它的POU。
4) IN_OUT(输入_输出参数)的初始值由调用它的POU传送给子程序,并用同一变量将子程序的执行结果返回给调用它的POU。
主程序和中断程序的局部变量表中只有临时变量TEMP。
3.子程序的输入、输出参数有什么作用?
具有输入、输出参数和局部变量的子程序易于实现结构化编程,对于长期生产同类设备或生产线的厂家尤为有用。编程人员为设备的各部件或工艺功能编写了大量的通用的子程序。即使不知道子程序的内部代码,只要知道子程序的功能和输入、输出参数的意义,就可以用它们快速“组装”出满足不同的用户要求的控制程序。就好像可以用数字集成电路芯片组成复杂的数字电路一样。
如果子程序没有输入、输出参数,这种子程序没有明确的软件接口,使用起来很不方便。
4.局部变量有什么优点?
1) 子程序如果没有局部变量,它和调用它的程序之间只能通过全局变量来交换数据,子程序内部也只能使用全局变量。将它移植到别的项目时,需要对各POU使用的全局变量作统一安排,以保不会出现冲突。当程序很复杂,子程序很多时,这种地址分配是很花时间的。
如果子程序有局部变量,并且在子程序中只使用局部变量,不使用全局变量,因为与其他POU没有冲突,不作任何改动,就可以将子程序移植到别的项目中去。
为了减少移植子程序的工作量,在子程序中应尽量避免使用全局变量和全局符号。
2) 如果使用局部变量表中的临时变量(TEMP),同一片物理存储器可以在不同的程序中重复使用。
下面以S7-200为例,介绍子程序的编程和调用的过程。
1.创建子程序
生成项目时,自动生成一个子程序。打开程序编辑器,执行“编辑”菜单中的命令“插入”→“子程序”,将自动生成和打开新的子程序。
2.生成局部变量
名为“模拟量计算”的子程序如下图所示,在该子程序的局部变量表中,定义了3个输入(IN)参数,一个输出(OUT)参数,和名为“暂存1”的临时(TEMP)变量。局部变量表较左边的一列是自动分配的每个变量在局部存储器(L)中的地址。
3.编写子程序的梯形图
局部变量表的下面是程序区(见上图),输入参数“转换值”是来自模拟量输入模块的与模拟量成正比的转换值,输出参数“模拟值”是计算出的对应的模拟量(例如压力、温度等)的工程值。子程序中变量名称前的“#”表示该变量是局部变量,它是编程软件自动添加的,输入局部变量时不用输入“#”号。特殊存储器位SM0.0的常开触点总是闭合。
4.子程序的调用
可以在主程序、其他子程序或中断程序中调用子程序,调用子程序时将执行子程序中的指令,直至子程序结束,然后返回调用它的程序中该子程序调用指令的下一条指令之处。
创建子程序后,在上图左边指令树较下面的“调用子程序”文件夹中自动生成刚创建的子程序“模拟量计算”对应的图标。
在梯形图程序中插入子程序调用指令时,首先打开主程序,显示出需要调用子程序的网络。打开指令树较下面的“调用子程序”文件夹,用鼠标左键按住需要调用的子程序图标,将它“拖”到程序编辑器中需要的位置。放开左键,子程序块便被放置在该位置。
子程序方框中左边的“转换值”等是在子程序“模拟量计算”的变量声明表中定义的输入参数,右边的“模拟值”是输出参数。它们被称为子程序的形式参数,简称为形参,形参在子程序内部的程序中使用。调用子程序时,需要为每个形参*实际的参数(简称为实参),例如为形参“转换值”*的实参为模拟量输入字AIW2(见上图)。
子程序调用指令中的实参的有效操作数为存储器地址、常量、全局符号和调用指令所在的POU中的局部变量,不能*被调用子程序中的局部变量。
CPU调用子程序时,输入参数被复制到子程序的局部存储器,子程序执行完后,从局部存储器复制输出参数到*的输出参数。



1 系统工作原理
1.1 控制要求
(1)竞赛者若要回答主持人所提问题时,须抢先按下桌上的抢答按钮;
(2)绿色指示灯亮后,须等主持人按下复位按钮PB5后,指示灯才熄灭;
(3)如果竞赛者在主持人打开SW1开关10 s内抢先按下按钮,电磁线圈将使彩球摇动,以示竞赛者得到一次幸运的机会;
(4)如果在主持人打开SW1开关10 s内无人抢答,则必须有声音警示,同时红色指示灯亮,以示竞赛者放弃该题;
(5)在竞赛者抢答成功后,应限定一定的时间回答问题,根据题目难易可设定时间(如2 min);
(6)当主持人打开SW2开关后记时开始,如果竞赛者在回答问题时**出设定时限,则红色指示灯亮并伴有声音提示,竞赛者停止回答问题。
1.2 选定输入、输出设备
输入设备 输入端子号
抢答按钮 PB11 0000
抢答按钮 PB12 0001
抢答按钮 PB21 0002抢答按钮 PB22 0003
抢答按钮 PB31 0004
抢答按钮 PB32 0005
抢答按钮 PB41 0006
抢答按钮 PB42 0007
复位按钮 PB5 0008
选择开关 SW1 0009
**开关 SW2 0010
输出设备 输出端子号
绿色指示灯L1输出 0500
绿色指示灯L2输出 0501
绿色指示灯L3输出 0502
绿色指示灯L4输出 0503
红色指示灯L5输出 0504
红色指示灯L6输出 0505
电磁开关SOL输出 0506
回答**声音输出 0508
2 系统软件设计[1~3]
2.1 控制梯形图
2.2 工作过程
(1)由于0500使用他的自身触点(常开触点),在0000或0001闭合后仍保持在ON状态(自锁)。同时,将其常闭触点串入其他各回路中,在0500接通后,他的常闭触点打开,切断其他抢答回路(互锁);
(2)0501,0502和0503以同样方式动作,自锁继电器在复位按钮PB5再次动作时将清零;
(3)机会选择开关SW1使0009闭合后,10 s定时器TIM00启动;
(4)如果0500,0501,0502和0503在10 s定时器TM00动作之前任何一个闭合,则0506变为ON以示抢答成功,同时切断10 s计时显示输出回路,否则输出声音提示,以示竞赛者放弃该题;
(5)常开触点0009断开后,自锁继电器和定时器TIM00将清零;
(6)抢答成功后,主持人闭合**开关SW2使
0010闭合后,2 min定时器TIM01启动,时间到0505和0508闭合,红灯亮并有声音提示停止回答;
(7)常开触点0010断开后,定时器TIM01清零,为下一轮抢答做好准备。
2.3 程序指令
2.4 外部接线图
外部接线如图2所示。
3 适当扩展
如果给电路加入适当的编、译码器件,就可以将红、绿灯指示变为直观的数字显示,对外围电路稍加修改,就可以变成多路多人抢答器,如六路或十路等,改为多路多人抢答器,可以在梯形图中再加入两路或六路分支即可。去掉程序中的互锁和抢答**功能,可以将抢答器改成呼叫器,可以用在医院的病房、工厂的车间等多种地方。
1 存在的问题
在水泥生产线上的各个控制环节,PLC作为局部工艺线核心控制单元的应用已不胜枚举,比如窑、磨的辅助控制,各类高低压电动机的控制、各类除尘设备的控制、各类仪表检测单元的控制等等。但在应用的过程中,不少企业尤其是中小企业经常遇到以下问题:一是控制装置大多是配套供应商开发的成套装置,配套的说明书都比较简陋,操作方面的内容较为详细,但对PLC的配套原始资料和梯形图(时序)则往往不予介绍提供,一旦出现问题,企业自身技术人员则往往束手无策;二是所选用的PLC基本上是进口产品,器件出现硬故障后订购周期较长,容易影响生产,而就近所能购置到的品牌又往往不是原来品牌,受自身设备水平限制难以实现自我替换;三是各企业电气维护人员水平参差不齐,中小企业的技术人员大多不具备一定的时序编制基础,没有相当的调试能力,对软故障的处理常无可奈何;四是所用PLC品牌较多,难以配齐手操编程器;五是个别供货商借机敲诈,以站不住脚的“保护知识产权”为由索要数倍的高价,企业难以承受。其实,从PLC本身而言,只不过是一种在当今电气控制领域运用相当普遍的器件而已,已不再是不可掌握的高技术产品。以下笔者结合自身经历介绍PLC替换的一些经验和具体事例。
2 PLC概述及替换基本原则
工业用PLC的核心部件是CPU及内存RAM、电源板(DC12/24V)、电池、接口模块、继电器(无触点开关)等,一般还包括发光管/显示屏、I/O输入输出端子、程序模块和PC电缆的接口、键盘等。现在水泥生产线上通常应用的PLC分为两个大类:一是功能较单一、结构简单的小型(基本型)PLC,无I/O扩展能力;二是功能强大、点数较多、带有扩展槽的高性能的中、大型PLC,有I/O扩展能力。在中小型水泥生产线和自动化水平不是很高的自控场合,基本上采用小型PLC,特别是单机除尘器、大风机调速控制、预热器吹堵清灰等控制功能单一的环节,小型PLC的应用十分普遍。从PLC的品牌来看,西门子、三菱、欧姆龙、AB、ABB等用的比较多;从结构性能来讲,大同小异,但互换性存在一定的问题。当确定在用的PLC本体出现故障时,我们要判断出所出故障是硬件受损还是软故障,软故障可采用手操编程器和PC机依照程序(梯形图)进行诊断恢复,硬件受损必须更换受损部件甚至是整台PLC。在整台更换过程中要注意几个问题:首先要考虑选用同一品牌同型号的,PLC不同于一般开关控制电器,需将所需时序通过PLC通讯口输入后方能投入使用,这要配备OP(手操编程器)和PC机方能实现,这是普通维护人员办不到的;其次要考虑在没有同型号的情况下选用功能相近的同一品牌的替代,若没有同一品牌的则选用功能相近的不同品牌的,但要特别注意电源电压等级一致性,I/O口数量不得少于原配PLC,原来应用所编时序可在新换PLC上运行,还有必要的外围电路的相应改造等等。
3 Φ3.5/3m×60m窑窑尾玻纤袋除尘器PLC的替换实例
2001年5月,我厂Φ3.5/3m×60m余热发电窑窑尾玻纤大布袋除尘器控制柜内核心元件——美国AB公司生产的固定式PLC(SLC5001747-L30C)出现故障,经有关技术人员诊断CPU板损坏,除尘器只能手动操作,经与供货商联系,因国内无现货、供货周期太长、要价太高而只能作罢。
玻纤袋收尘控制PLC原工作顺序如下:
1)PLC上电自检完毕后,按照卸灰1室→卸灰2→卸灰3室→卸灰4室,依次类推到8室,卸灰基准值为3min,每室工作间隔5s,卸灰完毕后,反吹风机启动,持续30s。
2)进入清灰状态
**室排气反吹阀开启,然后零阀开启,反吹基准值为30s,零阀关闭延续1min沉降粉尘,然后**室排气反吹阀关闭。
*二室排气反吹阀开启……依此类推持续到*八室。
3)各室清完灰后进入大间隔30min,而后进行再次循环重复以上工作。
我们在此情况下决定选用就近可以购买得到的三菱PLC替代,重新编程并对外围电路加以局部改造,具体改造方案概述如下:
1)根据AB公司SLC500的结构特点、供电电压(AC120/240V双组)和除尘器控制所用实际I/O口的数量,决定选用三菱公司的MELSECF1-60MR(AC110/220V)取代,其各项指标完**够满足要求。
2)重新编制时序(略),并根据车间要求将PLC工作时序加以改动,具体改动如下:卸灰状态在重复4遍后再进入反吹清灰状态,清灰完毕后取消大间隔30min而直接再进入卸灰状态,如此进行工作循环。
3)经程序调试和外部线路改造后一次试机成功。
自2001年6月初改造完毕投入运行以来,控制功能完全达到设计要求,同时外围电路接线较改造前更简洁实用,收到了良好的效果。投资情况:替换AB公司产品厂家要价4万元,而此次整个改造的花费(含编程调试)只有4800元