S7的程序参数用于传递逻辑块之间的数据。当采用调用式结构时,应通过参数定义执行被调用的逻辑块所需要的数据:也可以通过参数将被调用的逻辑块的执行结果返回给调用的块。西门子PLC
在S7中,从参数的用途与功能上,程序参数可以分为输入参数(IN)、输出参数(OUT)、输入/输出参数(IN OUT)3种;从参数的性质上可以分为形式参数(Format Parameter)与实际参数( Actual Parameter)2种。
①输入参数(IN):它是逻辑块执行所需要的基本输入参数,在逻辑块中只能进行“读”操作,必须由调用它的其他逻辑块予以赋值。
例如,信号A、B在逻辑块中为“触点”信号,它必须由调用它的块将其定义为IO.1、I0.2或Il.l、I1.2等具体而明确的输入地址(可以是**地址或符号地址。
②输出参数(OUT):它是逻辑块执行结果存储所需要的基本输出参数,在逻辑块中只能进行“写”操作,必须由调用它的其他逻辑块定义地址,执行结果可以用于其他逻辑块。
例如,信号C在逻辑块中为输出“线圈”信号,同样必须由调用它的逻辑块将其定义为QO.1或Ql.l等具体而明确的输出地址(可以是**地址或符号地址)。
③输入/输出参数(IN- OUT):它是逻辑块执行所需要的基本输入/输出参数,在逻辑块中可以进行“读/写”操作,在逻辑块中一方面要求有“初始值”输入(初始值可以在变量表中 设定),另一方面又可以进行结果输出。因此,必须由调用它的其他逻辑块或变量表给定“初始值”;但在逻辑块的执行过程中将改变参数值,改变后的输入/输出 参数同样可以用于其他逻辑块。
例如,D在逻辑块中需要进行加“1”运算,它必须由调用它的块给定初始值( MW10),运算结果同时又保存在MW10中。
④形式参数与实际参数:在使用了变量后,功能块中所使用的信号与数据只能以“符号”的形式出现,如A、B、C、D等,这些“符号”称为形式参数(Format Parameter)。而在调用块中对“符号”所赋予的实际地址或实际数值,如IO.1、I0.2、QO.1、MW10等称为实际参数 (Actual Parameter)。
(2)局部变量
S7中的局部变量又称为“临时变量(Temporary)”,它用于存储逻辑块内部中间状态暂存的寄存器(堆栈L),堆栈的状态仅在所在的逻辑块内部生效,不可以用于其他逻辑块。
(3)静态变量
静态变量( Static)只能用于功能块FB,它存储在与功能块配套的即时数据块DI中,仅对所调用的FB块有效,结果可以记忆,但只能与FB配套使用,不能用于其他逻辑块。
(4)变量的使用范围
程序变量在逻辑块中的使用有规定的范围,具体如下:
组织块OB:只能使用临时变量(Temp);
程序块FC:可以使用临时变量(Temp)与程序参数输入(IN)、输出(OUT)与输入/输出(IN_OUT);
功能块FB:可以使用全部变量。