APP下载

基于以太网的多仪器数据监控系统

2015-12-05蔡晨曦秦会斌

电子与封装 2015年6期
关键词:机软件以太网上位

蔡晨曦,秦会斌

(杭州电子科技大学,杭州 310018)

1 引言

数据采集与控制系统是指将工业现场中测试设备采集到的数据进行传输、显示、存储等操作,它广泛应用于测试仪器、信号检测、信号处理等领域。在数据采集与控制系统中应用工业以太网、TCP/IP网络通信协议,摆脱了传统模式下速率低、数据量小的特点,使系统向着可靠性高、易扩展、高速化的方向发展。将STM32单片机和仪器、仪表构成独立的数据采集系统,以通用计算机平台作为主控端通过工业以太网连接所有处于工作状态的STM32单片机进行数据交互与控制,可实现对多仪器、仪表的集中监控,宏观地反映整个生产过程。在STM32单片机中移植μC/OS-Ⅱ嵌入式操作系统和LwIP嵌入式网络协议栈,可以实现同上位机软件和仪器之间稳定的并发通信[1]。

2 系统设计

多测试仪器数据采集与控制系统的体系网络结构拓扑如图1所示。整个系统包括上位机监控软件、STM32单片机(下位机)组成的嵌入式终端和仪器仪表,上位机监控软件和STM32单片机之间采用TCP/IP协议作为网络通信方式。工作过程中STM32单片机通过RS485总线接收各仪器发送的资源信息、工作状态以及采集到的数据,然后对数据进行预处理、打包封装后通过以太网发送给上位机软件,同时将上位机软件发送的指令传递给仪器,以此实现对仪器的数据采集和监控。

STM32单片机采用STM32F103ZET6为CPU,其外设丰富、性能优越满足性能需求,硬件方面还主要包括了RS485模块和ENC28J60网络通信模块等。STM32单片机的利用增加了上位机软件所能连接的仪器数量。实验过程中通过RS485总线每个STM32单片机可连接15个仪器,通过以太网接口和交换机等中继设备上位机软件可同时和20个以上的STM32单片机建立网络连接。这样的双层结构实现上位机软件同时和上百个仪器连接,大大提高了上位机的利用率[2]。

图1 网络结构拓扑图

3 下位机硬件设计

3.1 RS485总线接口电路

STM32单片机与仪器之间采用RS485总线通信架构,RS485通信抗干扰性强、传输距离远、驱动能力强,可最多挂载256点串口收发器。本系统的RS485接口电路由低功耗的半双工RS485收发器MAX1487组成,符合RS485串行协议的电器规范,数据传输速率可达10 Mbps,其接口原理图如图2所示。MAX1487的pin6、pin7分别为RS485总线的A线、B线,其中pin6与STM32的USART1接收端PA9相连,pin7与STM32的USART1发送端PA10相连。PB13用于控制RS485数据通信的传输方向[3]。

3.2 以太网接口电路设计

以太网通信模块硬件电路包括以太网控制芯片ENC28J60、复位电路、时钟振荡器、网络变压器等。ENC28J60是由MicroChip公司推出的符合IEEE802.3标准的以太网控制芯片,其仅有28个引脚且芯片价格低,为用户提供了廉价、高效的嵌入式网络通信解决方案。ENC28J60与STM32单片机连接方式如图3所示,作为以太网控制芯片其主要功能包括以下几点:(1)集成媒体访问介质控制器以及10BASE-T以太网物理层器件,可支持全双工和半双工模式以太网标准协议通信。(2)包含Microchip的可编程模式匹配过滤器,通过编程可自动评价、接收或拒收单播、多播和广播数据包,防御网络上的DDOS攻击并减轻微处理器的处理压力。(3)带有行业标准的SPI串行外围设备接口,最高通信速率可到10 MB/s。(4)8 kB双端口可编程SRAM缓冲器,其数据管理机制具有实时性和可靠性,实现数据包的高效存储、修改和检索功能,减轻微处理器的内存负荷。

ENC28J60工作频率为25 MHz,时钟振荡电路采用25 MHz无源晶振分别接于OSC1和OSC2两端为芯片提供一个时钟信号。由于晶振频率较高,在布局时尽量靠近芯片且走线尽可能短。ENC28J60连接的网络变压器是集成以太网隔离变压器HR911105,该隔离变压器携带贴片式LED灯,大大节省了PCB板空间[4]。

4 下位机软件程序设计

在STM32单片机上移植μC/OS-Ⅱ嵌入式操作系统和LwIP网络协议栈,根据功能划分任务的方式进行程序设计,分别建立了RS485通信和以太网通信两个任务。RS485通信任务负责接收仪器发送的测试数据,并把上位机的控制命令返回给仪器。以太网通信任务主要是接收并解析上位机发送的命令返回对应测试仪器的资源信息以及工作状态,在测试阶段将RS485接收到的测试仪器数据封装打包后定时发送到上位机软件。采用上述基于μC/OS-Ⅱ系统的设计方案使两个任务能够并发运行,并通过μC/OS-Ⅱ提供的互斥锁和信号量保证两个任务之间数据的同步[5]。

4.1 RS485通信程序设计

完成μC/OS-Ⅱ初始化后对RS485通信寄存器USART1进行配置并初始化,创建以RS485通信任务RS485_Task,其工作流程图如图4所示。RS485通信任务开始运行后首先发送命令确认1号仪器是否存在,如果RS485接收中断返回数据则确认1号仪器连接成功,如果等待超时则表示1号仪器未连接或者连接断开可以直接跳转请求下一编号的仪器是否存在。等待超时的时间间隔由用户预先定义,这个时间间隔要满足任何从设备做出正常反应。在确定1号仪器已连接之后,发送相关命令请求1号仪器返回仪器各类资源信息完成与1号仪器的信息初始化工作,然后继续按照上述流程循环完成所有STM32单片机连接仪器的信息初始化工作。初始化工作完成之后,STM32单片机根据当前已连接的仪器数量在任务中建立循环,依次接收仪器发回的测试数据。

图2 RS485总线接口原理图

图3 以太网接口原理图

4.2 以太网通信程序设计

完成μC/OS-Ⅱ初始化后创建以太网通信任务Lwip_Task,其工作流程图如图5所示。在Lwip_Task中调用tcp_new函数创建一个新的tcp_pcb控制块,并调用tcp_bind函数将预先设定的IP地址与端口号与新建的tcp_pcb控制块绑定,随后通过调用tcp_listen函数使指定的tcp_pcb控制块进入监听模式。调用tcp_accpet函数设置有TCP连接建立时的回调函数,该回调函数用于通知LwIP一个新来的连接已经被接收。tcp_recv函数用于指定tcp_pcb控制块接收到数据时的回调函数,当接收到以太网数据时会触发信号量或邮箱事件,将数据拷贝到用户缓冲区pbuf并调用指定的回调函数对数据进行处理。在回调函数中按应用层通信协议先获取第一位命令数据对命令进行解析,然后根据第二位仪器编号数据发回上位机软件需要的该编号仪器信息[6]。

5 面向仪器的设计方案

本系统为了能够支持实时动态地接入、兼容多种不同类型的仪器,在上位机软件设计上创新地采用了一种面向仪器、仪表的设计思想。面向仪器、仪表的设计方案并不针对某一特定的仪器,其屏蔽了各种不同类型仪器的具体差异,对仪器的测试资源、测试序列等信息进行了抽象的统一,在软件设计上实现对多仪器集中数据采集与控制。

