你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 1648|回复: 18

基于GPRS和组态软件Obtain的远程监控系统设计

[复制链接]

1

主题

19

回帖

0

蝴蝶豆

初级会员

最后登录
2017-3-5
发表于 2015-2-1 23:20:32 | 显示全部楼层 |阅读模式
本帖最后由 posan3 于 2015-2-2 00:26 编辑

几年前做的一个项目,主控用的是ARM+FPGA,GPRS无线通信,平台还是不错,可以通用。简单改成有STM32 Nucleo控制,仅做了1路电压测量和控制板上的LD2开关,感谢廖义奎老师和606的同学们。  
无标题.png



第一章          系统总体方案设计
以某温泉谷的供水系统为例,介绍嵌入式远程监控供水系统的设计。本章主要分为两部分:第一部分通过分析供水系统的需求,确定系统方案;第二部分介绍系统总体设计,给出系统总体框图并介绍各部分的功能和作用。
                                                                                   §1.1       系统需求和分析
某温泉谷井口分站如图2.1所示,共有5个井口分站,各分站用深水泵把温泉水从地下抽取上来后存放到地面上的蓄水罐,根据需要各分站通过2台送水泵把温泉水从蓄水罐送到温泉切入点的蓄水池。由于其有多个分站,每个分站都是传统的手动即开、即关的模式,没有自动控制模式,无法集中控制,给实际运行带来很大的不便。同时需要每个分站配备俩到三名电工轮流值班,根据温泉切入点的需求实时操作送水泵,投入了大量的人力,浪费大量的财力,给公司带来很大的负担。
无标题.png
2.1温泉井口分站位置示意图
为此,根据该温泉谷的要求以及针对现场实际情况,特提出了如下的改进方案:在原有的基础上,拆掉原抽水系统,给抽水泵配备变频器,实行变频控制。抽水泵、
送水泵以及风机就在原来的系统基础上添加自动控制功能,整套系统可分为自动控制和手动控制,一般情况下采用集中自动控制,当某分站的设备出现故障时,仅对该站实行自动控制。
自动控制控制中心设置在温泉切入点,根据图2.1各井口到温泉切入点的距离,最远2#距离有大约3公里,其中1#、3#设在地下室并处在居住区,可以接入国际互联网;2#、3#、5#设在地面但是野外地区,不能接入国际互联网,但有GSM和GPRS信号;如果通讯方式采用有线方式,由于距离远并且有分站过居住区,布线成本将会很大,因此采用无线方式。ZigBee传输距离近,比较GSM和GPRS优劣,最后确定采用GPRS通讯方式。
                                                                                   §1.1       系统控制核心的确定
针对以上系统功能,可以有多种实现的方案。现场总线控制系统是目前自动化技术中的一个热点,正受到国内外自动化设备制造商与用户越来越强烈的关注。现场总线控制系统的出现,将给自动化领域带来又一次革命,其深度和广度将超过历史的任何一次,从而开创自动化的新纪元。目前国内外多采用三种控制系统[12]:PLC、DCS、FCS。
(1) PLC方式
PLC方式就是以可编程序控制器PLC设备为核心,外加RS232、RS485、以太网等通信扩展模块,同上位机组成一个PLC运行网络,从而实现分布式控制系统。可用一台PC机为主站,多台同型PLC为从站。也可一台PLC为主站,多台同型PLC为从站,构成PLC网络。优点是:有用户编程时,不必知道通信协议,只要按说明书格式写就行,使用方便可靠。缺点是:PLC成本高,使用不灵活,不易实现自定义通信协议系统。
(2)DCS 方式
DCS是分布式控制系统的英文缩写(DistributedControl System),也叫集散控制系统。它的特点是集中管理、分散控制。集中管理是指这个系统把所有的控制点都集中在中央控制室来管理。分散控制是指控制点是可以分散在任何地方的。这点和PLC是类似的。也就是在现场控制点上拉根线到中控室的一个机柜上,机柜里面有很多控制卡件(卡件是一般是智能的),这个机柜叫做现场控制站,然后现场控制站通过工业以太网(目前使用的、以后发展方向为现场总线)和计算机连接在一起。DCS除了硬件还包含软件,软件就是组态软件和监控软件,用于控制各个控制点或监控运行情况。
DCS系统的优点是通信能力强,缺点是设备价钱昂贵,设备的每一个监控数据都需要电缆连接到控制主机,不便于多点控制和远程控制。
(3) FCS 方式
FCS就是现场总线控制技术。在总线上PID与仪器、仪表、控制装置都是平等的。多变量、多节点、串行、数字通信系统取代单变量、单点、并行、模拟系统。是互联的、双向的、开放的取代单向的、封闭的。用分散的虚拟控制站取代集中的控制站。由现场电脑操纵,还可挂到上位机,接同一总线的上一级计算机。局域网,再可与Internet相通。改变传统的信号标准、通信标准和系统标准入企业管理网。
三在控制体系中,FCS是由PLC以及DCS发展起来的。PLC系统与DCS系统的结构差异不大,只是在功能的着重点上的不同,DCS着重于闭环控制及数据处理。PLC着重于逻辑控制及开关量的控制,也可实现模拟量控制。DCS系统是个大系统,其控制器功能强而且在系统中的作用十分重要,数据公路更是系统的关键,所以,必须整体投资一步到位,事后的扩容难度较大。而FCS功能下放较彻底,信息处理现场化,数字智能现场装置的广泛采用,使得控制器功能与重要性相对减弱。因此,FCS系统投资起点低,可以边用、边扩、边投运。此外DCS系统是封闭式系统,各公司产品基本不兼容。而FCS系统是开放式系统,用户可以选择不同厂商、不同品牌的各种设备连入现场总线,达到最佳的系统集成。
本系统中,我们采用嵌入式的方式,由ARM与FPGA实现FCS系统(以下简称嵌入式FCS)。嵌入式FCS采用嵌入式微处理器为核心部件,以自主开发的基于嵌入式的控制器为控制部件,以基于嵌入式的软测量模块为测量模块,以现场总线通信模块为通信部件,构成基于嵌入式系统的分布式FCS监控系统。它的一个重要特点是灵活性极强,可以用以不同的控制系统,而且不同公司的CPU也可以兼容。此外ARM与FPGA价格低廉,整个系统成本不高,以上说到的几种控制系统都是用在比较大型的工业,需要高成本,灵活性没有嵌入式的强,嵌入式可以任意扩展外部器件,而且功耗低,用ARM与FPGA来做控制CPU,将会节省许多资源。
                                                                                                                                             §1.2     系统总体功能
