wincc趋势曲线显示问题的请教

我按照《上_下位机数据高速通讯方法及其在大型锻压机中的应用》这篇期刊论文里的思路做一个高速数据采集系统,前面的各个部分在学习查资料及各位大佬的问答帮助下顺利完成,但到了使用wincc function trend control显示趋势曲线时,论文里是通过编写c脚本来显示趋势曲线的(论文没给出具体的程序,只是告诉用那几个函数可以达到效果)。我编写了程序,在各位大佬的帮助下终于将脚本错误修改完了,也能显示趋势曲线了(虽然曲线有点怪但这个问题我会解决的,图片如下),但是我还是想向论文显示的曲线靠近(论文中信号源周期T=1s时的趋势曲线如下图)。我想不明白,论文中同样是每次从plc300中传送采集的100个数据到wincc的原始数据类型变量中(plc中ob35周期为10ms,采集周期为1s的正弦波,100个数据正好组成一个周期的正弦波),再通过编写全局脚本对原始数据类型变量进行解包,将数据储存在对应的100个内部变量中。
只有那100个数据作为y轴数据,x轴数据还要自己定义,论文是怎么编写的c脚本能做到连续显示多个周期的曲线呢?它的x轴又是怎么设置的呢?我的程序如下图,我这个程序只能显示出一个周期的曲线,怎么做才能达到论文效果呢?不知道大佬们能理解我的意思吗,请求大佬们回答一下,非常感谢。

问题补充:
非常感谢RENHQ大佬,又是您来回答,非常感谢。但是可能我表达的不好,您没有理解我的问题(可以的话大佬再仔细看一看问题)。首先我必须要用DB_VAR1至DB_VAR100这100个内部变量(这是要求),我的采集数据在里面,将内部变量按顺序插入就可以得到曲线,我的程序不就可以达到这个效果吗,虽然不知道什么原因显示图形有些怪,但大不了我再模仿您给的程序用变体类型VARIANT来显示,我也会修改。
因为plc300中ob35周期为10ms,采集的正弦波周期为1s,所以要显示一个周期的曲线要100个数据,正好100个内部变量能装满,正好显示一个周期的曲线,对于周期小于1s的正弦波信号显示一个以上的周期的曲线也没问题。但我还要采集一个周期为2s和周期为4s的正弦波,那我的程序就无法一次显示整个周期的曲线。因此我才想像论文一样能一次显示出5个周期为1s的曲线(如我发的论文显示曲线图效果),但怎么做呢,我的程序和大佬您给的程程序都无法做的(一次没有那么多数据),求大佬帮帮我,非常非常感谢。

图片说明:

wincc趋势曲线显示问题的请教    wincc趋势曲线显示问题的请教    wincc趋势曲线显示问题的请教   

最佳答案

我的天呐,你还没搞定啊
我没事做了一个用这个显示正玄波的曲线,全部脚本:
#define TRENDNAME  "TREND_OLDXY" //曲线控件名称
 double Y_Values[90] ; // Y轴数据
 VARIANT vtDataX, vtDataY;
 int i;
 SetOperation(lpszPictureName,lpszObjectName,FALSE); //本按钮不允许操作
 for(i=0;i<90;i++)  //生产正玄波曲线,采用90个点
 {
  Y_Values[i]=50.0+50.0*sin(3.1815926/180.0*i*4);
 }
 //初始化variant.变量
 VariantInit( &vtDataX );
 VariantInit( &vtDataY );
 // 设置曲线索引,并清除曲线数据
 SetPropBOOL( lpszPictureName, TRENDNAME, "Index", 0);
 SetPropBOOL(lpszPictureName,TRENDNAME,"DeleteData",TRUE);
 // X坐标属性设置
 SetPropBOOL(lpszPictureName,TRENDNAME,"AutorangeX",FALSE);
 SetPropDouble(lpszPictureName,TRENDNAME,"BeginX",0);
 SetPropDouble(lpszPictureName,TRENDNAME,"EndX",360);

 // Y坐标属性设置
 SetPropBOOL(lpszPictureName,TRENDNAME,"AutorangeY",FALSE);
 SetPropDouble(lpszPictureName,TRENDNAME,"BeginY",0);
 SetPropDouble(lpszPictureName,TRENDNAME,"EndY",100);
 //开始插入输入
 for( i =0; i < 90; i++ )
 {
  // 填充X轴和Y轴的数据
  vtDataX.vt = VT_R8;
  vtDataX.u.dblVal = i*4.0; // X-value
  vtDataY.vt = VT_R8;
  vtDataY.u.dblVal = Y_Values[i]; // Y-value

  // 设置X轴数据属性
  PDLRTSetPropEx( PDLRT_AM_DEFAULT, lpszPictureName, TRENDNAME, "DataX", VT_VARIANT, (void*)&vtDataX, NULL, NULL, 0, NULL, NULL );

  // 设置Y轴数据属性
  PDLRTSetPropEx( PDLRT_AM_DEFAULT, lpszPictureName, TRENDNAME, "DataY", VT_VARIANT, (void*)&vtDataY, NULL, NULL, 0, NULL, NULL );

  // 插入X/Y轴数据
  SetPropBOOL( lpszPictureName, TRENDNAME, "InsertData", TRUE );
  //清空内容
  VariantClear( &vtDataX );
  VariantClear( &vtDataY );
 }
 // 设置本按钮可操作
 SetOperation(lpszPictureName,lpszObjectName,TRUE);

