西门子s7200PLC的控制程序一般由主程序、子程序和中断程序组成。在每一个扫描周期CPU都要调用一次主程序,可以在主程序中调用子程序。执行完子程序后,返回子程序调用指令的下一条指令。当在中断事件发生时,CPU将停止执行当时正在处理的程序或任务,去执行用户编写的中断程序。执行完中断程序后,继续执行被停止执行的程序或任务。
小型的控制系统可以只有主程序,没有子程序和中断程序。那么哪些情况下需要使用子程序:
在系统规模很大、控制要求复杂时,如果将全部控制任务放在主程序内,主程序会变得非常复杂,难读懂,难以调试,也难以阅读。如果使用子程序的话就可以将复杂的程序分成一段一段的,使程序结构简单清晰,便于维护和查找错误。
子程序还可以用于需要反复执行相同任务的地方,只需要编写一次子程序,别的程序需要时可调用,而无需重写该程序。
子程序可以调用别的子程序。但嵌套调用的层数是有限制的,西门子S7200的层数最大为8层。
相比较三菱PLC的程序主次分明,层次清晰,结构分明,主程序只有一个,名称为OB1。
子程序可以达到64个,名称分别为SBR0~SBR63。子程序可以由子程序或中断程序调用。 中断程序可以达到128个,名称分别为INT0~INT127。中断方式有输入中断、定时中断、高速计数中断、通信中断等中断事件引发,当CPU响应中断时,可以执行中断程序。
由这三种程序可以组成线性程序和分块程序两种结构。
一、线性程序结构
_线性程序是指一个工程的全部控制任务都按照工程控制的顺序写在一个程序中,比如写在OB1中。程序执行过程中,CPU不断地扫描OB1,按照事先准备好的顺序去执行工作,如图:
显然,线性程序结构简单,一目了然。但是,当控制工程大到一定程序之后,仅仅采用线性程序就会使整个程序变得庞大而难于编制、难于调试了。
二、分块程序结构
分块程序是指一个工程的全部控制任务被分成多个小的任务块,每个任务块的控制任务根据具体情况分别放到子程序中,或者放到中断程序中。程序执行过程中,CPU不断地调用这些子程序或者被中断程序中断,
分块程序虽然结构复杂一些,但是可以把一个复杂的过程分解成多个简单的过程。对于具体的程序块容易编写,容易调试。从总体上看,分块程序的优势是十分明显的。