wincc中显示趋势曲线

我是在plc300采集了正弦波信号的100个离散值,储存在DB中,传送给wincc,通过一系列的操作后最后显示如我所发的图类似的曲线。想用wincc自带的 winnc function trend control来画线,每个点的横纵坐标均由用户编写脚本程序自行设定。通过调用SetPropDouble函数修改“DataX”、“DataY”属性,调用SetPropBOOL函数执行插入数据点命令,将实时数据或历史数据用描点,连线的方式在控件中显现出来。我先前看了很多资料,包括《自定义 XY 轴的多功能曲线的实现方法》这个文档http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=231897&cid=1032,对上述文档现有一些问题请各位大佬回答一下(也可以直接编写出我想要的c脚本):
1.我的情况是不是按文档里的第三种方式做?那我Y轴就应该是用我内部变量里的那100个值吧?那我X轴是不是就要用时间戳了?如果是,那按文档做X轴显示的是像2020.3.13怎样的日期时间,还是如我图中的那种时间?如果是日期时间,怎么实现我要求的那种时间?
2.我看了那么多的资料,感觉需要两组变量分别对应x,y,可我只有那100个值一组变量,用于y轴,那我x轴显示是时间对应的是什么?我可不可以设置成那100个值两两间隔10ms,对应于x轴,如果可以怎么设置或c脚本中的程序怎么编?
3.PDLRTSetPropEx( PDLRT_AM_DEFAULT, lpszPictureName, "TrendYX1", "DataX", VT_VARIANT, (void*)&vtDataX, NULL, NULL, 0, NULL, NULL );这句起注解说是设置X轴的“DataX”属性,我想知道的是它的具体作用,像是对DataX起什么作用?
4.SetPropBOOL(lpszPictureName,"TrendYX1","AutorangeX",FALSE);像这句,如果FALSE改为TURE,是不是就不需要对BeginX,EndX这些定义?
5.CcDateFromSt(&st[i], &dZeitwert);这句中的st[i]是不是就是文档前面说的赋值给SYSTEMTIME类型的结构体变量的那组时间戳?
6.SafeArrayUnaccessData( vtPair.u.parray );
pvtPair = NULL;
VariantCopy( &pvtDataXY[i], &vtPair );解释一下这三句的具体作用,看它的注解知道意思,但不懂为什么这样做。
7.文档说首先,将获得的一组时间戳分别赋值给SYSTEMTIME类型的结构体变量,那SafeArrayAccessData( vtPair.u.parray, &pvtPair );
if( pvtPair )
{
// X-value
vtDataX.vt = VT_DATE;
// Calculate time value via global function CcDateFromSt
CcDateFromSt(&st[i], &dZeitwert);
vtDataX.u.dblVal = dZeitwert;这里面是不是赋值过程?还是说没写出来。
问题有点多,但还是十分恳请和希望各位大佬能抽出点时间回答一下,万分感谢万分感谢。

图片说明:

wincc中显示趋势曲线   

最佳答案

1、对,你采集的数据应该时做Y轴,X轴你可以使用时间戳,也可以直接编一个ID参数啊,比如直接就是1-100这100个数
2、用事件戳比较麻烦,你自定义一个x轴的数据就是了,比如你间隔100毫秒采集的数据,那x轴也可以定义成0.1 0.2 .....9.9这样
PDLRTSetPropEx 这个函数是给函数数组直接赋值的功能啊
这里面的C脚本不完整
你可以下载:
SIMATIC WinCC V7 SP3 的演示项目
https://support.industry.siemens.com/cs/cn/zh/view/35102867
这里面的演示项目看一下

提问者对于答案的评价:
非常感谢大佬,再问一下,我下载好了这个SIMATIC WinCC V7 SP3 的演示项目,怎么用啊?在wincc中打开,在图形编辑器里找,还是在全局脚本,C-Editor,全局动作中找?有没有快捷一点的方式,里面全局脚本有一大堆,图形编辑器里的画面也有一大堆,好难找。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日 下午4:07
下一篇 2020年11月1日 下午4:07

相关推荐

  • 用WINCC做动画,搅拌机不动

    #include "apdefap.h" long _main(char* lpszPictureName, …

    SIMATIC WinCC 2019年6月11日
  • 如何使用变量前缀

    如何使用变量前缀功能对变量进行替换,比如有10台电机,要连接的点完全一致,只是编号有所不同,我先做好一台,如何利用变量前缀做其他的九台,能不能说一下具体步骤呢,谢谢 最佳答案 下位…

    SIMATIC WinCC 2019年6月11日
  • WINCC中VBS赋值语句

    看了一些VBS脚本的例子,给变量赋值有时使用等号,有时前面要加个SET,搞不懂是为什么,什么情况下用等号就可以了,什么情况下前面要加个SET呢? 最佳答案 1、 等于号&…

    SIMATIC WinCC 2021年7月5日
  • WinCC画面中怎么嵌入IE浏览器?

    我要集成视频监控系统,视频监控有一个WEB端,可以在IE浏览器中查看,请问怎么在WinCC画面中怎么嵌入IE浏览器? 最佳答案 使用WinCCWebBrowser控件。 提问者对于…

    SIMATIC WinCC 2019年6月11日
  • 如何读取WinCC Online Trend Control标尺的时间

    WinCC Online Trend Control控件的对象事件OnRulerChanged使用VB脚本读取了趋势值,是否可以将标尺的时间读取出来呢…

    SIMATIC WinCC 2021年7月5日
  • 如何画水平垂直直线

    在WINCC的图形编辑器里,怎么画水平和垂直的直线啊,用鼠标拖多义线的边框半天也托不好,有没有简单的方法啊? 最佳答案 你随意画一条线,是否水平垂直不用管,然后右键这个直线如果你画…

    SIMATIC WinCC 2019年6月10日
  • WINCC画面窗口VBS

    现在有A,B,C,三个画面,A是主画面里面有一个画面窗口,和一个按钮,按下按钮主画面A里面的画面窗口显示B画面,B画面里面又有一个C画面窗口和一个按钮,按下按钮弹出C画面窗口,用全…

    SIMATIC WinCC 2021年7月5日
  • wincc7.4sp1运行时报错

    %ignore_a_1%7.4sp1运行期间偶尔出现如图片所示的问题 问题补充:能否更具体点,授权都检查好几遍了。凡是跟用户归档有关的授权都删除了 图片说明:  &nbs…

    2021年7月5日
  • 为什么整点数据归档数据出错?

    wincc工程,对皮带秤数据进行统计,整点数据采集没有问题,为什么数据归档计算小时产量时数据出错(莫名奇妙的数据),而把数据归档时间设置为59分50秒(或者别的秒数),只要不是整点…

    SIMATIC WinCC 2017年11月26日
  • wincc socket接收数据乱码

    Obj_SockClient.GetData a,vbstring后,字符串中中文部分乱码,应该怎么办,变量a中,英文显示正常,中文就是乱码,对方已utf8模式发送,wi…

    SIMATIC WinCC 2021年7月5日