原创 Ethernet POWERLINK发展现状和openPOWERLINK源代码

2010-8-13 17:24 1725 4 4 分类: 通信

一.          
为什么需要实时以太网


1标准以太网的实时局限性


目前,标准以太网可达到100Mb/s甚至1000Mb/s的传输速度,远快于任何现场总线系统。但对于工业控制来说,比传输速率更重要的是实时性。实时性的一个重要标志是时间的确定性,通信时数据传输时间不是随机的,而是可事先准确预测的。


以太网虽有很高传输速率却不能保证实现控制设备间的实时通信。标准以太网IEEE802.3的通信机制使数据传输时间可被任意推迟,也就谈不上实时性。而在工控领域中,特别是在对高动态过程的控制中,实时性却必不可少。


普通以太网产生这种通信时间不确定性的原因,是它对物理介质的访问机制CSMA/CD。CSMA/CD是以太网标准IEEE802.3的核心,如在尽量不改变现有标准前提下想在工控领域中充分利用以太网优点,就须找到一种方法保证以太网中数据传输时间确定性,使其实现实时通信。


2工业控制要求很高的实时性


在工业控制系统中,实时可定义为系统对某事件响应时间的可预测性。一个事件发生后,系统须在一个可准确预见的时间范围内作出反应。至于反应时间须有多快,由被控制过程决定。化工热化过程控制有秒级别的反应时间就足够,而在高动态传动控制中系统反应时间必须达到微秒级。


另外,还可把工控中的实时性分为硬实时和软实时两种不同类别(它们之间没有明显界线)。硬实时:控制中系统响应时间要求如达不到将导致致命后果(如汽车ABS、飞机、工具机床等)。软实时:系统响应时间如达不到要求仅影响系统控制质量,而不会造成严重后果(如楼宇系统、电梯、仓库管理等)。


正是因为以上两点原因,在普通以太网的基础上提出了实时以太网的概念,而Ethernet
POWERLINK是工业以太网的佼佼者。


二.          
openPOWERLINK协议栈源代码


思泰公司的开源协议堆栈POWERLINK协议堆栈可以作为一个通用版本的源代码来使用。并且可以方便的移植到不同的目标操作系统中。这个软件提供了所有以太网POWERLINK 2.0规格版所必需的函数,并且提供了各种多种可选的功能函数。


该源代码可以做成一个可插入内核的内核模块,这样应用程序就可以直接在我们给定的Linux操作系统中运行该协议堆栈。这就给您快速容易的启动您自己的开发提供了一个好的入手点。


我们的开源POWERLINK实现已经通过了不同厂家提供的POWERLINK设备的扩展测试,以保证一个稳定的平台和高度的互操作性。


该协议堆栈软件以功能模块的方式组织和实现,提供了最好的灵活性和可扩展性,然而专注于对时间要求的服务。


OpenPOWERLINK软件的所有硬件特征和时间临界功能都经过特别的设计和最优化,以保证对POWERLINK总线上的实时时间快速响应。因此,以太网控制器的访问和处理都被封装在一个单独的驱动模块中。


openPOWERLINK堆栈特性



  • 以太网POWERLINK 2.0 DS 1.0.0通信文件
  • 控制和映射节点的数据链接层和NMT状态机
  • 通过UDP和POWERLINK ASnd帧的SDO
  • 动态PDO映射
  • 用户可配置的对象词典
  • 以async-only CN和multiplexed
    CN的方式支持POWERLINK的循环特性
  • 以普通的ANSI C来实现
  • 方便移植到不同目标平台的模块化软件结构(有无操作系统都可以)
  • 事件驱动的通信抽象层
  • 为用户开发应用程序提供了简单的API
  • 综合配置和缩放选项

功能概述


以太网POWERLINK
API 层


以太网POWERLINK API层为应用程序提供了一个简单的接口。应用程序使用函数初始化POWERLINK堆栈和执行不同的任务。当事件发生时,POWERLINK堆栈通过一个回调函数通知应用程序完成事件。例如这些事件包含NMT状态变换,节点状态变换,对象词典访问,结束SDO传输,POWERLINK堆栈错误等。


通信抽象层 

POWERLINK堆栈被分为处理循环事件的硬实时任务和负责例如SDO processing等同步任务的低优先级任务。这些任务之间的通信被封装在通信抽象层,通信抽象层在事件模型之后设计。这使得您可以轻松移植和优化到新的目标平台。例如,您可以使用底层操作系统高度优化了的进程间通信的方法。


对象词典和SDO(Service Data Object ) 

POWERLINK堆栈的配置是通过对象词典来完成的。这可以通过在编译时通过合适的默认输入来完成,也可以通过运行时由应用程序或远程通过SDO传送。POWERLINK堆栈通过UDP和POWERLINK ASnd帧支持SDO。它通过UDP使用现存的支持SDO的UDP/IP协议堆栈,例如由操作系统或者独立的UDP/IP堆栈提供的UDP/IP堆栈。虚拟的以太网驱动为UDP/IP堆栈提供了方法用来与以太网POWERLINK网络通信。除了通过UDP的SDO,它还可以通过应用程序或者其他任务例如web服务器通过以太网POWERLINK网络来完成UDP或TCP通信。应用程序可以映射任何变量到一个对象词典条目(见PDO)。依赖于相关对象条目,应用程序被告知每个读和写访问。应用程序在它实际完成或激发动作之前可能会拒绝访问。


PDO
(Process Data Object )


过程变量通过POWERLINK网络节点之间的PDOS进行互换。因此应用程序必须映射这些变量到对象词典条目。PDO映射分配对象词典条目到指定的PDOS。PDO映射可以通过应用程序或SDO传送动态的更改。以太网POWERLINK周期性的交换PDO。


节点管理 

MN/CN openPOWERLINK源代码包含了节点管理支持功能。节点管理通过在运行时设置节点ID为240来启动。它根据以太网规范版本2.0完成启动过程,包含支持强制性和可选性控制节点。另外它包含一个配置管理器,它根据一个提供的设备配置文件配置每个控制节点。


想了解更多openPOWERLINK源代码,请联系我们:


广州虹科电子 http://www.hkaco.com  索取更多详细资料


陈秋苑 020-38743030  cqy@hkaco.com  QQ:353987010
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
4
关闭 站长推荐上一条 /3 下一条