6SL3060-4AB00-0AA0连接电缆
s7-300/400cpu在下载用户程序后,会出现cpu处于停止状态,stop和sf指示灯亮的现象。在线查看cpu的诊断缓冲区,会出现两种现象:
1、第一条显示由io访问错误引起的停止模式,第二条显示i/o访问错误(见图1)。
图1 io访问错误
图1中的第二条诊断信息显示的含义是:
i/o access error,writing——说明对一个输出地址进行写数据操作时发生错误。
parea,word access,accessaddress:200——说明是使用立即访问方式,字地址200。这两条合起来就说明对pqw200进行写操作时发生了错误。出现这样的错误多是程序中对pqw200这个地址进行了赋值,而实际的硬件配置中并没有分配pqw200这个地址。
2、或者是第一条显示由编程错误引起的停止模式,第二条显示区域长度错误(见图2)。
图2 区域长度错误
图2中的第二条诊断信息显示的含义是:
area length error when reading——说明读取一个地址时发生长度错误。
bbbbbb db,word access,accessaddress:2——说明是访问db块中字地址2。这两条合起来就说明对全局db块中dbw2进行读取时发生了错误。这样的错误多是由于程序中使用了db块中的某个数据,db块实际长度并没有包含所使用的地址造成的。
解决办法
出现上面两种编程使用错误地址导致cpu停机的情况时,除了可以根据诊断信息分析出错误地址使用交叉索引找到相应的语句外,还有一个更加简便的办法。打开cpu诊断缓冲区,鼠标点中第一条诊断信息,接着再点击下面的“openblock”按钮,会直接打开相应的错误语句。下面举例说明。图3中的诊断信息显示编程错误导致的停止,错误的原因是区域长度错误。点中“openblock”按钮,自动定位到程序中的错误语句(图4),里面使用到地址db1.dbw2。打开db1发现实际长度只有2个字节(图5),不存在dbw2这个地址,才产生错误。造成io访问错误的语句也可以通过此方法查找。
图3 open block
图4 错误语句
图5 db1实际长度
step7 中的ob,fc,fb,db都可以设置一些特殊属性,本文介绍这些属性的含义及设置方法。选中ob,fc,fb,db,在右键菜单中找到“bbbbbbproperty”,打开如下属性页。
图 1 fc 的属性页
db is write-protected in the:
db 块特有的属性,勾选后db块写保护。程序执行时只能读取db中的内容,不能修改其中的内容。尝试向写保护的db中写入数据会导致cpu报编程错误。如果没有下载ob121会导致cpu停机。
standard block:
西门子的标准块,已经包含 know how protection,包含 name,version,family,author信息。这个复选框是只读的,无法修改。
know-how protection:
勾选后无法看到程序块的代码,只能看到接口信息。在这儿是只读的。需要通过编译源文件增加这个属性。具体如下
打开要设置该属性的程序块,在“file”菜单中选择“generatesource”,打开如图2的界面。在左侧选中“sources”目录,“bbbbbbname”填写要生成的源文件的名字。*后按确认键,打开图3所示的界面。
图 2 生成源文件第一步
在图3的界面中左侧是未选中的程序块,右侧是已经选中的程序块。点击向左或向右的箭头可以将程序块在两侧移动。如我们只生成fc2的源文件,只需将fc2移动到右侧。点击确认按钮就会自动在“source”文件夹下生成名字“bb”的源文件。
打开“bb”源文件,在图4中所示的位置添加“know_how_protect”。保存。在源文件编辑器的“file”菜单中找到“compile”子菜单,点击确认,更改过的原文件会重新在“block”目录中生成fc2。注意编译前要关掉之前打开的fc2程序块。编译完成后,回到“block”中再检查 fc2,会发现fc2的图标已经有了一个加锁的标记。打开fc2 无法看到内部的程序,只能看到接口信息。
图 3 生成源文件第二步
图 4 在源文件中添加know_how_protect 属性
unbbbbed:
只有db块可以勾选该属性,默认是不勾选的。勾选后db块只保存在装载内存中,不会下载到工作内存。勾选该属性的db块不能用通常的方式访问,只能用sfc20blkmov 或 sfc83 read_dbl 访问。non retain:
只有db块可以勾选该属性,默认是不勾选的。只有cpu支持时该选项才有用。勾选该选项后db块中的当前值不会掉电保持,下次上电时或者cpu从 stop 切换到run 时db块中的数据会恢复到初始值。cpu 是否支持non retain请参考cpu技术参数手册。不支持该属性的cpu勾选后不会有任何作用。
block read-only:
该选项如果勾选,程序是只读的,无法修改。无法直接勾选设置,设置方式如下:
打开要设置该属性的程序块,在“file”菜单中找到“storeread-only”,在第一个弹出对话框中直接点击确认。在第二次弹出的对话框中,点击“rename”,将名字fc4更改为fc5。点击确认后,会另存为一个只读的fc5。打开fc5时,会提示该程序是只读的。只能浏览,在线监控,无法修改fc5中的内容。
图 5 store read-only