恭喜,你发布的帖子
发布于 2015-12-16 14:37:48
5楼
Profibus的传输速率为96~12Mbps,最大传输距离在9.6~187.5kbps时为1000m,500kbps时为400m,1500kbps时为200m,3000~12000kbps时为100m。
总体来讲, 一个PROIFBUS-DP从站, 需要1毫秒的轮询时间(通俗讲, 即数据扫描,交换时间) 如果一个网络, 下面挂了100个DP设备, 则一个数据交换周期, 至少100ms. profibus 是主从 结构网络, 每个从站, 最多224Byte In 224Byte Out 的数据, 但是每个从站实际交换数据可能很少, 总体网上的数据总量, 如果超过了DP主站卡的数据缓存, 或者波特率太慢, 超过了一次扫描所需的时间, 则需要2次轮询扫描, 有时候, 可能会导致偶尔设备离线报错, 故DP主站卡所在的CPU扫描时间, 也是关键的因素.
总结以上, 根据总电缆长度 , 选择合适的波特率. 根据通讯字节总量, 设置CPU扫描速度.
经验值, 一般设置500K-1.5M波特率比较适中, CPU扫描时间200ms. 既不会太慢, 有不会应为电缆质量和长度导致问题. (当然, 要求快速响应的系统, 如50ms, 则不能挂太多DP设备,和控制总通讯字节, 你不能既要求快速响应,又要求带设备多, 数据多, 这是一个平衡).
另外导致 DP离线, 还有其他问题, 如接地, 终端电阻是否匹配, 网络上有无坏节点等, 最好的方法,是使用DP侦听器, 分析一下通讯品质,找出你报错的那个站点。是干扰还是DP总线有问题。处理好。
Profibus 网络Ttr周期由下面因素决定。
Ttr = ( TSYN + T ID1 + T SDR + Header + I x 11TBit + 0 x 11TBit ) x Slaves/BdsDP
TID1= 在主站的空闲时间=典型的75个位时间
TSDR= 在从站的站延迟时间=典型的11个位时间
Header =在请求和响应帧中的电文头= 198个位时间
I =每个从站的输入数据字节数
O =每个从站的输出数据字节数
Slaves =从站个数
BdsDP=总线波特率
其中TSYN + T ID1 + T SDR + Header=常数371,所以公式个简化为
Ttr = ( 371 + 11(I+O)) x Slaves/BdsDP
第二,关于你的,总结以上, 根据总电缆长度 , 选择合适的波特率. 根据通讯字节总量, 设置CPU扫描速度.
设置CPU扫描速度,是怎么样实现的?我记得SIEMENS PLC 不具备设定恒定扫描时间的功能,部分美系PLC 具有 设置 Sweep mode 的功能,可以实现 恒定的程序扫描周期。
请填写推广理由:
分享
只看
楼主