您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > PLC编程技术基础-步序编程法
内部培训教材PLC编程技术基础-步序编程法作者:王炯文件号:版本号:问题提出-流水灯灯泡#1灯泡#2灯泡#3灯泡#4灯泡#5灯泡#6灯泡#7灯泡#8灯泡#9灯泡#10如左图所示:共有10盏灯,按#1-#10的顺序循环点亮/熄灭,要求:1、灯点亮时间可以设置和调整2、灯熄灭时间可以设置和调整3、每盏灯都可以连续点亮/熄灭数次,次数可调4、大循环可以设置成手动停止或按循环次数停止5、编程软件使用RSLogix5006、PLC假设使用MicroLogix1500请编制解决问题的程序。最直接的思路有哪些?PLC编程的两种基本方法•步序编程法•时序编程法PLC编程之步序编程法左图为PLC步序编程法的基本流程图:1、当启动条件满足后,程序进入程序步Step1;2、程序步Step1中,系统执行用户定义的操作,并等待转换条件TransCondition1的到来;3、当转换条件TransCondition1满足后,程序步Step1结束,程序进入程序步Step2;4、程序步Step2中,系统执行用户定义的操作,并等待转换条件TransCondition2的到来;5、当转换条件TransCondition2满足后,程序步Step2结束,程序进入程序步Step3;6、如此类推,程序一步一步往下走,当转换条件TransConditionn满足后,程序结束。Step1ReadyEndStep2Step3Stepn-1StepnTransCondition1TransCondition2TransConditionn-1TransConditionnStartConditionPLC编程之步序编程法-定义Step1ReadyEndStep2Step3Stepn-1StepnTransCondition1TransCondition2TransConditionn-1TransConditionnStartCondition外部信号:E-Stop:紧急停车命令InterLock:联锁信号Init:初始化条件信号Pause:步序暂停命令Start:程序启动命令Stop:程序停止命令程序基本状态:Ready:准备好Pausing:暂停中Stepping:步序运行中End:程序结束程序基本元素:Stepn:步序程序体StepRecorder:步序寄存器TransCondition:步序转换条件步序编程支持下列行为:顺序、跳转、分支、循环等步序编程法-初始化条件初始化条件常出现在步序启动停止Ladder的下列位置:初始化条件:是指步序启动前必须满足的联锁条件。步序启动后,条件不满足,也不会影响步序的继续执行。常见于某些机械,步序动作开始前,要求所有可移动设备,回归原点。原点上位置开关必须满足条件后,方可启动。一旦启动,原点上位置开关必然会不满足条件,这时后将不影响步序执行。不是所有的步序程序都需要初始化条件。如本流水灯程序就可以不要。步序编程法-紧急停车和联锁停车紧急停车信号一般来自现场紧急停止按钮(自锁定,旋转或拉拔释放)、安全拉索、光栅保护或安全继电器等联锁停车信号一般来自生产过程中的某些报警,如液位高高或低低报警、超速报警、可燃气体报警、温度超限报警,当这种报警信号出现时,步序继续运行会给人身和设备带来危害紧急停车信号和联锁停车信号消失时,一般不允许立即启动程序,需要通过专门的人工复位命令去取消。题外话:Ladder的美观在编辑Ladder时,我们希望保持美观:1、用于自保持的触点应该位于并联线路的最下侧2、在同一Ladder上的并联线路,希望使用ExtandBranchDown或ExtandBranchUP命令,而不是AppendNewBranch命令下面这个Ladder的写法就不美观步序编程法-紧急停车和联锁停车紧急停车信号一般位于步序启动停止Ladder的下列位置:步序编程法-如何进入第一步程序?Ladder0003:在步序运行时,步序寄存器值为0时,可以进入第1步;步序寄存器不为0时,即进入和步序寄存器值相等的那一步Ladder0004:在步序停止时,如果步序寄存器不为0时,即强制步序寄存器值为0Ladder0004:当然,在非正常停车时,客户可能希望保留停车时状态,或者从停车位置重新开始运行,可以采用其他方法复位步序寄存器步序编程法-开始第一个步序编程一个标准的步序执行体如下:暂停命令可以让执行体程序停止执行步序执行被暂停暂停命令取消,步序恢复运行转换条件满足,步序寄存器值改变为2步序寄存器值转为2后,步序执行体1停止运行步序2已经开始执行等待步序2转换条件,以去下一步让我们把第一个灯的程序加入先按部就班地做:1、使用2个定时器,一个用于计算点亮时间,一个用于计算熄灭时间,通过改变T4:1.pre和T4:2.pre的值,可以调整灯点亮和熄灭时间2、本步序能够实现1#灯点亮、熄灭一次为了保证1#灯可以连续点亮和熄灭数次,再跳转到2号灯,可以加上一个计数器完成1#灯到10#灯的程序•按照1#灯步序执行体的写法,以完全相同的办法写完2#-10#灯的程序•现在的问题是:当10个步序完成后,程序接下去怎么写?首先-实现灯的大循环,怎么做?原来很简单,只需要把步序寄存器的值改为1就可以了:进一步思考:如果我们把步序寄存器的值改为2,会怎么样?如果我们把步序寄存器的值改为5,会怎么样?这样的步序结构可以简单的实现循环和跳转,对吗?实现大循环次数到后自动停止PLC编程之步序编程法-分支Step1ReadyEndStep2Step3Stepn-1StepnTransCondition1TransCondition2TransConditionn-1TransConditionnStartConditionEndStep3AStepn-1AStepnATransConditionn-1ATransConditionnATransCondition2根据不同的转换条件,赋予步序寄存器不同的值,可以轻易实现分支运行PLC编程之步序编程法-节拍图020304050607080910111213141516171801StepMotor1Motor2Valve1Valve2StartEnd上图是步序程序节拍图的常见形式之一使用节拍图表,可以非常直观地把顺序控制的工艺要求表现出来,并作为PLC编程指导PLC编程之步序编程法-输出从步序节拍图可以看出:1、单个设备在整个步序循环中,可能仅在其中某一步输出2、单个设备在整个步序循环中,可能在连续的多步中输出3、单个设备在整个步序循环中,可能在断开的不同步中输出针对这些情况,推荐比较好的输出程序写法PLC编程之步序编程法-输出Motor2在Step01-Step03连续输出,在Step05单步输出,在Step17-Step18再次输出,Motor2的输出程序可以这么写:输出程序写法1:优点:1、和节拍图直接吻合,非常清楚2、可以满足三种不同情况的输出缺点:当连续输出步序非常多时,Ladder非常长,显得啰唆注意:例程里的STEP01之类的Tag不代表直接的步序号,仅代表该步序里的要求输出信号。输出程序写法2:1、优点:针对类似Motor1的连续步序输出很长的情形写法非常简洁2、缺点:不适合断开的不同步中输出非常多的情况输出程序写法3:优点:一般直接写在步序体内,比较简介直观。缺点:重复输出,容易出错要注意:1、三种写法各有优缺点,适应不同场合,要求编程者在分析工艺清楚的情况下,采用最恰当的方法去做。2、在一个程序里,最好不要混用三种方法,应该只选一种方法去写!3、在重复输出的场合,一定要多检查置位和复位的配对情况PLC编程之步序编程法-总结•步序编程法是可以广泛适应各种工艺设备的编程方法,顺序控制的大部分情况,都可以分解成步序,灵活应用步序编程法,可以让PLC程序结构更清晰、更不容易出错、调试更容易、维护更简单。•采用步序编程法,要对工艺设备的顺序动作进行仔细分析,分解到每一步序,所以做一个好的PLC编程者,对客户需求的深入了解永远是第一位的。问题提出-流水灯灯泡#1灯泡#2灯泡#3灯泡#4灯泡#5灯泡#6灯泡#7灯泡#8灯泡#9灯泡#10如左图所示:共有10盏灯,按#1-#10的顺序循环点亮/熄灭,要求:1、灯点亮时间可以设置和调整2、灯熄灭时间可以设置和调整3、每盏灯都可以连续点亮/熄灭数次,次数可调4、大循环可以设置成手动停止或按循环次数停止进阶问题:1、灯的花式可调,怎么修改程序?2、灯的数量可调,怎么修改程序?刚才的问题进阶问题:1、灯的花式可调,怎么修改程序?2、灯的数量可调,怎么修改程序?第1个问题,是很容易解决的,通过修改每个步序执行体里控制的的数量、编号以及增加不同的转换条件,很容易实现流水灯的花式运转。比如,可以把转换条件设置成某一外部的模拟量第2个问题,比较麻烦,10个灯,写写还行,如果100个灯,1000个灯呢?所以步序编程并不是解决本问题的最好编程方法。PLC编程之步序编程法-结束•下一节介绍PLC之时序编程法
本文标题:PLC编程技术基础-步序编程法
链接地址:https://www.777doc.com/doc-1888487 .html