工控编程吧

标题: 字符串WINCC I/O显示求教 [打印本页]

作者: baikhgmv    时间: 2016-9-22 12:29
标题: 字符串WINCC I/O显示求教
字符串WINCC I/O显示求教遇到一个字符串显示的问题,STEP7接收到一个12个字节长度的字符,想在WINCC上用I/O显示,用的8位文本字符串显示,运行起来以后显示框老变灰色,显示不出来,不知道什么问题,我收到的其实是12个字符,我就用开始的字符建立了一个长度为12的变量,另外还尝试着把这12个字符放进STING[11]所占用地址的2到第13个字节,建立变量之后依然显示不出来,求指点!用的WINCC6.2


--------自己搞出来了,第一时间分享一下,问题出在WINCC建立变量这边,STYING【254】类型的,占用256个字节地址,前两个字节是字符串的长度,从第3个字节开始最大表示254个字符,以我上面的STRING[12]为例,只需要将12个字符赋值给2-13地址,字符串长度系统会自己读取显示12个,然后WINCC建立变量时候,选用8位文本字符集,接下来比较关键就是指定字符串其实地址和长度,正确的是起始地址为0,长度为12,也就是说建立变量的时候,起始地址起始是字符串长度的开始地址,而指定长度则是,实际字符串实际长度,我这里首地址是DB1.DBB0开始的长度为12的字符串显示,这样用I/O域,就显示出来你要看到的字符串了,另外 在 输入输出属性中选择“显示格式为字符串格式,选'*'以字符形式 显示“,出来你要显示的字符串内容了。

说的很多,就怕有的人看不懂,请谅解,谢谢!


--------把字符赋值给字符串的时候,也需要把实际的字符串长度赋值上,要不然WINCC会显示不出来。


-----直接raw变量
#define DATA_SIZE 20
BYTE byData[DATA_SIZE];//Get the current values of the tag
GetTagRaw("gs_tag_raw",byData,DATA_SIZE);
SetTagChar("tag", byData);








欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4