监控系统总体方案如图2.2所示。系统又三部分构成:分站、监控中心和数据服务中心。
分站的核心主控制板是由ARM+FPGA组成,主控板经信号调理,测量三相电压与电流、流量,经控制与状态检测模块控制变频器、深水泵、送水泵、风机的开启和停止以及监测设备的运行状态。分站通过GPRS DTU模块同数据服务中心交换数据。分站要求除了具有自动控制功能,还要具有手动控制的功能。在各个分站把配电柜打到手动档,完全可以脱离主控板而直接通过配电柜上的机械开关控制分站的设备,以防主控板出故障而使用整个系统瘫痪。同时使用变频器控制抽水泵。
监控中心一般为PC机,采用B/S构架,所有能接入网络并运行组态软件的设备都可以作为监控中心。接入网络可以使用GPRS网络也可以使用国际互联网网络。在监控中心PC机上运行组态软件Obtain_AU,可以提供数据采集与过程控制,是整个监控系统的核心和灵魂。
数据服务中心为具有固定的合法的公网IP的PC机或设备,上面运行中心服务器软件,为监控中心和分站交换提供数据中转。监控中心和分站要建立通讯,必须要互相知道对方的IP地址和端口号,才能互相通讯。所以中心服务器软件的主要任务是完成分站和监控中心的IP地址和端口号的注册和更新,同时将分站和监控中心的数据按IP地址和端口号实时进行转发。

一般情况下,监控中心和数据服务中心为不同的PC服务器,监控中心要是能满足IP地址的要求,监控中心和数据服务中心可为相同的PC服务器。
无标题.png

图2.2 系统方案图
整个系统中,三个部分相互独立,彼此又相互依赖,共同完成数据的传输。监控中心为监控系统的核心,离开监控中心组态软件整个系统将失去自动控制功能;数据服务中心在系统中起着承上启下的作用,是连接监控中心和分站的桥梁;分站是终端设备执行的核心,直接面向各设备,其使用GPRS DTU模块连接网络。
ARM的编译环境是Obtain_studio[13],用的是C语言,组态软件也是在Obtain_studio下用C++生成的具有自主知识产权的Obtain_AU软件。FPGA用的是可编程器件Verilog HDL语言,它是在Quartus II 6.0下编译的。数据服务中心软件采用Visual C++开发完成。




回复

使用道具 举报

1

主题

19

回帖

0

蝴蝶豆

初级会员

最后登录
2017-3-5
 楼主| 发表于 2015-2-1 23:23:45 | 显示全部楼层
本帖最后由 posan3 于 2015-2-2 00:18 编辑

2   信号调理模块
信号调理模块:每个模块可提高5路模拟信号和1路脉冲信号的信号调理功能。
2.1    模拟量调理
模拟量调理电路如图3.21所示。如果模拟检测量是交流5~50V,则输入信号从D7右端接入,如果是直流0.4~50V,则输入信号从D7左端接入。该模拟量调理的输出CON2可直接跟主控板中的ARM的ADC引脚直接相连。图3.21中D7和C16组成一个检波电路,如果输入电压比较低,可先将交流信号进行放大;如果对检波精度要求较高,可选用精美检波电路。D9和D10是限幅电路,运算放大器可选择OP07/OP27/OP37等,同向输入,放大倍数为(R25+R26)/R26,Rp和R10是精美可调电阻,Rp用于运算放大器调零,R10用于调节输入幅度。
   模拟量调理电路主要是把电压、三相电流、水位等传感器过来的模拟信号进行调理、整形、限幅等处理,以便供ARM的AD口进行数模转换。
