Roles
在Process Data交互的过程中,有三种角色:
• Publisher: Process Data的源设备
• Subscriber: Process Data的接收设备
• Requester: 请求发布者发布Process Data
通信模式
PD支持Push和Pull两种大的通信模式,同时根据源设备和接收设备的数量不同,又可以进行细分。
Push支持的通信模式:(这种模式下只有Publisher和Subscriber两种角色)
• 点对点,没有应答的循环发送,Publisher知道Subscriber(Publisher通过单播IP发送PD)
• 点对多点,没有应答的循环发送,Publisher知道Subscriber(Publisher通过组播IP发送PD)
• 点对多点,没有应答的循环发送,Publisher不知道Subscriber(Publisher通过组播IP发送PD)
说明:从通信的角度来讲,点对多点时,Publisher是否知道Subscriber没有区别。
Pull支持的通信模式:(这种模式下其中一个Subscriber可能是Requester)
• 点对点,没有应答,Requester知道Publisher (Requester通过单播IP发送请求报文)
• 多点对点,没有应答,Requester不知道Publisher(Requester通过组播IP发送请求报文)
• 点对多点,没有应答,Requester知道Publisher。(其中一个Subscriber也就是Requester,通过单播IP发送请求报文)
• 多点对多点,没有应答,Requester不知道Requester。(其中一个Subscriber也就是Requester,通过组播IP发送请求报文)
PD报文格式
IEC标准定义MD报文格式如下:
字段 |
长度 |
值 |
描述 |
sequenceCounter |
4字节 |
从0开始计数 |
|
protocolVersion |
2字节 |
Fixed |
高字节:MainVersion 低字节:SubVersion 例如:’0102’=1.2版本 |
msgType |
2字节 |
5072: Pr 5070: Pp 5064: Pd 5065: Pe |
‘Pr’ = PD Request ‘Pp’ = PD Reply ‘Pd’ = PD Data ‘Pe’ = PD Data (Error) 预留,当前未使用 |
comId |
4字节 |
用户设置 |
用户数据的标识 |
etbTopoCnt |
4字节 |
0..2的32次方-1 |
The ETB topography counter: • 作为列车的地址来使用IEC 61375-2-5 (parameter ‘etbTopoCnt’) • 用户设置这个字段 • 基于ETB的所有通信都要设置 • 如果设置了有效的opTrnTopoCnt,则这个字段也要设置 • 其它情况设置为0 |
opTrnTopoCnt |
4字节 |
|
The operational train topography counter: • 参照5.3.3章节的介绍来使用 • 用户设置这个字段 • 当需要使用operational train directory中的信息时,设置该字段(例如选路操作) • 当源设备使用operational列车字典来解析目的IP时,需要设置该字段。(例如解析URI ‘vcu.leadVeh.anyCst.anyClTrn.lTrn’) • 其它情况设置为0 |
datasetLength |
4字节 |
0..1432 |
|
reserved01 |
4字节 |
0 |
预留 |
replyComId |
4字节 |
Request使用; 其它情况填0 |
• 仅在PD request中使用 • 作为PD reply的ComId使用 • 如果为0,使用PD request的ComId作为PD reply的ComId • 如果为0,且PD request的ComId也为0,则PD reply发送unspecified PDU |
replyIpAddress |
4字节 |
Request使用;其它情况填0 |
|
headerFcs |
4字节 |
|
• 根据PD-PDU头计算 • 计算时不包含headerFcs自己 |
dataset |
0..1432字节 |
|
必须时4字节的整数倍,不足时补零 |