网站大量收购闲置独家精品文档,联系QQ:2885784924

现场总线控制系统(FCS)系列:Bosch Rexroth Sercos III_(18).SercosIII的数据传输与实时性能.docx

现场总线控制系统(FCS)系列:Bosch Rexroth Sercos III_(18).SercosIII的数据传输与实时性能.docx

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE1

PAGE1

SercosIII的数据传输与实时性能

数据传输原理

SercosIII(SerialReal-timeCommunicationSystem)是一种高性能的现场总线系统,广泛应用于工业自动化领域,特别是对实时性能要求极高的场合。SercosIII的数据传输基于以太网技术,采用了时间分割多路复用(TDM)和循环冗余校验(CRC)等机制,确保了数据传输的高效性和可靠性。

1.以太网基础

SercosIII使用标准的以太网物理层,但采用了专有的协议层来实现实时数据传输。以太网是一种广泛使用的局域网技术,具有以下特点:

高速传输:以太网支持从10Mbps到100Gbps的传输速率。

广泛兼容:以太网设备和网络基础设施非常普及,易于集成。

开放标准:以太网是一种开放标准,所有设备制造商都可以遵循该标准生产设备。

2.时间分割多路复用(TDM)

SercosIII通过时间分割多路复用(TDM)技术来实现数据的高效传输。TDM将一个周期时间分割成多个时隙,每个时隙用于传输特定类型的数据。这种方式确保了不同类型的通信需求可以在同一个周期内得到满足,而不会互相干扰。

TDM周期结构

一个典型的SercosIIITDM周期包括以下几个阶段:

启动阶段:周期开始时,主设备发送一个启动帧,通知从设备开始新的周期。

数据传输阶段:主设备依次发送数据帧,每个数据帧包含了特定从设备的数据。

同步阶段:主设备发送同步帧,确保所有从设备的时钟同步。

诊断和维护阶段:主设备发送诊断和维护帧,用于检查从设备的状态和进行必要的维护操作。

3.循环冗余校验(CRC)

为了保证数据传输的可靠性,SercosIII采用循环冗余校验(CRC)技术。CRC是一种检错码,通过在数据帧中添加一个校验码,接收设备可以检测到传输过程中可能发生的错误。

CRC计算

CRC的计算通常使用多项式算法。例如,SercosIII使用CRC-16-CCITT多项式:

defcrc16_ccitt(data):

计算CRC-16-CCITT校验码

:paramdata:输入数据(字节列表)

:return:CRC-16-CCITT校验码

POLY=0x1021#CRC-16-CCITT多项式

crc=0xFFFF#初始CRC值

forbyteindata:

crc^=(byte8)

for_inrange(8):

ifcrc0x8000:

crc=(crc1)^POLY

else:

crc=1

crc=0xFFFF#保持16位

returncrc

4.实时性能

SercosIII的实时性能主要通过以下几个方面来实现:

确定性通信:SercosIII通过TDM技术确保每个从设备在每个周期内的通信时间是确定的,不会受到其他设备的影响。

低延迟:数据传输的延迟时间非常短,通常在微秒级。

高带宽:支持100Mbps的传输速率,可以传输大量的数据。

冗余机制:通过双环路设计,确保在网络故障时仍能保持通信的可靠性。

确定性通信示例

以下是一个简单的Python示例,模拟SercosIII的确定性通信过程:

classSercosIII:

def__init__(self,cycle_time,devices):

初始化SercosIII通信系统

:paramcycle_time:周期时间(微秒)

:paramdevices:从设备列表

self.cycle_time=cycle_time

self.devices=devices

self.current_time=0

defstart_cycle(self):

启动新的周期

self.current_time=0

print(启动新的周期)

defsend_data(self,data,device):

发送数据到指定设备

:paramdata:数据(字节列表)

您可能关注的文档

文档评论(0)

kkzhujl + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档