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