近些年来,现场总线技术被广泛地应用于工业过程控制领域。它具有实时性好、布线简单、可靠性高的特点,比较适合工业环境。但是,它也有自己的缺点,如标准不统一,各个厂商各自为政;传输速率低,无法传输图像和语音信息;网络互连困难,无法直接与互联网相连。这些缺点的存在,严重制约了现场总线技术的发展[1]。
当现场总线的发展遇到阻碍时,以太网技术却得到了迅猛的发展,如今,在Internet和办公自动化领域,以太网可以说是无处不在。如果能将以太网技术成功应用于工业控制底层网络,就可以打破传统的工业控制网络体系,实现工业控制网络和办公自动化网络的无缝连接,实现真正意义上的管控一体化。本文结合现场总线与以太网的各自的优点,提出一种新型的网络流量控制算法,开发出与此相配套的网络控制器。
1通讯机制
新型的通讯机制在网络拓扑上采用总线型,所有的发送都是在枢纽控制器的控制下进行。只有得到命令帧的指定站点才可以启动数据发送。系统设定一个循环周期T,控制节点按照优先级从低到高轮询各个站点,当轮询时间大于T时,控制将停止这一周期的轮询,直接进入下一个周期。需要注意的是:
1.对高优先级的数据包,不管队列中有多少个未发数据,都要确保发送完毕,即使周期超过T也要如此。
2.对于中优先级和低优先级的数据包,只有在上一优先级的数据发送完全的情况下才能启动发送,并且是限制型发送,一次只能发送队列的前rp个数据。
利用Matlab仿真的结果表明,即使在网络负荷超载的情况下,网络控制算法仍旧可以保证高优先级的控制帧的发送,因此这个网络控制算法是可行的。
2功能原理
网络枢纽控制器是整个网络体系的核心,它主要有以下两个功能:一是网络控制功能,即协调整个网络的通讯步调,避免冲突的发生,保证重要信息的实时性。二是作为通讯网关,与内部网络设备共享IP地址,提供内部网络设备与外部Internet的接口。
2.1实现控制功能所需要的设定
1.优先权的等级分类。利用IP数据格式[1]中TOS字段前3bit作为标志。
2.IP编址。假设所有的控制设备都处在一个内部网络中,他们共享一个Internet公网地址202.114.101.58,而内部网络是以192.168.0.开头的一系列内部地址。
3.控制帧格式。控制帧是网络枢纽控制器控制整个网络步调的数据帧,所有网络节点都应该能收到这个数据帧,并且在它的指令下进行通讯。因此,控制帧必须是一个广播帧,它的目标地址是局域网中的所有网络设备。
在具体实现中,将控制指令封装在一个UDP广播数据包中。它的格式如图1所示:
图1控制帧格式
命令:网络枢纽控制器对网络节点的发送的命令代码,其中包括通讯复位,发送数据等。
设备编号:接收命令网络设备的编号,它与内部IP地址相对应,如192.168.0.2表示2号设备,192.168.0.n表示n号设备。如果是对所有设备发送的命令,则置为0xff。
数据优先级:如果命令表项表示允许发送命令,那么数据优先级表项就表示对应网络设备应该从对应的优先级队列中取出一帧数据发送。
为了保证控制帧正常发送,还需要在上层协议中设置如下表项:
1.将Ethernet帧的目的地址设为0xff0xff0xff0xff0xff0xff,确保本以太网内的所有网卡都能接收到这帧数据。
2.将IP帧中的目的IP地址设为192.168.0.255,表示这是一个广播帧。
3.填充TOS为0x94,表示这是一个要求最高可靠性的控制帧。
2.2转换表以及与商业以太网转换表的区别
网络枢纽控制器作为内部工业以太网与外部Internet的桥梁,它的两个网络接口分别连接外部Internet和内部网络。网络枢纽控制器不但要有转发功能,而且还要内嵌NAT[2](网络地址转换)功能,因此必须附带地址转换表。
这里不能采用商业以太网的动态转换表模式,这是由工业以太网的特性决定的。首先,在工业以太网中,大部分的通讯请求都是从外部网络发起的(如从外部监控工业现场的参数),因此,采用动态转换表就无法建立连接;其次,如果表项是动态的,它的可靠性就很难得到保证,如果分配算法有漏洞(例如UDP连接,由于没有握手协议,所以很难知道它什么时候开始,什么时候中止),这样有可能会误删除正在连接的表项,使得通讯无法正常进行。所以在实际的实现中,采用静态的转换表,为每个可能的连接建立一个静态表项,对于这个静态的转换表,是用专用的配置软件在PC机上设置好,然后通过网络下载到网络枢纽控制器中,这样网络枢纽控制器就可以按照转换表实现网关功能了。
3硬件实现
图2是硬件的结构图。整个网络都在网络枢纽控制器协调的步调下运作,它的反应速度越快,则网络的空闲时间越短,网络的吞吐量越大。因此,在这里选用TI的TMS320VC5402[3]作为它的核心处理器。
以太网接口芯片选用Realtek公司的RTL8019AS,这是一款市场上ISA网卡中选用率很高的接口芯片。一共使用了两片这样的芯片,一片用于和内部网络通讯,另一片则用于与外部Internet相连。
图2网络枢纽控制器硬件框图
RTL8019AS有三种工作方式:即插即用方式,跳线方式和免跳线方式。为了减少资源占用,这里选择跳线方式。此时,RTL8019AS的IO地址由IOS0-IOS3脚决定。地址总线的SA5-SA19中除SA8和SA9接高电平外,其余都接低电平,SA0-SA7与DSP的地址总线的A8-A15相连,这样,访问DSP的相应IO空间地址就相当于访问两块以太网接口芯片中对应的寄存器,于是DSP的IO地址就和两片RTL8019AS能建立地址映射关系。至此,通过访问这些寄存器,就可以控制RTL8019AS发送或接收数据。
此外,扩展一片片外随机存储器ISSI61LV6416,它是用来做通讯缓冲区,暂时存放来不及处理的数据包。由于TMS320VC5402内部没有集成Flash或EPROM,因此,它不能自举运行。于是采用HPI接口引导DSP,程序存放在单片机78E54B上。当系统上电时,78E54B通过HPI接口将程序写入到TMS320VC5402的片内RAM中,然后启动它,这样DSP就开始工作了。
4软件编写
实现网络控制功能要求反应速度一定要快,因此这部分程序放在中断中完成。在硬件设计中,把第一片RTL8019AS的中断与DSP的INT0相连,把第二片的与INT1相连。因为第一片与内部网络相连,所以,实现网络控制控制功能的程序主要在INT0中完成。图3是INT0中断响应程序的框图。
图3INT0中断响应程序
系统共有两片转发缓冲区,缓冲区1用来暂存从内部对外的转发数据,而缓冲区2用来暂存从外部对内部的数据转发,一块发送数据的同时,另一块填装数据,提高了效率。
为了保证网络控制功能的实时性,防止中断冲突,简化程序结构,网关功能的这部分程序就用查询方式实现。框图如图4所示:
图4网关程序框图
需要特别注意的是,在重定向IP地址之后,一定要重新计算校验和。因为不论是IP头还是TCP和UDP,IP地址都在他们的校验项之内。如果改变了IP地址,那么校验和就要重新计算,否则,接收到这些数据包的设备就会认为校验错误,从而拒绝接受。
5结论
网络控制器虽然是最核心的设备,但是其功能的发挥还有赖于工业以太网上相关控制设备针对整体的控制策略作出相应的改变。工业以太网中为了生产,执行任务的控制设备,要在网络枢纽控制器的协调下完成通讯功能,包括数据采集前端、输出前端、PID前端、执行机构前端等。这需要它们速度达到一定的要求,因为当它收到控制节点的发送指令后,就要迅速将数据包送出,此时它的任何迟延都是整个网络的迟延。