无标题1.png

2.2     脉冲量调理
脉冲量调理电路如图3.22所示。输入电压范围是2V~20V。在一个系统中,脉冲量的幅度一般变化不大,输入信号In光藕隔离后经过2级缓冲及电平转换可以接到主控板FPGA的定时记数端口。
无标题2.png

     脉冲量调理在系统中用来调理抽水泵流量传感器送过来的信号,此信号为一随流量跟脉冲频率成正比变化的信号,测出脉冲频率即可得到抽水量。

无标题.png

信号调理模块实物图


回复 支持 反对

使用道具 举报

7

主题

71

回帖

0

蝴蝶豆

金牌会员

最后登录
2016-4-14
发表于 2015-2-1 23:33:26 | 显示全部楼层
本帖最后由 xyc2690 于 2015-2-1 23:36 编辑

是作者本人吗?毕设准备做这方面的东西,学习了~
回复 支持 反对

使用道具 举报

1

主题

19

回帖

0

蝴蝶豆

初级会员

最后登录
2017-3-5
 楼主| 发表于 2015-2-1 23:51:49 | 显示全部楼层
本帖最后由 posan3 于 2015-2-2 00:18 编辑

3 控制与状态检测模块
每一个控制与状态检测子模块可提供8路控制功能及24路状态检测。
3.1    控制部分原理
    在控制电路中,采用单端驱动和差分驱动两种,单端驱动可以节省口线,但在上电、受干扰等情况下容易出现不可预知的结果。差分驱动采用两根口线组成,在上电、受干扰等情况下,一般两根口线都受到到相同的影响。所以差分电压为零,具有较强的抗干扰能力。
单端控制方式如图3.23所示,控制信号从R37左端输入,经U26隔离后驱动Q10三极管,进而驱动继电器K10开关。控制信号为高电平是K10吸合,反之常开。用于控制变频器、抽水电机、送水泵1、送水泵2、风机的工作。
无标题3.png
3.23简单控制电路原理
差分控制电路原理如图3.24所示。控制信号从I0_1和I0_2差分输入,只有I0_1为高电平,I0_2为低电平时K10才吸合,其他情况K10都常开。
无标题4.png
3.24差分控制电路原理

    控制模块主要控制送水泵1、送水泵2、风机、深水泵电机的运行和停止。由主控板的FPGA产生差分控制信号。

3.2     状态检测部分
状态监测部分如图3.25所示,从In_1、In_2输入,输出Out接到FPGA的I/O口进行监测。此模块用于监测抽水电机、送水泵1、送水泵2、风机是否正常开启或停止,以及自动/手动状态、蓄水池状态(满水、缺水、蓄水)。
无标题6.png
3.25  24路状态检测子模块

无标题.png
控制与状态检测模块实物图

回复 支持 反对

使用道具 举报

1

主题

19

回帖

0

蝴蝶豆

初级会员

最后登录
2017-3-5
 楼主| 发表于 2015-2-1 23:52:43 | 显示全部楼层
