WINCC利用单个历史趋势来实现不同曲线变量的方法?
主界面名称为MAIN.PDL画面窗口名称为画面TREND
历史趋势的控件画面为Trend.PDL
需要记录两个温度值,如何用C语言实现?
以下是记录一个温度的方法,如何记录两个温度?
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#pragma option(mbcs)
SetVisible("main.PDL","画面Trend",0);
SetVisible("main.PDL","画面Trend",1);
SetPropChar("Trend.PDL","趋势标题","Text","温度1");
SetPropChar("Trend.PDL","控件1","TrendTagName","过程值归档\\温度2");
}
要记录两个温度值,需要在C语言中添加一个新的变量来存储第二个温度值。同时,在OnClick函数中也需要添加对第二个温度值的记录。以下是修改后的代码:
#include \"apdefap.h\"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#pragma option(mbcs)
SetVisible(\"main.PDL\",\"画面Trend\",0);
SetVisible(\"main.PDL\",\"画面Trend\",1);
SetPropChar(\"Trend.PDL\",\"趋势标题\",\"Text\",\"温度1和温度2\");
SetPropChar(\"Trend.PDL\",\"控件1\",\"TrendTagName\",\"过程值归档\\\\温度1\");
SetPropChar(\"Trend.PDL\",\"控件2\",\"TrendTagName\",\"过程值归档\\\\温度2\");
}
注意,这里假设控件2已经被预先创建好了。如果没有,需要先在历史趋势控件中创建一个新的控件,并设置其标签名为“温度2”。 能否使用一个控件,比如控件1中添加多个趋势记录”温度2“呢,提供一下代码 不建议在一个控件中添加多个趋势记录,因为这样会导致渲染过程变慢,同时也不利于数据的分析和比较。但是如果确实需要这样做,可以使用WinCC的动态属性功能,通过C语言代码来设置控件的趋势标签名。
以下是示例代码:#include \"apdefap.h\"void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#pragma option(mbcs)SetVisible(\"main.PDL\",\"画面Trend\",0); SetVisible(\"main.PDL\",\"画面Trend\",1); SetPropChar(\"Trend.PDL\",\"趋势标题\",\"Text\",\"温度1和温度2\"); SetPropChar(\"Trend.PDL\",\"控件1\",\"TrendTagName\",\"过程值归档\\\\温度1\"); SetPropNum(\"Trend.PDL\",\"控件1\",\"TrendCount\",2); SetPropChar(\"Trend.PDL\",\"控件1.TrendTag(2)\",\"Value\",\"过程值归档\\\\温度2\");}
这里新增了一个动态属性TrendCount,用来指定控件显示的趋势数量。同时,通过动态属性TrendTag()来获取控件中的趋势对象,并设置其标签名和数值。注意,这里因为需要访问控件的趋势对象,所以在设置动态属性时需要加上\".TrendTag()\"。 SetPropNum编译错误,如何解决? 如果出现了SetPropNum编译错误,一般是因为apdefap.h中没有定义该函数。解决方法有两个:
1. 检查apdefap.h文件是否正确引入,以及版本是否与WinCC相对应。可以尝试更换不同的版本或者重新安装WinCC。
2. 如果确定当前的WinCC版本已经支持SetPropNum函数,可以尝试手动声明该函数。在代码文件中加入以下声明代码:extern int SetPropNum(char* szPictureName, char* szObjectName, char* szPropertyName, int nValue); 然后重新编译代码,看是否能够通过编译。 代码文件如何打开? 代码文件可以使用文本编辑器打开。在Windows操作系统中,有很多集成开发环境(IDE)都带有内置的文本编辑器,比如Visual Studio、Notepad++等。你也可以使用Windows自带的记事本程序来打开代码文件,右键单击代码文件,选择“打开方式”->“记事本”。如果你需要频繁地编辑代码文件,建议安装专业的文本编辑器,这些工具一般会提供语法高亮、代码自动补全、调试等功能,可以大大提高编程效率。
页:
[1]