发布于 2003-12-09 16:39:30
0楼
IEC FUNCTION BLOCK
FC6, FC7, FC8
MW2,MW4,MD6为输出
ORGANIZATION_BLOCK OB 1
TITLE =Koordination/co-ordination
//Koordination des Programmablaufs.
//Co-ordination of the program sequence.
VERSION : 0.1
VAR_TEMP
OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (Coming
event), Bits 4-7 = 1 (Event class 1)
OB1_SCAN_1 : BYTE ; //1 (Cold restart scan 1 of
OB 1), 3 (Scan 2-n of OB 1)
OB1_PRIORITY : BYTE ; //1 (Priority of 1 is
lowest)
OB1_OB_NUMBR : BYTE ; //1 (Organization block 1,
OB1)
OB1_RESERVED_1 : BYTE ; //Reserved for system
OB1_RESERVED_2 : BYTE ; //Reserved for system
OB1_PREV_CYCLE : INT ; //Cycle time of
previous OB1 scan (milliseconds)
OB1_MIN_CYCLE : INT ; //Minimum cycle time of OB1
(milliseconds)
OB1_MAX_CYCLE : INT ; //Maximum cycle time of OB1
(milliseconds)
OB1_DATE_TIME : DATE_AND_TIME ; //Date and time
OB1 started
date_time : DATE_AND_TIME ;
date1 : DATE ;
day1 : DATE ;
time1 : TIME_OF_DAY ;
END_VAR
BEGIN
NETWORK
TITLE =
CALL "READ_CLK" (
RET_VAL := MW 0,
CDT := #date_time);
NOP 0;
NETWORK
TITLE =
CALL "DT_DATE" (
IN := #date_time,
RET_VAL := #date1);
NOP 0;
NETWORK
TITLE =
CALL "DT_DAY" (
IN := #date_time,
RET_VAL := MW 4);
NOP 0;
NETWORK
TITLE =
CALL "DT_TOD" (
IN := #date_time,
RET_VAL := #time1);
NOP 0;
NETWORK
TITLE =
A( ;
L #date1;
T MW 2;
SET ;
SAVE ;
CLR ;
A BR;
) ;
JNB _001;
L #time1;
T MD 6;
_001: NOP 0;
END_ORGANIZATION_BLOCK