西门子FC6 AG_RECV状态80B1:原因与解决办法
需积分: 9 39 浏览量
更新于2024-09-05
收藏 426KB PDF 举报
在处理西门子S7-300系列PLC中的通信问题时,遇到FC6 "AG_RECV" 函数调用时状态字显示为 "80B1" 的情况,该问题通常发生在使用CP342-5模块进行PROFIBUS FDL(Fast Data Link)的广播通信时。具体来说,当发送的数据长度小于66字节,尽管接收缓冲区的大小与发送长度匹配,但依然会触发此错误,因为激活了 "周期发送总线参数" 功能,使得CP342-5模块周期性地以广播形式发送网络参数,这部分数据的长度固定为66字节。
PROFIBUS FDL采用SDN(Send Data with No Acknowledge)模式,这意味着接收端在没有确认请求的情况下会接收所有发送的数据,包括报文头和实际数据。报文头由四个字节组成,包含发送方的站地址等信息,这是PROFIBUS FDL广播通信的一个特性。当接收FC6 "AG_RECV" 时,由于收到的是两组数据,一组是8字节的实际数据和一组66字节的参数,导致系统识别目标区域过短,从而产生 "80B1H" 的错误状态。
解决这个问题有两条途径:首先,可以禁用 "周期发送总线参数" 选项,这样就不会周期性地发送额外的参数信息;其次,可以通过编程逻辑,在接收过程中检查并过滤掉前四个字节的报文头,只处理实际数据部分,从而避免错误的发生。这样可以确保FC6 "AG_RECV" 接收的数据与预期一致,避免状态字 "80B1" 的出现。
总结来说,理解FC6 "AG_RECV" 在PROFIBUS FDL广播通信中的行为以及其状态字含义对于调试此类问题至关重要。通过调整网络配置或优化程序逻辑,可以有效避免 "80B1" 状态字的显示,确保通信的稳定性和准确性。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-09-29 上传
2024-02-06 上传
2022-12-05 上传
2024-05-27 上传
2023-07-05 上传
2022-09-20 上传
weixin_38744435
- 粉丝: 373
- 资源: 2万+
最新资源
- HDS:家居设计解决方案API
- QT单例模式,点击控件显示一次界面
- website:Codechef-SGGS-章节网站
- BLayers:Razor组件和OpenLayers JavaScript互操作
- Gabor 函数:生成二维空间 Gabor 函数。 用于生成模型简单的细胞感受野。-matlab开发
- set border body for some websites-crx插件
- 冲绳
- test softwaretest softwaretest softwaretest software
- C++网络编程编译好的Libcurl库c++ include文件和libcurl.lib下载后直接用
- build-your-own-vuex:精简vuex源代码,用最少的代码实现一个可以快速阅读的精简版vuex(预期总代码行数不超过100行)
- tvmm:Tiny Virtual Machine Monitor (TVMM) 是另一种虚拟机监视器,它是为教育和验证目的而开发的
- thready:Nim中线程的备用接口
- ECGmatematica.mat,交通标志识别MATLAB源码,matlab源码怎么用
- Count misc prices-crx插件
- WORKDAYnode.js
- apps-para-treinar-[removed]列表应用程序JavaScript