在进行上位机软件设计时需要预先将各类仪器的测试资源信息统一抽象成一张格式一致的资源设定表(如图6所示),该资源设定表分为测试设定部分和测试结果设定部分。测试设定部分主要用于设定仪器的工作模式、工作参数,如测试项、测试持续时间、测试分类等,测试结果设定则主要用于设定测试数据的最大最小值、单位和是否对测试结果分类。每个STM32单片机根据自己所连接仪器对应生成资源设定表并发送到上位机,上位机根据资源设定表中的具体内容就能获得与该仪器对应的仪器类型以及测试资源、测试序列等信息。在实际系统中,上位机软件可以对表中内容进行灵活的设置,设置完成后返回给对应的STM32单片机,其根据返回的表对与该表对应的仪器工作方式进行控制。通过上述方案真正在上位机软件中实现仪器信息的动态获取,使对仪器的控制更加灵活、更加智能[7]。

图4 RS485通信程序流程图

6 系统测试

本文设计的以太网多测试仪器数据采集与控制系统是和绍兴市科盛电子有限公司合作开发的项目,目前主要针对科盛电子有限公司自主研发的TRR二极管测试机进行开发,因此本系统根据公司制定的技术指标及性能要求进行测试。上位机软件一共连接15组STM32单片机系统进行测试,每个STM32单片机连接15个模拟测试仪器,每个模拟测试仪器有5组测试序列。

图5 LwIP以太网通信程序流程图

图6 资源设定表

6.1 测试方法

STM32单片机工作后通过RS485总线接收模拟仪器发送的数据,测试接收是否完整。在上位机软件开启后所有处于工作状态的STM32单片机都能被上位机扫描并建立TCP网络连接。成功建立连接之后,每个STM32单片机每隔500 ms向上位机软件发送一次测试数据,每次发送理论上的最大数据量为2 048 B,同时测试单片机能否根据上位机软件返回的命令对模拟仪器工作模式进行控制[8]。

6.2 测试结果

对本系统进行多次测试后的结果表明:上位机软件能够实现对STM32单片机的主动扫描连接,连接成功后STM32单片机能将模拟仪器测试数据及时、准确地发送到上位机软件,如图7所示。STM32单片机同时能准确解析上位机软件发回的命令,证明该整体方案的切实可行。

图7 上位机软件工作图

7 结束语

通过STM32单片机并以工业以太网和RS485总线结合作为通信方式实现工业现场大量仪器的统一监控,达到了准确性、实时性、高效性的设计目标,可宏观地反映整个生产过程。其良好的可扩展性和兼容性有利于系统的升级改造,减少开发成本。该系统已在生产过程通过测试,系统运行稳定,符合工业生产的要求。

[1] 王琳,商周,王学伟. 数据采集系统发展与应用[J]. 电测与仪表,2004,41(8): 4-8.

[2] 彭刚,秦志强. 基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践[M]. 北京:电子工业出版社,2011. 100-165.

[3] 彭刚. 基于STM32的RS485总线分布式数据采集系统设计[J]. 伺服控制,2011,(2): 64-66.

[4] 聊义奎. Contex-M3之STM32嵌入式系统设计[M]. 北京:中国电力出版社,2012. 331-338.

[5] 任哲. 嵌入式实时操作系统μC/OS-Ⅱ原理及应用[M]. 北京:北京航空航天大学出版社,2009. 2272-2317.

[6] 陆旭. 基于μC/OS-Ⅱ和LwIP的嵌入式设备监控平台研究[D]. 重庆:重庆大学,2013.

[7] 韩松. 基于Modbus/TCP协议的远程控制网关[J]. 仪表技术与传感器,2014,(10): 103-105.

[8] Kevin R Fall, W Richard Stevens. TCP/IP详解[M]. 北京:机械工业出版社,2012. 579-591.

猜你喜欢

机软件以太网上位
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
特斯拉 风云之老阿姨上位
小水电站计算机监控系统上位机软件的开发
谈实时以太网EtherCAT技术在变电站自动化中的应用
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
道岔监测系统上位机软件设计
以新思路促推现代农业上位
浅谈EPON与工业以太网在贵遵高速公路中的应用
万兆以太网在连徐高速公路通信系统改造中的应用