基于SOCK盯编程实现的组态软件与控制器的网络通讯

工控自动化 时间:2010-09-01来源:网络

0 引言

组态软件是面向工程监控和数据采集的软件平台工具,具有丰富的设置项目。组态软件所涉及的工业领域非常广泛,在工业监控系统中发挥着越来越重要的作用。组态软件要接收现场的采集数据,并形成动态画面,以反映工业现场的各种状态,并能够对现场设备进行控制。这些都依赖于组态软件的通信模块。通信模块作为组态运行环境中数据交互的重要渠道,通常处于监控组态软件运行环境的核心区,其功能直接决定着组态软件的性能。本文在基于TCP/IP网络协议和SOCKET接口技术的基础上,介绍了基于IEC61131-3标准的组态软件通讯模块的设计与实现方法。

1 通信模块功能

组态监测系统分为控制器和工程师站两部分,图1所示是系统的总体结构图。图中的控制器负责采集并处理数据,工程师站负责接收控制器发送过来的数据,并将数据显示和保存。通信模块根据用户定义的通信协议实现工程师站组态软件与控制器之间的数据通信,完成数据通信帧的组织下行和上行数据帧的校验、解析。由此可见,在整个组态软件中,通信功能模块担负着上层组态运行环境与下层控制器之间数据交互的重要作用。

2 通信模块设计

为了能够及时、准确的反映设备运行状况,设计时可采用基于TCP/IP协议的流式套接字(SOCK_STREAM)来实现组态软件通信模块的程序设计。

为了实现网络通讯,Windows为应用程序提供了各种编程接口,如Windows Sockets API等,应用程序可以直接使用这些API函数。但对于较大型的应用程序来说,应该设计一个虚拟网络接口层,以使能用windows提供的各种通讯API来为应用程序提供通用的网络功能。这样的接口层可以采用中间DLL的形式,它将应用程序和windows的各种API隔离开来,使程序员能更方便地设计自己的应用程序。这样的设计可使应用程序更易于维护和移植。

基于通信需求和上述思路,利用基于TCP_IP的SOCKET接口可以实现网络通信,通信模块通常以动态链接库的形式存在。

2.1 Socket套接字

Windows Sockets不是一种网络协议,而是一套开放的、可支持多种协议的、Windows下的网络编程接口。Winsock实际在计算机中提供了一个通信接口,应用程序在网络上传输信息都可以通过这个Socket接口来实现。Windows Sockets分为三种类型:其中流式套接字(sock-stream)定义了一种可靠的面向连接的服务,它使用TCP作为传输层协议,可实现无差错无重复地顺序数据包传输;数据报套接字(sock-dgram)定义了一种无连接的服务,它使用UDP协议,数据通过相互独立的报文进行传输,而且是无序的,同时不保证可靠和无差错;原始套接字(sock-raw)允许对低层协议(如IP或ICMP)直接访问,主要用于新网络协议的实现和测试等。

图2给出了一种典型的C/S(客户端服务器)面向连接套接字调用的实现流程。

1 2 3

关键词: 软件 控制器 网络通讯 组态 实现 SOCK 编程 基于

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章


用户评论

请文明上网,做现代文明人
验证码:
查看电脑版