📄 md142asn.lst
字号:
C51 COMPILER V7.06 MD142ASN 01/26/2004 20:24:40 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MD142ASN
OBJECT MODULE PLACED IN MD142ASN.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE MD142ASN.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //-------------------------------------------------------------------------
2 // Filename : Md142AS.C
3 // Language : C for AT89S8252
4 // Revision : 1.0
5 // Initial Date : 13/03/2003
6 // Last Modify : scratch comm for one time
7 // System clock : 24.00MHZ
8 // Description : ARMATURE EPOXY COATING
9 //-------------------------------------------------------------------------
10
11 #include <reg8252.h>
*** WARNING C318 IN LINE 11 OF MD142ASN.C: can't open file 'reg8252.h'
12 #include "plc64i32.h"
13 #include "serial.h"
14
15 //define input signal
16 enum {LOAD_VERTUP=1,LOAD_VERTDN,LOAD_HORNFD,LOAD_HORNBD,INDUCTION1FD,INDUCTION1BD,
17 ARM1UP=7,ARM1DN,ARM2UP,ARM2DN,ARM3UP,ARM3DN,AIR_MAGNET1UP,ARMAT_CHECK=14,
18 AIR_MAGNET2UP=15,ARMAT_FULL,AIR_CHUCKUP,AIR_CHUCKDN,TRAN_HORNFD,TRAN_HORNBD,
19 SHAFT_HOLDFD=21,SHAFT_HOLDBD,JIG_EJECTFD,JIG_EJECTBD,JIG_REMOVEFD,JIG_REMOVEBD,
20 COMM_LOADFD=31,COMM_LOADBD,COMM_INSERTFD,COMM_INSERTBD,INDUCTION2FD,INDUCTION2BD,
21 UNLOADUP=37,UNLOADDN,HEAT1=41,COOLANT1,HEAT2,COOLANT2,STARTL,STARTR=46,
22 COMM_CHECK=49,ARMATURE_CHK,DELIVERFD,DELIVERBD=52};
23 //-----------------------------------------
24 //define output signal
25 enum {LOAD_VERT=1,LOAD_HORN10,LOAD_HORN11,INDUCTION1,ALARM,ARM1=6,ARM2,ARM3,AIR_MAGNET1=9,
26 MAGFORCE1=10,AIR_MAGNET2,MAGFORCE2,AIR_CHUCK,TRAN_HORN10=15,TRAN_HORN11,
27 SHAFT_HOLD=17,SPRAY_L,SPRAY_R=20,JIG_EJECT,JIG_REMOVE,COMM_LOAD10,COMM_LOAD11,
28 COMM_INSERT=25,INDUCTION2=27,UNLOAD=29,VIBRATE,ROTATE,DELIVER=32};
29 //--------------------------------------------------------------------------------
30 //define manual operate valves' value
31 enum {VALVE1=1,VALVE2,VALVE3,VALVE4,VALVE5,VALVE6,VALVE7,VALVE8,VALVE9,VALVE10,
32 VALVE11,VALVE12,VALVE13,VALVE14,VALVE15,VALVE16,VALVE17,VALVE18,VALVE19,VALVE20};
33
34 //----------------------------------------------------------
35 void _init_machine();
36 void _step_by_step();
37 void _manual_operate();
38 void _auto_operate();
39 void _setup();
40
41 unsigned char xdata datalist[10];
42 char proc=0;
43 unsigned heat1_time,heat1_time_set;
44 unsigned heat2_time,heat2_time_set;
45 unsigned spray_time,spray_time_set,comm_load_time;
46 unsigned blow_time,blow_time_set,run_time;
47 bit spray_end,heat1_end,heat2_end,blow_end,alarm_flag,comm_load_end;
48 //---------------------------------------------------
49
50 void main()
51 { char i;
52 1 _init_system ();
53 1 ReceStream.address = ID_Plc64I;
54 1 // setup serial port control hardware (19200 BAUD @24MHZ)
C51 COMPILER V7.06 MD142ASN 01/26/2004 20:24:40 PAGE 2
55 1 _init_serial (BAUD19200);
56 1 _set_delay (100);
57 1
58 1 for (i=0;i<10;i++)
59 1 TranStream.datablk[i] = _read_eepbyte(&datalist[i]);
60 1 _trf_msge (ID_Panel,Datatrans,0x07);
61 1 _set_delay (50);
62 1
63 1 _init_machine();
64 1 _outp_bit(LOAD_HORN10,OFF);
65 1 _outp_bit(LOAD_HORN11,ON);
66 1
67 1 _outp_bit(TRAN_HORN10,OFF);
68 1 _outp_bit(TRAN_HORN11,ON);
69 1 _set_delay (100);
70 1 while(TRUE)
71 1 {
72 2 if(rece_com==Auto)
73 2 _auto_operate();
74 2
75 2 if(rece_com==Manual)
76 2 _manual_operate();
77 2
78 2 if(rece_com==Dataset)
79 2 _setup();
80 2
81 2 }
82 1
83 1 }
84 //----------------------------------------------------------------------
85 void _auto_operate()
86 {
87 1 unsigned time_out=200;
88 1 char previous_step,current_step,turn_times;
89 1 char heat1_on,heat2_on,sprayok,blowstop,cycle,step=1;
90 1 TranStream.datablk[2]=_read_eepbyte(&datalist[2]);
91 1 TranStream.datablk[3]=_read_eepbyte(&datalist[3]);
92 1 TranStream.datablk[4]=_read_eepbyte(&datalist[4]);
93 1 TranStream.datablk[5]=_read_eepbyte(&datalist[5]);
94 1 _trf_msge (ID_Panel,Datatrans,0x06);
95 1 _set_delay(10);
96 1 if(TranStream.datablk[2]<11)
97 1 heat2_time_set=TranStream.datablk[2]*100;
98 1 else
99 1 heat2_time_set=TranStream.datablk[2]*10;
100 1
101 1 if(TranStream.datablk[3]<11)
102 1 heat1_time_set=TranStream.datablk[3]*100;
103 1 else
104 1 heat1_time_set=TranStream.datablk[3]*10;
105 1 if(TranStream.datablk[4]<11)
106 1 spray_time_set=TranStream.datablk[4]*100;
107 1 else
108 1 spray_time_set=TranStream.datablk[4]*10;
109 1 //+++++++++++
110 1 if(TranStream.datablk[5]==0)
111 1 blow_time_set=5;
112 1 else
113 1 if(TranStream.datablk[5]<11)
114 1 blow_time_set=TranStream.datablk[5]*100;
115 1 else
116 1 blow_time_set=TranStream.datablk[5]*10;
C51 COMPILER V7.06 MD142ASN 01/26/2004 20:24:40 PAGE 3
117 1 while( rece_com!=Exit )
118 1 {
119 2 if(rece_com==Start)
120 2 {rece_com=OFF;
121 3 while( rece_com!=Exit )
122 3 {
123 4 switch(proc)
124 4 {
125 5 case 0:
126 5 if(_inp_bit(INDUCTION1BD)&&_inp_bit(INDUCTION2BD)&&
127 5 _inp_bit(ARM3UP)&&_inp_bit(TRAN_HORNBD))
128 5 {
129 6 // _outp_bit(UNLOAD,ON);
130 6 _outp_bit(LOAD_VERT,ON);
131 6 _outp_bit(AIR_MAGNET1,ON);
132 6 _outp_bit(ARM1,ON);
133 6 run_time=tick_clock+time_out;
134 6 proc++;
135 6 }
136 5 break;
137 5 case 1:
138 5 if(_inp_bit(ARM1DN))
139 5 {
140 6
141 6 _set_delay(10);
142 6 _outp_bit(ARM1,OFF);
143 6 // _outp_bit(UNLOAD,OFF);
144 6 run_time=tick_clock+time_out;
145 6 proc++;
146 6 }
147 5 else
148 5 if(run_time==tick_clock)
149 5 _outp_bit(ALARM,ON);
150 5 break;
151 5 case 2:
152 5 if(_inp_bit(LOAD_VERTUP)&&_inp_bit(INDUCTION1BD)&&_inp_bit(COMM_INSERTFD)&&_inp_bit(JIG_EJECTBD)&&
153 5 _inp_bit(JIG_REMOVEBD)&&_inp_bit(ARM1UP)&&_inp_bit(ARM2UP)&&_inp_bit(ARM3UP))
154 5 {
155 6 _outp_bit(LOAD_HORN11,OFF);
156 6 _outp_bit(LOAD_HORN10,ON);
157 6
158 6 _outp_bit(TRAN_HORN11,OFF);
159 6 _outp_bit(TRAN_HORN10,ON);
160 6 run_time=tick_clock+time_out;
161 6 proc++;
162 6 }
163 5 else
164 5 if(run_time==tick_clock)
165 5 _outp_bit(ALARM,ON);
166 5 break;
167 5 case 3:
168 5 if(_inp_bit(LOAD_HORNFD)&&_inp_bit(TRAN_HORNFD))
169 5 {
170 6 _set_delay(25);
171 6 if(_inp_bit(ARMAT_CHECK))
172 6 {
173 7 heat1_on=TRUE;
174 7 cycle=0;
175 7 }
176 6 else
177 6 {
178 7 heat1_on=FALSE;
C51 COMPILER V7.06 MD142ASN 01/26/2004 20:24:40 PAGE 4
179 7 cycle++;
180 7 }
181 6 _outp_bit(LOAD_VERT,OFF);
182 6 _outp_bit(ARM1,ON);
183 6 _outp_bit(ARM2,ON);
184 6 if(_inp_bit(INDUCTION2BD)&& !_inp_bit(ARMAT_FULL))
185 6 _outp_bit(ARM3,ON);
186 6 else
187 6 if(_inp_bit(ARMAT_FULL))
188 6 {
189 7 _outp_bit(ALARM,ON);
190 7 while(_inp_bit(ARMAT_FULL));
191 7 rece_com=0;
192 7 while( rece_com!=Start );
193 7 _outp_bit(ARM3,ON);
194 7 _outp_bit(ALARM,OFF);
195 7 rece_com=0;
196 7 }
197 6 run_time=tick_clock+time_out;
198 6 proc++;
199 6 }
200 5 else
201 5 if(run_time==tick_clock)
202 5 _outp_bit(ALARM,ON);
203 5 break;
204 5 case 4:
205 5 if(_inp_bit(ARM1DN))
206 5 {
207 6 _set_delay(5);
208 6 _outp_bit(AIR_MAGNET1,OFF);
209 6 _outp_bit(ARM1,OFF);
210 6
211 6 _outp_bit(SHAFT_HOLD,ON); //START TO SPRAY
212 6 _outp_bit(ROTATE,ON);
213 6 _set_delay(10);
214 6 _outp_bit(VIBRATE,ON);
215 6 _outp_bit(SPRAY_L,ON);
216 6 _outp_bit(SPRAY_R,ON);
217 6 spray_time=spray_time_set+tick_clock;
218 6 run_time=tick_clock+time_out;
219 6 proc++;
220 6 }
221 5 else
222 5 if(run_time==tick_clock)
223 5 _outp_bit(ALARM,ON);
224 5 break;
225 5 case 5:
226 5 if(_inp_bit(LOAD_VERTDN)&&_inp_bit(ARM2DN)&&_inp_bit(ARM3DN))
227 5 {
228 6 _outp_bit(LOAD_HORN10,OFF);
229 6 _outp_bit(LOAD_HORN11,ON);
230 6
231 6 _outp_bit(AIR_MAGNET2,OFF);
232 6 if(_inp_bit(ARM3DN)&&_inp_bit(TRAN_HORNFD))
233 6 _outp_bit(AIR_CHUCK,OFF);
234 6 run_time=tick_clock+time_out;
235 6 proc++;
236 6 }
237 5 else
238 5 if(run_time==tick_clock)
239 5 _outp_bit(ALARM,ON);
240 5 break;
C51 COMPILER V7.06 MD142ASN 01/26/2004 20:24:40 PAGE 5
241 5 case 6:
242 5 if(_inp_bit(AIR_MAGNET2UP)&&_inp_bit(AIR_CHUCKUP)&&_inp_bit(UNLOADDN))
243 5
244 5 {
245 6 if(_inp_bit(ARMAT_FULL)) //IF HAS ARMATURE
246 6 {
247 7 heat2_on=TRUE;
248 7
249 7 }
250 6 else
251 6 {
252 7 heat2_on=FALSE;
253 7 // _outp_bit(ALARM,ON);
254 7 }
255 6 _outp_bit(ARM2,OFF);
256 6 _outp_bit(ARM3,OFF);
257 6
258 6 _outp_bit(INDUCTION1,ON);
259 6 _outp_bit(INDUCTION2,ON);
260 6 run_time=tick_clock+time_out;
261 6 while(!_inp_bit(INDUCTION1FD)||!_inp_bit(INDUCTION2FD))
262 6 {
263 7
264 7 if(run_time==tick_clock)
265 7 _outp_bit(ALARM,ON);
266 7 }
267 6 // if(heat1_on==FALSE) // no armature will stop heating
268 6 if(cycle>=5) // heat five cycles if no arm.
269 6 {
270 7 _outp_bit(MAGFORCE1,OFF);
271 7 _outp_bit(ALARM,ON);
272 7 }
273 6 else
274 6 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -