西门子S7-200PLC的程序结构

   2024-09-14 建材之家330
核心提示:西门子S7-200PLC用户程序可以采用主、子程序结构或普通线性化结构。当采用普通线性化结构时,只需要编制主程序OBl;当采用主、子程序式分块结构时,PLC程序由主程序(OBl)、子程序(SBRn)、中断程序( INRn)等组成。 S7-200 PLC的主、子程序结构对程序块的内部排列有规定的要求。主程序(OBl)必须进行编写,且位于程序的最前面;随后是子程序( SBRn)与中
    西门子S7-200PLC用户程序可以采用主、子程序结构或普通线性化结构。当采用普通线性化结构时,只需要编制主程序OBl;当采用主、子程序式分块结构时,PLC程序由主程序(OBl)、子程序(SBRn)、中断程序( INRn)等组成。
    S7-200 PLC的主、子程序结构对程序块的内部排列有规定的要求。主程序(OBl)必须进行编写,且位于程序的最前面;随后是子程序( SBRn)与中断程序(INRn)。在S7-200中,子程序(SBRn)、中断程序(INRn)可以根据需要进行选用与编写。
    (1)主程序
    S7-200主程序代号规定为OB1。早期的S7-200 PLC用户程序不分块,需要在主程序之后接着安排子程序与中断程序,因此,主程序的结束应使用指令MEND作为标记。但如果使用的是Micro/WIN32编程软件,主程序、子程序、中断程序都可以通过独立的区域进行编程,通过编程软件的自动编译功能,可以对程序进行自动的编排与调整,主程序的结束无须再编写指令MEND,如图1 (a)所示。
 

   图1  S7-200的程序结构与执行过程
    主程序081在S7-200 PLC中为用户程序的组织、管理者,必须位于PLC用户程序的最前面,以保证每次执行PLC循环时,首先对OB1进行扫描。
    同样,早期的S7-200在子程序结束处应使用指令RET作为返回标记,子程序SRBn必须编在主程序OB1的结束指令MEND之后。采用了Micro/WIN32编程软件后,这些由编程软件进行自动编排与调整。
    子程序SRBn在S7-200 PLC中为可选部分,可以编写也可以不编写。子程序的执行通过主程序OB1的对该子程序的调用实现,并非每次PLC循环都需要执行全部子程序。
    (3)中断程序
    S7-200 PLC的中断程序代号为INTn(n为十进制数值,可以是0--127),用于区别不同的中断程序。早期的中断程序结束应使用指令RETI作为返回标记,中断程序INTn同样必须编在主程序OB1的结束指令MEND之后,且习惯上是放在子程序SRBn之后(也可以放在子程序之前)。
    中断程序INTn在S7-200中同样为可以选择的部分,它需要通过主程序OB1的调用才能执行,并非每次PLC循环都需要执行全部中断程序。
    S7-200的程序结构与执行过程如图1 (c)所示。
    (4)局部变量堆栈
    在进行PLC程序设计时,程序中有很多为了简化逻辑块结构而设置的临时状态、数据存储单元,这些存储单元实际上只是为了方便编程、检查而设的临时存储单元,它与逻辑外部的程序无关,在S7中将其称为“局部变量”或“临时变量(Temp)”。
    根据需要,设计者可以在S7-200的OB1、SBRn、INTn中使用“临时变量”。“临时变量”存储在局部变量数据堆栈(L)中,这一区域为全部程序块所公用,只可以用于OB1或SBRn、INTn块内部使用的中间运算结果寄存(这些中间运算结果不可以用于块外部)。局部变量堆栈在程序块执行完成后,数据将被其他逻辑所需要的内容所替代。
    如果需要保存可以用于其他逻辑块的状态,应使用PLC的内部标志寄存器M或变量存储器V。
 
【温馨提示】本文内容和观点为作者所有,本站只提供信息存储空间服务,如有涉嫌抄袭/侵权/违规内容请联系QQ:727533600 删除!
 
举报收藏 0打赏 0评论 0

上一篇:S7-300/400的间接寻址的口诀

间接寻址是S7-300/400学习的难点之一,想了几句口诀,希望对大家能有所帮助:间接寻址不深奥,操作数带方括号。括号里面是指针,指针指向地址身。 下面的程序中,用局部变量双字LD20作为指针,指针中的地址为P#4.3。语句表程序状态监控时可以在INDIRECT(间接)区看到指针LD20中的地址4.3。由此可知M [LD 20]对应的实...

下一篇:浮点数的表示方法

有个学员问我,他在用S7-300读取变频器的参数P1082时(1082=16#43A),PLC 发送的4个字为16#143A 0000 0000 0000,变频器返回的为16#243A 0000 4248 0000。变量的浮点数值为16#42480000,对应的浮点数到底是多少? 在监视用的变量表中,将十六进制双字16#42480000的显示格式改为FLOATING_POINT(
 
更多>同类电工资讯
推荐图文
推荐电工资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  版权声明  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报