基于Winsock的数据采集在远程计量中的应用

2017-06-27 23:00张申坤
中国科技纵横 2017年9期
关键词:数据采集

张申坤

摘 要:远程计量系统采用Winsock通讯方式进行数据采集,解决了传统串口通讯不能远距离传输的问题并保证数据的实时准确性,在C#环境下C/S图形化编程及语音报警功能,充分利用了网络资源,可减轻人员负担,提高工作效率。

关键词:Winsock;数据采集;远程计量

中图分类号:TP274.2 文献标识码:A 文章编号:1671-2064(2017)09-0045-01

Abstract:The remote measurement system using Winsock communication for data acquisition, It solves the problem that the traditional serial communication can not be transmitted in a long distance and ensures the accuracy of the data in real time, In the C# environment C/S graphical programming and voice alarm function, make full use of network resources, can reduce the burden on the staff, improve work efficiency.

Key words:Winsock; data acquisition; remote measurement

满足公司信息化发展的要求,提高物资计量自动化水平,消除人为因素造成的计量异议和计量损失,集图像、车号、重量、车辆位置的远程集中计量监控系统的产生很好的解决了这一难题,利用Winsock通讯进行车号、重量、车辆位置的设备数据采集系统,能够有效利用网络,稳定高效的数据保证了计量系统的稳定运行。

1 远程计量系统的总体框架

远程计量系统主要由数据采集系统、过磅计量系统、现场设备组成,其中数据采集系统分为仪表数据的采集,车辆位置的采集,车号信息的采集以及断电、烟感等数据采集。其总体上的框架图如图1所示。

计量人员通过计量系统可以得到现场车辆的重量、位置、车号等信息,还可通过视频、音频与司机通讯,通过采集系统还可以知道现场设备运行情况,发现问题及时进行处理。

Winsock数据采集系统,主要是在TCP/IP协议的基础上,应用C/S结构,通过串口服务器和开关量服务器的IP地址进行数据通讯,将采集到的数据传入服务器,独立运行的数据采集程序,有效降低了服务器的负担。

2 Winsock技术通讯

Winsock(Windows Sockets)控件是基于网络通讯协议TCP/IP的一种编程控件,是Windows操作系统中的应用程序接口。Sockets是网络通信的基本操作单元,提供了不同主机之间进程互相通信的端口[1]。

在基于C/S模式的网络数据交换程序开发中,设计人员通过Winsock控件使用数据传输控制协议访问网络服务,通讯协议采用TCP协议[2-3]。在C#中有用于TCP/IP传输的Winsock控件,当使用TCP协议采集程序与串口服务器和开关量服务器连接时,必需指定串口服务器和开关量服务器的IP地址和端口号,串口服务器通过NPORT软件进行IP地址和端口号的设置,开关量服务器通过VSPM软件进行IP地址和端口号的设置,接着讲winsock控件设置为“监听”(listen),即将数据采集计算机进行调用与连接,如果数据采集计算机与串口服务器和开关量服务器连接完成后,将开始使用“传送数据(senddata)”方法,将数据给对方,同时,将会触发给对方的“接收数(dataarrival)”事件,此时,可以使用“取得数据(getdata)”方法,来取得这些接收到的數据。

在基于Winsock数据采集程序采用多线程算法建立动态的Winsock空间网络,保证各个控件与现场多个计量磅的设备相对应。

3 C#数据采集实例

以仪表为例,C#数据采集程序分为以下几个步骤:

(1)定义及初始化winsock控件wnskBT,动态创建winsock控件连接bt_recreate()。

(2)通过IP地址和端口号打开winsock控件连接bt_connect()。

(3)通过GetData进行仪表数据接收处理wnskBT _DataArrival()。

(4)将接收到的数据串进行解析处理,得到我们需要的仪表重量信息。

(5)命令模式发送信息wnskBT.SentData(),对仪表发送清零命令等。

(6)超时判断,当连接中断时,重新创建winsock控件,重新打开控件连接进行数据传输。

当现场设备出现故障时,数据采集系统进行语音提醒,计量员通知相关人员进行故障处理,当仪表不清零时,计量员通过数据采集系统或计量系统进行仪表清零,当设备检修或设备故障停用计量磅时,还可以强制红灯亮,禁止车辆上磅。当称重计算机比计量磅少时采用轮巡计量,当磅上有车时,数据采集系统自动分配空闲计算机并语音提醒计量员进行计量,若没有空闲计算机则提醒司机等待计量,计量完成后计算机进入等待计量状态。

4 结语

基于C#编写的基于winsock数据采集程序,运行占用内存资源少,读取、发送数据快,而且计算机运行稳定可靠,减轻了服务器端计算机的负担,计量系统采用轮巡计量,节省了人力,降低人员劳动强度,提高了计量速度,具有很强的实时性,该技术在计量方面已经得到了广泛应用。

参考文献

[1]吕娜.Winsock控件的属性及应用方法[J].科技世界,2016(9):250-250.

[2]王成. Windows本地应用使用Winsock与JSP Web应用通信[J].网络安全技术与应用,2015.05:77-78.

[3]刘赟.Winsock技术在网络通信系统中的应用[J].西南科技大学学报,2013,28(2):20-21.

猜你喜欢
数据采集
Web网络大数据分类系统的设计与改进
基于大型嵌入式系统的污水检测系统设计
基于开源系统的综合业务数据采集系统的开发研究