西门子PLC可以使用的“程序变量”包括程序参数、局部变量(又称临时变量Temp)、静态变量(Stat)3种基本类型。
(1)程序参数
S7的程序参数用于传递逻辑块之间的数据。当采用调用式结构时,应通过参数定义执行被调用的逻辑块所需要的数据:也可以通过参数将被调用的逻辑块的执行结果返回给调用的块。
在S7中,从参数的用途与功能上,程序参数可以分为输入参数(IN)、输出参数(OUT)、输入/输出参数(IN OUT)3种;从参数的性质上可以分为形式参数(Format Parameter)与实际参数( Actual Parameter)2种。
①输入参数(IN):它是逻辑块执行所需要的基本输入参数,在逻辑块中只能进行“读”操作,必须由调用它的其他逻辑块予以赋值。
例如,在图11-2.1中,信号A、B在逻辑块中为“触点”信号,它必须由调用它的块将其定义为IO.1、I0.2或Il.l、I1.2等具体而明确的输入地址(可以是绝对地址或符号地址,参见图11-2.2)。
②输出参数(OUT):它是逻辑块执行结果存储所需要的基本输出参数,在逻辑块中只能进行“写”操作,必须由调用它的其他逻辑块定义地址,执行结果可以用于其他逻辑块。
例如,在图11-2.2中的信号C在逻辑块中为输出“线圈”信号,同样必须由调用它的逻辑块将其定义为QO.1或Ql.l等具体而明确的输出地址(可以是绝对地址或符号地址,参见图11-2.2)。
③输入/输出参数(IN- OUT):它是逻辑块执行所需要的基本输入/输出参数,在逻辑块中可以进行“读/写”操作,在逻辑块中一方面要求有“初始值”输入(初始值可以在变量表中设定),另一方面又可以进行结果输出。因此,必须由调用它的其他逻辑块或变量表给定“初始值”;但在逻辑块的执行过程中将改变参数值,改变后的输入/输出参数同样可以用于其他逻辑块。
例如,在图11-2.2中的D在逻辑块中需要进行加“1”运算,它必须由调用它的块给定初始值( MW10),运算结果同时又保存在MW10中(参见图11-2.2)。
④形式参数与实际参数:在使用了变量后,功能块中所使用的信号与数据只能以“符号”的形式出现,如图11-2.2中的A、B、C、D等,这些“符号”称为形式参数(Format Parameter)。而在调用块中对“符号”所赋予的实际地址或实际数值,如图11-2.2中的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:可以使用全部变量。
(1)程序参数
S7的程序参数用于传递逻辑块之间的数据。当采用调用式结构时,应通过参数定义执行被调用的逻辑块所需要的数据:也可以通过参数将被调用的逻辑块的执行结果返回给调用的块。
在S7中,从参数的用途与功能上,程序参数可以分为输入参数(IN)、输出参数(OUT)、输入/输出参数(IN OUT)3种;从参数的性质上可以分为形式参数(Format Parameter)与实际参数( Actual Parameter)2种。
①输入参数(IN):它是逻辑块执行所需要的基本输入参数,在逻辑块中只能进行“读”操作,必须由调用它的其他逻辑块予以赋值。
例如,在图11-2.1中,信号A、B在逻辑块中为“触点”信号,它必须由调用它的块将其定义为IO.1、I0.2或Il.l、I1.2等具体而明确的输入地址(可以是绝对地址或符号地址,参见图11-2.2)。
②输出参数(OUT):它是逻辑块执行结果存储所需要的基本输出参数,在逻辑块中只能进行“写”操作,必须由调用它的其他逻辑块定义地址,执行结果可以用于其他逻辑块。
例如,在图11-2.2中的信号C在逻辑块中为输出“线圈”信号,同样必须由调用它的逻辑块将其定义为QO.1或Ql.l等具体而明确的输出地址(可以是绝对地址或符号地址,参见图11-2.2)。
③输入/输出参数(IN- OUT):它是逻辑块执行所需要的基本输入/输出参数,在逻辑块中可以进行“读/写”操作,在逻辑块中一方面要求有“初始值”输入(初始值可以在变量表中设定),另一方面又可以进行结果输出。因此,必须由调用它的其他逻辑块或变量表给定“初始值”;但在逻辑块的执行过程中将改变参数值,改变后的输入/输出参数同样可以用于其他逻辑块。
例如,在图11-2.2中的D在逻辑块中需要进行加“1”运算,它必须由调用它的块给定初始值( MW10),运算结果同时又保存在MW10中(参见图11-2.2)。
④形式参数与实际参数:在使用了变量后,功能块中所使用的信号与数据只能以“符号”的形式出现,如图11-2.2中的A、B、C、D等,这些“符号”称为形式参数(Format Parameter)。而在调用块中对“符号”所赋予的实际地址或实际数值,如图11-2.2中的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:可以使用全部变量。