找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
一般对于模拟量输入/输出(AI/AO)和数字量输入/输出(DI/DO)需要在CPU中下载诊断中断处理组织块OB82,并且在硬件组态界面中双击你的模块,在其属性中使能诊断中断功能(但并不是所有模块都支持,你在把模块插入机架时,在其属性界面中可以看到),如模拟量输入模块SM331 AI8X12Bits支持诊断中断功能,在属性中子相”Inputs“(输入)中选择0-1通道组(必须2个通道为一组)为2线制电流(2DMU),其他通道为电压,选择具体的量程卡;选中”Enable“(启用,即使能)框中的”Diagnostic“(诊断中断)前大勾;选中”Diagnostics“(诊断)选项中的0-1通道组中的”Group Diagnostics”(组中断)和“with Check for Wire Break”(检查断线断开)选项,单击“确定”,保存编译并下载到PLC中。
像上述模块具有诊断能力又使能了诊断中断,当PLC检测到错误时,它输出一个诊断请求给CPU,以及错误消失时,操作系统都会调用OB82。当一个诊断中断被触发时,有问题的模块自动地在诊断中断OB82的启动信息和诊断缓冲区存入4字节的诊断数据和模块的起始地址,通过调用SFC51“RDSYSST”读出模块的诊断数据,用“SFC52_USMSG”可以将这些信息存入诊断缓冲区。其中OB82中的临时变量OB82_MDL_ADDR读出就是产生诊断中断的模块的逻辑地址。
实际编程也比较简单,在SIMATIC管理器S7 Program(1)(S7程序(1))下插入一个STL source(STL 源文件),打开OB1,通过操作左边New Network/Libraries/Standard Libraries/System Function Blocks(新网络。库。标准库/系统功能块)下找到SFC51“RDSYSST DIAGNSTC”,按你的电脑中F1键,出现SFC51帮助信息,在最底部点击“Example for module diagnostics with the SFC51”(使用SFC51模块诊断的例子),然后点击“STL Source File”,选中全部STL Source源程序复制到STL Sources(1)中,编译保存。这时在Blocks(块)中生成OB81、0882、DB13和SFC51。然后对程序简单修改,下载到CPU中,既完成了编程。打开DB13数据块,在线监控诊断信息。
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城