微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > IP组播技术在分散控制系统(DCS)中的应用

IP组播技术在分散控制系统(DCS)中的应用

时间:04-16 来源:互联网 点击:

1引言

随着经济全球化发展,分散控制系统(DCS)逐步形成融合信息技术(IT)、集成多种总线、采用功能安全技术集管控、仪控、电控一体化方向发展。同时对分散控制系统(DCS)应对复杂大型系统架构和超大容量的数据交互提出更高要求。

IP组播的技术和应用开始快速发展。对分散控制系统(DCS)的超大容量的数据交互提供了新的思路。本文通过采用视频会议常用到的IP 组播技术来提高分散控制系统(DCS)数据传输的实时性、准确性,优化系统网络结构, 以获得更好的经济效益.

2 IP组播

2.1组播传输的优点

在IP网络中TCP/IP 传送方式有3 种: 单播, 广播, 组播。

传统的单播和广播的通信方式均不能以最小的网络开销实现单点发送、多点接收的问题,IP 组播技术的出现及时解决了这个问题。

相比单播来说,组播的优势在于:由于被传递的信息在距信息源尽可能远的网络节点才开始被复制和分发,所以用户的增加不会导致信息源负载的加重以及网络资源消耗的显著增加。

相比广播来说,组播的优势在于:由于被传递的信息只会发送给需要该信息的接收者,所以不会造成网络资源的浪费,并能提高信息传输的安全性;另外,广播只能在同一网段中进行,而组播可以实现跨网段的传输。

2.2组播通信

在组播中,用户按不同的应用分为不同的用户组,组成员要向组播服务器(一般为路由器)注册,用户主机发出请求报文,表明所要加入的组。每个组播群组有惟一 的D类地址。其地址范围从224.0.0.0到239.255.255.255。IP最多可提供多达228个同步组播群组的地址,因此,实际群组数受选路 由表大小而不是编址的约束。

转发IP组播需要特殊的组播路由器(multicast router)。通常是给常规路由器添加这种能力。组播路由器会周期性地对该组进行查询,检查组内的成员是否还参与其中,只要还有一个主机仍在参与,组播 路由器就继续接收数据。当所有的主机都离开了组后,组播路由器会收到一个Internet组管理协议(Internet Group Manage Protocol, IGMP)的“离开”消息报文,组播路由器就会马上查询组中是否还有活动的组成员。如果有活动的组成员,组播路由器就继续转发数据;如果没有,就不再转发 数据。

3 IP组播在分散控制系统(DCS)中的应用

3.1 系统总体设计

在分散控制系统(DCS)应用过程中,存在着大量的DPU上行数据,发送至多个人机界面(HMI)系统。正好可以利IP组播的优趋,实行单播/组播相结合 的混合传输方式,通过设计合理数据交换方案,不仅保证数据安全达到HMI工作站,而且减轻分散处理单元(DPU)和网络设备CPU 的网络负荷,提高系统效率,获得良好的性能和经济性。下图1为系统结构示意图。

图1:系统结构

系统主要有四部分组成:I/O采集卡件、分散处理单元(DPU)、系统IP网络、人机界面(HMI)。

如图1,分散处理单元(DPU)通过总线协议完成与I/O采集卡件的双向数据交换;在系统设计时,只要按系统具体的数据获取需求,合理划分不同的组播组, 将每一个DPU(就是一个组播源)按需求加入不同的组播组,可以加入多个组播组,将实时数据以组播形式在系统IP网络发布出去;每个人机界面(HMI)工 作站(组播数据的接收者),按数据获取要求,分别加入不同的组播组,也可以加入多个组播组,完成组播数据的接收。系统IP网络由备具组播功能的路由器、集 线器、交换机、防火墙等构成,共同完成组播数据的转发。组播主要完成分散处理单元(DPU)到人机界面(HMI)上行数据,其他如控制命令数据等,辅以单 播方式完成。

3.2 IP组播Winsock编程方法

在实际应用中,IP组播编程实现的方法随DPU嵌入式支撑系统和HMI运行系统平台的不同有所不同的;编程人员通常借助于操作系统中所提供的网络数据通信 编程接口实现网上的IP组播通信的功能。下面以在Microsoft Windows环境下的网络编程接口(Windows Socket,简称Winsock)介绍具体的IP组播编程实现的方法。

图2 Winsock实现IP组播过程流程图

3.2.1 IP组播数据发送流程(DPU)

调用WSAStartup ( )函数,Winsock 服务的初始化。

调用socket ( )函数,创建数据报套接口,它是组播组的初始化套接字,并且以后数据的发送在该套接字上进行。

调用setsockopt( )函数,设置发送的数据报本地接口(IP_MULTICAST_IF)及设置多播地址(例:239.100.1.1)和端口号(例:20120)。

使用sendto()函数,发送数据,目标地址为第二步所设置的多播地址。

关闭套接字,释放Winsock资源。

3.2.2 IP组播数据接收流程(HMI)

调用WSAStartup ( )函数,Winsock 服务的初始化。调用socket ( )函数,创建数据报套接口,它是组播组的初始化套接字,并且以后数据的接收在

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top