历史上的今天
返回首页

历史上的今天

今天是:2025年02月16日(星期日)

正在发生

2018年02月16日 | 基于ARM嵌入式电站动态数据监控的一种新设计方案

2018-02-16 来源:eefocus

    监控系统分2种,C/S模式和B/S模式。C/S模式需要在PC安装客户端,在嵌入式系统上还需要安装服务端,这在设计上不仅加大了开发工作量,而且还得配备专用电脑,但有时候在工业现场上是没有办法做到的。而B/S模式则显得其灵活性和成本低廉性。首先在B/S模式下面我们只需要开发单个WEB应用,客户端和服务端程序都不需要。其次还可以用具备浏览器的终端设备来随时随地浏览察看和控制后端设备。另外还可以省下其他监控硬件设备,有效降低了成本,增强整套系统市场竞争力。

    综合考虑本系统采用B/S方式。监控系统以ARM11微处理器(SC6410)为硬件核心,嵌入式Linux为软件核心的综合平台方案。在此平台上设计了基于Linux嵌入式Web太阳能监控系统。此监控系统以Ajax为网页前端通讯方式,Cgi进程、Php进程、485进程为后端数据处理方式。监控系统只存设备上运行,在和设备联网的任何地方,仪通过浏览器就可以直接监控太阳能设备,打破了距离的限制,提高了软件的保密性。

    1 监控系统的硬件结构

    监控系统硬件分为核心板和底板2个部分。核心板使用S3C6410处理器,外扩128MB SDRAM和256MB FLASH外部存储器。底板采用的是RS4 85采集接口,3线RS232串口,SD卡存储接口以及以太网控制器和RJ45组成的以太网接口,硬件结构如图1所示。

b.JPG

    RS485通讯接口按照协议把太阳能设备参数读取并发送主控芯片(S3C6410)。主控芯片接受485采集数据并存放SQLite3数据库。经程序处理、分析后的数据在网页上以动态曲线和表格形式显示,除此之外实现网页上发送指令修改太阳能设备参数。该监控系统完成参数以表格和曲线等多种形式的展示以及太阳能设备参数的配置,极大方便了客户,提高了客户使用友好性。

    2 监控系统运行环境移植

    2.1 嵌入式CGI的C库移植

    2.1.1 下载cgIC205.tar.gz

    下载地址:http://www.boutell.com/cgic/#0btain

    2.1.2 解压

    解压压缩文件到/home/cgic/目录

    #tar -czvf cgic205.tar.gz

    #cd cgic205

    2.1.3 编译

    修改其makefile里面的编译参数

    CC=arm-linux-gcc

    AR=arm-linux-ar

    RANLIB=arm-linux-ranlib。

    #make

    拷贝libcgic.a库到设备/usr/lib/目录下。

    2.2 嵌入式数据库Sqlite3移植

    2.2.1 下载sqlite3-autoconf-3070900.tar.gz

    下载地址:http://www.sqlite.org/download.html

    2.2.2 解压

    解压压缩文件到/home/sqlite3/目录

    #tar -czvf sqlite3-autoconf-3070900.tar.gz

    #cd sqlite3-autoconf-3070900

    2.2.3 编译

    #./configure      \

    --host=arm-linux-       \

    --prefix=/opt/sqlite3/install3.7.4      \

    --dISAble--tc      \

    #make

    #make install

    拷贝/opt/sqlite3/install3.7.4目录下lib和bin文件到设备上对应目录。

    2.3 WEB服务器Appweb软件移植

    2.3.1 下载Appweb3.3.0.tar.gz

    下载地:http://appwebserver.org/downloads/appweb/download.ejs

    2.3.2 解压

    解压文件到/home/appweb/目录

    #tar -czvf appweb3.3.0.tar.gz

    #cd appweb3.3.0

    2.3.3 编译

    #./configure       \

    --prefix=/home/my      \

    --target=arm-sc6410-linux     \

    --build=i686-pc-linux            \

    --enable-log                        \

    --static                       \

    --port=80                          \

    --with-php=/home/cgi-php;      \

    #make TRACE=1

    #make ROOT_DIR=/home/my install

    在/home/cgi-php目录里面要有编译好的php5动态库,编译的Appweb服务器才会支持php功能。

    拷贝home/my目录里面的文件到设备对应目录,同时拷贝php动态库到/usr/lib目录,至此监控系统运行环境移植完毕。

    2.3.4 验证Appweb服务器

    编写以下代码并保存为文件test.php,放至设备/www/目录下

   d.JPG

    在PC机浏览器地址上输入设备地址:192.168.0.80/test.php.如果浏览器网页中显示“ok php”,就证明嵌入式Appweb带php开发功能且支持Sqlite3数据库软件运行环境已经移植完毕。现在Web服务器能支持Cgi和Php这两项功能,而类似boa,shttpd等嵌入式Web只是支持Cgi,在后台的处理上功能比较弱,不能完成较复杂的数据处理。

    3 监控系统软件的设计与实现

    监控系统软件基于Linux操作系统,主要分为Cgi模块、Php模块、485进程模块。Cgi模块主要是要负责密码验证、修改、以及发送消息给485扫描进程进行对太阳能设备参数进行配置。Php模块主要负责从数据库中提取出数据分析、处理后送给前台。485进程模块主要是自定义通讯协议,扫描在线太阳能逆变器来获取其基本属性参数并且经过处理后存放在设备sqlite3数据库里,一切图形显示和图表显示以及参数修改等数据全部是从数据库中取得。监控系统软件架构及其功能模块如图2所示。e.JPG

    3.1 监控系统软件设计技术

    3.1.1 软件通讯技术

    软件通讯方式是Ajax,她是结合了Java技术、XML以及JavaScriDt等编程技术,可以让开发人员构建基于Java技术的Web应用,并打破了使用页面重载的惯例。用户可以创建接近本地桌面应用的直接、更丰富、更动态的Web用户界面。

    3.1.2 软件Javascipt基础库

    整个系统软件前端软件开发主要是基于Jayascipt的库JQuery。她简化了前端开发的工作,提供了丰富的函数接口。

    3.1.3 软件曲线显示插件技术

    系统曲线显示部分主要是由Flot插件来完成的。Flot是一个非常强大的利用js来画出图表的jquery插件,并且支持几乎所有主流浏览器,包括IE6+。在本系统中主要采用此插件来完成历史和实时曲线的绘制。

    3.1.4 软件图表显示插件技术

    系统图表显示部分主要是由JGrid插件实现。她能完成大部分常用工作的表格和分页功能的表单,在本系统中主要用来显示和实时更新在线太阳能设备的基本参数。

    3.2 监控系统软件Cgi模块

    Cgi模块分为前端和后端两个部分,前端主要是html元素的编写和布局以及相关元素对应事件函数的编写,后端是负责处理html网页传送过来的数据并且处理完毕返回给网页调用函数需要的数据,网页利用得到的数据更新原来网页上的数据。图3是Cgi功能模块。