4    GPRSDTU模块4.1     GPRSDTU模块介绍
GPRS是通用分组无线业务(General Packet Radio Service)的英文简称,是在现有GSM系统上发展出来的一种新的承载业务,目的是为GSM用户提供分组形式的数据业务。GPRS采用与GSM同样的无线调制标准、同样的频带、同样的突发结构、同样的跳频规则以及同样的TDMA帧结构,这种新的分组数据信道与当前的电路交换的话音业务信道极其相似。因此,现有的基站子系统(BSS)从一开始就可提供全面的GPRS覆盖。GPRS允许用户在端到端分组转移模式下发送和接收数据,而不需要利用电路交换模式的网络资源。从而提供了一种高效、低成本的无线分组数据业务。特别适用于间断的、突发性的和频繁的、少量的数据传输,也适用于偶尔的大数据量传输[24]。
中国移动GSM/GPRS系统提供了广域的无线IP连接。在移动通信公司的GSM/GPRS业务平台上构建无人值守供水监控系统具有充分利用现有网络,缩短建设周期,降低建设成本的优点,而且设备安装方便、维护简单。
采用的GPRS DTU模块DTR2000具有以下特点[25]:
(1)  高度集成GPRS和TCP/IP 技术,将互连网和无线网络有机的结合起来。
(2)  支持多种TCP/IP 协议,TCP,UDP,DNS,PPP,RAS 等。
(3)  完全透明传输模式,可完全取代数传电台,最大限度减少系统更多的投入。
(4)  按流量计费,没有流量时不计费。
(5)  无需后台计算机支持,与DTU所连的设备只需具有串口即可,不需要具有通信能力。
(6)   支持基于DNS 协议的动态IP 解析功能,可节省租用固定IP 的费用。
(7)  可实现点对点,点对多点等灵活的组网方式。
(8)  软件升级,远程复位功能。
(9)  支持ALWAYS ONLINE(永远在线)模式,断线重拨和基于PING 模式的心跳功能,保持链路畅通。
(10)透明模式下的短连接功能,链路的定时自动释放和自动重连,适合金融系统的无线POS 等不需长连接的应用,节省费用。
(11)多种注册方式,建立链路后可将终端的IP 地址,和ID 号等信息通过SOCKET 及URL等方式发送至注册服务中心。
(12)独立于的数据端口和命令端口,可接受远程AT+I命令。
(13)GSM通道的备份功能,在GPRS/CDMA 信号发生干扰时通过RAS 通道进行远程参数设定和复位功能。
(14)标准RS232/485 接口,同类产品中体积最小,适合嵌入式集成。
(15)5~28V,500mA 供电,具有节能模式,适合移动设备使用。
(16)内部看门狗WATCHDOG,随时监控运行状态,保证产品稳定可靠的运行。
4.2    工作原理
DTU内部由四部分构成:互联网控制器、GPRS模块、电源部分、外部接口部分。
其中互联网控制器是DTU的核心,实现了DTU的所有控制功能,它内嵌了完整的TCP/IP 协议栈,使得产品具备了IP通信的能力,同时还具有控制功能,控制过程如下:
第一步:通过互联网控制器控制GPRS模块,通过拨号并建立PPP连接,使得DTU能够接入GPRS网络,使其成为具有IP地址的互联网终端设备;
第二步:接入网络之后,通过互联网控制器的控制还可以使DTU与远端设备建立TCP/UDP的连接,通过建立的连接就可以实现双向数据传输;
第三步:用户收发的数据都是用户自定义的数据格式,互联网控制器此时负责将用户数据打包成TCP/IP 数据,或者将接收到的TCP/IP 包剥离为用户数据,这样用户在接收和发送数据时不用考虑TCP/IP协议格式,这个打包、拆包工作交给互联网控制器来完成,对于用户来说数据是透明传输的,没有任何改动,即所发即所得;
4.3    AT+I指令
GPRSDTU模块是通过其内置的无线Modem 进行通信的, 所有的Modem命令都是从一个特定的命令前缀开始的, 到一个命令结束标志结束。命令前缀由两个字符的AT(Attention)指令组成。因而, 一般Modem 命令称为AT 指令。DTR2000控制器扩展了AT命令,在DTR2000中定义为AT+I命令,通过AT+I命令可实现多种参数的配置,命令模式下透明传输模式的建立等功能,命令模式能满足用户更多的功能需求。
下面是DTR2000模块常用到的AT+I指令[25]:
AT+IHSRV:设置远端主机的IP地址和监听端口号。
AT+ILPRT:DTU在作为服务器使用时,该参数设置了本级的监听端口号。
AT+IMIS:设置拨号建立PPP连接时的初始化信息, DTU要进入Internet还是进入APN/VPDN网络,通过该参数可以设置,具体的参数由移动/联通分配给用户。
AT+IIATO:数据通信超时时间,在长连接模式下,超过该参数设置的时间没有数据通信时,DTU断开TCP连接,并等待由SNRD参数设置的时间后,DTU重新建立与数据服务中心的连接。
AT+ISNRD:设置了TCP重新建立连接的超时时间。
AT+IMCBF:最大传输字符长度设置,该参数定义了当接收到该长度的字符后,DTU将发送接收到的数据,因此每次发送的数据长度都一样,当缓冲区内的数据没有达到这个长度时,DTU将等待直到接收到的数据达到这个长度为止。
AT+IMTTF:发送时间间隔设置,该参数定义每个这个时间就发送一次数据,因此每次发送数据长度存在不一致的情况。
AT+IFCHR:特殊字符触发发送,该参数定义了特定的字符,当DTU接收到该字符后,就发送数据,否则一直等待。
AT+IFLW:设置透传模式下是否采用流控,他设置了主机到DTU和DTU内部互联网控制器到Modem的流控。
AT+ISNSI:设置的透传模式下主机到DTU的串口参数,包含波特率、起始位、数据位、停止位、校验位、是否有流控。
AT+IBDRF:设置命令模式下主机到DTU的串口参数的设置,仅包含波特率。
AT+IBDRM:设置DTU内部互联网控制器到Modem的串口参数,仅包含波特率。
AT+IRTO:设置重新建立PPP连接的时间周期。
AT+IRDL:设置重新建立PPP连接的连接次数。
AT+IDSTR:设置断开连接的特殊字符。
AT+ISTYP:设置建立连接的连接协议,是TCP还是UDP。
AT+IMBTB:设置DTU内部最大缓冲区大小,最大值为2048字节。
AT+IISP1/2:设置接入GPRS网络的特服号,可设置2个。
AT+IUSRN:设置接入GPRS网络的用户名。
AT+IPWD:设置接入GPRS网络的密码。
AT+ITUP:是否跟踪网络连接状态,=2表示时时在线,一旦TCP连接断开,DTU将自动重连。
AT+I!SNMD:进入透传模式,自动重连,适用于长连接模式。
AT+ISNMD:进入透传模式,不自动重连,适用于短连接模式。
4.4    模块设置
本系统中GPRS DTU模块采用了透明传输模式,用户收发的数据就是用户自定义的数据格式,这样用户在接收和发送数据时不用考虑TCP/IP协议格式,对于用户来说数据是透明传输的,没有任何改动,即所发即所得。
使用PC串口连接到GPRS DTU模块就可以进行设置,由于GPRS DTU模块在透明模式下支持掉电重新上电连接,只要简单设置下面的命令一次即可。系统中GPRS DTU模连接到ARM主控板板ARM的UART1。下面是用到的AT+I命令:
AT+iHSRV=ip:port//设定数据服务中心IP和端口
AT+iTUP=2        //设定通信模式为TCP
AT+iPARS         //存储参数
AT+i!SNMD        //开始透明传输
……             //通信过程
+++             //退出 SerialNet 模式

回复 支持 反对

使用道具 举报

1

主题

19

回帖

0

蝴蝶豆

初级会员

最后登录
2017-3-5
 楼主| 发表于 2015-2-1 23:54:19 | 显示全部楼层
5      系统简单协议与实现
本章主要介绍系统的简单协议的规定和实现,涉及到协议的包括ARM+FPGA主控板通过GPRS DTU模块传送的数据,组态软件发送和接收的数据,为了保证系统的正常通讯,这两部分的数据传送必须遵循预定好的协议。

5.1     发送接收数据格式
指ARM+FPGA主控板通过GPRS DTU模块发送和接收的数据。
1、格式:
  
前导码
  
站号
设备号
数据
结束码
其中,前导码占2个字节,为ff fe;站号站一个字节;设备号占一个字节;数据占4个字节,用十六进制表示,例如十进制数据1740,可表示成十六进制ae;结束码站2个字节,为fe ff。
2、对于站号,0号表示主控制机,其它站号可以1~80。81~f0为特别站号,f1以上保留。,实际使用为01、02、03、04、05、99,其中01、02、03、04、05为5个分站站号,99为监控中心站号。
3、对于设备号,0号为特别号(可用于对站号的设置等特殊场合),一般从01~f0。建议命名规则:
通信设备:01~40
测量设备:41~80
控制设备:81~c0
其它设备:c1~f0
4、数据位
对于控制数据:
          第一位:目前预设为01控制设备,02为测量设备
          第二位:保留位,为02.
第三位,81以上表示控制或设置,80以下表示查询。
     第四位,双数0、2、4等表示正、开、加、顺等,
单数1、3、5等表示负、关、减、逆等。
           对于只有开关等两状态的控制对象,一般只用0和1或2和1。
由于0常有其它的用途,容易产生异议,这里建议采用2和1来表示关和开。
对于显示或设置数据:第一位:目前预设为02
                    第二位:保留位,为02.
第三和第四位表示一个数据,第一位是高位,第二位是低位。
对于请求查询:第三位取80以下,第二位任意取,一般建议取01,也可另行定义。如果第三位取81以上,表示用于预设该设备的值,例如预设水位、预设流量等。
5、关于其它设备的用法:
其它设备的设备号为c1~f0,主要用于一些特殊的场合:如设备过多,设备号不够用;用于转输他长度超过16位的数据。
6、实例分析
对于查询数据:ff fe 04 44 02 02 0d bc fe ff
ff fe 是前导码,04表示4号站;44是设备号,为测量设备;02 02 0d bc是数据,第一位02表示为测量设备,第二个02为默认预设值,0d bc为测量设置测量值;fe ff是结束码,表示数据发送完成。
对于设置或控制数据:ff fe 04 85 01 02 81 01 fe ff
ff fe 是前导码,04表示4号站;85是设备号,为控制设备;01 02 81 01是数据,第一位01表示为控制设备,第二个02为默认预设值,81表示用于预设该设备的值;01表示关闭设备;fe ff是结束码,表示数据发送完成。
对于设备运行状态数据:ff fe 05 a0 02 02 a0 86 feff
ff fe 是前导码,05表示4号站;a0是设备号,表示当前数据为设备运行状态数据;02 02 a0 86是数据,其中第1、2、3位02 02 a0为预设值,第4位为设备运行状态数据,其值BCD码的第7位为应远程/本地控制(0为本地控制,1为远程控制),第6位为满水状态,第5位为缺水状态,第4位为风机开/关状态,第3位为送水泵电机2开/关状态,第2位为送水泵电机1开/关状态,第1位为变频器抽水开/关状态,第0位为直通抽水开/关状态,数据为0表示是关或是否的状态,为1表示是开或是真的状态。如86用BCD表示为1000 0110,则表示当前是远程控制状态下,变频抽水,送水泵电机1打开;fe ff是结束码,表示数据发送完成。

                                                                                   5.2      PC机端发送数据规则
PC端发送数据的格式同上发送数据格式完全相同,下面介绍在Obtain_AU组态软件中的表示方式。
1、通信设备
例如0号设备
查询终端站是否有响应:发送16进制数“0101”
设置终端站号:发送16进制数“81 01”

