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日
下一篇 2019年6月11日

相关推荐

  • 阀门赋值

    阀门变量有:名称(文本)、全开状态(二进制变量)、全关状态(二进制变量)、控制开关状态(二进制变量);现有50多个这种阀门,如何wincc中创建控制画面?如何将不同阀门变量赋值给这…

    SIMATIC WinCC 2021年7月5日
  • wincc自动启动中途停止

    有一Wincc7程序,做了开机自动启动,平时开机启动正常。现在出现异常:开机后能看见Wincc自动启动窗口,启动窗口中途消失,启动终止。用鼠标右击Windows桌面右下角通知区域的…

    SIMATIC WinCC 2017年12月7日
  • WinCC变量纪录打印

    WinCC中生成的变量历史记录,由于一行中要打印的列较多,A4纸竖向一行打印不下,想设置纸张为横向,请问大侠,有何高招? 最佳答案 参考资料:《如何将一个打印作业(例如在线趋势控件…

    SIMATIC WinCC 2019年6月11日
  • smart 700ie v3怎么将项目通过WinCC flexible SMART V3以太网上传到电脑上呢?

    在软件里没看到有上传选项,只有下载 最佳答案 是的,没有上传功能。可以用prosave软件给屏做备份操作,确保在屏故障时还原到相同型号的屏上。 提问者对于答案的评价:

    SIMATIC WinCC 2021年7月5日
  • wincc历史趋势不显示

    有个wincc上位机运行每隔1月历史趋势就会不显示,重启电脑后又正常了,不知道是什么原因,打400问过说要装个纯净的xp系统,ghost版的不好。 最佳答案 西门子软件对系统要求还…

    SIMATIC WinCC 2019年6月11日
  • 怎么把这13个数字显示到WINCC IO域上

    rt(这13个数是条形码) 问题补充:谁有资料 图片说明:    最佳答案 定义字符串,字符串中保存这13个数的顺序组合。然后io域链接这个字符串变量,数据类型…

    2021年7月5日
  • 怎么获取 Web Navigator客户数量使用状态 ??

    Wincc 配置了Web Navigator选件应用,能否获取到当前已使用Web Navigator客户端“登录的用户名称”以及“客户端的数量”(想在…

    SIMATIC WinCC 2020年11月1日
  • WINCC调用step7变量有几种方法

    我有那个说要集成才能调用的资料。可是我现实中看到的没有集成,好像是把step7文件和Wincc文件放在同一个文件夹,还要设什么共享。这样在WINCC的STEP 7&nbs…

    SIMATIC WinCC 2017年12月7日
  • wincc 读取不到时趋势读取不到

    wincc 正常运行无报错,趋势读取不到。重启激活后正常。来回出现问题好几次,怎么可以找到问题。重装什么的就用说了,谢谢! 问题补充:一天就出现此问题。使用率不用看。两台…

    SIMATIC WinCC 2021年7月5日
  • wincc 7.0硬件狗U盘授权能不能用来授权给wincc 7.3

    如题,我的7.0亚洲版硬件狗授权能不能用来给wincc 7.3作授权,如果可以的话要怎么使用?直接插上授权U盘就可以了吗?还是需要怎么做? 最佳答案 wincc7.0是不…

    SIMATIC WinCC 2021年7月5日