f.JPG

    3.2. 1 Cgi前端编程

    Html网页js函数提交数据有post和get两种方式,本系统采用方式是post方式。前台(html)调用cgi程序实例:g.JPG
    h.JPG
    Cgi程序通过cgic库提供的api函数获取从前台网页传过来的数据{ID:addr,Value:value},处理数据后依需求发送消息给485进程,并查询数据库检查命令是否设置成功,当然也有独立的查询数据库来验证密码或者修改密码之类的操作。
3.2.2 Cgi后端编程
    i.JPG

    3.3 监控系统软件Php模块

 

    Php模块从数据库提取需要的数据整理处理后以JSON格式发送前台。图4是Php功能模块。

 

j.JPG

    3.3.1 Php前端编程

    这个部分和Cgi部分是一样的,编写调用Php模块js函数。

    3.3.2 后端php编程

    k.JPG
   l.JPG

4 运行效果
    测试满足实际现场需求,如图5和图6以及图7所示。

a.JPG

    5 结束语

    文中介绍了基于ARM嵌入式电站动态数据监控的一种新设计方案,给出了详细的硬件和软件组成和设计实现,并且针对电站数据的实时显示和历史数据的查询以及电站基本参数的配置等核心问题,提出了一套可靠的设计方法,实际长期运行证明该监控软件运行稳定、实际占用资源少、界面易于操作、符合现场要求,具有十分广泛的应用前景。


推荐阅读

史海拾趣

EECO Switch公司的发展小趣事

EECO Switch公司成立于1947年,最初作为加利福尼亚州的一家电子工程公司,致力于电子产品的设计与制造。随着技术的不断进步和市场需求的变化,公司逐渐将业务重心转向人机界面产品的设计与开发。在这个过程中,EECO Switch凭借其深厚的技术积累和创新精神,成功开发出了一系列具有领先技术的人机界面产品,从而确立了其在该领域的领先地位。

D1 International Inc公司的发展小趣事

D1 International Inc公司深知,持续的技术创新是企业发展的核心动力。因此,公司不断加大研发投入,积极引进和培养高素质的研发人才。通过不断的创新实践,D1 International Inc公司在多个领域取得了重要的技术突破,为公司的发展注入了新的活力。

Cantherm公司的发展小趣事