运行结果看附图
参考的是:
自定义 XY 轴的多功能曲线的实现方法
https://support.industry.siemens.com/cs/cn/zh/view/77467629
补充:
你参考一下这个文档:
WinCC 高速数据采集的实现
https://support.industry.siemens.com/cs/cn/zh/view/79544473

提问者对于答案的评价:
感谢大佬了,只可惜我这个必须用plc300做,plc300没有sfb37(AR_Send)系统功能块,这些我在前期查资料时就知道了,不过还是感谢大佬的热心回答,我自己再摸索下吧。

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

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

相关推荐

  • OP73与PLC通讯电缆及OP73的编程电缆的订货号

    OP73与PLC200通讯电缆及OP73的编程电缆的订货号自己做可以吗? 最佳答案 通讯电缆可以是MPI或者是网络接头+Profibus电缆的形式,编程电缆是PPI电缆 提问者对于…

    SIMATIC WinCC 2019年6月11日
  • wincc历史趋势拷贝

    我用的是wincc6.2,拷贝出来的项目怎么没有历史趋势记录呢?我是用wincc自带的项目复制器复制的呀??我想把历史趋势拷贝出来该怎么拷贝呢?哪位明白呀?、说详细点好吗!! 问题…

    SIMATIC WinCC 2019年6月11日
  • wincc7.4sp1安装不下去

    安装wincc7.4SP1,安装提示找不到simatic wincc 7.4 管理控制台?这个SP1不能直接安装吗?是不是必须先安装7.4的? 问题补…

    SIMATIC WinCC 2021年7月5日
  • web Navigator总断开连接

    wincc在局域网做web发布,客户端访问为什么总是自动断开连接,然后倒计时有时候能连接上有时候不能. 最佳答案 参考: http://www2.ad.siemens.c…

    SIMATIC WinCC 2019年6月11日
  • 启动SIMATIC WINCC 电脑cpu占用率为0%是怎么回事

    不管是在pcs7进行os组态运行wincc还是单独打开wincc都一直是未响应状态 最佳答案 软件没有运行起来,检查操作系统和软件的兼容性吧 提问者对于答案的评价:应该是某种原因导…

    SIMATIC WinCC 2021年7月5日
  • 一些按钮和画面窗口在不满足条件时显示灰色

    比如输入输出文本框,在不满足条件时显示灰色,不能输入。还有画面窗口上的一些按钮,在不满足条件的时候显示灰色,不能点击。 最佳答案 颜色及禁用请见附图。 图片说明:  &n…

    2021年7月5日
  • 请问谁有WINCC7.0的授权

    安装的WINCC7.0授权到期了,现在不能运行,求解决方法 最佳答案 不宜在这里要这个,貌似踢馆了,人家还凭这个创收发员工工资呢,都直接给你西门子喝西北风了。 提问者对于答案的评价…

    SIMATIC WinCC 2018年12月6日
  • 64位win7下winCC7.3无法与S7-1200通讯

    首先PG/PC里面已经添加了CP_H1_1并指向本地网卡名称下的TCP/IP,在OMS+下添加通道并定义访问点CP_H_1: 现在死活连不上PLC。之前用另一台电脑也是w…

    SIMATIC WinCC 2017年5月31日
  • wincc如何与STEP7 PLCSIM 连接?

    请问专家:wincc如何与PLCSIM 连接啊 ,希望好心人 写出详细步骤啊!谢谢先 最佳答案 看看精华帖用S7-PLCSIM V5·4对W…

    SIMATIC WinCC 2017年11月4日
  • 博途wincc项目能否生成可执行文件

    博途编制的WINCC项目能否生成桌面那种执行文件,不需要打开博途软件直接能仿真的?每次打开博途仿真很麻烦。 最佳答案 不可以。WinCC项目相当于解释执行,是不可以生成EXE文件。…

    SIMATIC WinCC 2017年6月3日

发表回复

登录后才能评论