CP342-5的PROFIBUS通信

S7-300通过CP342-5与S7-400连接,其中S7-400为主站,CP342-5为从站。看了书上的例子,在从站调用FC1时,参数CPLADDR代表CP342-5的地址。
 问题:这个地址是怎么确定的,和组态的通信区有无关系,如果没有关系,那当组态了多个通信区且长度都相同时,这些通信区如何与FC1进行匹配

最佳答案

如果你定义了两个相同的长度的输入或者输出通讯区的话,
  例如 
  IB0   - IB15
  IB16 - IB31
  那么在从站中调用FC2时,对应第一个通讯地址的参数
  CPLADDR:= 16#100 (这个是CP342-5的硬件组态地址)
  RECV:=P#M10.0 BYTE 16 
  这个对应的就是IB0 - IB 15 对于从站来说存入M10.0开始的16个字节长度的区域。
  那么对应于IB 16 - IB 32 就为
  CPLADDR:= 16#100 (这个是CP342-5的硬件组态地址)
  RECV:=P#M10.0 BYTE 32 
  注意这里的指针长度要填32
  存入的是M10.0开始的32个字节长度的区域。你要找的IB16-IB32其实是在MB26-MB41这个区间内。.

  CP342的读的过程是,调用FC1将数据发送到CP342的内部存储区,CP342的内部存储区可以达到2160字节。这个区域其实可以看做PROFIBUS上从站的IO地址映射区,也就是的地址是一一对应的。
  这个对应过程是系统自动的,不需要你干预的。
  你定义了通讯区IB1-16 及IB18-19,这个数据就直接对应到了CP342内部的存储区IB1-16 IB18-19 .而在从站上,你无法直接去读取,你只能用FC2来读取,读上来的都是是从0开始的CP342的地址,只能通过改变指针长度来读取你要的数据。所以一般都只设置1个输入或者1个输出,字节长度满足通讯要求就可以了,不会分开设置,那样只会带来麻烦。
  你可以参考下载中心A0139这个文档,CP342-5的使用与常见问题 (更新版) 里面对CP342的读取有说明。

提问者对于答案的评价:
非常感谢各位大侠的帮助。谢谢你们。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc313317.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日 下午3:21
下一篇 2020年11月1日 下午3:21

相关推荐