使 用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”。