wincc function trend control显示趋势曲线问题

我是在plc300采集了正弦波信号的100个离散值(不断采集更新),储存在DB1中,通过原始数据类型变量传送给wincc,wincc通过编写c脚本对原始数据类型变量进行解包,将解包好的数据储存在内部变量DB_VAR1至DB_VAR100中(c脚本周期为250ms,会不断更新内部变量数据)。想用wincc自带的 winnc function trend control来画线,每个点的横纵坐标均由用户编写脚本程序自行设定。通过调用SetPropDouble函数修改“DataX”、“DataY”属性,调用SetPropBOOL函数执行插入数据点命令,将实时数据或历史数据用描点,连线的方式在控件中显现出来。wincc中图形编辑器结构如下图,通过在按钮的鼠标事件中添加c动作,实现单击按钮就在function trend control显示趋势曲线,c动作程序如下:
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);
}
for(i=0;i<101;i++)
{
a[i]=GetTagSWord("DB_VARi");
printf("%e\r\n",a[i]);
}
for(i=0;i<101;i++)
{
b[i]=c;
c=c+10;
printf("%e\r\n",b[i]);
}
SetPropBOOL(lpszPictureName,"trend","DeleteData",1);
SetPropWord(lpszPictureName,"trend","Index",0);
SetPropBOOL(lpszPictureName,"trend","Online",FALSE);
SetPropBOOL(lpszPictureName,"trend","Activate",FALSE);
SetPropBOOL(lpszPictureName,"trend","ItemVisible",1);
SetPropBOOL(lpszPictureName,"trend","AutoRangeY",0);
SetPropBOOL(lpszPictureName,"trend","AutoRangeX",1);
SetPropDouble(lpszPictureName,"trend","BeginY",-1.0);
SetPropDouble(lpszPictureName,"trend","EndY",1.0);
for(i=10;i<101;i++)
{
SetPropDouble(lpszPictureName,"trend","DataX",b[i]/100);
SetPropDouble(lpszPictureName,"trend","DataY",a[i]/100);
SetPropBOOL(lpszPictureName,"trend","InsertData",1);
}
SetPropBOOL(lpszPictureName,"trend","Online",1);
SetPropBOOL(lpszPictureName,"trend","Activate",1);
但在激活wincc后,单击按钮发现没有显示趋势曲线,我怀疑是我的程序编写错误,没有调用到内部变量DB_VAR1至DB_VAR100。或说是别的错误导致的,麻烦各位大佬帮忙解决一下(最好是在原程序上修改),非常感谢。
注:其实我希望显示曲线如下图,但我x轴不会设置,希望各位大佬能在我的程序的基础上修改对x轴的设置,使其可以显示如图。

问题补充:
看了大佬的文件,修改了程序(如下图,不能再直接复制程序上了了,不然太长发不出去)加入全局脚本诊断,结果如下,是不是我没在相应的地方加printf才出现如图效果的,还是那是错误显示,看不懂图片的意思。还有这段程序
for(i=0;i<101;i++)
{
sprintf(Tag_Name,"%s%d","DB_VAR",i);
a[i]=GetTagSWord("DB_VARi");
起没起将内部变量的值放入c脚本变量中的作用?我记得当初就是RENHQ大佬你回答的要用sprintf将DB_VAR和i连起来道一个字符串数组的,我改成这样后,效果实现了吗?希望大佬再帮忙解决一下,先多谢大佬了。

图片说明:

wincc function trend control显示趋势曲线问题    wincc function trend control显示趋势曲线问题    wincc function trend control显示趋势曲线问题    wincc function trend control显示趋势曲线问题    wincc function trend control显示趋势曲线问题   

最佳答案

使用脚本诊断,看看是不是脚本有问题
脚本诊断的使用参考:
WINCC脚本学习-一-脚本调试
https://mp.weixin.qq.com/s/rmvAG3Ch_XdORNltpV5nsg
补充:
脚本诊断里面有错误,找不到那个变量
看附图改改试试

图片说明:

wincc function trend control显示趋势曲线问题  

提问者对于答案的评价:
非常感谢大佬,虽然问题还是没有解决,将DB_VARi改成Tag_Name后出现一样状况,但大佬让我知道了还有这种方法寻找错误,还是非常感谢大佬的,我会再发一次,希望大佬还能来帮忙解决。

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

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

相关推荐

  • WINCC运行有问题

    电脑配置,I5处理器,4G内存,显卡1G,DELL台式机,23寸显示器,win7,32位专业版正版系统,正版winc7.3,wincc里用了很多画中画,做了有结构变量的画面窗口,完…

    2017年6月8日
  • wincc6.2英文显示

    我用的是wincc62版本,组态项目用的是英文,但是我发现做出来的趋势曲线对话框都是英文的了,而且曲线名称也是英文的了,看不懂。但是改回中文后,项目里好多文本字体又都不认了。请高手…

    SIMATIC WinCC 2019年6月11日
  • wincc7.2 打开之后,马上就关闭了

    为什么我的wincc打开之后,闪一下,马上就关闭了,已经授权(网上下的授权),而另一台电脑同样是这样授权的,没有这种问题,有点不能明白 最佳答案 请购买正版授权,闪一下应该不是授权…

    SIMATIC WinCC 2021年7月5日
  • wincc的组在什么地方

    我在看别人做的项目时,发现它的画面组态中有个叫组的东西,不知它是什么地方来的? 最佳答案 组:把多个对象组合,只是单纯的拼接。(比如说是个静态文本,后面要一个圆角矩形做背景。那么两…

    SIMATIC WinCC 2019年6月11日
  • wincc报警控件的打印问题

    在wincc6.2中报警控件打印出来时,文字太大超出单元格,在报表中改字体大小或改控件文本大小,打印出来的表格文字都不能变小,仍然超出单元格,不知道哪里改才有效。 最佳答案 报警控…

    SIMATIC WinCC 2017年12月10日
  • 关于wincc中properties的问题

    在wincc中,右击Graphic Designer 中的对象,选择properties属性,怎么properties属性对话框打不开啊?急啊 最佳答案 应该是…

    SIMATIC WinCC 2019年6月11日
  • 我想找一个 OLE-DB Tag and Alarm Export.xls ,找了很久没有找到,

    我想找一个  OLE-DB Tag and Alarm Export.xls  ,找了很久没有找到,…

    SIMATIC WinCC 2021年7月5日
  • 不能自动或手动运行项目文件

    我的项目文件无论是自动运行或手动运行,都不能进行下去。大约启动后过2-3分钟,屏幕上显示一个“打开WinCC项目”对话框,对话框内容为:“数据库上下文不存在或无效”。WinCCEx…

    SIMATIC WinCC 2019年6月11日
  • WinCC C/S构架中,服务器的操作系统必须要使用Windows Server 的操作系统吗?

    现在有一个项目,有15个生产线现场操作看板,还有1个控制室的操作站,准备使用WinCC  C/S构架,问问大家服务器必须要使用Windows &nbs…

    SIMATIC WinCC 2021年7月5日
  • TCP/IP与工业以太的混用

    今天在组态时,在工业以太的通道和TCP/IP通道上都有做外部变量,在接上交换机后,工业以太的变量都有通讯,但是TCP/IP通道上的变量却没有,电脑上的IP地址设的是没有问题的……

    SIMATIC WinCC 2019年6月11日

发表回复

登录后才能评论