第6章PLC的程序设计方法6.1梯形图的编程规则6.2经验设计法6.3顺序控制设计法6.4顺序控制梯形图的编程技术6.5PLC应用程序的设计与调试6.1梯形图的编程规则6.1.1梯形图的编程方法6.1.2梯形图的基本概念6.1.3梯形图的编程规则6.1.2梯形图的基本概念1.软继电器2.能流3.母线4.梯形图的逻辑解算图6-1梯形图a)错误的梯形图b)正确的梯形图6.1.3梯形图的编程规则1)每一逻辑行总是起于左母线,然后是触点的连接,最后终止于线圈或右母线(右母线可以不画出)。2)梯形图中的触点可以任意串联或并联,但继电器线圈只能并联而不能串联。3)触点的使用次数不受限制。4)一般情况下,在梯形图中同一线圈只能出现一次。5)对于不可编程梯形图必须做等效变换,变成可编程梯形图,如图6-1所示。6)程序结构优化。图6-2梯形图编程注意事项a)避免双线圈输出b)结构优化(一)c)结构优化(二)d)结构优化(三)e)结构优化(四)6.2经验设计法6.2.1经验设计法应用举例6.2.2经验设计法的特点6.2.1经验设计法应用举例1.具有互锁功能的可逆运转控制2.两台异步电动机延时起动的控制3.送料小车自动控制程序4.两处卸料小车自动控制程序图6-3三相异步电动机正、反转控制电路图6-4正、反转控制的PLC接线及梯形图程序图6-5两台电动机延时起动控制图6-6送料小车的自动控制a)小车运行示意图b)梯形图6.2.2经验设计法的特点1)设计繁琐,设计周期长。2)梯形图的可读性差,系统维护困难。6.3顺序控制设计法6.3.1顺序控制设计法概述6.3.2顺序控制设计法的设计步骤6.3.3功能图的绘制6.3.2顺序控制设计法的设计步骤1.步的划分2.转换条件的确定3.功能图的绘制4.梯形图的编制图6-8步的划分a)划分方法一b)划分方法二6.3.3功能图的绘制1.步与动作2.有向连线、转换和转换条件3.功能图绘制举例4.功能图的基本结构2.有向连线、转换和转换条件1)该转换所有的相邻前级步都是活动步。2)相应的转换条件得到满足。1)使所有由有向连线与相应转换符号相连的后续步都变为活动步。2)使所有由有向连线与相应转换符号相连的前级步都变为不活动步。图6-9液压滑台系统的功能图表6-1液压元件动作表元件工步Y0Y1Y2原位---快进+--工进+-+快退-+-表6-2输入/输出设备与PLCI/O对应关系PLCI/OX0X1X2X3Y0Y1Y2输入/输出设备SBSQ1SQ2SQ3YV1YV2YV34.功能图的基本结构(1)单序列(2)选择序列(3)并行序列图6-10功能图的基本结构图6-11单序列功能图图6-12剪板机的工作示意图6.4顺序控制梯形图的编程技术6.4.1使用起、保、停电路的编程方法6.4.2起、保、停电路编程方法的工程应用6.4.3以转换为中心的编程方法6.4.4以转换为中心编程方法的工程应用6.4.5使用STL指令的编程方法6.4.6使用STL指令编程方法的工程应用6.4.1使用起、保、停电路的编程方法1.单序列的编程方法2.选择序列的编程方法3.并行序列的编程方法4.编程注意事项图6-14单序列的编程图6-15使用起、保、停电路的单序列编程示例2.选择序列的编程方法1)选择序列的分支:如果某一步Mi的后面有N条分支,则该步Mi的停止电路是将N个后续步对应的辅助继电器的常闭触点串联。2)选择序列的合并:如某步之前有N个转换(即分支合并),则代表该步的辅助继电器的起动电路由N条分支并联而成,各支路由前级步的辅助继电器的常开触点与相应转换条件串联而成。图6-17使用起、保、停电路的选择序列的编程3.并行序列的编程方法1)并行序列的分支:若当前活动步为Mi且转换条件满足,则各分支的起动电路由代表活动步的辅助继电器的常开触点和代表转换条件的编程元件的常开触点串联而成。2)并行序列的合并:各并行序列的结束步与转换条件串联作为合并步的起动电路,停止电路由后续步的常闭触点完成。4.编程注意事项1)梯形图中不允许出现双线圈现象。2)如果在功能图中仅有由两步组成的小闭环,如图6-19a所示,则相应的辅助继电器线圈将不能通电。3)对于复杂的功能表图编程时,应注意转换的实现条件。图6-18使用起、保、停电路的并行序列的编程图6-19仅有两步的小闭环的处理图6-20复杂的功能图6.4.2起、保、停电路编程方法的工程应用图6-22液体混合装置示意图图6-23液体混合装置顺序功能图6.4.3以转换为中心的编程方法1.单序列的编程方法2.选择序列的编程方法3.并行序列的编程方法4.转换的同步实现与复杂系统的编程图6-25以转换实现为中心的编程方法a)转换b)对应电路块图6-26动力头控制系统2.选择序列的编程方法1)选择序列的分支:由于选择序列的实质就是单序列结构,因此以转换为中心的编程方法在选择序列的处理上同单序列相同,如图6-27所示。2)选择序列的合并:选择序列的合并处理和分支处理相同,也是根据转换的个数确定梯形图的梯级数,每个梯级结构均是以转换为中心的基本结构。图6-27以转换实现为中心的选择序列编程方法3.并行序列的编程方法1)并行序列的分支:若某步为一并行分支的开始,当该步变为活动步,且转换条件满足时,用SET指令并联输出,将对应的并行序列激活,用RST指令复位前级步。2)并行序列的合并:各序列转换前的活动步常开触点与转换条件“与”作为执行转换的条件,用SET指令置位后续步,并用并联的RST指令将前级步复位。图6-28以转换实现为中心的并行序列编程方法4.转换的同步实现与复杂系统的编程图6-29转换的同步实现图6-30较复杂系统的编程6.4.4以转换为中心编程方法的工程应用图6-31剪板机控制系统的梯形图图6-32信号灯控制系统a)时序图b)功能图6.4.5使用STL指令的编程方法1)与STL触点相连的触点应使用LD或LDI指令,即LD点移到STL触点右侧,直到出现下一条STL指令或RET指令,RET指令使LD点返回左侧母线。2)STL触点可以直接驱动或通过别的触点驱动Y、M、S、T等元件的线圈,STL触点也可以使Y、M、S等元件置位或复位。3)STL触点断开时,CPU不执行它驱动的电路块,即CPU只执行活动步对应的程序。4)由于CPU只执行活动步对应的电路块,使用STL指令时允许双线圈输出,即同一元件的几个线圈可以分别被不同的STL触点驱动。5)STL指令只能用于状态寄存器,在没有并行序列时,一个状态寄存器的STL触点在梯形图中只能出现一次。6)STL触点驱动的电路块中不能使用MC和MCR指令,但是可以使用CJP和EJP指令。7)与普通的辅助继电器一样,可以对状态寄存器使用LD、LDI、AND、ANI、OR、ORI、SET、RST、OUT等指令,这时状态器触点的画法与普通触点的画法相同。8)使状态器置位的指令如果不在STL触点驱动的电路块内,执行置位指令时系统程序不会自动将前级步对应的状态器复位。9)OUT指令与SET指令有相同的功能,即都能使转移源自动复位,但OUT指令只用于向分离的状态转移,而不是向相邻的状态转移,当需要从某一步返回到初始步时,用OUT指令。1.单序列的编程方法2.选择序列的编程方法3.并行序列的编程方法4.跳步与循环5.使用STL指令编程方法的规则图6-33STL指令与功能表图a)功能图b)STL指令的使用1.单序列的编程方法图6-34单序列的STL指令编程方法a)小车运行示意图b)功能图c)梯形图2.选择序列的编程方法1)选择序列的分支:如果某一步的后面有N条选择序列分支,则该步的STL触点开始的电路块中应有N条分别指明各转换条件和转换目标的电路并联。2)选择序列的合并:各序列的合并是在正确地确定每一步的转换条件和转换目标后“自然”完成的。图6-35选择序列的STL指令编程方法图6-36选择序列的STL指令编程示例a)状态转移图b)梯形图c)指令表3.并行序列的编程方法1)并行序列的分支:若某步为一并行分支的开始,当该步变为活动步,且转换条件满足时,用SET指令连续置位对应的并行序各步。2)并行序列的合并:各序列合并前应满足各序列确保同步(可设置等待步),将各序列转换前的步元件STL触点与转换条件常开触点“与”作为合并的条件,同步时应注意各序列结束时将输出线圈切断(可将转换条件的常闭触点串入输出线圈)。1)对并行分支编程时,先对分支状态进行驱动处理,然后按分支顺序进行状态转移处理。2)并行分支的汇合最多能实现8个分支的汇合。3)并行分支与汇合流程结构中,并联分支后面不能使用选择性转移条件,在转移条件后不允许并行汇合列。图6-37并行序列的STL指令编程方法图6-38并行序列的功能图编程举例a)状态转移图b)梯形图c)指令表图6-39含有选择序列、并行序列的控制功能图图6-40选择序列、并行序列的梯形图程序4.跳步与循环(1)跳步(2)循环图6-41含有跳步和循环的功能图5.使用STL指令编程方法的规则1)有些分支、汇合组成的状态转移图(功能图),它们连续直接从汇合线转移到下一个分支线,而没有中间状态,如图6-42所示。2)状态转移图中的转移条件不能使用ANB、ORB、MPS、MRD、MPP指令,应按图6-43所示的复杂转移条件的处理条件来确定转移条件。3)状态转移图中流程不能交叉,如图6-44所示。4)若要对某个区间状态进行复位,可用区间复位指令ZRST进行处理,如图6-45a所示;若要使某个状态中的输出禁止,可按图6-45b所示方法进行处理;若要使PLC的全部输出继电器Y断开,可用特殊辅助继电器M8034接成图6-45c所示电路,当M8034为ON时,PLC继续进行程序运算,但所有输出继电器Y都断开了。图6-42虚设状态的设置图6-43复杂转移条件的处理图6-44交叉流程的处理图6-45状态区间复位等的处理a)状态区间的成批复位b)禁止状态运行中有任何输出c)使PLC全部输出继电器都断开6.4.6使用STL指令编程方法的工程应用1.机械手的控制2.大、小球分类选择控制3.喷泉控制图6-46机械手的动作过程示意图图6-47机械手控制系统的状态转移图图6-48机械手控制系统步进梯形图及指令表a)梯形图b)指令表图6-49大、小球分类选择传送装置示意图图6-50系统的状态转移图图6-51喷泉组及状态分配a)喷泉组b)时序图及状态分配图6-52喷泉控制功能图和STL指令梯形图6.5PLC应用程序的设计与调试6.5.1互锁控制程序的设计6.5.2故障检测程序的设计6.5.3单按钮控制起停程序的设计6.5.4PLC程序及调试6.5.1互锁控制程序的设计1.不能同时发生的运动的互锁控制2.顺序步进互锁控制图6-53不能同时发生的运动互锁控制图6-54顺序步进互锁控制梯形图及工作循环示意图6.5.2故障检测程序的设计1.逻辑错误故障检测程序2.超时限检测程序3.首发故障自检程序图6-55逻辑错误检测程序图6-56超时限故障检测程序图6-57首发故障自检程序6.5.3单按钮控制起停程序的设计图6-58单按钮控制电动机起停程序6.5.4PLC程序及调试1.复杂程序的设计方法2.PLC程序的内容和质量3.PLC程序的调试1.复杂程序的设计方法(1)确定程序的总体结构(2)设计局部程序(3)程序的综合与调试图6-59复杂程序结构的一般形式2.PLC程序的内容和质量(1)PLC程序的内容(2)PLC程序的质量(1)PLC程序的内容1)初始化程序。2)检测、故障诊断、显示程序。3)保护、互锁程序。(2)PLC程序的质量1)程序的正确性。2)程序的可靠性高。3)参数的易调整性好。4)程序要简练。5)程序的可读性好。3.PLC程序的调试(1)程序的模拟调试(2)程序的现场调试图6-60第4题图图6-62第9题图图6-64第11题图图6-66第13题图图6-67第14题图