filmov
tv
CODESYS AND FACTORY IO || STRUCTURED TEXT N || MODBUS PROTOCOL ||

Показать описание
//THE VARIABLES
//STATION INPUTS
I0 AT %IX0.0: BOOL; // START PB
I1 AT %IX0.1: BOOL; // STOP
I2 AT %IX0.2: BOOL; // EMG STOP
I3 AT %IX0.3: BOOL; // PALLET SENSOR
I4 AT %IX0.4: BOOL; // LOW LEVEL
I5 AT %IX0.5: BOOL; // HIGH LEVEL
I6 AT %IX0.6: BOOL; // AT 0 DEG
I7 AT %IX0.7: BOOL; // BACK LIMIT
I8 AT %IX1.0: BOOL; // FRONT LIMIT
I9 AT %IX1.1: BOOL; // LIMIT 90
I10 AT %IX1.2: BOOL; // DEFUSER 2
I11 AT %IX1.3: BOOL; // REFLECTOR 1 NC
I12 AT %IX1.4: BOOL; // DEFUSER 4
I13 AT %IX1.5: BOOL; // REFLECTOR 2 NC
I14 AT %IX1.6: BOOL; // SPARE
//STATION OUTPUTS
Q0 AT %QX0.0: BOOL; // CB 1
Q1 AT %QX0.1: BOOL; // TUNRTABLE +
Q2 AT %QX0.2: BOOL; // TUNRTABLE -
Q3 AT %QX0.3: BOOL; // TUNRTABLE
Q4 AT %QX0.4: BOOL; // CB 2
Q5 AT %QX0.5: BOOL; // CB 3
Q6 AT %QX0.6: BOOL; // SPARE
M0: BOOL;
M1: BOOL;
M2: BOOL;
M3: BOOL;
M4: BOOL;
M5: BOOL;
TIMER_0:TON;
TIMER_1:TON;
//PROGRAMME
IF I0 THEN Q0:=TRUE; M1:=FALSE; END_IF //CB 1
//PALLET SENSOR
IF I3 THEN Q1:=TRUE; END_IF //TURNTABLE +
//SORTING SENSOR
IF I4 AND I5 THEN M0:=TRUE; END_IF //BIG BOXES(M0 MUST BE TURNED OFF)
IF I4 AND NOT I5 THEN M3:=TRUE; END_IF //SMALL BOXES(M3 MUST BE TURNED OFF)
//FRONT LIMIT
IF I8 THEN Q1:=FALSE; Q0:=FALSE; END_IF //TURNTABLE + CB 1 OFF
IF I8 AND M0 THEN Q3:=1; END_IF //TURNTABLE + ON
IF I8 AND M3 THEN Q5:=1; Q1:=1; END_IF //CB 3
//LIMIT 90
IF I9 THEN Q4:=1; Q1:=1; END_IF //TURNTABLE + AND CB 2 ON
//DEFURE 2
IF I10 THEN Q3:=0; Q1:=0; END_IF //TURNTABLE + AND TURNTABLE OFF
// REFLECTOR 1
IF NOT I11 THEN M0:=FALSE; M1:=TRUE; END_IF //TURNTABLE + AND TURNTABLE OFF (M1 MUST TRUN OFF)
TIMER_0(IN:=M1, PT:=T#6S);
M2:=TIMER_0.Q;
IF M2 THEN Q4:=FALSE; END_IF // CB2 TURNS OFF
//SMALL BOX
//DEFURE 4
IF I12 THEN Q1:=0; END_IF //TURNTABLE + OFF
// REFLECTOR 2
IF NOT I13 THEN M3:=FALSE; M4:=TRUE; END_IF //TURNTABLE + AND TURNTABLE OFF (M1 MUST TRUN OFF)
TIMER_1(IN:=M4, PT:=T#6S);
M5:=TIMER_1.Q;
IF M5 THEN Q5:=FALSE; END_IF // CB2 TURNS OFF
IF NOT I1 OR NOT I2 THEN Q0:=FALSE; Q1:=FALSE; Q2:=FALSE; Q3:=FALSE; Q4:=FALSE; Q5:=FALSE; M0:=FALSE; M1:=FALSE; M2:=FALSE; M3:=FALSE; M4:=FALSE; M5:=FALSE;END_IF //TURN OFF EVERYTHING
//STATION INPUTS
I0 AT %IX0.0: BOOL; // START PB
I1 AT %IX0.1: BOOL; // STOP
I2 AT %IX0.2: BOOL; // EMG STOP
I3 AT %IX0.3: BOOL; // PALLET SENSOR
I4 AT %IX0.4: BOOL; // LOW LEVEL
I5 AT %IX0.5: BOOL; // HIGH LEVEL
I6 AT %IX0.6: BOOL; // AT 0 DEG
I7 AT %IX0.7: BOOL; // BACK LIMIT
I8 AT %IX1.0: BOOL; // FRONT LIMIT
I9 AT %IX1.1: BOOL; // LIMIT 90
I10 AT %IX1.2: BOOL; // DEFUSER 2
I11 AT %IX1.3: BOOL; // REFLECTOR 1 NC
I12 AT %IX1.4: BOOL; // DEFUSER 4
I13 AT %IX1.5: BOOL; // REFLECTOR 2 NC
I14 AT %IX1.6: BOOL; // SPARE
//STATION OUTPUTS
Q0 AT %QX0.0: BOOL; // CB 1
Q1 AT %QX0.1: BOOL; // TUNRTABLE +
Q2 AT %QX0.2: BOOL; // TUNRTABLE -
Q3 AT %QX0.3: BOOL; // TUNRTABLE
Q4 AT %QX0.4: BOOL; // CB 2
Q5 AT %QX0.5: BOOL; // CB 3
Q6 AT %QX0.6: BOOL; // SPARE
M0: BOOL;
M1: BOOL;
M2: BOOL;
M3: BOOL;
M4: BOOL;
M5: BOOL;
TIMER_0:TON;
TIMER_1:TON;
//PROGRAMME
IF I0 THEN Q0:=TRUE; M1:=FALSE; END_IF //CB 1
//PALLET SENSOR
IF I3 THEN Q1:=TRUE; END_IF //TURNTABLE +
//SORTING SENSOR
IF I4 AND I5 THEN M0:=TRUE; END_IF //BIG BOXES(M0 MUST BE TURNED OFF)
IF I4 AND NOT I5 THEN M3:=TRUE; END_IF //SMALL BOXES(M3 MUST BE TURNED OFF)
//FRONT LIMIT
IF I8 THEN Q1:=FALSE; Q0:=FALSE; END_IF //TURNTABLE + CB 1 OFF
IF I8 AND M0 THEN Q3:=1; END_IF //TURNTABLE + ON
IF I8 AND M3 THEN Q5:=1; Q1:=1; END_IF //CB 3
//LIMIT 90
IF I9 THEN Q4:=1; Q1:=1; END_IF //TURNTABLE + AND CB 2 ON
//DEFURE 2
IF I10 THEN Q3:=0; Q1:=0; END_IF //TURNTABLE + AND TURNTABLE OFF
// REFLECTOR 1
IF NOT I11 THEN M0:=FALSE; M1:=TRUE; END_IF //TURNTABLE + AND TURNTABLE OFF (M1 MUST TRUN OFF)
TIMER_0(IN:=M1, PT:=T#6S);
M2:=TIMER_0.Q;
IF M2 THEN Q4:=FALSE; END_IF // CB2 TURNS OFF
//SMALL BOX
//DEFURE 4
IF I12 THEN Q1:=0; END_IF //TURNTABLE + OFF
// REFLECTOR 2
IF NOT I13 THEN M3:=FALSE; M4:=TRUE; END_IF //TURNTABLE + AND TURNTABLE OFF (M1 MUST TRUN OFF)
TIMER_1(IN:=M4, PT:=T#6S);
M5:=TIMER_1.Q;
IF M5 THEN Q5:=FALSE; END_IF // CB2 TURNS OFF
IF NOT I1 OR NOT I2 THEN Q0:=FALSE; Q1:=FALSE; Q2:=FALSE; Q3:=FALSE; Q4:=FALSE; Q5:=FALSE; M0:=FALSE; M1:=FALSE; M2:=FALSE; M3:=FALSE; M4:=FALSE; M5:=FALSE;END_IF //TURN OFF EVERYTHING
Комментарии