例如变频器(RS_485接口)的控制
查询变频器开关:发送16进制数“01 01”
查询变频器加减速:发送16进制数“02 01”
查询变频器工作状态:发送16进制数“0301”
变频器开:发送16进制数“81 01”
变频器关:发送16进制数“81 02”
变频器加速:发送16进制数“82 01”
变频器减速:发送16进制数“82 02”
2、测量设备
例如读取测量数据结果(还可以预设数据):
查询:发送16进制数“01 01”
预设流量低位:发送16进制数“81 88”
预设流量高位:发送16进制数“82 99”
预设流量变化范围低位:发送16进制数“8310”
预设流量变化范围高位:发送16进制数“8400”
3、控制设备
例如开关控制:
查询:发送16进制数“01 01”
开机命令:如果模块显示内容为“关”则发送16进制数“81 01”
关机命令:如果模块显示内容为“开”则发送16进制数“81 02”

5.3     PC机端接收数据规则
指PC端接受到的数据格式以及处理规则,数据格式与前面的发送数据格式协议完全相同。
1、通信设备
01 01:模块显示内容为“ 开”,模块背景颜色为“0x0000ff”
01 02:模块显示内容为“关 ”,模块背景颜色为“0x00ffff”
    例如变频器(RS_485接口)的控制返回后,做出的显示:
01 01:模块显示内容为“变频器开”
01 02:模块显示内容为“变频器关”
02 01:模块显示内容为“变频器加速”
02 02:模块显示内容为“变频器减速”
例如变频器(RS_485接口)的控制返回数据后,做出的自动控制响应:
如果接收到的数据大于16进制数“88 99”则发送“变频器加速”命令
如果接收到的数据小于16进制数“88 00”则发送“变频器减速”命令
2、测量设备
例如读取测量数据结果:
显示任何16进制数据:在模块显示内容中显示出“任何16进制数据/10”
显示任何10进制数据:在模块显示内容中显示出来“任何10进制数据”
显示任何字符数据:在模块显示内容中显示出来“任何字符数据”
3、控制设备
例如控制开关返回结果:
01 01:模块显示内容为“开”,模块背景颜色为“0x0000ff”
01 02:模块显示内容为“关”,模块背景颜色为“0xc6c6c6”

                                                                                   5.4         部分设备号分配情况
1、控制设备:
(1)风机,设备号81
(2)抽水泵电机开关,设备号82
(3)直通抽水,设备号83
(4)送水泵电机1开关,设备号84
(5)送水泵电机2开关,设备号85
(6)变频器,设备号91
2、测量设备:
(1)流量器,设备号41
(2)水位器,设备号42
(3)电  压,设备号44
(4)A相电流,设备号44
(5)B相电流,设备号45
(6)C相电流,设备号46
3、通信设备:
(1)ARM主控板,设备号01
(2)RS232/485转换器,设备号02





回复 支持 反对

使用道具 举报

1

主题

19

回帖

0

蝴蝶豆

初级会员

最后登录
2017-3-5
 楼主| 发表于 2015-2-1 23:58:05 | 显示全部楼层
本帖最后由 posan3 于 2015-2-2 00:03 编辑

6     6        监控中心
监控中心是指运行监控组态软件的设备,利用组态软件,可以监控分站设备。由于采用B/S框架结构,理论上只要是能连入网络并运行组态软件的设备,如PC机或是嵌入式终端都可以作为监控中心。
6.1       监控中心搭建
本系统中监控中心设备为PC机,PC机需要连入网络,然后在PC上运行监控组态软件即可。监控中心的搭建主要涉及监控中心的设备如何接入网络,组态软件如何运行。由于系统采用的组态软件接口是接收串口的数据,所以本系统的监控中心搭建主要有下面两种方式:
1.     PC机+GPRS DTU模块方式



如图9.1所示,在这种模式下,PC机通过串口同GPRS DTU模块连接,组态软件通过串口直接收发数据。这种模式下PC机连入网络采用GPRS网络。

无标题.png

图9.1  PC机+GPRS DTU模块方式
2.     PC机+国际互联网方式

如图9.2所示,在这种模式下,PC机可以使用有线或是无线的方式(如ADSL或WIFI)连入国际互联网。由于国际互联网传送的数据是TCP/IP协议的,组态软件接收是串口的数据,组态软件为了接收数据可以利用虚拟串口软件(如VSPM),将TCP/IP、UDP广播映射成PC机的虚拟串口,组态软件通过访问虚拟串口,就可以完成远程控制、数据传输等功能。
无标题10.png

图9.2 PC机+国际互联网方式
        6.2        监控组态软件
