ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:977.78KB ,
资源ID:5620292      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5620292.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于BL的以太网温度控制系统.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于BL的以太网温度控制系统.docx

1、基于BL的以太网温度控制系统基于BL2000的以太网温度控制系统(系统控制部分)一 基于BL2000的以太网简介BL2000是Wildeat公司生产的一个功能强大的开放的实时嵌入式系统,其Rabbit CoreRCM 2000模块内和你Rabbit 2000微处理器、大容量Flash及STAM、内置以太网接口,可直接通过网络实时监控;具备RS-232/RS-485接口,可与各种串行设备快速进行网络连接;内置A/D、D/A转换器,可快速有效地实现A/D、D/A转换。BL2000的开发软件时在专用的开发环境Dynamic C下编译、调试通过。可通过在编程时对特定的头文件进行调用,实现TCP/IP协

2、议的使用,免去了复杂的协议学习步骤,可通过Front Page, Dream Wave等软件现行进行网页制作,在通过编译语言将其写入程序内进行调用,最后存储在BL2000内,将工业的模拟量接口接与BL2000相应的接口上,数据处理在程序内部完成,这样就实现了数据采集到BL2000上,然后进行数据处理同时通过IE登录网站可观看采集结果及处理结果的全过程。二 BL2000以太网温度控制系统1 实验目的1掌握BL2000的系统特点,并可独立完成BL2000的硬件设计,连接2掌握网页制作基础,理解BL2000调用网页的方法3掌握Dynamic C的编写原理,理解CGI函数的构成并会调试2实验仪器温度控

3、制试验箱、以太网控制网络系统平台、上位微机一台、PT100传感器一个、电烤炉一个、导线若干3实验内容通过BL2000独立设计一个以太网温度控制系统,实现现场温度(既烤炉内的温度)通过PT100传感器采集到BL2000内部中去,然后通过BL2000对上位机进行实时的数据显示同时BL2000内部通过事先设计好的算法进行数据处理,要求实现PID控制,对系统可进行微分,积分,比例等值的独立更改。4实验电路如图所示:三 硬件电路介绍1嵌入式控制器BL20001)BL2000的概述 BL2000是Wildeat公司生产的一个功能强大的开发的实时嵌入式系统,其Rabbit Core RCM 2000模块内含

4、Rabbit 2000微处理器、大容量Flash及SARM、内置以太网接口,可直接通过实时监控;具备RS-232/RS-485接口,可与各种串行设备快速进行网络连接;内置A/D、D/A转换器,可快速有效地实现A/D、D/A转换。所有的BL2000系列模块可以使用恰当的辅助硬件通过以太网/互联网进行编程和调试。带有10Base-T以太网接口的系统可以直接通过局域网或互联网进行控制和监视,能够对远端设备开放接口,能够提供网页服务,还能够发送e-mail。BL2000系列对于大系统来说作为一个具有网络功能的服务处理器也是非常理想的。BL2000的开放软件时在专用的集成开发环境下编译、调试通过的。2)

5、BL2000系统的特点 BL2000单板系统在设计当初就充分考虑了使用的方便性、透明性,无论是采集模拟信号还是采集数字信号都可以直接实现,现将BL2000系统的特点介绍如下: 1 具有RJ-45插口的10Base-T以太网接口。2 简便的连通性。3 快速的22.1MHz时钟。4 多达28个数字量I/O通道。5 可方便实现12位A/D、D/A转换,具有4个串口。6 内含128KB的SARM和256KB的Flash。7 BL2000单板电路中具有板继电器。8 带有后备电池的时间/日期时钟。 BL2000单板系统实物图 BL2000引脚结构图2 pt100pt100是铂热电阻,它的阻值会随着温度的变

6、化而改变。PT后的100即表示它在0时阻值为100欧姆,在100时它的阻值约为138.5欧姆。它的工业原理:当PT100在0摄氏度的时候他的阻值为100欧姆,它的阻值会随着温度上升而成匀速增长的。 Pt100的分度表 -50度 80.31欧姆30度111.67欧姆110度142.29欧姆190度 172.17欧姆-40度 84.27欧姆40度115.54欧姆120度146.07欧姆200度175.86欧姆-30度88.22欧姆50度119.40欧姆130度149.83欧姆-20度92.16欧姆60度123.24欧姆140度153.58欧姆-10度96.09欧姆70度127.08欧姆150度15

7、7.33欧姆0度100.00欧姆80度130.90欧姆160度161.05欧姆10度103.90欧姆90度134.71欧姆170度164.77欧姆20度 107.79欧姆100度138.51欧姆180度168.48欧姆PT100铂电阻RT曲线图表 四 数据采集实验步骤1现场温度通过Pt100采集,得到相应的电流模拟量通过温度控制仪表传输给电流表显示和双向硅。2同时将采集来的模拟量传输给BL2000进行转换,转换成数字量调入内部程序进行数据处理。3BL2000将处理后的结果(数字量)进行转换变为模拟量在模拟量接口对温度控制仪表XTM602进行传输。4XTM602得到传输过来的模拟量后对数显表进行

