USS协议变频器Web控制方法的研究与实现
扫描二维码
随时随地手机看文章
1 系统的软硬件平台
1.1 EasyARM8962教学实验平台
EasyARM8962教学实验平台采用了LuminaryMicro公司生产的Stellaris系列微控制器LM3S8962处理器,具有JTAG调试等功能。该芯片内部具有:UART,SSI,I2C,以及256 KB FLASH和64 KBSRAM。该处理器内部集成了网络控制器,具有强大的网络功能。硬件系统结构如图1所示。
1.2 μC/OS-Ⅱ的移植与嵌入式TCP/IP协议栈
μC/OS-Ⅱ是近年来发展迅速的开放源码实时操作系统,具有可移植性好、可裁减、可固化的优点。将μC/OS-Ⅱ引入嵌入式网络系统,既可以实现系统的实时性要求,又可以提高系统的可靠性。周立功公司提供的移植代码为使用μC/OS-Ⅱ做好了铺垫工作,与处理器类型有关的文件OS_CPU.H,OS_CPU_C.C,OS_CPU_A.ASM。本文采用最新版本的μC/OS-ⅡV2.52。
本设计采用周立功公司的ZLG/IP协议栈。ZLG/IP协议栈代码量小,是面向嵌人式系统开发的基于μC/OS-Ⅱ的小型TCP/IP协议栈,它支持TCP,UCP,IP,ICMP,ARP。
基于ZLG/IP“用户可配置和裁剪”的特点,为了进一步提高代码的运行速度,根据实际项目应用需要可对ZLG/IP协议栈进行裁剪。对ZLG/IP协议栈的配置是通过修改软件栈下的cfg_net.h来实现的。在此文件里设置使用的MAC地址、子网掩码、IP地址和本地网关。设置的子网掩码应与客户机的相同、IP地址要设置成与客户机同一网段内,网关地址可以设置为客户机的IP地址。
2 USS协议及MM440变频器的设置
要利用USS协议实现对西门子MM440变频器的远程控制,必须对其进行相应的设置。对本设计而言,具体设置如下:
P0700[0]=5(设定命令给定源为COM链路的USS报文命令);
P1000[0]=5(设置频率给定源为COM链路的USS报文);
P2009[0]=0(USS标称化);
P2010[0]=6(设定USS、通信的波特率为9 600 b/s);
P2011[0]=0(设定变频器的惟一地址,取值范围为0~31,这里给定地址为0);
P2012[0]=2(定义USS报文的PZD部分中16位字的数量,即USS PZD长度);
P2013[0]=127(定义USS报文的PKW部分中16位字的数量,即USS PKW长度。127是最有用的设定,此设定下PKW应答长度视所需的信息量而变);
P0971=1(在设定为1时,从RAM向E2PROM传送参数值)。
3 HTTP协议和嵌入式Web服务器的实现
3.1 HTTP协议
HTTP协议是基于请求/响应模式的。一个客户机与服务器建立连接后,发送一个请求给服务器。服务器接到请求后,给予相应的响应信息。在Internet上,HTTP通信通常发生在TCP/IP连接之上,缺省端口是TCP80。
Web浏览器利用HTTP协议和服务器进行通信。浏览器向服务器发送请求之后,服务器会将所请求的网页发送到浏览器,服务器也可以根据HTTP请求所提交的信息运行相关程序。要从Web服务器获得网页,必须输入Web服务器的IP地址,例如:
http://210.31.192.70
浏览器定位IP地址然后打开TCP连接的服务器端口80,之后利用HTTP协议发送由GET行组成的请求:GET/HTTP/1.0。GET方法是获取Web文档的一种HTTP方法。如果服务器响应HTTP/1.0 200OK表示连接成功,然后Web网页就可以发送。GET方法把参数数据队列加到提交表单的ACTION属性所指的URL(统一资源定位符)中,值和表单内各个字段一一对应,在URL中可以看到。GET请求的数据会附在URL之后,以“?”分割URL和传输数据,参数之间以“&”相连。如果数据是英文字母/数字,原样发送,如果是空格,转换为“+”。虑到本系统提交的信息的特点,使用GET方法来设计Web服务器。
3.2 Web服务器的设计与实现
在μCO/S-II操作系统中,根据尽量减少任务数以提高CPU利用率的原则,本设计建立了四个任务。这四个任务是:taskstart(启动任务)、taskC(接收TCP信号量任务)、taskE(TCP数据处理任务)、taskF(接收和发送USS报文任务)。四个任务之间的关系,各自的优先级设置及任务间的通信机制如图2所示。
Web服务器应用任务完成TCP通信,在此任务中网页信息以HTML格式存储于一个全局变量的Web[]数组中,这些信息通过HTTP协议沿TCP连接发送到浏览器,以HTML文本格式定义的全局变量Web[]数组如下:
在主监控网页中,可以任意设置变频器的工作频率,也可以实时监控其工作状态。图3就是本系统的Web监控网页。
在监控网页,放置的频率设定按钮。它的方法都被设置为“GET”。GET将表单中提交的数据添加到URL中。如果填写频率值“45”然后提交,Web服务器从浏览器接收到的URL如下:
GET/9? text1=45&B3=%CC%E1%BD%BBHTTP/1.1
在Web服务器中,建立一个接收数据缓冲区数组tempdata[400],用它来存储从浏览器发来的数据。根据URL的格式,能从URL中获得表单中提交的数据。它们被相关程序处理后会按照USS协议保存到数组SndData[12]中。参数P2009[0]=0对USS进行了标称化,频率的计算就要按照规格化进行。这个数组通过串口发送到变频器之后,就可以使变频器按照要求频率工作了。
服务器会把查询到的MM440变频器的当前工作频率发送到监控页面上。向变频器发送查询工作频率的USS指令是{02 08 00 10 15 00 00 00 00 0F}。此指令查询的是r0021的参数值,即变频器工作的实际值。变频器会返回一个相应的报文,如:
{02 0E 00 20 15 00 00 42 48 00 00 FF B4 40 00 38}
这里包含了要查询的工作频率,服务器在收到这个报文之后,会调用相应的程序对其进行处理,最终将工作频率以十进制形式显示在网页上。为了实时查看变频器的工作频率,实现监视网页的实时刷新,就要在网页信息里加入网页更新语句:
实现动态网页。网页刷新速率为10 s/次,但由于数据处理速度的原因,刷新有一定的时延。
4 结 语
本文介绍的μC/OS-Ⅱ内核裁剪、TCP协议应用编程方法以及Web服务器的设计思想等内容具有广泛的应用性。USS协议变频器的Web监控设计已经调试通过,实现了远程监控,初步达到了设计要求。现在,随着嵌入式网络应用的发展,USS协议变频器的Web控制方法有着广阔的应用前景。