fc10字符串比较的问题

最近做个程序,比较二个字符串是否相同,我新建一个共享DB1数据块里面有两个变量
 1: Name_1    初始地址 0.0     类型string[32],
 2;    Name_2   初始地址 34.0     类型string[32],
 现在我在ob1中调用fc10如下
       CALL  "EQ_STRNG"
        S1     :=DB1.Name_1         // P#DB1.DBX0.0
        S2     :=DB1.Name_2        //P#DB1.DBX34.0
        RET_VAL:=M0.0
 然后我在wincc中做两个字符串变量,在 WINCC里把这两个变量改变为一样和不一样M0.0都没有变化,是什么原因呢?我查了下fc10的功能帮助,显示在调用fc之前,必须在string数据类型的临时变量的管理字节“maximum string   lenght”输入定义的字符串长度,和这个有关系吗?如果有应该怎样改,另外,在step7的变量表里面怎样监视字符串变量呢,请大侠们指点。

最佳答案

1、先回答后面的问题,如果是STEP7 V5.5 以前的版本,只能在变量表中一个字节一个字节的显示,头两个字节用十进制,后边用字符,这样就一目了然了;
2、前面的问题涉及到字符串头两个字节,他们有特定含义,第一个表示您的字符串总长度,例如您的程序中定义的,应该是32,而第二个字节是根据您的需要可以调整,在这可以叫需要比较的有效长度,比如你需要比较32个字符中前8个的异同,那就把它赋值为8,就可以了。如果通过WINCC给过来两个字符串的前8个字符都一样,那么返回值M0.0会置1。
3、收工!

提问者对于答案的评价:
非常感谢,我在wincc里面的字符串把前两个字节也算进去了,所以怎么都不行,太感谢了

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc251445.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月5日
下一篇 2018年12月5日

相关推荐