读书频道 > 网站 > 网页设计 > 开源实时以太网POWERLINK详解
2.7.2 MN周期状态机
15-08-28    下载编辑
收藏    我要投稿   

本文所属图书 > 开源实时以太网POWERLINK详解

本书介绍工业实时以太网POWERLINK。全书共8章,首先介绍了现场总线的发展历史,比较了现有各种工业实时以太网技术的机制,接着由浅入深地介绍了POWERLINK的原理、功能特点、应用和实践等。本书详细介绍了如何使用立即去当当网订购
1.概述
 
MN周期状态机(DLL_MS)应管理POWERLINK周期内的通信。
 
DLL_MS在一个POWERLINK周期中产生帧序列,并监视CN的反应。帧序列的顺序与NMT_MS状态有关。
 
通常CN通过SoC的接收进行同步。这意味着对POWERLINK网络同步的最重要参数是事件DLL_ME_SOC_TRIG的定时精度。
 
如果DLL_MS检测到通信中的一个错误,将为“DLL错误处理”产生一个错误事件。
 
2.状态
 
1)DLL_MS_NON_CYCLEIC。该状态表示周期通信还未开始或被NMT_MS状态机停止(NMT的NMT_MS_OPERATIONAL_1状态)。状态机在此状态等待,直至NMT状态变为NMT_MS_OPERATIONAL_2。这取决于当前的NMT状态、将处理的事件和将忽略的事件。
 
2)DLL_MS_WAIT_SOC_TRIG。如果周期通信已完成,状态机保持在该状态,直至下一个周期以DLL_ME_SOC_TRIG开始。
 
3)DLL_MS_WAIT_PRES。在发送Preq帧后,状态机在该状态等待响应。等待时间由超时限制。
 
4)DLL_MS_WAIT_ASND。如果发送了一个带授权的SoA,状态机在该状态等待,直至异步阶段以事件DLL_ME_SOC_TRIG结束。
 
在DLL_MS_NON_CYCLIC中,应产生事件DLL_ME_SOA_TRIG而不是DLL_ME_SOC_TRIG。
 
如果期待一个ASnd并发生NMT_NMCycleTiming_REC.AsyncSlotTimeout_U32超时,则应产生错误DLL_MEV_SOA_TIMEOUT。
 
5)DLL_MS_WAIT_SOA。如果发送了一个带授权的但不需应答的SoA,MN在该状态等待,直至异步阶段发生超时,或在下一个POWERLINK短周期开始前接收到任何以太网帧。
 
3.事件
 
DLL_MS由事件触发,这些事件是由事件处理器产生的。DDL_MS具有到硬件和NMT状态机的接口。
 
事件处理器使事件排序(一个超时与一个以太网帧的接收可能同时发生)。到硬件的接口的实现不在本标准的范围内。
 
1)DLL_ME_PRES。该事件表示接收到一个Pres帧。
 
2)DLL_ME_PRES_TIMEOUT。当Pres帧在预配置时间内没有(或不完全)被接收到,就会产生该事件。
 
3)DLL_ME_ASND。该事件表明接收到一个ASnd帧或非POWERLINK帧。
 
4)DLL_ME_ASND_TIMEOUT。当ASnd帧在预配置时间内没有(或不完全)被接收到,就会产生该事件。
 
5)DLL_ME_SOC_TRIG。该事件触发SoC帧的发送并开始一个新的POWERLINK周期。定时精度决定了POWERLINK网络的同步精度。
 
6)DLL_ME_SOA_TRIG。该事件表明一个新POWERLINK短周期将开始。该事件可周期地产生,或在接收到一个请求的ASnd报文后直接产生,以尽快继续POWERLINK短周期。
 
4.DLL_MS对NMT_MS状态的使用
 
NMT_MS状态代表网络的状态,且在一些DLL_MS转换中作为条件。对单个NMT状态,可滤出相关的DLL_MS转换。
 
注:DLL_MS的转换可在一个状态图中表示,其中NMT_MS状态作为转换的条件。为了易于理解和表达清晰,单个NMT_MS状态的相关转换被滤出,并在其自身的图中作为DLL_MS的一种“工作模式”显示。
 
(1)状态NMT_GS_INITIALISATION和NMT_MS_NOT_ACTIVE
 
