发布于 2014-12-25 21:12:28
8楼
S7-SCL学习笔记:(2)在SCL程序中系统存储区的存取方法
FUNCTION FC1 : VOID
VAR_TEMP
// Temporary Variables
ii: INT;
END_VAR
VAR
// Byte_Bit数组的0-7直接指向Byte_Struct.B的0-7位,存储区域一至
Byte_Struct : STRUCT
B : BYTE;
END_STRUCT;
Byte_Bit AT Byte_Struct: ARRAY[0..7] OF BOOL;
// BIT_VAL数组的0-7直接指向B_VAL的0-7位,存储区域一至
B_VAL : BYTE;
BIT_VAL AT B_VAL: ARRAY[0..7] OF BOOL;
END_VAR;
// 在SCL程序系统存储区的存取方法:绝对地址、数组、符号调用
Q0.0 := Input00; // // 先在符号表中为I0.0定义符号:Input00
Q0.1 := TRUE;
Q[0,2] := I[0,2];
Q[0,3] := TRUE;
OFF_ON := 1; // 先在符号表中为Q0.4定义符号:OFF_ON
"开关1" := true; // 先在符号表中为Q0.5定义中文符号:开关1,调用时要带双引号
PQB272 := INT_TO_BYTE(BYTE_TO_INT("模拟量输入1") + 80); // 先在符号表中为PIB272定义符号:模拟量输入1
PQB[273] := INT_TO_BYTE(BYTE_TO_INT(PIB[273]) + 90);
"模拟量输出1" := DB10.NEWVAL; // 先在符号表中为PQB272定义符号:模拟量输出1
// AT 用法举例
Byte_Struct.B := MB100;
FOR ii:= 0 TO 7 BY 1 DO
// Statement Section
Q[1,ii] := Byte_Bit[ii];
END_FOR;
B_VAL := MB100;
FOR ii:= 0 TO 7 BY 1 DO
// Statement Section
Q[2,ii] := BIT_VAL[ii];
END_FOR;
END_FUNCTION
个人博客 www.tansoo.cn