组织块CYCLE的任务(Tasks of the CYCLE OB)
选择OB1是因为它被循调用。它执行下列程序任务:
调用并提供功能块ACQUIRE输入和控制数据。
读入功能块ACQUIRE返回的数据。
输出值到显示器
在声明部分的开始处,有20个字节的临时数据数组“system data”。
组织块CYCLE的程序代码(Program Code of the CYCLE OB)
ORGANIZATION_BLOCK CYCLE
(***********************************************************
CYCLE和OB1一样,它被S7系统循环地调用。
第1部分:功能块调用和输入值的传送;
第2部分:输出值和的读入到输出开关的输出
***********************************************************)
VAR_TEMP
systemdata : ARRAY[0..20] OF BYTE; //OB1专用区
END_VAR
BEGIN
(* Part 1 : ***************************************************)
ACQUIRE.ACQUIRE_DATA(
measval_in := WORD_TO_INT(input),
newval := "Input 0.0", //作为信号标识的输入开关
resort := Sort_switch,
funct_sel := Function_switch,
newsel := Coding_switch,
selection := Coding);
(* Part 2 : **************************************************)
IF Output_switch THEN //输出已经改变
Output := ACQUIRE_DATA.result_out; //均方根或平方值
ELSE
Output := ACQUIRE_DATA.measval_out; //测量值
END_IF;
END_ORGANIZATION_BLOCK
数据类型转换(Data Type Conversion)
测量值作为BYTE数据类型应用到输入,它必须转换到INT类型,必须将它从WORD类型转换到INT类型(从BYTE到WORD类型的转换是由编译器隐式地提前进行了)。另一方面,输出不要求转换,因为在符号表中声明为INT类型。
编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !