席永光,付成伟
(吉林大学物理学院,吉林长春130012)
摘要:为了适应在复杂实验条件下对多个电源单元的管理控制,设计基于Socket网络通信的多电源单元管理系统。为了对多电源单元的高效管理,Socket网络通信采用的是异步通信连接,同步通信的通信模式,同时存储电源数据(电压、电流)到excel文件,方便查阅与记录。实验证明这种方式比单独异步或者单独同步通信方式都高效、准确。
关键字:C#;Socket;异步通信;同步通信;数据保存
中图分类号:TN86?34 文献标识码:A 文章编号:1004?373X(2015)20?0137?03
收稿日期:2015?05?12
Multi?power management system based on Socket communicationXI Yongguang,FU Chengwei
(School of Physics,Jilin University,Changchun 130012,China)
Abstract:To suit the management and control of multi?power units under the complex experiment condition,a multi?powerunit management system based on the Socket network communication was designed. For the efficient management foe multi?powerunit,the asynchronous communication connection and synchronous communication are adopted in Socket network communica?tion,and the power data(voltage,current)are stored in Excel file. It is convenient to check and record. The experimental re?sults show that this method is more efficient and accurate than only asynchronous communication mode or synchronous communi?cation mode.
Keywords:C #;Socket;asynchronous communication;synchronous communication;data preservation
为了适应在复杂实验条件下对多个电源单元的有效管理,运用C#语言编写了基于Socket 网络通信的多电源管理系统,并且能把每台电源单元的数据保存到Excel 表格中,方便查阅与记录。Socket 通信的同步通信方式是在客户端在发送请求之后必须等到服务器回应之后才可以发送下一条请求,是阻塞通信方式。这样的方式对于电源单元的管理比较准确。但对于多个电源单元同时管理时,就会出现连接长时间通信不上的问题。而异步连接就能很好的解决多个单元的连接问题,但是异步通信的缺点是对多电源单元管理时会出现数据错乱的问题。本系统使用面向对象C#编程,采用了Socket 异步连接电源,同步通信收/发数据方式进行设计,很好地满足了多电源管理系统的要求。
1 系统设计
1.1 Socket通信原理
1.1.1 服务器端的步骤
(1)在实用Socket之前,要首先初始化Socket,就是实用Socket初始化函数;
(2) 在初始化完成以后,就可以建立服务端的Socket,然后实用该Sokcet开始侦听整个网络中的连接请求;
(3)当检测到来自客户端的连接请求时,向客户端发送收到连接请求的信息,并建立与客户端的连接;
(4)在通信的过程中,服务器端产生的Socket会通过一个消息响应函数OnReceive来接收到达的数据,数据的发送可以使用Send()来完成;
(5)当完成通信后,服务器关闭与客户端的Socket连接。
1.1.2 客户端的步骤
(1)同样的,初始化Socket,并建立客户端的Socket,确定要连接的服务器的主机名和端口;
(2)发送连接请求到服务器,并等待服务器的回馈信息;
(3)连接成功后,与服务器进行数据的交互;
(4) 数据的读取同服务端一样,也是通过OnRe?ceive函数来完成的,数据的发送通过Send函数即可;
(5)数据处理完毕后,关闭自身的Socket连接。
1.2 Socket异步通信与同步通信
(1)异步通信方式
程序执行到发送、接收和监听语句的时候,不论工作是否完成,都会继续往下执行。并且在服务端不存时,仍然能继续进行后继工作的。
(2)同步通信方式
Socket 通信用TCP 协议进行编程时程序执行到发送、接收和监听语句时,在未完成工作前不再继续往下执行,即处于阻塞状态,直到该语句完成某个工作后才继续执行下一条语句。并且服务端不存、从而在抛出异常之前,是无法继续进行后继工作的。
1.3 主要设计思路
1.3.1 采用同步通信方式
同步通信方式如图1所示。
1.3.2 采用异步通信方式
异步通信方式如图2所示。
1.3.3 采用异步连接,同步通信的方式
电源管理系统界面,根据每个电源的IP 地址,端口,通过网口进行异步通信的连接,然后在界面上输入需要的电源电压电流数据,通过同步通信方式进行收/发数据,进而完成对电源的控制。管理界面还能保存电源的电压电流变化的数据,方便以后查验。
(1)Socket异步连接电源部分程序
2 实际测试
2.1 采用同步通信方式
测试过程中出现,在一个电源单元数据通信完成后,才能和下一个电源单元进行通信的情况。这样的管理系统只能每次处理一个电源单体,不能实现对多电源管理的问题。
2.2 采用异步通信方式
在实验测试过程中,能够同时和多个电源单元进行通信,但是在通信过程中出现数据错乱和数据发送延迟的问题。
2.3 采用异步连接,同步通信的方式
实验测试,对电源单元和多电源单元进行多批次长时间的测试,系统是高效、准确的,数据保存也是实时准确的,如图4所示。
3 结语
多电源单体管理系统能对多台电源进行高效准确地管理,优点有:
(1)在复杂的实验条件下,能实时高效准确地管理多个电源单元,能极大地简化实验过程,让实验更加高效精确。
(2)能在远距离条件下,方便实验人员操作复杂的电路实验。
(3) 能实时精确地保存数据,方便数据的记录和计算。
教育期刊网 http://www.jyqkw.com
参考文献
[1] 周晟,金瓯,贺建飚,等.基于Socket的异构形平台的网络通信研究[J].计算机与数字工程,2006(5):4?8.
[2] STEVENS W R.TCP?IP 详解卷一:协议[M].北京:机械工业出版社,2000.
[3] 张文,赵子铭.P2P网络技术原理与C++开发案例[M].北京:人民邮电出版社,2008.
[4] 马骏.C#程序设计及应用教程[M].北京:人民邮电出版社,2009.
[5] JONES A,OHLUND J.Windows网络编程[M].北京:清华大学出版社,2002.
[6] 任柯.ZigBee多媒体教室电源管理系统设计与实现[J].西南民族大学学报:自然科学版,2012(4):669?673.
[7] 赵勇,黄东,张天开,等.基于μIP和Socket的远程机房电源控制系统设计[J].电子设计工程,2015(4):40?43.
作者简介:席永光(1989—),男,河南人,硕士。主要研究方向为汽车机电和电子控制技术。
付成伟(1976—),男,江苏人,工程师,博士。主要从事仪器仪表科学、信号检测与控制、车辆电子技术方面的研究。