您现在的位置是:首页 > PLC技术 > PLC技术

S7-200系列PLC的用户程序结构

来源:艾特贸易2017-06-04

简介用户程序作为程序块是程序的必选项。用户程序在存储器空间中也称为组织块,它处于最高层次,可以管理其他功能块,是用各种语言(如 STL 、 LAD 或 FBD 等)编写的程序。不同机型的

    用户程序作为程序块是程序的必选项。用户程序在存储器空间中也称为组织块,它处于最高层次,可以管理其他功能块,是用各种语言(如STLLADFBD等)编写的程序。不同机型的CPU,其程序空间容量是不同的。    用户程序的结构比较简单,一般,一个完整的用户程序由可执行代码和注释组成。可执行代码由主程序和若干子程序或中断服务程序组成。可执行代码被编译并下载到CPU中,而程序注释不会被下载。可以使用这些组件(主程序、子程序和中断服务程序)来结构化用户控制程序。    不同编程设备,对各程序组件的安排方法也不同。如果编程使用的是手持编程器,主程序应安排到程序的最前面。其他部分的位置安排没有严格的顺序,但习惯上把子程序安排在中断程序的前面,如图4-10所示。
程序结构
    4-10    程序结构    如果用编程软件在计算机上编程,程序的组织有以下两种方法。    一种是利用编程软件的程序结构窗口。双击主程序、子程序和中断程序的图标,进入各程序块的编程窗口。图4 -11所示为STEP7 -Micro/WIN编程软件的项目窗口。图中指令树窗口中的“程序块”目录下显示了“主程序( OB1)、子程序(SBR0)、中断服务程序(INT0)”的图标;同时,在程序编程器窗口下方也有这三个程序块的标签,以方便于编程时切换。编译时编程软件自动对各程序段进行连接。
STEP7-Micro/WIN编程窗口
    4-11    STEP7-Micro/WIN编程窗口    另一种方法是只用主程序窗口,把主程序和所有子程序及中断程序放到一起,通常的方法是把主程序放在最前,然后是子程序和中断程序。    这两种组织方法是完全等效的。对于大规模程序,用第一种方法比较方便。    1.主程序    主程序是应用程序中的必选组件,CPU在每一个扫描周期中顺序执行这些指令。主程序也被表示为OB1。在用手持编程器编程时,主程序应以一条MEND指令作为主程序结束指令。但STEP7-Micro/WIN软件不再需要编程人员将这条指令加到主程序的结尾,而是在程序编译时由系统自动加入。    2.子程序    子程序是应用程序中的可选组件。只有被主程序、中断服务程序或者其他子程序调用时,子程序才会执行。当程序员希望重复执行某项功能时,子程序是非常有用的。与其在主程序中的不同位置多次使用相同的程序代码,不如将这段程序逻辑写在子程序中,然后在主程序中需要的地方调用。调用子程序有以下几个优点。    1)用子程序可以减少主程序的长度。    2)由于将代码从主程序中移出,因而用子程序可以缩短程序扫描周期。CPU在每个扫描周期中处理主程序中的代码,不管代码是否执行。而子程序只有在被调用时,CPU才会处理其代码。在不调用子程序时,CPU不会处理其代码。    3)用子程序创建的程序代码是可传递的。程序员可以在一个子程序中完成一个独立的功能,然后将它复制到另一个应用程序中而无需做重复工作。    如果用手持编程器编程,子程序的位置必须紧跟在主程序的后面,每个子程序应有不重复的序号SBR_N,以便主程序正确调用,每个子程序的结束指令为RET。编程软件同样不再要求程序员手工输入编号和RET指令,但根据编程人员的要求可对编号名称进行修改。    3.中断服务程序    中断服务程序也是应用程序中的可选组件。程序员可以为一个预先定义好的中断事件设计一个中断服务程序即将一个中断服务程序与一个中断事件相关联。    正常时,中断服务程序不会被主程序调用,只有每次中断事件发生时,CPU才会执行中断服务程序。    若用手持编程器编程,中断服务程序的位置必须放在主程序的后面,每个中断服务程序应有不重复的序号INT_N,以便每个中断事件发生时正确执行,每个中断服务程序应以RETI为结束指令。使用编程软件编程时不再要求程序员手工输入中断服务程序编号和RETI指令,编号名称也可以进行修改。