wincc脚本C程序不循环

我在WINCC脚本编辑器里编写了如下一段C 程序,想把数组E[0][0]、E[0][1]、E[0][2]分别赋给a,b,c。然后再界面上显示出来。可是为什么只显示E[0][0]的值,其余两个的不显示呢?为什么FOR循环没有效果?求高手解答
#include "apdefap.h"
void xx_1()
{

int n;
float a,b,c;
char str1[100]="NewTag_";
char str[100];
int row,line;
float E[1][3];
row=1;
for(line=1;line<=3;line++)
{
n=row*10+line;
sprintf(str,"%d",n);
strcat(str1,str); //Return-Type: char* 
E[row-1][line-1]=GetTagFloat(str1); //Return-Type: float 
}

SetTagFloat("a",E[0][0]); //Return-Type: BOOL 

SetTagFloat("b",E[0][1]); //Return-Type: BOOL 

SetTagFloat("c",E[0][2]); //Return-Type: BOOL 

}

问题补充:
我其实是想做一个测试,看看可不可以用循环的办法 一次性把变量表里“NewTag_11”、“NewTag_12”、“NewTag_13”这三个变量的值赋给数组 E[0][2]的三个对应值。
因为我需要把变量表里105个类似于“NewTag_11”变量的值赋给数组 E[7][15],如果可以循环赋值,就能大大减轻我的工作量。这个是模糊控制的隶属函数表,因为要求在线修改隶属度的值,所以只能是给每个隶属度都存一个变量。在模糊控制规则表的计算中要用到E[7][15]这个矩阵。

最佳答案

问题应该出在这句代码上:
strcat(str1,str); //Return-Type: char* 

FOR循环第一次执行时,STR1的值是NewTag_11,是有效的变量名,所以能取到正确的值。
FOR循环第二次执行时,STR1的值不是NewTag_12,而是NewTag_1112,不是有效的变量名,所以不能取到正确的值。
至于第三次循环执行时,得到的是NewTag_111213,而不是NewTag_13。

把这两段代码:
sprintf(str,"%d",n);
strcat(str1,str); //Return-Type: char* 
改为:
sprintf(str1,"NewTag_%d",n);
应该就可以解决问题。

提问者对于答案的评价:
我测试过了,果然是这样。
真是太感谢你了,让我学到了新的东西。谢谢谢谢!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午5:46
下一篇 2019年6月11日 上午5:46

相关推荐

  • 如何用C脚本比较两个变量里面值的大小

    用C脚本比较两个变量里面值的大小,如果大于,执行一条语句,如果小于执行另一条语句。谢谢! 最佳答案 if GetTagFloat("tag1")&gt…

    SIMATIC WinCC 2017年8月15日
  • Windows 7sp1 安装wincc7.4有什么别的系统要求?

    安装wincc7.4,安装完成后,出现问题,如图,请各位大神们,有没有知道如何解决的?打开wincc创建新项目失败,然后去setPC/PG 32 位 …

    2021年7月5日
  • WINCC 鼠标捕捉

    我想实现以下功能:  我的画面上有许多分散的图形(比如按钮),鼠标要点到有点难,而且容易漂移。所以想做个程序,使得鼠标靠近某个按钮时,鼠标能自动的落到按钮上,而…

    SIMATIC WinCC 2019年6月11日
  • 两个函数趋势控件为什么不能同时运行

    一个界面上有四个的函数趋势控件,都采用在线变量进行数据连接,而且在线变量都是各不相同的。这四个控件对应的脚本运行函数都是独立的,不存在先后的顺序。一个函数趋势显示的时间大概为5S。…

    SIMATIC WinCC 2019年6月11日
  • wincc 报表疑问

    各位高手,请教个问题:我要在WINCC中建立三个报表1、开关量状态报表,2、报警消息报表,3、温湿度数据报表。请问如下问题:(1)、报表编辑器也是画面形式,那么我还要在图形编辑器里…

    SIMATIC WinCC 2019年6月11日
  • wincc用户归档外部变量的问题

    wincc用户归档在归档内部变量是没问题,但是添加外部变量后job返回值就变成-1,授权安装的很全,电脑是纯净xp系统,把外部变量删除了就恢复正常,外部变量也都是跟用户归档对应的数…

    SIMATIC WinCC 2021年7月5日
  • WINCC V6.0安装过程中遇到的问题

    在安装WINCC V6.0时,安装了以下授权:          &n…

    SIMATIC WinCC 2019年6月11日
  • wincc 数据报表问题

    在运行的电脑上可以查询报表且有数据,为什么把工程复制到别的电脑查询报表是空的 最佳答案 项目复制器复制的项目不复制归档数据,手动拷贝归档数据进行加载,在线表格控件链接备份,脚本链接…

    SIMATIC WinCC 2021年7月5日
  • wincc画面不能切换有什么原因

    画面只能停留在一个上,不能切换,用项目复制器复制的 最佳答案 直接右键切换的按扭—-属性,打开点直接连接,选择对应的项目就可以了。 提问者对于答案的评价:谢谢大家

    SIMATIC WinCC 2019年6月11日
  • 我的程序错在哪里啊?

    我想做个小程序,就是按下按钮,静态文本1的文本放到静态文本2里,再按下按钮,静态文本2里没有字。我用C语言写的,但老提示i 在之前有期望值。帮忙看下 我的程序。…

    SIMATIC WinCC 2018年3月6日