监控中心使用组态软件远程控制各分站。GPRS模块接收到各分站的信息,监控中心接入网络,组态软件就可以监视各分站的工作状态。反之也可以通过组态软件控制各个分站。
组态软件,又称组态监控软件系统软件。译自英文SCADA,即 Supervisory Control and DataAcquisition(数据采集与监视控制)。它是指一些数据采集与过程控制的专用软件。它们处在自动控制系统监控层一级的软件平台和开发环境,使用灵活的组态方式,为用户提供快速构建工业自动控制系统监控功能的、通用层次的软件工具。组态软件的应用领域很广,可以应用于电力系统、给水系统、石油、化工等领域的数据采集与监视控制以及过程控制等诸多领域。
简单的讲,组态就是用应用软件中提供的工具、方法、完成工程中某一具体任务的过程。组态软件是有专业性的。一种组态软件只能适合某种领域的应用。组态的概念最早出现在工业计算机控制中。如DCS(集散控制系统)组态,PLC(可编程控制器)梯形图组态。人机界面生成软件就叫工控组态软件。其实在其他行业也有组态的概念,人们只是不这么叫而已。同时随着嵌入式技术的不断发展,组态软件在工业控制中将得到广泛的应用。
Obtain_AU[14]一款具有自主知识产权的免费测控软件,它与目前市面的各种组态软件相比,具有设计简单、编程灵活等优点。它可以与嵌入式系统、软件PLC以及传统的PLC、单片机控制系统有机地结合在一起,也可以跟变频器等调速系统结合在一起,实现各种简单或复杂的基于PC机的测量、监视与控制。
Obtain_AU测控软件可采用任何的BMP、JPG、PNP格式的图片文件作为操作界面器件显示的外观图,设计一个图形测控界面就如同在Word中编辑文档或图形一样简单,图片可采用Obtain_AU自带的,也可以从网上下载任何的图片或用任何画图软件画出的各种复杂图形。Obtain_AU测控软件采用了模板语言进行命令编程,程序格式与平时说话、写作的形式一样,非常简单。
例1:一个典型的开机/关机命令,其程序代码如下:
    开机命令:
    如果模块显示内容为“关”则发送16进制数“01 02 81 01”
    关机命令:
如果模块显示内容为“开”则发送16进制数“01 02 81 02”
例2:在界面上显示下位机传过来的水位数据,其程序代码如下:
    显示任何16进制数据:
    如果数据大于167,在模块显示内容中显示出“任何16进制数据-167.56*0.443697+25”

    如果数据小于等于167,在模块显示内容中显示出“任何16进制数据*0”
例3:在界面上显示下位机传过来的变频器开关状态,其程序代码如下:
02 02 01 01:
模块背景图像为“变频器3_开.bmp”
02 02 01 02:

模块背景图像为“变频器3_关.bmp”
例4:在界面上显示下位机传过来的某空气开关的开关状态,其程序代码如下:
    02 02 01 01:
    模块显示内容为“开”,模块背景颜色为“0x0000ff”
    02 02 01 02:
    模块显示内容为“关”,模块背景颜色为“0xc6c6c6”

[url=] Obtain使用.rar (469.16 KB, 下载次数: 6)

回复 支持 反对

使用道具 举报

1

主题

19

回帖

0

蝴蝶豆

初级会员

最后登录
2017-3-5
 楼主| 发表于 2015-2-2 00:10:22 | 显示全部楼层
7      数据服务中心
本章主要是介绍数据服务中心网络搭建条件;简单介绍中心服务器软件使用到的CSocket类和实现机制。
7.1       中心服务器搭建
各分站和监控中心为了交换数据,必须都要连入到数据服务中心服务器主机。分站和监控中心的数据必须都要经过数据服务中心的转发,所以分站和监控中心必须知道数据服务中心的IP地址。中心服务器的搭建的要求就是能让分站和监控中心知道其的地址。根据中心服务器的网络情况,可以分下面几种情况。
1.      数据中心采用固定、合法的国际互联网IP地址[29]
1)      中心网络环境:没有路由器、防火墙,服务器直接接入互联网,如图7.1所示。
无标题.png
图7.1 无路由器具有合法固定国际互联网IP地址
中心按以配置:
a)      服务器主机的IP地址就是互联网上真实IP地址
b)      服务器主机如果运行防火墙软件,那么运行在该服务器上的应用软件作为服务端使用时,如果要打开相应的监听端口,则必须取消防火墙对该端口的限制,允许外部软件可以通过TCP/UDP与该端口建立连接
1)      中心网络环境:含路由器、防火墙,服务器通过路由器接入互联网,如图7.2所示。
无标题.png
图7.2  路由器具有合法固定国际互联网IP地址
中心按以下配置:

a)       路由器的地址是互联网上的真实IP地址
b)      服务器主机通过路由器接入互联网,运行在该服务器上的应用软件做为服务端使用时,需在路由器上配置相应的端口映射,以便数据进行转发。
c)     各级的防火墙不能对该端口做限制

2.      数据中心没有固定IP地址

中心网络环境通过ADSL接入国际互联网,每次接入国际互联网,IP地址将动态分配,如图7.3所示。
无标题.png

图7.3  中心通过ADSL接入国际互联网无固定IP

