PLC的SFC程序设计方法 [图文]

[复制链接]
查看2772 | 回复4 | 2007-11-7 23:10:00 | 显示全部楼层 |阅读模式
PLC最初的出现是为了取代继电器控制系统,用软元件的逻辑运算来代替硬接线逻辑,以满足工业产品型号规格的不断变化及批量小、交货期短的市场需求。因此旱期PLC的软件功能比较简单,主要进行“与”、“或”等基本的逻辑运算。但随着微电子技术和计算机技术的发展,现在市场上出售的PLC除保留基本逻辑 运算。但随着微电子技术和计算机技术的发展,现在市场上出售的PLC除保留基本逻辑指令以外,还有大量的用于数据处理等的功能指令;除了可以用基本的梯形图编程以外,还可以用顺序功能图(SFC)和步进梯形图进行编程;除了进行顺序逻辑控制以外,还可以进行模拟量的运算与控制。
一、基本逻辑指令编程的困难

用PLC的基本逻辑指令进行编程,其基本的设计方法同继电器-接触器控制系统的设计方法是相似的,通常有经验设计法和逻辑设计法两种。经验设计法自然与设计者的经验有关,要求设计者有丰富的设计经验、熟悉比较多的控制线路等,尽管这样,在联锁比较复杂的情况下,也难免出现设计漏洞,理论上不能保证设计的完备性。逻辑设计法比较复杂,一般设计人员难以掌握,虽然从理论上讲是完备的,但实际在设计过程中同样要渗进不少经验和人为的因素,尤其在工序步进动作比较复杂的情况下更是如此。
二、用步进顺控指令编程

步进顺控指令的出现解决了以上困难,可以用符合IEC标准的SFC(Sequential Function Chart,顺序功能图,或状态转移图)对问题进行描述和编程。用SFC进行编程,不需对时刻变化的工序步进动作进行设计,工序之间的联锁或双重输出的处理SFC均能自动进行,只要对各个工序进行简单的顺序设计就能保证机械正确动作;使用者也可容易理解全部动作过程,能自动执行对各个工序的监视,试运行调整以及故障检查非常方便,维修保养也容易。
PLC的SFC程序设计方法:
(1)用SFC进行顺序动作的编程是SFC最基本的用途, 也是相对简单的,只需写出机械动作的工序图,进行状态分配,然后根据转移条件的顺序、并行或选择画SFC图,再将SFC改画成梯形图就可以了。
(2)SFC不只是可以用于对顺序的机械动作进行编程,也可以用于一般的逻辑编程,尤其是在分支判断比较复杂的情况下,采用SFC编程可使问题大大减化。例如在电梯控制中,假如电梯正在上行,要判断下一层是否要停的流程,如图1示,其中的逻辑判断是比较复杂的,若采用基本逻辑 指令进行编程,则程序很复杂,包含很多跳转,程序的阅读、检查都很费劲,但若采用SFC编程则轻松多了,根据流程图可直接 写出图2所示的具有选择性分支的SFC流程。
按此在新窗口浏览图片javascript:if(this.width>screen.width-333)this.width=screen.width-333">
图1 电梯运行图
按此在新窗口浏览图片javascript:if(this.width>screen.width-333)this.width=screen.width-333">

在图2中,在状态S33中判断下一站厢内有无下梯的, 在状态S22判断下一站厢外有无呼上,S24判断下一站厢外有无呼下,S26判断以下各站有无呼梯,根据具体情况转入相应处理,可以进一步很容易地写出步进梯形图,很方便进行调试与检查。
(3)在控制逻辑比较复杂的情况下,有时用一个SFC流程很难进行编程,这时可以在一个程序中使用多个独立的SFC流程,还可进行子程序调用等。例如图3给电梯控制的梯形图程序结构,图中子程序P0完成信号的采集与显示 :以S0为起始状态的SFC流程进行上下行判断,判断的结果存放在M500和M502中,上行M500接通,下行M502接通;S1开始的SFC流程进行上 行处理;S2开始的SFC流程进行下行处理。
按此在新窗口浏览图片javascript:if(this.width>screen.width-333)this.width=screen.width-333">

(4)在具有多个独立的SFC流程的程序中,一个SFC结束后可能返回本SFC的初始状态,也可能退出该SFC进入别的流程。对于要返回本SFC初始状态的情况则比较简单,当最后一个状 态结束后置位(输出)其初始状态即可;对于要退出该SFC的情况,只须在最后一个状态结束后,清除该状态。以电梯控制系统的上行处理为例,在上行过程中,若下一站需要停,且停后上行过程结束,则退出该SFC流程;若下一站需要停,但停后上行过程并未结束,则返回S1;若下一站不需要停,则电梯继续上。SFC流程结束必须用RET指令返回主母线。
三、结束语
PLC作为工业自动化的首选控制工具已广泛应用于各种控制场合,PLC控制系统设计的主要问题是编程,在主流程中采用子程序调用、SFC编程等方法可以使程序结构清晰,易于阅读及维护,尤其是SFC的使用可以大大减轻编程的工作量,缩短系统设计时间。
Tracking | 2007-11-7 23:16:00 | 显示全部楼层
好帖子
tangjin | 2007-11-7 23:53:00 | 显示全部楼层
是什么啊
sztad | 2007-11-10 21:04:00 | 显示全部楼层
顶~
martinblong | 2007-11-10 21:44:00 | 显示全部楼层
学学..........
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则