8、显示同时对双向硅进行控制使双向硅输出电压发生变化,达到对电炉的控制。五 系统软件编程过程系统软件即上位机的程序主要采用FrontPage设计的网页,通过IE调用完成,设计的网页主要包括:主界面:控制界面、显示界面、启停界面,登入界面,修改密码界面。通过超链接连接各网页并在主程序中完成了相应的网页调用指令和CGI指令的设计。六 部分Dynamico C程序BL2000的开放软件时在专用的集成开发环境下编译、调试通过的。动态C语言接近于单步同于传统的C语言,是基于Windows95/98/NT及Linux平台的Rabbit应用软件的完整开发系统,它作为应用程序运行于IBM-PC兼容机上,是Z-Wo

9、rd公司为基于Rabbit微处理器的嵌入式系统而设计的专门的C编译系统。动态C包含了很多底层的I/O驱动函数库,大大减轻了软件开发的工作量。它具有实时多任务内核,提供Socker级的TCP/IP编程,支持多种网络协议。应用动态C进行软件开发,无需仿真器和编程器,开发成本大大降低。另外,由于动态C直接对存储器进行编译,函数及库都可以实现以动态方式进行编译与连接,因此具有了极大的速度优势。在基于BL2000以太网温度控制实验设计中,主要通过Dynamic C实现对网页的调用和数据的处理等功能,其具体的程序为:#class auto/* * 配置字节 * * - * * 更改网关以及IP地址适应自己

10、的网络 * */#define MY_GATEWAY 10.103.0.1#define MY_IP_ADDRESS 10.103.0.226#define MY_NETMASK 255.255.255.0#define TCP_BUF_SIZE 2048/* * WEB服务的配置字节 */#define HTTP_MAXSERVERS 2#define MAX_TCP_SOCKET_BUFFERS 2#define REDIRECTHOST MY_IP_ADDRESS/* * 结束配置字节 * */#define REDIRECTTO http:/ REDIRECTHOST /index.s

11、html#define REDIRECTTO http:/index.shtml#memmap xmem#use dcrtcp.lib#use http.lib#ximport C:试验设备整理版温度控制试验/pages/maincontrol.htm index_htm#ximport C:试验设备整理版温度控制试验/pages/left.htm left_htm#ximport C:试验设备整理版温度控制试验/pages/right.htm right_htm#ximport C:试验设备整理版温度控制试验/pages/top.htm top_htm#ximport C:试验设备整理版温度

12、控制试验/pages/control.htm control_htm#ximport C:试验设备整理版温度控制试验/pages/bj01.gif bj01_gif#ximport C:试验设备整理版温度控制试验/pages/newpage3.htm newpage3#ximport C:试验设备整理版温度控制试验/pages/newpage1.htm newpage1#ximport C:试验设备整理版温度控制试验/pages/newpage7.htm newpage7#ximport C:试验设备整理版温度控制试验/pages/newpage8.htm newpage8/* the def

13、ault for / must be first */const HttpType http_types = .shtml, text/html, shtml_handler, / ssi .html, text/html, NULL, / html .cgi, , NULL, / cgi .gif, image/gif, NULL, .jpg, image/jpg, NULL;/#define LOCOUNT 400 /sets up a low voltage calibration point/#define HICOUNT 3695 /sets up a high voltage ca

14、libration pointchar tempback45; char myswitch50; char warm50; /高温报警灯char volnum30;char e30;char curtemp30;char tartemp30;char runtime30;char parap30;char parai30;char parad80;char sdtime80;char sdtemp30;char sdhtemp30; /!float fe; /温度偏差float Ui; /积分项float ftargettemp; /设定温度float fhightemp; /高温报警floa

15、t fparap; /PID参数float fparai; /PID参数float fparad; /PID参数long ltotletime; /系统运行的时间int mins;/*实际控制使用的参数*/float fgettemp; /实际采样的温度int runstop; /系统开关,启动系统float ftempdiv2; /温度的偏差#define MAX_FORMSIZE 64typedef struct char *name; char valueMAX_FORMSIZE; FORMType;FORMType FORMSpec6;int switchtoggle(HttpStat

16、e* state) if (strcmp(myswitch,http:/10.103.0.221/试验项目qidong.jpg)=0) runstop=0; strcpy(myswitch,http:/10.103.0.221/试验项目tingzhi.jpg); else runstop=-1; mins=0; strcpy(myswitch,http:/10.103.0.221/试验项目qidong.jpg); cgi_redirectto(state,http:10.103.0.221/试验项目control.htm); return 0;void Update_AD() /AD刷新函数

