温控电路实习报告
一.实习目的
1.了解自锁、互锁的概念;
2.掌握电动机自锁的工作原理及操作方法;
3.掌握交流接触器互锁控制电路的工作原理及操作方法;
4.掌握用时间继电器使Y-Δ联结互换。
5.掌握交流接触器KM的常用触点和常开触点在电路中的应用;
二、材料工具
SRD-12VDC-SL-C继电器、红色发光二极管、绿色发光二极管、4148二极管、5.1v二极管、热敏电阻、IO3可调电阻、s9013三极管、1.2kΩ电阻、20 kΩ电阻、1mΩ电阻各1个;5kΩ电阻、3 kΩ电阻、3.6kΩ电阻各2个。
三、电路原理
四、实习过程
1. 看懂温控电路原理图,合理规划电路板上各元件的布局;掌握色环电阻的数值读法,将所需的色环电阻找出;
2. 在电路板上安装各元器件,安装二极管时,注意它的正负极;
3. 将电烙铁连接电源,烙铁头加热到温度高于焊锡溶点后,左手拿焊锡丝,右手拿着电烙铁,进行焊接。
4. 焊接完成后,认真、细致地检查焊接线路是否有误;
检查无误后,将电路板接通12V稳压直流电源,观察发光二极管是否正常工作(红灯一直亮着,当调动可调电阻时,绿灯会亮也会熄灭)。若发光二极管不正常工作,则用万用表检查各元器件,找出故障原因,解决故障;
5.清理实验台,打扫卫生。
五、总结
。“实践是检验真理的唯一”,刚看电路图时,觉得它很简单。在接下来的安排电子元件上也是顺风顺水。但是焊接之后的结果却当头泼了我一盆冷水:问题不断,无法达到老师的要求,而且由于前期的安排不当,导致焊接后的电路板奇丑无比、出现短路等问题。需要对照电路图、利用万能表仔细检查电路,最后才能解决。从这件事中我学到:凡是要三思,不可大意,不可想当然,而且要多与他人沟通。在焊接电路之前一定要先合理布置各个元件,确认无误后再动手焊接
继电器电路实习报告
一、实习目的
1.了解自锁、互锁的概念;
2.掌握电动机自锁的工作原理及操作方法;
3.掌握交流接触器互锁控制电路的工作原理及操作方法;
4.掌握用时间继电器使Y-Δ联结互换;
二、实习工具
组合开关、按钮、交流接触器KM、热继电器FR、时间继电器KT、导线若干、剥线钳、一字螺丝批、十字螺丝批、万用表
三、电路原理
1.笼型电动机直接起动的控制线路图
原理:需要接触器KM的线圈通电时,按下绿色启动按钮SB2,接触器常开辅助触头KM通电并自锁,KM线圈通电;松开SB2时,KM线圈不会断电,停止时按下红色停止按钮SB1。
2.笼型电动机正反转的控制线路图
原理:需要KM1线圈通电时,按下绿色启动按钮SB1,KM1通电并自锁,KM1线圈通电,串联在KM2线圈回路的KM1常闭触点断开,保证KM1与KM2线圈不同时带电。需要KM2线圈通电时,先按红色停止按钮停止,KM1断开,按下绿色启动按钮SB2,KM2通电并自锁,KM2线圈通电,串联在KM1回路的KM2常闭触点断开,保证KM2与KM1也不同时带电。即两个接触器实现了电动机的正反转,起着互锁保护作用。
3.笼型电动机Y﹣Δ起动的控制线路图
原理:Ⅰ.按下绿色启动按钮SB2→KM通电自锁→ KMΔ断电、
KMY通电、KT通电→KM、KMY主触头闭合→电动机星
形联接起动;
Ⅱ. KT整定时间到→延时断开触点断开→KT、KMY断电→KMΔ通电→KMΔ主触头闭合→电动机联接起动。
四、实习过程
1.读懂原理图,找出错误的线路并改正,画出正确的原理图;
2.按改正后的原理图对各元器件进行接线,先接主线路,后接控制线路;注意元器件的导线进出口;
3.线路接好后,对照电路原理图仔细检查;
4.找老师进行电路连接核对;
5.实习完毕,切断实验线路三相交流电源,拆除电路;
6.收拾实验台,整理工具后,离开实验室
五、总结
实验过程中要连接很多的线,所以一定要事先完全了解实验原理,最好记住电路图。接线时要有顺序,例如先把各条串联电路接好再接并联;要注意区分各个接线头,不要把常开、常闭等开关接错。若电路有问题,按照接线顺序对照电路图逐一排查。团队协作远比个人单打独斗更有效率。学会如何与他人进行高效的协作协作,是实习成功的基础。
第二篇:温控检测技术实习报告
一、实验目的
1、 掌握温度控制系统工作原理
2、 掌握温度传感器PT100及温度变送器的接线及安装
3、 掌握PLC读入温度变送器信号的标定
4、 掌握PID温度控制及其调节的工作原理及过程
5、 掌握PLC程序的梯形图编制方法
6、 掌握EM231模拟量输入模块的设置及接线
二、实验内容
1、根据实验目的,了解PT100、温度变送器、单片机EM226CN、模拟量扩展模块EM231、A/D转换器、固态继电器等实验器材的结构及原理;
2、了解温度测控系统原理,设计控制系统的电气原理图;
3、对温度测控系统的整体电路进行线路连接,并进行检查;
4、熟悉简单的人机交互软件界面,了解测控系统单片机程序,设计PLC温度控制(开关控制、PWM控制和PID调节及参数整定)程序,并对PLC程序的进行下载与调试,检测整个系统的测控性能;
5、完成相应的实验报告。
三、实验方案设计
1、电气原理图
2、方案分析:
该测控系统由温度采集电路、控制电路、加热电路三部分组成。通过热电阻采集水的温度,然后通过温度变送器将采集到的温度信号转换成模拟电流信号,通过电阻进行I/V转换,得到模拟电压信号,再通过A/D转换器将模拟电压信号转换为数字信号,然后输入单片机中,根据单片机中的程序控制,使输出的电信号发生改变,以控制固态继电器的闭合,而固态继电器直接控制加热电路的通闭,从而控制水的加热,继而影响水的温度。
四、元件工作原理
1、热电阻PT100
该电阻为一种接触电阻式敏感元件,属于铂热电阻,随着水的温度变化,其电阻值也会发生相应的变化。
其电阻和温度变化的关系式为:
Rt = R0 [1 + A T + B T2 + C( t - 100) T3 ]
式中: R0 为0 ℃下的电阻值,R0 = 100 Ω; T 为摄氏温度。
A=3.9X10-3 B=-5.8X10-7 ;T<0时 C=-4.183X10-12 T>=0时 C=0
电阻与温度呈非线性关系,但当测量精度要求较低时,电阻值与温度的函数关系可以简化为:
Rt = R0 (1 + A T)
2、温度变送器
其基本工作原理是将热电阻以三线制方式连接在电桥中,其电阻值的改变会改变测量电压,在通过转换将其变为电流信号再输出。(实验中的温度变送器的输出电流范围为4~20mA)。
R1=R2=R3,因此可以求出:
Rt=(2U-E)R/(2U+E)
3、A/D转换器
实验中采用的是D-30B转换器,它属于11通道的12位串行A/D转换器,采用的是逐次逼近技术。其内部没有电源,采用的是外部参考电压。由公式(REF+-REF-)/212得到其参考电压取2.048V,计算出量子化因式为2.048/212 =0.5mv。即若输出电压2.5V,则量子化数为5,换成二进制数为101,据此同理类推。
4、固态继电器SSR
是一种全部由固态电子元件组成的新型无触点开关器件,它利用电子元件(如开关三极管、双向可控硅等半导体器件)的开关特性,可达到无触点无火花地接通和断开电路的目的,因此又被称为“无触点开关”。
5、单片机
单片机,是一种微型计算机,能够通过多种形式的借口使其内部程序对外部工作电路进行有效的控制。
四、程序设计
1 #include <Reg52.h>
2 #include <intrins.h>
3 #include <absacc.h>
4
5 #define _HI 1
6 #define _LOW 0
7 #define _on 1
8 #define _off 0
9
10 #define int_EX0 0 // 外部中断0
11 #define int_T0 1 // 定时器0中断
12 #define int_EX1 2 // 外部中断1
13 #define int_T1 3 // 定时器1中断
14 #define int_ES 4 // 串行口可中断
15 #define int_ET2 5 // 8052定时器2中断
16
17 #define uchar unsigned char
18 #define uint unsigned int
19
20
21 sbit TXC=P3^5; //MAX485
22
23 sbit EOC2543=P3^2; //ADC2543
24 sbit CLK2543=P1^0; //ADC2543
25 sbit DIN2543=P1^1; //ADC2543
26 sbit DOUT2543=P1^2; //ADC2543
27 sbit CS2543=P1^3; //ADC2543
28
29 sbit WDOG=P3^4; //MAX813
30
31 sbit ADD1=P2^0;
32 sbit ADD2=P2^1; //ADDRESS
33
34 sbit IN1=P0^0;
35 sbit IN2=P0^1;
36 sbit IN3=P0^2;
37 sbit IN4=P0^3;
38
39 sbit OUT1=P0^4;
40 sbit OUT2=P0^5;
41 sbit OUT3=P0^6;
42 sbit OUT4=P0^7;
43
44 unsigned int overflow_count=0;
45 unsigned int now_Vco0=0;
46 unsigned int now_Vco1=0;
47 unsigned int now_Vco2=0;
48 unsigned int SetP=0;
49 uchar T0_INTERVAL;
50 uchar bstart=0;
51 unsigned int T0_Init;
52
53
54 uchar idata rxd232[6];
55 uchar idata Address;
56 uchar SendBusy;
57
58 void delay(uchar xms) //delay 1-255ms(22.1184M)
59 {
60 1 uchar i, j;
61 1 for(j=0;j<xms;j++)
62 1 {
63 2 for(i=0;i<220;i++)
64 2 {
65 3 _nop_();
66 3 _nop_();
67 3 _nop_();
68 3 _nop_();
69 3 _nop_();
70 3 _nop_();
71 3
72 3 }
73 2 }
74 1 }
75
76 uint pick_ch0(void) //adc CH0
77 {
78 1 uchar i; // 12bits/msb/bin
79 1 uint vol=0;
80 1 CLK2543=_HI;
81 1 DIN2543=_LOW;
82 1 CS2543=_LOW;
83 1 _nop_();
84 1 _nop_();
85 1 _nop_();
86 1 _nop_();
87 1 _nop_();
88 1 CLK2543=_HI; //时钟上升沿写入CH数据"0000"
89 1 _nop_();
90 1 CLK2543=_LOW;
91 1 _nop_();
92 1 CLK2543=_HI;
93 1 _nop_();
94 1 CLK2543=_LOW;
95 1 _nop_();
96 1 CLK2543=_HI;
97 1 _nop_();
98 1 CLK2543=_LOW;
99 1 _nop_();
100 1 CLK2543=_HI;
101 1 _nop_();
102 1 CLK2543=_LOW;
103 1 for (i=0; i<8; i++)
104 1 {
105 2 CLK2543=_HI; //时钟上升沿写入数据"0000_0000" 106 2 _nop_();
107 2 CLK2543=_LOW;
108 2 }
109 1 CS2543=_HI;
110 1 for (i=10;i>0;i--) //delay 10us
111 1 while (EOC2543==0); //在EOC=0时等待!
112 1 CS2543=_LOW;
113 1 _nop_();
114 1 _nop_();
115 1 _nop_();
116 1 _nop_();
117 1 _nop_();
118 1 CLK2543=_LOW;
119 1 for (i=0; i<11; i++)
120 1 { if (DOUT2543==_HI) { vol|=0x01; }
121 2 else vol|=0x00;
122 2 vol=_irol_(vol,1);
123 2 CLK2543=_HI; //时钟下升沿读出数据,
124 2 _nop_();
125 2 CLK2543=_LOW;} 126 1 CS2543=_HI;
127 1 _nop_();
128 1 _nop_();
129 1 _nop_();
130 1 _nop_();
131 1 return vol;
132 1 }
133
134 uint pick_ch1(void) //adc CH1
135 { uchar i; // 12bits/msb/bin
136 1 uint vol=0;
137 1 CLK2543=_HI;
138 1 DIN2543=_LOW;
139 1 CS2543=_LOW;
140 1 _nop_();
141 1 _nop_();
142 1 _nop_();
143 1 _nop_();
144 1 _nop_();
145 1 CLK2543=_HI; //时钟上升沿写入CH数据"0001" 146 1 _nop_();
147 1 CLK2543=_LOW;
148 1 _nop_();
149 1 CLK2543=_HI;
150 1 _nop_();
151 1 CLK2543=_LOW;
152 1 _nop_();
153 1 CLK2543=_HI;
154 1 _nop_();
155 1 CLK2543=_LOW;
156 1 _nop_();
157 1 DIN2543=_HI;
158 1 CLK2543=_HI;
159 1 _nop_();
160 1 CLK2543=_LOW;
161 1 DIN2543=_LOW;
162 1 for (i=0; i<8; i++)
163 1 { CLK2543=_HI; //时钟上升沿写入数据"0000_0000" 164 2 _nop_();
165 2 CLK2543=_LOW;} ;
166 1 CS2543=_HI;
167 1 for (i=10;i>0;i--) //delay 10us
168 1 while (EOC2543==0); //在EOC=0时等待!
169 1 CS2543=_LOW;
170 1 _nop_();
171 1 _nop_();
172 1 _nop_();
173 1 _nop_();
174 1 _nop_();
175 1 CLK2543=_LOW;
176 1 for (i=0; i<11; i++)
177 1 { if (DOUT2543==_HI) { vol|=0x01;}
178 2 else vol|=0x00;
179 2 vol=_irol_(vol,1);
180 2 CLK2543=_HI; //时钟下升沿读出数据,
181 2 _nop_();
182 2 CLK2543=_LOW;} 183 1 CS2543=_HI;
184 1 _nop_();
185 1 _nop_();
186 1 _nop_();
187 1 _nop_();
188 1 return vol;
189 1 }
190
191 uint pick_ch2(void) //adc CH2
192 { uchar i; // 12bits/msb/bin
193 1 uint vol=0;
194 1 CLK2543=_HI;
195 1 DIN2543=_LOW;
196 1 CS2543=_LOW;
197 1 _nop_();
198 1 _nop_();
199 1 _nop_();
200 1 _nop_();
201 1 _nop_();
202 1 CLK2543=_HI; //时钟上升沿写入CH数据"0010", 203 1 _nop_();
204 1 CLK2543=_LOW;
205 1 _nop_();
206 1 CLK2543=_HI;
207 1 _nop_();
208 1 CLK2543=_LOW;
209 1 _nop_();
210 1 DIN2543=_HI;
211 1 CLK2543=_HI;
212 1 _nop_();
213 1 CLK2543=_LOW;
214 1 DIN2543=_LOW;
215 1 _nop_();
216 1 CLK2543=_HI;
217 1 _nop_();
218 1 CLK2543=_LOW;
219 1 for (i=0; i<8; i++)
220 1 { CLK2543=_HI; //时钟上升沿写入数据"0000_0000" 221 2 _nop_();
222 2 CLK2543=_LOW;} ;
223 1 CS2543=_HI;
224 1 for (i=10;i>0;i--) //delay 10us
225 1 while (EOC2543==0); //在EOC=0时等待!
226 1 CS2543=_LOW;
227 1 _nop_();
228 1 _nop_();
229 1 _nop_();
230 1 _nop_();
231 1 _nop_();
232 1 CLK2543=_LOW;
233 1 for (i=0; i<11; i++)
234 1 { if (DOUT2543==_HI) { vol|=0x01; }
235 2 else vol|=0x00;
236 2 vol=_irol_(vol,1);
237 2 CLK2543=_HI; //时钟下升沿读出数据,
238 2 _nop_();
239 2 CLK2543=_LOW;} 240 1 CS2543=_HI;
241 1 _nop_();
242 1 _nop_();
243 1 _nop_();
244 1 _nop_();
245 1 return vol;
246 1 }
247
248 void pick_ch0_16s(void) //采16次取平均值(四舍五入)
249 {
250 1 uint sum_Vco=0;
251 1 uchar i;
252 1 for (i=0;i<16;i++)
253 1 {
254 2 sum_Vco+=pick_ch0();
255 2 };
256 1 i=sum_Vco % 16;
257 1 if (i>10)
258 1 now_Vco0=sum_Vco/16+1;
259 1 else
260 1 now_Vco0=sum_Vco/16;
261 1 }
262
263 void pick_ch1_16s(void) //采16次取平均值(四舍五入)
264 {
265 1 uint sum_Vco=0;
266 1 uchar i;
267 1 for (i=0;i<16;i++)
268 1 {
269 2 sum_Vco+=pick_ch1();
270 2 };
271 1 i=sum_Vco % 16;
272 1 if (i>10)
273 1 now_Vco1=sum_Vco/16+1;
274 1 else
275 1 now_Vco1=sum_Vco/16;
276 1 }
277
278 void pick_ch2_16s(void) //采16次取平均值(四舍五入)
279 {
280 1 uint sum_Vco=0;
281 1 uchar i;
282 1 for (i=0;i<16;i++)
283 1 {
284 2 sum_Vco+=pick_ch2();
285 2 };
286 1 i=sum_Vco % 16;
287 1 if (i>10)
288 1 now_Vco2=sum_Vco/16+1;
289 1 else
290 1 now_Vco2=sum_Vco/16;
291 1 }
292
293
294 void main(void)
295 {
296
297 E=0x00 ; //初始化时禁止所有中断
298 TMOD=0x11; // 定时器1工作在工作方式2,定时器0工作在方式1,16位定时计数器
299 SCON=0x50; // 串行口工作在方式1,10位数据收发,1位起始位,8位数据位,1位停止位 300 TCON=0x00; //
301
302 P1=0xFF; //先写1到各个I/O端口
303 P2=0xFF;
304 P3=0xFF;
305 P0=0xFF;
306 1
307 1 T0_INTERVAL=10;
308 1 T0_Init=65536-921.6*T0_INTERVAL;
309 1
310 1 if((ADD2==_LOW)&&(ADD1==_LOW))
311 1 Address=0x03;
312 1 else if((ADD2==_LOW)&&(ADD1==_HI))
313 1 Address=0x02;
314 1 else if((ADD2==_HI)&&(ADD1==_LOW))
315 1 Address=0x01;
316 1 else
317 1 Address=0x00;
318 1
319 1 SendBusy=_LOW;
320 1 TXC=_LOW; //
321 1 RCAP2H=0xFF;
322 1 RCAP2L=220; // 11.0592M/9600 Baud
323 1 RCLK=_on; //Timer2作为波特率发生器
324 1 TCLK=_on;
325 1 TR2=_on;
326 1 ES=_on ;
327 1
328 1 OUT1=0;
329 1 OUT2=0;
330 1 OUT3=0;
331 1 OUT4=0;
332 1
333 1 delay(100);
334 1 TH0=T0_Init/256 ; //25ms,fosc=11059200Hz,fosc/12=921600Hz,
335 1 例如t=25,X=23040,则应从42496开始计数,t=50,X=46080,则应从19456开始计数 336 1 t=10,X=9216,则应从56320开始计数,t=5,X=4608,则应从60928开始计数 337 1 TL0=T0_Init%256 ;
338 1 ET0=1; //开定时器0中断
339 1 TR0=1;
340 1 EA=1;
341 1 delay(100);
342 1
343 1 do {
344 2
345 2 if(TR0==0)
346 2 {
347 3 pick_ch0_16s(); //采集
348 3 if(bstart==1)
349 3 {
350 4 if( ((int)((now_Vco0*0.5/100.0-4)*18.75*10))<SetP ) 351 4 OUT1=_LOW;
352 4 else
353 4 OUT1=_HI;
354 4 }
355 3 else
356 3 OUT1=_HI;
357 3 if(SendBusy==_LOW)
358 3 TR0=1;
359 3 }
360 2 } while(1);
361 1
362 1 }
363
364 void Timer0(void) interrupt int_T0 using 1
365 {
366 1 if(overflow_count>=4)
367 1 {
368 2 overflow_count=0;
369 2 TR0=0;
370 2 }
371 1 else
372 1 overflow_count=overflow_count+1;
373 1
374 1 T0_Init=65536-921.6*T0_INTERVAL;
375 1 TH0=T0_Init/256 ;
376 1 TL0=T0_Init%256 ;
377 1
378 1 }
379
380
381 void _RS232() interrupt int_ES using 3 //RS232接收中断
382 {
383 1 uchar i;
384 1 uchar temp;
385 1 if (TI==_on)
386 1 {
387 2 TI=_off;
388 2 goto rx_end;
389 2 }
390 1 else
391 1 RI=_off;
392 1 for (i=1; i<6; i++) // shif sbuf form rx232[i] to rx232[i-1]
393 1 {
394 2
395 2 rxd232[i-1] = rxd232[i];
396 2 }
397 1 rxd232[5]=SBUF;
398 1
399 1 if ( rxd232[0]==Address )
400 1 {
401 2 if(rxd232[1]==0x3F)
402 2 {
403 3
404 3 temp=rxd232[0]+rxd232[1];
405 3 temp=temp+rxd232[2]+rxd232[3];
406 3 temp=temp+rxd232[4];
407 3 if (rxd232[5]==temp) //(rxd232[0]+rxd232[1]+rxd232[2]+rxd232[3]+rxd232[4]+rxd232[5])) 408 3 {
409 4 SetP=rxd232[3]*256+rxd232[4];
410 4 bstart=rxd232[2];
411 4
412 4 ES=_off ;
413 4 SendBusy=_HI;
414 4 TXC=_HI;
415 4 _nop_();
416 4 _nop_();
417 4 _nop_();
418 4 _nop_();
419 4 _nop_();
420 4 _nop_();
421 4 _nop_();
422 4 _nop_();
423 4 _nop_();
424 4 _nop_();
425 4 _nop_();
426 4 _nop_();
427 4 _nop_();
428 4 _nop_();
429 4 _nop_();
430 4 _nop_();
431 4 _nop_();
432 4 _nop_();
433 4 _nop_();
434 4 _nop_();
435 4 _nop_();
436 4 _nop_();
437 4 _nop_();
438 4 _nop_();
439 4 _nop_();
440 4 _nop_();
441 4 _nop_();
442 4 _nop_();
443 4 _nop_();
444 4 _nop_();
445 4 _nop_();
446 4
447 4 if(TI==_on)
448 4 TI=_off; 449 4 SBUF=Address; //
450 4
451 4 while (TI==_off);
452 4 TI=_off;
453 4 SBUF='!';
454 4
455 4 while (TI==_off);
456 4 TI=_off;
457 4 SBUF=now_Vco0/256;
458 4 459 4 while (TI==_off);
460 4 TI=_off;
461 4 SBUF=now_Vco0%256;
462 4
463 4 while (TI==_off);
464 4 TI=_off;
465 4
466 4 while (TI==_off);
467 4 TI=_off;
468 4
469 4 SendBusy=_LOW;
470 4 TXC=_LOW;
471 4 ES=_on ;
472 4 }
473 3 }
474 2 }
475 1 rx_end: ;
476 1
477 1 }
七、实习心得
经过了短短一个礼拜的测控实验,使我对测控电路有了一个基础性的认识与
了解。温度时我们材料成型工程中的一个很重要的因素,如何控制温度,对工程
的质量将起到重要作用。一个礼拜下来,我进一步地了解与理解了传感器、单片
机、A/D转换等工程中常用的测控系统中的元件,受益颇深。除此以外,通过了
实物接触,使我对课本上一些抽象的概念也有了一定的理解认识。虽然实验结果
没有能够百分百完成,但其过程让我认识了不少测控方面的知识,这个是让我最
感到可贵的。