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

相关推荐