
图1 利用实时以太网环境,可以在所有基于以太网的通讯协议范围内实现实时的工业通讯
在工业应用中,基于以太网的通讯技术几乎是不可或缺的。因为许多的应用程序都与Windows有关,因此按照时间标准进行数据处理是不可能的——但现在有了可行的解决方案了。
许多工业应用都离不开基于以太网的通讯技术,但这种标准的操作系统却不能实现实时处理数据的机制。利用实时以太网环境,可以在所有基于以太网的通讯协议范围内实现实时的工业通讯(图1),包括IP协议、传输控制协议(TCP)和用户数据包协议(UDP)。
利用高速以太网卡实现数据传输
柏林的Kithara软件公司是一家基于Windows平台的软件公司。在实时控制方面,该公司的Realtime Suite除了带有多任务处理的准确时钟以外,还有通过以太网控制器实现实时通讯的功能。数据通讯是在高速以太网卡以及Intel公司和台湾瑞昱公司的千兆以太网控制器中实现的(图2)。这样一来,就能像Gig-E Vision那样实现快速处理检测数据,或进行工业图像处理了。据生产厂家介绍:利用其附带的套接字(Socket)功能,也能够实现传输控制协议(TCP)和用户数据包协议(UDP)的实时处理。
为了实现实时性,避开运行缓慢的Windows驱动,由网络控制器直接进行控制。据Kithara公司介绍,这样整个连接的带宽都可以用于通讯、数据交换,能够实现实时的对相关数据包的快速反应和处理。

图2 数据通讯是在高速以太网卡以及Intel公司和台湾瑞昱公司的千兆以太网控制器中实现的
与常规驱动系统不同,在这种配置中避免了各种常规的复制操作。不论是接收数据还是发送数据,网络控制器都能够直接读取用户的存储器。利用这种方法可以实现很高的数据传输率,使反应时间降至最短。为此,要进行CRC循环冗余校验计算和字节序转换。
最高系统优先级保障实时性
在应用的框架内,套接字(Socket)应用能够使编程人员的工作更加简单方便。它可以在C/C++或Delphi语言环境中编程。以动态链接库(DLL)的形式将实时应用也嵌入到C#.NET的应用中。
实时扩展是怎样为Windows工作的呢?它要达到以下两个条件:一方面,要有实时通讯的环境,能够直接读取最基本的硬件,以便达到实时处理数据所需的条件;另一方面,不能影响Windows的正常运行,只允许在短时间内出现特殊情况。
在Kithara公司的Realtime Suite中建立了实时多任务处理系统,并为Windows设定级别较低的优先权。有实时性要求的计时器和工业通讯卡的中断都由Interrupt-Controller硬件直接控制。这样,通过最高的系统优先级保障了所需的实时通讯性能。
编程器产生本地的机器码
为了使得用户继续得到这种保障,无需设置独立的RTOS实时操作系统。取而代之的是提供给用户一种可能性:使他们能够将与实时性和硬件有关的程序代码以DLL的形式实现实时的前后转移。据Kithara公司介绍,这样做的优点是:用户习惯的开发环境和编程语言都无需改变,可继续使用;把程序调试的费用限制在最低的范围内。而达到这个目的的前提是:编程器能够生成本地的机器码。这一优点适用于不同的开发系统,例如C/C++和Delphi开发环境。
然而,人们又会提出质疑:能够直接在工业化实时通讯应用中使用.NET环境和与.NET环境有关的C#语句吗?因为也与C#建立了联系,因此所有工业应用可以使用的资源也都可以使用。与实时性和硬件有关的部分可使用,例如C++程序编程,保存为动态链接库(DLL),由实时系统直接调到核心层处理。
动态的调整任务的优先级
据Kithara公司介绍:当预期是一个纯RTOS实时操作系统时,最终也可以在Windows系统中实现实时多任务处理,共有255个优先级可供用户选用。
在工业应用中必不可少的运行过程预测,可通过优先级继承来避免优先级反转。任务的优先级也可以动态的调节匹配,信号量和事件用于任务的同步控制。据Kithara公司介绍:这一软件已经大大地克服了Windows操作系统无实时通讯能力而无法完成工业化实时应用的缺点了。
评论
加载更多