Page 1 of 1

[?]: WINCC Professional C Script

Posted: Tue Jun 26, 2018 6:04 am
by minary
Добрый день!
В интернете есть ролик по созданию шаблонов всплывающих экранов с использованием скриптов:
https://www.youtube.com/watch?v=L37ZoROZHRA&t=2116s.
Механизм использования шаблонов предполагает использование пользовательских типов данных и выделения префикса имени переменной.

На кнопке вызова шаблона во вкладке Events - Click написан следующий скрипт:

Code: Select all

#include "GlobalDefinitions.h" 
void OnClick(char* screenName, char* objectName, char* propertyName)
{
	// Declares constants.
	const char* tagPrefix = "PID_Control_1";
	const char* screenWindowTitle = "240HE1";
        const char* screenWindowName = "240HE1";
        const char* screenControl = "PID_Control";	
	const char* objectHeader = "lblCaption";

	// Calls function FacePlateControl.
	FacePlate(screenName, screenWindowName, screenWindowTitle, screenControl, tagPrefix, objectHeader);//Insert the code starting here

}

Скрипт FacePlate представляет из себя :
//Insert the header starting here

#include "GlobalDefinitions.h" 
void FacePlate(char* parentScreenName, char* screenWindowName, char* screenWindowTitle, char* screenControlName, char* tagPrefix, char* objectHeader)
{
//Insert the code starting here
	SetPropChar(parentScreenName, screenWindowName, "TagPrefix", tagPrefix);
	SetPropChar(parentScreenName, screenWindowName, "CaptionText", screenWindowTitle);
	SetPropChar(parentScreenName, screenWindowName, "ScreenName", screenControlName);
	SetPropBOOL(parentScreenName, screenWindowName, "Visible", TRUE);
	SetPropChar(parentScreenName, screenWindowName, objectHeader, screenWindowTitle);
}
В самом шаблоне всплывающего окна используются следующие объекты:I/O Field, Text field и f(t) trend view.
Выполнить привязку к I/O Field, Text field не представляет труда, но с окном трендов все несколько сложнее.

В окне должны выводится данные из лога данных (Historical data - data logs - logging tags). Но в перечне команд относящихся к
f(t) trend view нет команды, отвечающей за поле выбора лога данных.

В связи с этим вопрос: как можно осуществить динамическую привязку переменных из лога данных к окну трендов, расположенном в шаблоне экрана.

Re: [?]: WINCC Professional C Script

Posted: Thu Dec 27, 2018 7:52 am
by winice
Можно как-то так:

Code: Select all

	SetPropChar(lpszPictureName,"TrendControl","TrendIndex","TrendNumber"); 
	SetPropChar(lpszPictureName,"TrendControl","TrendTagName","SERVER::ArcName\TagPrefix.Tag");