随着电子市场的日益竞争,Cantherm公司面临着市场拓展的难题。为了打开新的销售渠道,公司决定加大在国际市场的宣传力度,同时积极参加各种电子行业的展会和论坛。通过与国际同行的交流与合作,Cantherm不仅提升了品牌知名度,还成功拓展了海外市场,实现了业务的多元化发展。

博众电气(BZCN)公司的发展小趣事

随着市场的不断扩大,博众电气意识到质量是企业生存和发展的关键。因此,公司决定引入国际先进的质量管理体系,全面提升产品质量和服务水平。通过严格的质量控制和持续改进,博众电气的产品质量得到了显著提升,客户满意度也大幅提高。这一举措不仅增强了公司的市场竞争力,还为公司的长远发展奠定了坚实基础。

聚洵(Gainsil)公司的发展小趣事

随着国内市场的日益饱和,博众电气开始将目光投向国际市场。公司制定了国际化发展战略,积极参与国际竞争与合作。通过在国外设立分支机构、参加国际展会等方式,博众电气成功打开了国际市场的大门。如今,公司的产品已经远销海外多个国家和地区,国际市场份额逐年攀升。

诚芯微(CXW)公司的发展小趣事

在2009年,诚芯微(CXW)公司在深圳成立,标志着其在中国电子行业的初步涉足。公司创始人凭借对集成电路设计领域的深刻理解和前瞻性的市场洞察,决定专注于电源芯片的研发与设计。初期,公司面临着资金紧张、技术储备不足等挑战,但创始人带领团队坚持自主研发,逐步积累了技术实力。

问答坊 | AI 解惑

RFIC和RFID 完全不同吧?

百度的答案,还请大家深入说说: RFIC是RF System 里的Block做成IC ,,基本上成品就是IC ; 而RFID是Radio-frequency identification 是一个系统,有特定的规范。 二者是否有确定的包含与被包含的关系呢?…

查看全部问答>

在Wince上进行快速应用开发(RAD)!!!!

Lazarus是一个类似Delphi的IDE,其语言是Free Pascal,开发方式就是RAD,自从2.2.0 FPC(Free Pascal Compile)开始,就支持WINCE -ARM平台。使用Lazarus开发,界面可以比C#丰富,且更为简单,但是速度会快很多,因为Lazarus生成的是二进制EXE,而 ...…

查看全部问答>

安装CE6的SP1出错toolMsmCA(Error):Setup package issue or CoreCon。。。

安装CE6的SP1是出错 “ToolMsmCA(Error):Setup package issue or CoreCon DataStore corrupted:CDeviceSDKInstallShin Add/Remove failed.HR=0x80004005. 我之前装了VS2005。 这几天才装这个,不知怎么出错,安装进度停在Installing the Gene ...…

查看全部问答>

最牛的无线数传资料

无线数传模组: a.通用数传模组    WAP200B、EM200D、GW200B,最大100mW,64个频道,传输距离800米左右,内置前向纠错,最高速度19200(接口可达115200); b.高灵敏度数传模组   WAP200C、GW200KB,最大20mW,64个频道,传 ...…

查看全部问答>

急!需要开发条码打印机。不知道如何设计及开发?

市场有一款是uc/os 8 位的代码打印机。 可以接扫描枪,扫入条码,然后按键。打印出一个新条码。 现在想开发这样的东东。谁做过啊? 着急啊。请求指点,合作都可以…

查看全部问答>

MSP430中 timer_B和ADC12中断的矛盾

我现在遇到的问题是 ADC12IE = 0x01; 会影响timer_B定时的精度 但是 我查过手册,上面说timer_B高于ADC12中断优先级(先是用的timer_A,发现现象不对) 只要屏蔽ADC12IE = 0x01; 定时就精确了! 求解,求赐教!…

查看全部问答>

STM32现在有没有带总线和USBHOST或者OTG的片子?

                                  …

查看全部问答>

ASM eagle60 W/B BSOB

近来老板搞了点垃圾产品,在生产时用的是BSOB,但第二点不是翘线就是打不上,很多参数都用过了,不知还有哪里没想到的。求教怎样可以使ASM eagle60 W/B 的BSOB达到最佳。…

查看全部问答>

mma7455 加速度传感器怎么校正?

请教一下,mma7455 加速度传感器怎么校正,x,y,z校正值是多少?谢谢 [ 本帖最后由 sanxin126 于 2011-7-27 21:09 编辑 ]…

查看全部问答>

LM3S的PWM

有谁能过没有LM3S的PWM的功能,自己用的PWM的发生器产生脉冲的时候总觉得占空比不对。 用的是8MHZ的晶振频率     PWMGenPeriodSet(PWM_BASE, PWM_GEN_1, 160000);          &n ...…

查看全部问答>