北京西门子SITOP电源中国经销商
S7-300/400 PLC的程序结构。S7-300/400 PLC的程序结构随着编程人员所采用的程序设计方法的不同而不同。一般而言,程序设计可以采用线性化编程、调用式编程、结构化编程的方法。
采用线性化编程时,所有程序指令都编写在一个连续的程序块-组织块OB1中,无须编制程序块、功能块、数据块等。
采用调用式编程的程序由组织块OB、程序块(FC)、功能块(FB)、系统程序块(SFC)、系统功能块(SFB)、数据块(DB)等组成,由组织块OB1对各逻辑块与数据块进行组织与管理。
采用结构化编程的程序结构形式与调用式编程相同,程序同样由组织块OB、程序(FC)、功能块(FB)、系统程序块(SFC)、系统功能块(SFB)、数据块(DB)等组成,并通过组织块OB1对其进行组织与管理。功能块(FB)可以用于结构化编程,为了满足参数化编程的需要,功能块(FB)需要配套的即时数据块DI,组织块OBI在调用FB时,需要根据不同的控制要求,通过即时数据块DI对参数进行赋值。
*在Siemens早期的SS系列PLC中,只有组织块OB、功能块FB、数据块DB与程序块PB四类逻辑块。在S7系列PLC中,取消了程序块PB的名字,而是用英文的"Function"代替了原程序块PB。"Function"可以直译为功能,因此,在许多书中称为"功能";在这里考虑到SS的继承性,同时便于读者与“功能块”区别,仍然将“Function”称为“程序块”。
图5-32为采用三种不同编程方式的程序结构示意图,在实际调用式编程、结构化编程时,被组织块OB1调用的逻辑块还可以调用其他逻辑块(程序嵌套)。
(3) S7-300/400 PLC的存储器结构。S7-300/400 PLC的存储器结构可以分为基本存储区域与程序处理区两大部分。
1) 基本存储区域。S7-300/400PLC的基本存储区域又可以分为装载存储区、系统存储区、工作存储区3部分,具体如下。
● 装载存储区(Laad Memory):相当于S7-200 PLC的程序存储区,用于PLC用户程序逻辑块、数据块的存储。
● 系统存储区(System Memory):相当于S7-200 PLC的数据存储区,用于存储PLC运算、处理的中间。如输入/输出映像,标志、变量的状态存储、计数器、定时器的中间值,模拟量输入/输出状态等,使用PLC内部RAW。
S7-300/400PLC的程序结构与执行过程
(a)线性编程;(b)调用式编程;(c)结构化编程
S7-300/400PLC存储器区域的作用及相互关系
● 工作存储区(Work Memory):用于存储当前处理的可执行程序块、程序块所生成的局部变量L等。3个存储器区域的作用以及相互间的关系。
2) 程序处理区域。S7-300/400 PLC的程序处理区域又可以分为累加器、地址寄存器、数据块地址寄存器、状态寄存器4部分,具体如下。
●累加器:S7-300/400PLC共有2个32位累加器ACCU1、ACCU2,用来进行读人、传送、运算、移位等操作。
●地址寄存器:S7-300/400PLC共有2个32位地址寄存器AR1、AR2,用于存放寄存器间接寻址时的地址指针。
●数据块地址寄存器:S7-300/400PLC共有2个32位数据块地址寄存器DB、DI,用于存放程序中被打开的数据块地址。程序执行过程中允许同时被打开的数据块较大为2个,其中一个为共享数据块(DB),在程序中可以任意使用;另一个为瞬时数据块(DD),它是与功能块FB配套使用的数据块,在调用FB时同时打开。
●状态寄存器:S7-300/400PLC共有1个16位状态寄存器STW,状态寄存器用于存放程序的处理结果,如逻辑运算RLO、溢出标志OV、溢出记忆0S、条件码CC0与CC1、二进制值BR等,以显示指令的执行结果。