发布于 2006-01-03 17:22:06
0楼
定义Q0.0-Q1.5分别对应14个电磁阀;I0.0-I1.5分别对应14个位置开关;Q2.0-Q3.5分别对应14个报警输出。
ORGANIZATION_BLOCK OB 1
TITLE = "Main Program Sweep (Cycle)"
VERSION : 0.1
BEGIN
NETWORK
TITLE =
L QW 0;
L IW 0;
XOW ;
T MW 0;
L MW 2;
AW ;
T QW 2;
END_ORGANIZATION_BLOCK
ORGANIZATION_BLOCK "CYC_INT5"
TITLE = "Cyclic Interrupt"
VERSION : 0.1
BEGIN
NETWORK
TITLE =
CALL FC 1 (
sa := M 0.0,
alarm := M 2.0,
comparor := DB1.DBW 0);
CALL FC 1 (
sa := M 0.1,
alarm := M 2.1,
comparor := DB1.DBW 2);
CALL FC 1 (
sa := M 0.2,
alarm := M 2.2,
comparor := DB1.DBW 4);
CALL FC 1 (
sa := M 0.3,
alarm := M 2.3,
comparor := DB1.DBW 6);
CALL FC 1 (
sa := M 0.4,
alarm := M 2.4,
comparor := DB1.DBW 8);
CALL FC 1 (
sa := M 0.5,
alarm := M 2.5,
comparor := DB1.DBW 10);
CALL FC 1 (
sa := M 0.6,
alarm := M 2.6,
comparor := DB1.DBW 12);
CALL FC 1 (
sa := M 0.7,
alarm := M 2.7,
comparor := DB1.DBW 14);
CALL FC 1 (
sa := M 1.0,
alarm := M 3.0,
comparor := DB1.DBW 16);
CALL FC 1 (
sa := M 1.1,
alarm := M 3.1,
comparor := DB1.DBW 16);
CALL FC 1 (
sa := M 1.2,
alarm := M 3.2,
comparor := DB1.DBW 18);
CALL FC 1 (
sa := M 1.3,
alarm := M 3.3,
comparor := DB1.DBW 20);
CALL FC 1 (
sa := M 1.4,
alarm := M 3.4,
comparor := DB1.DBW 22);
CALL FC 1 (
sa := M 1.5,
alarm := M 3.5,
comparor := DB1.DBW FUNCTION FC 1 : VOID
TITLE =
VERSION : 0.1
VAR_INPUT
sa : BOOL ;
END_VAR
VAR_OUTPUT
alarm : BOOL ;
END_VAR
VAR_IN_OUT
comparor : INT ;
END_VAR
BEGIN
NETWORK
TITLE =
AN #sa;
JC M001; //如果有阀的动作而没有检测开关信号,则开始计时,否则就不报警。
L 1;
L #comparor;
+I ;
T #comparor;
L 40; //该数的取值等于4S/定时中断时间,本例为100ms.
>=I ;
JC M002;
JU M003;
M001: L 0;
T #comparor;
CLR
= #alarm
JU M003;
M002: SET ;
= #alarm;
M003: NOP 0;
END_FUNCTION
24);
END_ORGANIZATION_BLOCK
天生不宜做胜利者,自来没有胜利的欲望,只是不甘失败,十分十分不甘心失败。木心