发布于 2011-12-30 08:49:34
4楼
源程序如下:
1. AN #rt
= L 60.0
A(
A L 60.0
JNB _001
L #nunbers_set_i
ITD
T #temp111
SET
SAVE
CLR
_001: A BR
)
JNB _002
L #temp111
DTR
T #nunbers_set_r
_002: NOP 0
A(
A L 60.0
JNB _003
L #set_time_hour_r
L 3.600000e+003
*R
T #temp0
AN OV
SAVE
CLR
_003: A BR
)
JNB _004
L #temp0
L #nunbers_set_r
/R
T #temp1
_004: NOP 0
A(
A L 60.0
JNB _005
L #temp1
RND
T #temp2
AN OV
SAVE
CLR
_005: A BR
)
JNB _006
L #temp2
L L#1000
*D
T #temp22
_006: NOP 0
A(
A L 60.0
JNB _007
L #temp22
T #temp3_IECtime
SET
SAVE
CLR
_007: A BR
)
JNB _008
CALL "TIM_S5TI"
IN :=#temp3_IECtime
RET_VAL:=#temp4_s5time
_008: NOP 0
2. A(
L #temp1
L 5.000000e-002
+R
T #temp_time_one
AN OV
SAVE
CLR
A BR
)
JNB _009
L #temp_time_one
L 3.600000e+003
/R
T #temp_time_one
_009: NOP 0
3. L #start_i
L 1
==I
= #m_start_bit
4. A #m_start_bit
FP #mm
= #mmn
5. A #m_start_bit
FN #m_down
= #m_downnn
6.A #m_start_bit
= L 60.0
A L 60.0
AN #timer1
L S5T#50MS
SD #timer2
A L 60.0
A #timer2
L #temp4_s5time
SD #timer1
= #m4_bit
A L 60.0
A #m4_bit
FP #m5_bit
= #m6_bit
A L 60.0
A #m6_bit
S #m7_bit
A L 60.0
A #m7_bit
AN #m10_bit
= L 60.1
A L 60.1
A #m6_bit
S #m_q_in_bit
R #m_q_out_bit
A L 60.1
A #m_q_in_bit
A #hilimit_lever_bit
R #m_q_in_bit
S #m_q_out_bit
A L 60.1
A #m_q_out_bit
A #lolimit_lever_bit
R #m_q_out_bit
S #m10_bit
A L 60.0
A #m4_bit
FN #m8_bit
= #m9_bit
A L 60.0
A #m9_bit
R #m7_bit
R #m10_bit
7. A #m_downnn
R #m_q_in_bit
R #m_q_out_bit
8. A #m_q_out_bit
FN #mdownn
= #mk
9. A #mk
= L 60.0
A(
A L 60.0
CU #counter1
BLD 101
A #m_start_bit
L C#0
S #counter1
A #mmn
R #counter1
NOP 0
LC #counter1
T #counter_bcd
A #counter1
)
JNB _00a
L #counter_bcd
BTI
T #counter_int
_00a: NOP 0
A L 60.0
A(
L #counter_int
L #nunbers_set_i
>=I
)
JNB _00b
L 0
T #start_i
_00b: NOP 0
A L 60.0
JNB _00c
L #counter_int
T #numbers_feeded_i
_00c: NOP 0
10. A(
A(
A #m6_bit
CU #counter2
BLD 101
A #m_start_bit
L C#0
S #counter2
A #mmn
R #counter2
NOP 0
LC #counter2
T #counter_time_bcd
A #counter2
)
JNB _00d
L #counter_time_bcd
BTI
T #counter_number_time_int
SET
SAVE
CLR
_00d: A BR
)
JNB _00e
L #counter_number_time_int
ITD
T #counter_dint
_00e: NOP 0
11. A(
L #counter_dint
DTR
T #counter_real
SET
SAVE
CLR
A BR
)
JNB _00f
L #counter_real
L #temp_time_one
*R
T #total_timed_r
_00f: NOP 0
12. L #manual_in_i
L 1
==I
= #m_manual_in
13. L #manual_out_i
L 1
==I
= #m_manual_out
14. O #m_q_in_bit
O #m_manual_in
= #Q_in
15. O #m_q_out_bit
O #m_manual_out
= #Q_out