西门子模块6ES7231-7PD22-0XA8支持验货
西门子模块6ES7231-7PD22-0XA8支持验货
1 引言
可编程控制器PLC外部接线简单方便,它的控制主要是程序的设计,编制梯形图是常用的编程方式,使用中一般有经验设计法,逻辑设计法,继电器控制电路移植法和顺序控制设计法,其中顺序控制设计法也叫功能表图设计法,功能表图是一种用来描述控制系统的控制过程功能、特性的图形,它主要是由步、转换、转换条件、箭头线和动作组成。这是一种先进的设计方法,对于复杂系统,可以节约60%~90%的设计时间.我国1986年颁布了功能表图的国家标准(GB6988.6-86)。有了功能表图后,可以用四种方式编制梯形图,它们分别是:起保停编程方式、步进梯形指令编程方式、移位寄存器编程方式和置位复位编程方式。本文以三菱公司F1系列PLC为例,说明实现顺序控制的四种编程方式。
例如:某PLC控制的回转工作台控制钻孔的过程是:当回转工作台不转且钻头回转时,若传感器X400检测到工件到位,钻头向下工进Y430当钻到一定深度钻头套筒压到下接近开关X401时,计时器T450计时,4s后快退Y431到上接近开关X402,就回到了原位。功能表图见图1:
图1 功能表图
2 使用起保停电路的编程方式
起保停电路仅仅使用与触点和线圈有关的指令,无需编程元件做中间环节,各种型号PLC的指令系统都有相关指令,加上该电路利用自保持,从而具有记忆功能,且与传统继电器控制电路基本相类似,因此得到了广泛的应用。这种编程方法通用性强,编程容易掌握,一般在原继电器控制系统的PLC改造过程中应用较多。如图2为使用起保停电路编程方式编制的与图1顺序功能图所对应的梯形图,图2中只有常开触点、常闭触点及输出线圈组成。
图2 起保停电路实现顺序控制
3 使用步进梯形指令的编程方式
步进梯形指令是专门为顺序控制设计提供的指令,它的步只能用状态寄存器S来表示,状态寄存器有断电保持功能,在编制顺序控制程序时应与步进指令一起使用,而且状态寄存器必须用置位指令SET置位,这样才具有控制功能,状态寄存器S才能提供STL触点,否则状态寄存器S与一般的中间继电器M相同。在步进梯形图中不同的步进段允许有双重输出,即允许有重号的负载输出,在步进触点结束时要用RET指令使后面的程序返回原母线。把图1中的0-3用状态寄存器S600-S603代替,代替以后使用步进梯形指令编程,对应的梯形图如图3所示。这种编程方法很容易被初学者接受和掌握,对于有经验的工程师,也会提高设计效率,程序的调试、修改和阅读也很容易,使用方便,程序也较短,在顺序控制设计中应优先考虑,该法在工业自动化控制中应用较多。
图3 步进指令实现顺序控制
4 使用移位寄存器的编程方式
从功能表图可以看出,在0-3各步中只有一个步在某时刻接通而其他步都在断开,把各步用中间继电器M200-M203代替,就很容易用移位寄存器实现控制。图4为用移位寄存器编程时的梯形图,采用移位寄存器M200-M217的前四位M200-M203代表4个步,组成1个环形移位寄存器。用移位寄存器主要是对数据、移位、复位3个输入信号的处理。该方法设计的梯形图看起来简洁,所用指令也较少,但对较复杂控制系统设计就不方便,使用过程中在线修改能力差,在工业控制中使用较少,大多数应用在彩灯顺序控制电路中。
图4 移位寄存器实现顺序控制
5 使用置位复位指令的编程方式
如图5为使用置位复位编程方式编制的与图1顺序功能图所对应的梯形图。在以置位复位指令的编程方式中,用某一转换所有前级步对应的辅助继电器的常开触点与转换对应的触点或电路串联,作为使所有后续步对应的辅助继电器置位和使所有前级步对应的辅助继电器复位的条件。对简单顺序控制系统也可直接对输出继电器置位或复位。该方法顺序转换关系明确,编程易理解,一般多用于自动控制系统中手动控制程序的编程。
图5 置位复位指令实现顺序控制
以上四种顺序控制编程方式各有特点,可以根据实际情况选择一种来编制梯形图,它们的一般比较见附表。教学实践表明这些编程方式很容易被初学者接受和掌握,用它们可以得心应手地设计出任意复杂的顺序控制程序。
6 结束语
采用功能表图的四种方式来编制梯形图,可适应于不同场合,供工程技术人员视工艺要求决定。它是一种先进的设计方法,对于复杂系统,能节省(60~90)%的时间。
PLC的控制方式属于存储程序控制,其控制功能是通过存放在存储器内的程序来实现的,若要对控制功能作必要修改,只需改变控制程序即可,这就实现了控制的软件化。可编程控制器的优点在于“可”字,从软件来讲,其控制程序可编辑、可修改;从硬件上讲,其外部设备配置可变。构建一个PLC控制系统的重心就在于控制程序的编制,但外部设备的选用也将对程序的编制产生影响。因此在进行程序设计时应结合实际需要,硬、软件综合考虑。本文就硬、软两方面,选取梯形图为编程语言,以松下电工FPO-C32型PLC为例,对PLC使用过程中易出现的几个问题及解决方法进行了分析。
一、外部输入设备的选用与PLC输入继电器的使用
(一)外部输入信号的采集
PLC的外部设备主要是指控制系统中的输入输出设备,其中输人设备是对系统发出各种控制信号的主令电器,在编写控制程序时必须注意外部输入设备使用的是常开还是常闭触点,并以此为基础进行程序编制。否则易出现控制错误。
在PLC内部存储器中有专用于输入状态存储的输入继电器区,各输入设备(开关、按钮、行程开关或传感器信号)的状态经由输入接口电路存储在该区域内,每个输入继电器可存储一个输入设备状态。PLC中使用的“继电器”并非实体继电器,而是“软继电器”,可提供无数个常开、常闭触点用于编程。每个“软继电器”仅对应PLC存储单元中的一位(bit),该位状态为“1”,表示该“软继电器线圈”通电,则程序中所有该继电器的触点都动作。输入继电器作为PLC接收外部主令信号的器件,通过接线与外部输入设备相联系,其“线圈”状态只能由外部输入信号驱动。输入信号的采集工作示意图如图1。[bbb=][/bbb]
图1 PLC输入信号采集示意图
输入继电器线圈的状态取决于外部设备的状态.
图1中,输入设备选用的是按钮SB0的常闭触点,输入继电器X0的线圈状态取决于SB0的状态。该按钮未按下时,输入继电器X0线圈状态为“1”通电状态,程序中所有X0触点均动作,即常开触点接通,常闭触点断开;若按下该按钮,则输入继电器X0线圈状态为“0”断电状态,程序中所有X0触点均恢复常态。如果输入继电器连接的输入设备是按钮SB0的常开触点,则情况恰好相反:在该按钮未按下时,输入继电器X0线圈状态为“0”断电状态,程序中所有X0触点均不动作;若按下该按钮,输入继电器X0线圈状态为“1”通电状态,程序中所有X0触点均动作。
(二)停车按钮使用常闭型
由于PLC在运行程序判别触点通断状态时,只取决于其内存中输入继电器线圈的状态,并不直接识别外部设备,因此编程时,外部设备的选用与程序中的触点类型密切相关。这是一个在对照电气控制原理图进行PLC编程时易出现的问题。典型的例子是基本控制——“起保停控制”中的停车控制。
[bbb=][bbb=][/bbb][/bbb]
图2 “起保停控制”电气原理图
图2为“起保停控制”电气原理图,在该系统中,按钮SB0用于停车控制,因此使用其常闭触点串联于控制线路。SBl为起动按钮,使用其常开触点。若使用相同的设备(即停车SB0用常闭触点,起动SBl用常开触点),利用PLC进行该控制,则需编程梯形图程序(图3):
[bbb=][/bbb]
图3 “起保停控制”梯形图程序(停车按钮使用常闭触点)
I/O分配:SB0——X0,SBl——Xl,输出Y0
该梯形图中停车信号X0使用的是常开触点串联在控制线路中,这是因为外部停车设备选取按钮常闭触点所致,不操作该按钮,则输出Y0正常接通,若按下该按钮,输出Y0断电。
(三)停车按钮使用常开型
若希望编制出符合我们平时阅读习惯的梯形图程序(图4),则在选用外部停车设备时需使用按钮SB0的常开触点与X0相连。
[bbb=][bbb=][/bbb][/bbb]
图4 “起保停控制”梯形图程序(停车按钮使用常开触点)
I/O分配:SB0——X0,SBl——Xl,输出Y0
图3、4梯形图完成相同的控制功能,程序中停车信号X0使用的触点类型却不相同,其原因就是连接在输入继电器X0上的外部停车按钮触点类型选用不同。图4所示梯形图程序更加符合我们的阅读习惯,也更易分析其逻辑控制功能,因此在PLC构成控制系统中,外部开关、按钮无论用于起动还是停车,一般都选用常开型,这是一个在使用PLC时需要格外注意的问题。
二、PLC的“串行”运行方式与控制程序的编制
PLC与继电接触器控制的重要区别之一就是工作方式不同。继电接触器控制系统是按“并行”方式工作的,也就是说是按同时执行的方式工作的,只要形成电流通路,就可能有几个电器同时动作。而PLC是以“串行”方式工作的,PLC在循环执行程序时,是按照语句的书写顺序自上而下进行逻辑运算,而前面逻辑运算的结果会影响后面语句的逻辑运算结果。因此梯形图编程时,各语句的位置也会对控制功能产生关键影响。例如:
[bbb=][/bbb]
图5 程序1
程序1调试结果:X0接通3次,Y3接通,X0再接通1次,Y3断开。
[bbb=][/bbb]
图6 程序2
程序2程序调试结果.X0接通3次,Y3接通瞬间即断开。
上面两个程序中,输出Y3、计数器CTl02及内部通用继电器R0前面的逻辑条件均相同,仅仅是计数器CTl02所在语句位置发生了变化,而两段程序的运行结果就截然不同。这是因为CTl02对输出Y3的影响方式发生了变化。执行段程序时,将首先判断输出Y3的状态,再判断CTl02的状态,CTl02的状态变化只能在下一个扫描周期对Y3产生影响;而执行第二段程序时,将首先判断CTl02的状态,再判断输出Y3的状态,CTl02的状态变化将在该扫描周期直接影响Y3的状态。
从以上讨论可以得出,由于PLC采用“串行”工作方式,所以即使是同一元件,在梯形图中所处的位置不同,其工作状态也会有所不同,因此在利用梯形图进行控制程序编制时,应对控制任务进行充分分析,合理安排各编程元件的位置,才能够更为准确地实现控制。
三、PLC的编程元件
PLC的各种功能主要是通过运行控制程序来实现。编制程序时,需要合理使用PLC提供的编程元件(即软元件)。FPO型PLC中常用的编程元件有两种:位元件(bit)和字元件(word)。位元件实际上是PLC内存区域所提供的一个二进制位单元,又被称为软继电器,主要用作基本顺序指令的编程元件,如输入继电器Xn、输出继电器Yn、内部通用继电器Rn、定时(计数)器等,其参与控制的方式主要是通过对应触点的通断状态改变影响逻辑运算结果即输出。
字元件则为PLC内存区域内的一个字单元(16bit),主要用作功能指令和指令的编程元件,通常用以存放数据,如数据寄存器DTn,定时(计数)器的设定值SVn、经过值EVn等。字元件没有触点,通常以整体内容参与控制。
值得注意的是内存中的输入(X)区、输出(Y)区和内部通用(R)区,该区中的每个bit均可用作位元件,而且每16bit可构成一个字元件,如WRIO即是由16个位元件R100~R10F构成的字元件,该字元件中的内容一旦发生变化,这16个位的状态也随之发生改变。如:
[bbb=][/bbb]
图7 编程元件示例程序
图7所示程序中,WR0即为字元件,是左移位指令SR的编程元件,而Y0为输出软继电器的线圈,X0、X1、X2、X3则为输人软继电器的触点,其中第4步的R4触点为位元件R4的常开触点,而位元件R4又是字元件WR0中的一位,因此其状态受限于WR0的移位结果。
四、顺序控制多步同输出的编程方法
顺序控制是生产现场常见的一类控制任务,步进指令是PLC指令库中专用于顺序控制的。步进指令编程时,根据工艺流程将程序划分为一个个独立的程序段,执行时,CPU严格按梯形图编程顺序,只有执行完前一段程序后才能激活下一段程序,并在下一段程序执行之前,将前面程序段复位。并且在语法上要求各程序段所使用的输出不允许重复。这在解决顺序控制任务中有多步同输出的情况时,就带来了一定的困难。借助于内部通用继电器可方便解决这一难题。如某一顺序控制任务如以下流程图(图8)所示。
[bbb=][/bbb]
从机械手动作流程图可以看出,这个控制任务每个循环的工作可以划分为八步,其中第1步与第5步动作相同,均为上升;第3步和第7步动作相同,均为下降。在利用步进指令进行编程时,这两个工步所对应的程序段的输出不能直接设置为Y3、Y4,同一个输出使用两次则会出现语法错误。这时应考虑使用用于存储中间状态的内部通用继电器Rn来解决这个问题。如图7所示梯形图程序,其中R1、R5分别被定义为第1步与第5步的输出,R3、R7分别被定义为第3步与第7步的输出,在步进结束后再将R1、R5的状态输出到上升Y3,将R3、R7的状态输出到下降Y4,通过这样的方法可方便解决顺序控制任务中若干工步输出相同的问题。