中心按以下配置:当数据中心IP地址发生变化时,为避免DTU接入数据中心时重新配置数据中心的IP地址,在数据中心服务器上增加动态域名解析客户端软件,通过该软件可登录到动态域名服务商服务器上,此时该软件将本机的IP地址和域名进行帮定,通过域名就可访问这台主机,即使地址发生变化,但域名不会变,因此在DTU上HSRV参数中的远端服务器的IP地址部分设置成申请的域名,此时DTU根据域名去查询服务器,并于服务器区建立连接实现数据通信。

3.      数据中心与移动/联通数据中心直接建立专线

中心网络环境:与移动/联通建立专线,如图7.4所示。
无标题.png
图7.4 与移动/联通数据中心直接专线连接

中心按以下配置:DTU上的SIM/UIM卡必须是移动/联通开的专网的卡,对于移动,开SIM卡时,移动会给这些卡分配连接点名,在DTU的MIS参数中设置这个接入点名,此时DTU拨号后就会进入APN网内;对于联通,开UIM卡时,连接点名是不变的,但会给每张卡分配以各用户名和密码,联通的认证服务器通过用户名和密码去判断该用户是专网用户还是互联网用户,是专网用户则直接进入APN网络[30]。




回复 支持 反对

使用道具 举报

1

主题

19

回帖

0

蝴蝶豆

初级会员

最后登录
2017-3-5
 楼主| 发表于 2015-2-2 00:14:31 | 显示全部楼层
本帖最后由 posan3 于 2015-2-2 00:16 编辑

7 中心服务器软件7.1      中心服务器软件介绍
本系统中, GPRS DTU每次连接到GPRS网络时的地址是动态分别、不固定了的,为了使分站和监控中心能建立通信,需要数据中心服务器作为中转,运行在这个设备上的软件即为中心服务器软件,其运行界面如图7.5所示。
中心服务器软件采用Visual C++编写开发。中心服务器软件主要作用是:完成分站和监控中心的IP注册和更新;将分站和监控中心的数据实时进行转发;
无标题.png
图7.5 中心服务器软件运行界面
从主界面的可以看出,该软件可以设置成服务器模式,作为GPRS各模块间通信的中转服务器软件;也可以设置成客户端模式,变成一个客户端程序,用于测试与中心服务器、各个GPRS终端的通信。
7.2    服务器Scoket类介绍
在VC++中开发网络通信程序常采用3种方式,一是直接调用Scocket API()函数实现;二是采用MFC中的CasyncSocket类实现;三是采用MFC中Csocket类实现。由于采用API调用编程比较麻烦,因此不常用。在一个MFC应用程序中,要想轻松处理多个网络协议,而又不降低灵活性时,可以考虑使用CasyncSocket类,其效率要比Csocket类高[31] [33]。
1、CAsyncSocket类
CAsyncSocket类对WinSock API进行了低级封装,它提供的许多方法直接对应于低层的API函数。在使用CAsyncSocket时,首先需要调用构造函数创建CAsyncSocket对象,然后调用Create方法创建套接字句柄,对于服务器端的套接字,需要调用Listen方法使其处于监听模式,对于客户端套接字,需要调用Connect方法连接服务器。
2、CSocket类
CSocket类是由CAsyncSocket继承而来的,事实上,在MFC中CAsyncSocket 逐个封装了WinSock API,每个CAsyncSocket对象代表一个Windows Socket对象,使用CAsyncSocket 类要求程序员对网络编程较为熟悉。相比起来,CSocket类是CAsyncSocket的派生类, 继承了它封装的WinSock API。
一个CSocket对象代表了一个比CAsyncSocket对象更高层次的Windows Socket的抽象,CSocket类与CSocketFile类和CArchive类一起工作来发送和接收数据,因此使用它更加容易使用。
本中心服务器软件运用CSocket类进行开发。
应用CSocket类快速实现网络通信主要依赖于两个关键技术:一是窗口消息机制,二是线程技术CSocket类的封装是和Windows 的窗口消息机制联系在一起的。当应用程序使用CSocket时,系统会自动创建一个不可见的窗口和一个线程,线程用于监视网络上数据发送和到达的情况,然后通过窗口消息机制通知应用程序,再去调用本身或派生类的OnReceive、OnSend 等回调函数,由于这些函数使用了虚函数技术,这样就和应用程序建立了调用关系,这就是CSocket实现网络通信的底层基础[34]。


[url=] GPRS_Server.rar (2.47 MB, 下载次数: 16)
回复 支持 反对

使用道具 举报

1

主题

19

回帖

0

蝴蝶豆

初级会员

最后登录
2017-3-5
 楼主| 发表于 2015-2-2 01:00:12 | 显示全部楼层
本帖最后由 posan3 于 2015-2-2 02:01 编辑

回到STM32:
1、使用串口1连接GPRS,往串口1发送及接收安装5 系统简单协议与实现所规定的协议。
2、使用PB1作为1路电压采集。
3、可以控制板上的LD2开关
程序在摩尔巴 枫叶老师 基础上修改
https://www.moore8.com/courses/306
无标题.png


4、整个系统的核心是GPRS_Server软件和组态软件的处理所需软件:STM32工程 ADC.rar (4.54 MB, 下载次数: 8)
无标题.png
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版