恭喜,你发布的帖子
发布于 2018-08-28 09:23:42
5楼
问题3:在某一部分程序的移植中,程序做了一部分封装规整。但是中间又一次下装程序后,发现与HMI通讯的部分不行了,具体表现为,CPU无故障显示,wincc变量连接显示正常(有个小√),但是画面上所有的与之相关的元素都跟没有连接变量一样。
单单从画面跟断开一样这种现象来讲,自己也是遇见过好多次了,基本上都是查询变量的质量代码,确定具体的未连接问题。
不过这里有个小插曲,wincc7.4变量管理里不能直接看变量的质量代码了,之前wincc7.0版本都是可以的。
木的办法,只好在画面编辑界面加色块,用来显示问题变量,加入质量代码的判断来找问题。这里插一个wincc的质量代码及其意义(下面代码释义摘自西门子wincc7.4 SP1使用手册1)
质量代码
(十六进制)
0x1C 劣 (0x1C) 不能使用
0x18 劣 (0x18) 无通讯(无可使用的值)
0x14 劣 (0x14) 无通讯(最后一个可使用的值)
0x0C 劣 (0x0C) 设备故障
0x08 劣 (0x08) 未连接
0x04 劣 (0x04) 组态错误,不接受值
0x00 劣 (0x00) 未指定
0x28 劣 (0x28) 与过程有关,替换值
0x2B 劣 (0x2B) 与过程有关,无维护
0x68 不确定 (0x68) 需要维护
0x60 不确定 (0x60) 模拟值
0x54 不确定 (0x54) 超出工程单元范围,没有设置限制
0x55 不确定 (0x55) 超出工程单元范围,设置了下限
0x56 确定 (0x56) 超出工程单元范围,设置了上限
0x78 不确定 (0x78) 与过程有关,无维护
0x4C 不确定 (0x4C) 初始值
0x48 不确定 (0x48) 替换值设置
0x44 不确定 (0x44) 最后一个可使用的值
0x40 不确定 (0x40) 未指定
0x02 上限 (0x02)
0x01 下限 (0x01)
把不同的质量代码编辑成不同的颜色,根据色块的颜色来判定具体的故障。当然也可以直接根据质量代码直接显示不同的静态文本。试了试这个,试到一半还没找到问题。
最后想到可能是之前下装为了编程方便,在和winc通讯的相关DB块的字节长度上连接了NOP块,而不是一个一个指定固定数字。
把这个NOP取消之后,编译下装,一切正常。
原因分析:
自己在DB块的长度引脚添加NOP块本身是没有什么问题的,但是问题出现在这个块被添加到了DB块之后。CPU在启动之后先执行了DB块的初始化,初始化的时候,这个NOP的值并没有执行到,也就是相当于DB块没有被定义长度,但是呢这个DB块又存在,所以导致了画面连接不到变量。
解决:把这个NOP块添加到最前面,尝试后,一切OK
请填写推广理由:
分享
只看
楼主