使 用opc scout监 视s7-300/400的string类 型变量,但是在opc scout中 总是没有字符显示。
如 图1所 示,在plc的db1中 定义了两个字符串s1和s2。
图 1
在ob1程 序中为字符串s2赋 值如图2。
图2
如 图3所 示,opc scout中 定义了两个item, 分别监视db1中 的两个字符串s1和s2, 结果第一个字符串可正常显示字符串内容,第二个字符串无字符显示。
图3
string数 据类型作为复杂数据类型无法在db块 中直接监视,可通过变量表来监视但需要拆分为多个字节来监视和修改,如图4变 量表中监视两个字符串的部分字节。
图4
对 照图5所 示sting数 据类型的结构来看,db1.dbb0和db1.dbb12分 别为字符串s1和s2的 最大长度,db1.dbb1和db1.dbb13为 字符串s1和s2的 实际长度,从变量表监视结果可看到,s1的 实际长度为5个 字符,而s2的 实际长度为0, 所以在opc scout中 监视s2始 终都没有字符显示。
图5
解 决方法:
在 程序中增加为s2实 际长度字节赋值的指令。如将实际长度3通 过move指 令传递给db1.dbb13, 在opc scout中 能看到第二个字符串显示位“fal”。如 果将s1的 实际长度字节值修改为3, 在opc scout中 显示的字符串将是“abc” 而不是现在的“abcde”。