17、float ftemp; int iloop; ftemp=0; for(iloop=0;iloop100;iloop+) ftemp+=anaInVolts(1); fgettemp=ftemp/10; if(fgettemp50) fgettemp=fgettemp+1.1;void ControlTemp() /温度控制函数 float foutvol; if (runstop=0) /程序开始 ftempdiv1=ftargettemp-fgettemp; / 定义温度差 fe=ftempdiv1; Ui=Ui+ftempdiv1; / foutvol=(fparap*ftempdiv

18、1+fparai*Ui+fparad*(ftempdiv1-ftempdiv0)/20; /PID控制算法 ftempdiv0=ftempdiv1; /前一状态=后一状态(刷新) else /程序没有运行 ftempdiv1=ftargettemp-fgettemp; /定义温度差 fe=ftempdiv1; foutvol=0; Ui=0; ftempdiv0=0; ftempdiv1=0; sprintf(e,%.2f,fe); sprintf(runtime,%d n,mins); anaOutVolts(1,foutvol); /模拟量输出语句(使用通道0,foutvol为输出的模拟量

19、的DA值) if(foutvol3.5) foutvol=4; if(foutvol0.5) foutvol=0; anaOutVolts(1,foutvol); sprintf(e,%.2f,fe); /显示语句 sprintf(volnum,%.2f,foutvol); sprintf(curtemp,%.2f,fgettemp);/* * Parse one token foo=bar, matching foo to the name field in * the struct, and storing bar into the value */void parse_token(Htt

20、pState* state) auto int i, len; for(i=0; ibufferi = =) state-bufferi = 0; state-p = state-buffer + strlen(state-buffer) + 1; for(i=0; ibuffer) len = (strlen(state-p)MAX_FORMSIZE) ? MAX_FORMSIZE - 1: strlen(state-p); strncpy(FORMSpeci.value,state-p,1+len); FORMSpeci.valueMAX_FORMSIZE - 1 = 0; /* * pa

21、rse the url-encoded POST data into the FORMSpec struct * (ie: parse foo=bar&baz=qux into the struct */int parse_post(HttpState* state) auto int retval; while(1) retval = sock_fastread(sock_type *)&state-s, state-p, 1); if(0 = retval) *state-p = 0; parse_token(state); return 1; /* should this only be

22、 &? (allow the eoln as valid text?) */ if(*state-p = &) | (*state-p = r) | (*state-p = n) /* found one token */ *state-p = 0; parse_token(state); state-p = state-buffer; else state-p+; if(state-p - state-buffer) HTTP_MAXBUFFER) /* input too long */ return 1; return 0; /* end of data - loop again to

23、give it time to write more */* * Sample submit.cgi function */int submit(HttpState* state) auto int i; if(state-length) /* buffer to write out */ if(state-offset length) state-offset += sock_fastwrite(sock_type *)&state-s, state-buffer + (int)state-offset, (int)state-length - (int)state-offset); els

24、e state-offset = 0; state-length = 0; else const HttpSpec http_flashspec = HTTPSPEC_FILE, /, index_htm, NULL, 0, NULL, NULL, HTTPSPEC_FILE, /index.htm, index_htm, NULL, 0, NULL, NULL, HTTPSPEC_FILE, /right.htm, right_htm, NULL, 0, NULL, NULL, HTTPSPEC_FILE, /left.htm, left_htm, NULL, 0, NULL, NULL,

25、HTTPSPEC_FILE, /top.htm, top_htm, NULL, 0, NULL, NULL, HTTPSPEC_FILE, /control.htm, control_htm, NULL, 0, NULL, NULL, HTTPSPEC_FILE, /bj01.gif, bj01_gif, NULL, 0, NULL, NULL, HTTPSPEC_FILE, /newpage3.htm, newpage3, NULL, 0, NULL, NULL, HTTPSPEC_FILE, /newpage1.htm, newpage1, NULL, 0, NULL, NULL, HTT

26、PSPEC_FILE, /newpage7.htm, newpage7, NULL, 0, NULL, NULL, HTTPSPEC_FILE, /newpage8.htm, newpage8, NULL, 0, NULL, NULL, HTTPSPEC_VARIABLE, myswitch, 0, myswitch, PTR16, %s, NULL, HTTPSPEC_VARIABLE, warm, 0, warm, PTR16, %s, NULL, HTTPSPEC_VARIABLE, e, 0, e, PTR16, %s, NULL, HTTPSPEC_VARIABLE, volnum,

27、 0, volnum, PTR16, %s, NULL, HTTPSPEC_VARIABLE, curtemp, 0, curtemp, PTR16, %s, NULL, HTTPSPEC_VARIABLE, tartemp, 0, tartemp, PTR16, %s, NULL, HTTPSPEC_VARIABLE, runtime, 0, runtime, PTR16, %s, NULL, HTTPSPEC_VARIABLE, parap, 0, parap, PTR16, %s, NULL, HTTPSPEC_VARIABLE, parai, 0, parai, PTR16, %s, NULL, HTTPSPEC_VARIABLE, parad, 0, parad, PTR16, %s, NULL, HTTPSPEC_VARIABLE, sdtime, 0, sdtime, PTR16, %s, NULL, HTTPS

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1