PLC程序分为系统程序和应用程序(用户程序)。系统程序是PLC生产厂家编制的程序,存放在系统内存中,用于系统控制。用户程序是PLC用户根据受控对象的生产过程和工艺要求,为解决实际应用问题而编制的程序。
1.PLC程序的结构
(1)用户程序的分类
S7-200 PLC的控制程序分为主程序、子程序和中断程序3种。
主程序是用户程序的主体,在一个项目中只能有一个主程序,CPU在每个扫描周期都要执行一次主程序指令。
子程序是程序的可选部分,最多可以有64个,合理使用子程序,可以优化程序结构,减少扫描时间。子程序一般在主程序中被调用,也可以在子程序或中断程序中被调用。只有被调用的子程序,才能够执行。
中断程序也是程序的可选部分,是用来及时处理与用户程序的执行时序无关的操作,或者不能事先预测何时发生的中断事件,最多可以有128个。它的调用由各种中断事件触发,而不是由用户程序调用,中断事件一般有输入中断、定时中断、高速计数器中断和通信中断等。可在其他程序中使用的寄存器不允许被中断程序改写。
(2)S7-200 PLC的程序结构
S7-200 PLC的用户程序结构可分为两种:线性程序结构和分块程序结构。
1)线性程序结构。
线性程序结构是指一个工程的全部控制任务被分成若干个小的程序段,按照控制的顺序依次排放在主程序中,编程时,用程序控制指令将各个小的程序段依次连接起来;程序执行过程中,CPU不断扫描主程序,按照编写好的指令代码顺序地执行控制程序。
线性程序结构简单明了,但是仅适合控制量比较小的场合。控制任务越大,线性程序的结构就越复杂,CPU执行效率就越低,系统越不稳定。
2)分块程序结构。
分块程序结构是指一个工程的全部控制任务被分成多个任务模块,每个模块的控制任务由子程序或中断程序完成。编程时,主程序和子程序(或中断程序)分开独立编写;在程序执行过程中,CPU不断扫描主程序,碰到子程序调用指令就转移到相应的子程序中去执行,遇到中断请求就调用相应的中断程序。
分块程序结构虽然复杂一点,但是可以把一个复杂的控制任务分解成多个简单的控制任务。分块程序有利于代码编写,而且程序调试也比较简单。所以,对于一些相对复杂的工程控制,建议使用分块程序结构。
2.编程规则
PLC程序是按照逐行扫描执行的,因此在编制PLC梯形图程序时,元器件或触点排列顺序对程序执行有很大影响,必须按照梯形图设计原则和规律进行编程。一般应遵循下列基本原则:
1)梯形图中的触点,无论是I/O触点、内部通用继电器触点、定时器触点还是计数器触点,均可在编写程序时无限次使用。
2)梯形图按照从上到下、从左到右的顺序排列,每个输出线圈为一个逻辑行。每一逻辑行从左母线开始,到线圈或其他输出功能结束。输出符号必须在最右边。
3)梯形图垂直线上不能画触点,如图4-30所示。
图4-30 梯形图垂直线上不能画有触点
a)错误 b)正确(www.daowen.com)
4)线圈不能直接与左母线相连。如果需要,可以通过特殊内部标志位存储器SM0.0(该位始终为1)来连接,如图4-31所示。
3.编写技巧
1)在若干支路并联的梯形图程序中,应将串联触点较多的支路编写在梯形图的上方。这样可以省略程序执行时的堆栈操作,减少指令数,如图4-32所示。
2)在串联支路中,应将并联触点较多的支路编写在梯形图的左边,这样可以省略程序执行时的堆栈操作,减少指令条数。如图4-33所示。
图4-31 线圈不能直接与左母线相连
a)错误 b)正确
图4-32 若干支路并联的梯形图画法
a)安排不合理 b)安排合理
图4-33 串联支路中并联触点较多的支路梯形图画法
a)电路安排不当 b)电路安排正确
3)对复杂逻辑的梯形图,用ALD、OLD等指令难以编程,可重复使用一些触点画出其等效电路,然后再进行编程,如图4-34所示。
图4-34 复杂逻辑的梯形图画法
a)复杂电路 b)等效电路
4)在程序设计时,对于需要多次使用的若干逻辑运算的组合,应尽量使用内部标志位存储器,如图4-35所示,这样可以简化程序,又可以在逻辑运算条件修改时,只修改内部标志位存储器的控制条件,即可完成所有程序的修改,为程序的修改和调整带来方便。
图4-35 内部标志位的使用
a)多次使用逻辑运算的组合 b)使用内部标志位
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。