wincc中c脚本出现的问题

想要将内部变量中的数据在wincc function trend control中显示为一条曲线,wincc图形编辑器结构如下图,function trend control用于显示曲线,通过在按钮的鼠标事件中编写c脚本,实现单击按钮start就开始显示曲线,具体程序如下
char Tag_Name[101]={NULL};
short int a[101];
int b[101];
int i;
int c=0;
for(i=0;i<101;i++)
{
sprintf(Tag_Name,"%s%d","DB_VAR",i);
a[i]=GetTagSWord("Tag_Name");
printf("%d\n",a[i]);
b[i]=c;
c=c+10;
}
SetPropBOOL(lpszPictureName,"trend1","DeleteData",1);
SetPropWord(lpszPictureName,"trend1","Index",0);
SetPropBOOL(lpszPictureName,"trend1","Online",FALSE);
SetPropBOOL(lpszPictureName,"trend1","Activate",FALSE);
SetPropBOOL(lpszPictureName,"trend1","ItemVisible",1);
SetPropBOOL(lpszPictureName,"trend1","AutoRangeY",0);
SetPropBOOL(lpszPictureName,"trend1","AutoRangeX",1);
SetPropDouble(lpszPictureName,"trend1","BeginY",-1.0);
SetPropDouble(lpszPictureName,"trend1","EndY",1.0);
for(i=0;i<101;i++)
{
SetPropDouble(lpszPictureName,"trend1","DataX",b[i]/100);
SetPropDouble(lpszPictureName,"trend1","DataY",a[i]/100);
SetPropBOOL(lpszPictureName,"trend1","InsertData",1);
}
SetPropBOOL(lpszPictureName,"trend1","Online",1);
SetPropBOOL(lpszPictureName,"trend1","Activate",1);
全局脚本诊断窗口用于诊断脚本错误,激活wincc,单击按钮后出现的情况就是图形编辑器图片的情况。没有显示曲线,错误提示找不到变量Tag_Name。Tag_Name的作用体现在程序for(i=0;i<101;i++)
{
sprintf(Tag_Name,"%s%d","DB_VAR",i);
a[i]=GetTagSWord("Tag_Name");
通过sprintf将wincc中内部变量的名称指定,然后将内部变量的数据放入对应a[i]中。我查的资料表明我应该可以实现内部变量放入c脚本变量功能。
为什么会出现这种情况?怎么修改?
请各位大佬帮忙解决一下问题,非常感谢。

问题补充:
非常感谢两位大佬,将双引号去掉后原来的问题是解决了,但出现了新的问题,全局脚本-诊断先是因为程序printf("%d\n",a[i]);显示出放入a[i]数据,但for循环结束后出现如下图的情况,是什么情况?解决方式?麻烦各位大佬再回答一下,非常感谢。

图片说明:

wincc中c脚本出现的问题    wincc中c脚本出现的问题    wincc中c脚本出现的问题   

最佳答案

1、a[i]=GetTagSWord("Tag_Name");改成:a[i]=GetTagSWord(Tag_Name);当里面加了引号之后,就是固定的变量了,相当于WINCC里面Tag_Name的变量,你这相当于间接寻址,引用的是C脚本的变量,不能加引号
2、把前面正常的printf先注释掉,然后在下面加printf,看看程序是那一句出现的问题
可以先隔上几行加一个,先缩小范围再一行一个这样就能找到哪一句的问题了
看诊断问题是有个属性你写错了

如果连续出了很多,那就在for循环里面

提问者对于答案的评价:
非常感谢三位大佬,特别是ISIEMENSID大佬和RENHQ大佬,回答得很详细了,但怪我愚笨,可能是理解错了RENHQ大佬的寻错方法,不知如何改错,我会再发一次问答,希望大佬们还能来帮忙解答问题。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午2:00
下一篇 2021年7月5日 上午2:01

相关推荐

  • wincc授权含义

    wincc授权中的 RC 256 PTG 512 ATG是什么意思?请高手指点 最佳答案 参考问题ID: 36334的答…

    SIMATIC WinCC 2019年6月11日
  • Wincc报表编辑器可以打开,但是打开系统文档时出错,保存文档也出错!

    Wincc报表编辑器可以打开,但是打开系统文档时,提示打开文档时出错,新建的文档保存提示保存文档时出错! 最佳答案 1、你打开的项目版本是否与你现在PC上安装WINCC版本兼容?2…

    SIMATIC WinCC 2017年11月18日
  • wincc全局脚本执行问题求助

    我在WINCC全局脚本中做了一个通过外部变量(变量名为A1,地址M10.0)触发的脚本,触发周期为变量变化时,通过STEP7程序将A1置位,然后在脚本中判断A1是1时执行IF语句,…

    SIMATIC WinCC 2019年6月11日
  • 许可证密钥问题

    本人从网上下载了Wincc   flexble2007安装后,安装了许可证管理器,在许可证管理器里面无许可证密钥,怎样才能得到密钥请高手帮忙,万分感谢…

    SIMATIC WinCC 2019年6月11日
  • WinCC三维动态图

    请问WinCC三维动态图如何绘制,通过Soildworks画出的图除了截图以外还可以怎么导入使用,或者有其他方式能够导入图形吗?需要三维动态图 问题补充:是这样的,三维图是可以画,…

    SIMATIC WinCC 2021年7月5日
  • wincc调用MSComm控件

    在wincc画面中插入MSComm控件后,点击运行系统,此时运行系统就会报错 问题补充:wincc运行系统报错 图片说明:    最佳答案 您是什么系统?我在W…

    2017年6月3日
  • wincc和Access连接写如变量

    我要把在WINCC中设定的变量(多个变量)保存到ACCESS数据库,用的时候再从ACCESS中提取写入PLC,分别用保存,读取,增加,按钮实现,怎么做,最好详细说明, 最佳答案 W…

    SIMATIC WinCC 2019年6月11日
  • 一个1500能用多少个wincc监控?

    基于WinCC消息系统的智能诊断 课程编号:V2666 课程主要内容:<br/>-消…. 点击这里,打开新窗口观看完整视频 该视频下的所有用户提问列表 一个1500…

    2020年11月1日
  • WINCC按钮组

    我在工程中需要制作10个按钮,点任意一个按钮后变色,点其他按钮后变色按钮恢复,所点那个按钮变色,如何做,有点类似于WINCC自带的选项组的功能,但要用按钮,谢谢各位高手!! 最佳答…

    SIMATIC WinCC 2019年6月11日
  • wincc7.0 SP3 能安装到XP系统上吗?

    wincc7.0 SP3  能安装到XP系统上吗? 最佳答案 可以的 Microsoft Windows XP&nbsp…

    2021年7月5日

发表回复

登录后才能评论