找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
你爹程序使用的数据块的地址有错误,你访问了不错在的地址,比如你的db1地址是到128,而你访问了db1.dbd130,这样就会出现你的错误。 抄自:zhangli0
以下抄自:Bob Wu - 中级工程师 第10级
很明显是在调用功能块FB1时自动读取当前背景数据块DB1中的参数无法找到对应数据块DB1中的双字参数(地址为DB1.DBD12),可能原因是:在建立背景数据块时错误,FB1中的行参与DB1中的实参不一致(FB1中未定义而调用、行参与实参数据类型不一致),DB1未与程序一起下载到PLC中;
你在建立FB1的背景数据块DB1是必须注意方法,正确的步骤是:在SIMATIC管理器中,如果你已经建立了FB1块,依次展开到“快”,选定菜单“Insert/S7 Block/Data Block”(插入/S7块/数据块),在打开的“Properties--Data Block”(属性-数据块),“Name and type“(名字和类型)中,采用自动生成的名称DB1,选择数据块的类型为Instance(背景数据块),这样自动形成一个新的数据块,你在保存时,将自动生成与FB1对应的背景数据块DB1中的数据,其变量与对应的功能块FB1中的变量声明表中的变量相同,不能在DB1中增减变量,只能在数据显示方式(在打开DB1数据编辑器的菜单View(查看)中,选择Data View(数据显示)下修改实际值,或者通过对应的DB1的变量声明表来修改;
你可能在修改FB1时,没有执行相应的操作,使FB1中定义的变量与DB1已经不一致,而且你修改后必须把数据块与程序块一起下载到PLC 中,才能被FB1访问;你可以在建立FB1后,删除DB1,按照上述方法重新插入DB1块,编译并下载到PLC中;
你可以同时打开FB1块与DB1块,比较DB1中的数据与FB1变量声明表的变量之间的对应关系,变量是否相同;在你的FB1程序中是否调用了没有在变量声明表定义的变量地址,无法在DB1中找到对应的数据;
在FB1的变量声明表中,IN参数可以是常数、绝对地址或符号地址定义;OUT和IN_OUT参数必须作为绝对地址或符号地址定义;必须保证所有地址和常数与要传送的数据类型相符;
你在调用FB1时,由于实际参数是数据块DB1,必须指定完整的绝对地址,如DB1.DBW12
很可能你在FB1编写程序调用的变量未定义或DB1中无对应的参数值(DB1.DBW12)不存在,是CPU程序执行时读写错误,你可以下载对应的OB121块;这样就不会产生“编程错误引起的 STOP 模式(OB 没有装载或不能装载,或没有 FRB”信息
原帖地址:http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=61093&cid=1029
另补充一点,改过程序必须编译保存再下载,编译保存是在你电脑上进行,不会引起CPU重启,,最好是把PLC的程序上传上来改动编译一下再单独下载FC20。
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城