在这些状态中,MN周期状态机不是活动的。这表明在首次转换到DLL_MS_NON_CYCLIC之前,其状态不影响MN的反应,反应由NMT_MS状态确定。
 
(2)状态NMT_MS_BASIC_ETHERNET
 
在该状态,周期状态机不是活动的。这表明在首次转换到DLL_MS_NON_CYCLIC之前,其状态不影响MN的反应,反应由NMT_MS状态确定。
 
(3)状态NMT_MS_PRE_OPERATIONAL_1
 
在NMT_MS_PRE_OPERATIONAL_1状态,MN周期状态机产生POWERLINK短周期,并监视CN的行为,如图2-25所示。DLL_MS处于DLL_MS_NON_CYCLIC模式。图2-25描述了主站在NMT_MS_PRE_OPERATIONAL_1状态下的数据链路层(DLL)的状态机。
 
 
状态NMT_MS_PRE_OPERATIONAL_1下的MN周期状态机转换如表2-7所示。
 
该转换表中所用的缩略语如下。
 
no resp.expected意为:对MN的异步授权没有预期的应答(如单播报文交换)。
 
async_in != 0意为:一个授权必须在该周期内发送,一个ASnd或非POWERLINK帧可被接收。
 
async_out != 0意为:在发送一个SoA后,必须在该周期发送一个ASnd。
 
 
常见问题如下:
 
如果“DLL错误处理”不支持,则DLL_MEV_ASND_TIMEOUT是可选择的,并可被忽略。
 
如果已发送StatusRequest,且异步时隙定时时间到而未接收到一个StatusResponse帧,则以错误DLL_MEV_LOSS_STATUSRESPONSE通知“DLL错误处理”。
 
状态NMT_MS_OPERATIONAL、NMT_MS_READY_TO_OPERATE和NMT_MS_PRE_OPERATIONAL_2下的MN周期状态机产生POWERLINK周期并监视CN的行为,其状态机如图2-26所示。
 
在NMT_MS_OPERATIONAL、NMT_MS_READY_TO_OPERATE和NMT_MS_PRE_OPERA-
TIONAL_2状态下的MN周期状态机转换如表2-8所示。
 

 

该转换表中所用的缩略语如下。
 
isochr != 0意为:在等时同步列表中有一些帧,它们必须在当前周期中被发送。
 
isochr_out != 0意为:MN被配置以发送一个Pres。
 
async_in != 0意为:一个授权必须在当前周期被发送,并且一个ASnd或非POWERLINK帧可被接收。
 
async_out != 0意为:发送一个SoA后,必须在本周期发送一个ASnd。
 
为了表述清晰,对非预期事件的反应没有在图2-26和表2-8中描述。对这些事件的一般性叙述如下:
 
非预期帧的类型和非预期的发送方应被接收。状态不改变。Pres帧应被传送给NMT状态机,可对这些帧进行分析(例如把相应的CN从通信中移除)。状态机对此事件不做任何反应。
 
如果DLL_MS接收到只可能由另一MN发出的帧(SoC、SoA和Preq),它将通知NM状态机和“DLL错误处理”。
 
如果发生一个非预期的内部事件(如超时),则将被认为是一个内部错误并通知NMT_MS。
 
有可能发生这样的情况:DLL_ME_SOC_TRIG发生在非预期的状态中,或发生在发送或接收以太网帧期间(如Pres超时误配置)。在这种情况下,会以错误DLL_MEV_CYCLE_EXCEED通知错误处理(DLL Error Handling)。
 
如果已发送StayusRequest,且异步时隙定时时间到而未接收到一个StatusResponse帧,则以错误DLL_MEV_LOSS_STATUSRESPONSE通知“DLL错误处理”。
 
5.活动节点的识别
 
应为MN配置一个网络上所有节点的列表。
 
当MN启动时,所有被配置的节点将被标记为非活动的。这些已配置但非活动的CN将被一个特殊形式的SoA帧,即IdentRequest周期性访问。当CN接收到对自己寻址的IdentRequest时,应在同一异步阶段中返回一个特殊形式的ASnd帧,即IdentResponse。
 
如果MN接收到从CN发来的IdentResponse,则该CN就会被标记为活动的。活动的CN可参与同步数据传输,如可通过Pres被访问。
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站