当前位置:主页 > 科技论文 > 网络通信论文 >

基于以太网分布式数据控制系统设计与实现

发布时间:2015-02-15 18:05

摘 要:

摘 要:随着信息技术的发展,大型企业内部需要对大量仪器仪表等设备的采集数据、性能数据、配置数据进行实时监测和控制。采用人工方式与设备进行数据交互是十分繁琐与不稳定的,且增加了生产成本。为避免这种情况,基于以太网技术的分布式数据采集控制系统[1]变得越来越重要,其稳定性高、成本低、速度快等特点得到很高的网络应用。本文介绍了以太网分布式数据采集控制系统的硬件结构和软件设计,并通过测试验证该方案的可行性。

关键词:

关键词:以太网 分布式数据采集 控制系统

   工业现场的最大特点是信号和数据采集终端较为零散的分布在较大范围内,呈分布式趋势并且和控制中心距离较远。这时就需要一种实时性好、稳定性高,价格低廉的工业控制网络将分布式环境中的各类仪表终端所产生的数据传输到作为主控单元的计算机平台上,以便工作人员进行集中监控和管理。因此,以TCP/IP协议为基础的工业以太网[2]得到了越来越多的关注。

  本系统基于TCP/IP协议作为通信协议。TCP协议是一种工业标准的面向端到端的可靠传输协议,为跨越不同网络的主机进程间通信提供了可靠的传输机制。使用TCP协议和以太网技术可降低成本,且通信速率高,有良好的兼容性能。其优点解决了传统数据采集系统存在的通信可靠性和通信效率之间的矛盾。本文研究了在计算机平台上用监控软件通过以太网控制多个嵌入式系统[3]进行数据采集和传输,实现高效通信的方法。


1 系统结构设计

  基于以太网的分布式数据采集控制系统硬件主要由以下组成:负责管理监控的计算机(上位机)、作为中介网络通信服务器的STM32单片机(下位机)、采集数据的仪表终端。本系统并没有将上位机作为服务器端,而是利用下位机作为一个中介网络通信服务器。将上位机和仪器仪表都作为客户端根据设定好的IP地址和端口号接入到对应的下位机中组成一个小的网络系统。

                 

基于以太网分布式数据控制系统设计与实现

     在整个系统中下位机一方面接收仪器仪表发送的数据,并进行处理后转发给上位机监控软件,另一方面接收来自监控软件的控制命令对连入网络的仪表进行控制。上位机会单独开辟一个独立的线程与每个下位机进行通信,并独立地对采集到的数据进行显示、存储等操作,保证了上位机对每个下位机操作的独立性。

  作为下位机的STM32单片机选用STM32F103增强型STM32F103ZET6芯片,通过移植?C/OS.II嵌入式实时操作系统和Lwip轻量级网络协议栈并扩充网络芯片ENC28J60实现和上位机、仪表之间的网络通信功能。STM32单片机还可以设置数据过滤,网络防火墙等安全保护措施,以防止其他恶意程序通过网络入侵系统。


2 系统软件设计

2.1 上位机软件需求分析

  上位机的监控程序包括了界面显示、数据库管理、管理员操作、网络功能等基本模块,其中网络功能分为网络扫描和网络数据收发两大部分,各功能模块的主要组成部分如图2所示。上位机选择Visual C++作为开发语言,Visual Studio2010作为开发工具,使用Windows Socket套接字和多线程技术进行网络通信编程,确保了整个系统的稳定性和高效性。

                    

基于以太网分布式数据控制系统设计与实现

2.2 数据结构与实现流程

  上位机作为客户端根据预先设定的IP地址和端口号范围向下位机服务器端主动发起网络连接,并为每个连接动态分配一个描述客户端信息的类。该类包括客户端套接字与该套接字相关的读写缓冲区等信息。该类的主要成员变量和方法如下所示:

class  clientsocket

{

private:

UINT m_port;

CString m_ip;

SOCKET m_socket;

BOOL m_connect;

CString m_databuffer;

public:

Clientsocket(void);

~Clientsocket(void);

Void CreateSocket(BOOL tcp);

Void CloseSocket(void);

BOOL ConnectSocket(UINT Port,Cstring IP);

static UINT DataThread(LPVOID pParam); 

  其中CreateSocket(BOOL tcp)函数功能是创建一个流式套接字,CloseSocket(void)是在套接字读写发生错误和对方断开连接时关闭该套接字并清理资源。ConnectSocket(UINT Port,CString IP)方法是采用TCP连接的三次握手扫描技术对设定的网段进行定时扫描[4],如果连接成功则表示下位机存在,如果连接失败则表示该下位机不存在。DataThread(LPVOID pParam)为进行数据接收和发送的线程函数。当上位机与下位机建立TCP连接之后,将为这个连接单独开启一个线程用于上位机与该下位机之间的数据收发。由于上位机要同时与多个下位机连接并进行同步数据收发,所以程序采用多线程并发通信的方式,,这样可以保证每个连接的数据收发过程的独立性,数据的安全性提高了整个系统的工作效率。

2.3 单片机网络通讯程序

  STM32单片机作为系统的网络通信服务器,其需要接受上位机和仪表发起的网络连接并进行数据收发,由于要保证网络通信的稳定性和数据的准确性,因此采用基于TCP面向连接的可靠传输协议方式实现。首先在STM32单片机上移植实时操作系统?C/OS.II 和Lwip网络协议栈[5]保证多个网络通信任务的实时性和并发运行,然后对ENC28J60网络芯片和Lwip网络协议栈进行初始化后创建NetWorkTask()网络通信任务,其网络通信流程图如图3所示。NetWorkTask()线程首先调用netconn_new()函数建立tcp_server连接的netconn结构体,并进行IP地址和端口号的设置,然后绑定tcp_server连接并进入监听模式。当下位机接收到网络数据时,调用netconn_recv()将数据接收到netbuf缓冲区,并向用户任务发出通知。

                      

基于以太网分布式数据控制系统设计与实现

3 实验测试

3.1 测试环境

  系统硬件环境:上位机电脑采用Inter Core(Tm)2CPU 6300 2.1GHz 内存2GB。下位机为扩展ENC28J60网络芯片和RJ45网口的STM32开发板,并使用温湿度采集模块作为仪表。上下位机之间通过10/100M交换机进行数据交换。

  网络环境:10M局域网络。

  系统平台环境:上位机电脑操作系统为Microsoft Windows7,下位机STM32单片机移植?C/OS.II嵌入式实时操作系统加Lwip嵌入式网络协议栈。

3.2 测试方法

  将作为下位机的stm32单片机开发板和作为模拟仪表的温湿度采集器通过路由器连接一台电脑组成网络系统。启动上位机软件,根据预先设置的网段范围、端口号、网关地址开启扫描连接功能,扫描间隔为10s,测试是否所有处于工作状态的下位机都能被上位机监控软件发现并接入到上位机系统当中。下位机与上位机和温湿度采集器成功建立连接后,下位机采用轮询的方式依次向每个温湿度采集器发送命令请求其发送温湿度数据,下位机收到完整数据后将其打包发送给上位机监控软件。根据以太网最大传输单元MTU数据,设定下位机每次发送的最大数据量为1000B,测试发送和接收的数据量是否完全相等。

3.3 测试结果

  经过多次测试验证的结果表明:上位机能够实现对下位机的主动查找,连接成功后下位机能够将仪表发送的数据及时、准确的发送到上位机。上位机也能实现对下位机的操作与控制,数据库模块、管理员模块、显示界面均满足设计要求。

  

4 总结

  本文所提出的基于以太网的分布式数据采集控制系统实时性好、可靠性高,与其他控制系统相比具有很大优势,能够实现对工业现场设备的远程数据采集与监控;操作性强、可扩展性好,对实现工业生产的数据采集自动化和信息化具有重大意义。



本文编号:14938

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/wltx/14938.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户05ad8***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com