- {{item.name}}
为什么调用FC6 "AG_RECV"时会出现状态字"80B1"
- 0
- 131
- 5647
1问题描述
使用CP342-5进行PROFIBUS FDL广播通信的时候,S7-300侧调用FC6 "AG_RECV"接收数据。当发送的长度小于66字节时,虽然FC6 "AG_RECV"的数据接收缓冲区长度和发送长度一致,还会出现错误,状态字显示为"80B1H"。查看STEP7帮助,含义为目标区域太短。具体现象如图1所示。
图1 具体现象
2错误原因
出现上面的现象是因为在PROFIBUS网络属性中激活了“周期发送总线参数”这个选项(见图2)。一旦激活了此选项,那么CP模板会周期性的以广播的方式发送PROFIBUS网络参数,而且这个广播报文的长度是66字节。由于PROFIBUS FDL广播通信是SDN(Send Data with No Acknowledge)方式,数据接收是无条件的。因此,FC6 "AG_RECV"会接到通信伙伴以广播方式发送的两组数据,一组是8字节的真正要通信的数据,另一组就是66字节的总线参数。所以才会出现"80B1H"目标区域太短的错误。
图2 PROFIBUS网络属性
3 解决办法
可以有两个办法解决此问题。
办法一:取消激活PROFIBUS网络属性页中“周期发送总线参数”这个选项。
办法二:通过程序对数据进行判断。PROFIBUS FDL广播通信有一个特点,那就是发送 数据的前四个字节作为报文头必须保留,系统会自动在里面加上数据发送方的信息。接收方通过接收到的数据的报文头可以判断出数据源。报文头的定义如下:
1) 第一个字节:PROFIBUS站地址
2) 第二个字节:LSAP
3) 第三个字节:常数W#16#7F表示SDN方式
4) 第四个字节:空
因此,可以直接将FC6 "AG_RECV"的接收数据缓冲区开到最大240个字节。这样,不论是实际的通信数据报文还是总线参数报文长度都允许。然后再通过程序判断,当接收到的报文头中发送方的站地址和LSAP与Netpro中数据发送方FDL广播连接配置一致时再将数据从缓冲区中复制出来(见图3,图4)。
图3 FDL连接属性
图4 程序处理
关键词
CP342-5,FC6 "AG_RECV",FDL,广播,80B1
剩余80%未阅读,请登录后下载/查看文档
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错
- SIMOTION 通过 PN 与CU320 IRT 通讯,当实际拓扑与配置拓扑不同时会出现什么报警
- 当在 STEP 7的 CPU 中用户程序里调用 FC5/50 和 FC6/60 通讯块时需要记住的要点有哪些?
- 怎样使用通讯功能块FC5和FC6?
- 将TIA Portal V15.1的HSP 0185(SINAMICS V90 PN)从V1.0更新到V2.0后,为什么打开TIA Portal项目时会收到消息?
- 为什么当更新 TIA Portal 项目到 V15 时会提示 HMI 设备不支持的错误消息?
- 为什么会出现“I/O访问错误”和“区域长度错误”
- 在 STEP 7 (TIA 博途) 中,如何格式化 MMC 或 MC 卡并且为什么会出现 SDB 7 没有装载的提示信息?
- 通过 TIA WinCC V16 向 HMI 面板中传送配置时,为什么会出现 “目标设备匹配失败” 错误?
- 在安装外夹式流量计时,什么情况下会出现 Low Signal(低信号)或Detection Fault(检查错误)报警?分别代表什么意思?
- MM4:当使用差分连接的编码器反馈信号线断线时,变频器不会出现F0090故障而停车
{{item.nickName}}