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 rt start无法打开项目

    拷贝过来的wincc项目无法被wincc rt start打开,今天对工程师站组态进行了更改,把项目下载到文件系统,再拷贝过来就不能打开项目了,之前都是能打开的…

    2021年7月5日
  • Wincc中时间加减

    现在使用DAY(),Month(),Year()函数提取了所需年月日,现在需要在提取的年数值上增加一数值,请问需要如何实现?我的代码为 :DateDTP=ScreenIt…

    SIMATIC WinCC 2021年7月5日
  • wincc如何控制s7-300

    我单位有一套控制体统,具体构架为s7-400通过以太网与上位机连接,s7-300通过dp连接到s7-400,在上位机中通过wincc可以控制s7-400,可以看到s7-300系统里…

    SIMATIC WinCC 2021年7月5日
  • wincc 组态怎么做才好看,需要辅助软件吗?

    如题,感觉每个人做的画面风格都不同 最佳答案 我看他们艾默生的上位机画面  简单的不得了其实我作为用户的话我也觉得没必要花里胡哨的 看得时间久了&nb…

    SIMATIC WinCC 2021年7月5日
  • WinCC图片背景可否设置成半透明?

    为了让新插入的图片显示,又可以看到下层原来的界面,其背景可否设置成半透明? 问题补充:要半透明效果,全透明效果已经实现 最佳答案 这个恐怕不行,图片会直接覆盖其背后的画面,不可能半…

    SIMATIC WinCC 2019年6月11日
  • 如何在wincc 图形编辑器上增加公司的logo

    如何在wincc  图形编辑器上增加公司的logo 最佳答案 先将你公司的logo 保存为*.BMP,然后打开画面编辑器,选择对象选项板->智能…

    SIMATIC WinCC 2019年6月11日
  • MP277屏能否用U盘来代替MMC卡存储数据

    MP277屏能否用U盘代替存储卡来存储数据、报警数据和历史数据,谢谢了!! 问题补充:俱怀逸兴壮思飞 你好:我用U盘了、存储路径\Storage Card&nb…

    SIMATIC WinCC 2019年6月11日
  • 如何将WINCC画面远程发布

    我准备将一台工控机上的画面发布到远程网上,供异地网上可查看,可使用NAVIGATOR软件一直使用不好,请哪位高手指点一下,WINCC自带的NAVIGATOR是否就可以,还是要单独再…

    SIMATIC WinCC 2019年6月11日
  • wincc颜色怎么设置?向加入别的颜色怎么办?

    如题: 最佳答案 参考以下资料设置:《如何在 WinCC 中创建和使用用户自定义颜色?》:http://support.automation.siemens.c…

    SIMATIC WinCC 2019年6月11日
  • WinCC如何保存对象到库?

    WinCC画面里做了个按一下一直接通,再按一下一直断开的按钮。想保存进对象库里,以后在别的项目里可以直接调用,改变一下变量就可以使用。要怎么做?(“项目库”只能在本项目内部使用的,…

    SIMATIC WinCC 2017年11月6日

发表回复

登录后才能评论