- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Скрипт для вызова faceplate с trend
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 54
- Зарегистрирован: 06 фев 2021, 02:47
- Имя: Юрий
- Страна: Россия
- город/регион: Челябинская облость
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
Скрипт для вызова faceplate с trend
Добрый день всем!
Прошу помощи разобраться, начинаю работать с WinCC 8.0. существует такая задача, при клике на значение аналогового параметра, открыть picture window, в котором выводить тренд данного параметра, так как параметров много, и чтобы не плодить picture window на странице, каждый со своими настройками, хочу скриптом в С, вызывать это окно с трендом, писать его наименование и т.д. так вот, всё получилось, за исполнением того, - как в скрипте прописать чтобы в свойство TrendTagName с типом string, записать имя нужного мне tag. SetPropChar не катит, ругается при компиляции, но оно и понятно, другой тип.
Может кто в курсе, как это сделать.
Прошу помощи разобраться, начинаю работать с WinCC 8.0. существует такая задача, при клике на значение аналогового параметра, открыть picture window, в котором выводить тренд данного параметра, так как параметров много, и чтобы не плодить picture window на странице, каждый со своими настройками, хочу скриптом в С, вызывать это окно с трендом, писать его наименование и т.д. так вот, всё получилось, за исполнением того, - как в скрипте прописать чтобы в свойство TrendTagName с типом string, записать имя нужного мне tag. SetPropChar не катит, ругается при компиляции, но оно и понятно, другой тип.
Может кто в курсе, как это сделать.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- освоился
- Сообщения: 208
- Зарегистрирован: 16 дек 2011, 15:13
- Имя: Алексей
- Страна: Россия
- Благодарил (а): 67 раз
- Поблагодарили: 53 раза
Скрипт для вызова faceplate с trend
Вот пример как я делал в одном из проектов (правда там была WinCC 7.2)
Код: Выделить всё
// настройка графика
SetPropChar(lpszPictureName, "TrendTag1", "TrendWindowAdd", "myWindow");
SetPropChar(lpszPictureName, "TrendTag1", "TimeAxisAdd", "myTimeAxis");
SetPropChar(lpszPictureName, "TrendTag1", "ValueAxisAdd", "myValueAxis");
SetPropChar(lpszPictureName, "TrendTag1", "TimeAxisTrendWindow", "myWindow");
SetPropChar(lpszPictureName, "TrendTag1", "ValueAxisTrendWindow", "myWindow");
SetPropChar(lpszPictureName, "TrendTag1", "TrendAdd", "тренд_какой_то"); //
SetPropWord(lpszPictureName, "TrendTag1", "TrendProvider", 1);
SetPropChar(lpszPictureName, "TrendTag1", "TrendTagName", szValue); //имя переменной из архива типа: "ProcessValuearchive\\temp1"
SetPropChar(lpszPictureName, "TrendTag1", "TrendLabel", "label_какой_то");
SetPropWord(lpszPictureName, "TrendTag1", "TrendColor", RGB(0,0,128));
SetPropChar(lpszPictureName, "TrendTag1", "TrendTrendWindow", "myWindow");
SetPropChar(lpszPictureName, "TrendTag1", "TrendTimeAxis", "myTimeAxis");
SetPropChar(lpszPictureName, "TrendTag1", "TrendValueAxis", "myValueAxis");
SetPropWord(lpszPictureName,"TrendTag1","TimeAxisTimeRangeBase",600000); //задание периода графика (1 час)
SetPropWord(lpszPictureName,"TrendTag1","TimeAxisTimeRangeFactor",1); //задание множителя периода графика ( х 1)
SetPropWord(lpszPictureName,"TrendTag1", "TrendLineWidth",2);
SetPropWord(lpszPictureName,"TrendTag1", "TrendPointWidth",3);
SetPropWord(lpszPictureName, "TrendTag1", "TrendLineType", 2);
SetPropBOOL(lpszPictureName,"TrendTag1","TrendWindowFineGrid",FALSE);
SetPropWord(lpszPictureName,"TrendTag1", "TrendWindowCoarseGridColor", RGB(145,145,145));
SetPropChar(lpszPictureName,"TrendTag1", "Caption", "Тренд........");
//настройка ось Y
SetPropBOOL(lpszPictureName, "TrendTag1","ValueAxisAutoPrecisions",FALSE); //Return-Type: BOOL
SetPropWord(lpszPictureName, "TrendTag1","ValueAxisPrecisions",1); //Return-Type: BOOL
SetPropBOOL(lpszPictureName, "TrendTag1","ValueAxisExponentialFormat",FALSE); //Return-Type: BOOL
SetPropBOOL(lpszPictureName, "TrendTag1","ValueAxisAutoRange",TRUE); //Return-Type: BOOL
-
- здесь недавно
- Сообщения: 54
- Зарегистрирован: 06 фев 2021, 02:47
- Имя: Юрий
- Страна: Россия
- город/регион: Челябинская облость
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
Скрипт для вызова faceplate с trend
Проблема немного другая сейчас, теряется знак про выполнении программы, который разделяет архив и переменную.
Предполагаю что требуется объединить их по отдельности и затем устанавливать.
Но к сожалению не разобрался пока как это сделать
Предполагаю что требуется объединить их по отдельности и затем устанавливать.
Но к сожалению не разобрался пока как это сделать
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 54
- Зарегистрирован: 06 фев 2021, 02:47
- Имя: Юрий
- Страна: Россия
- город/регион: Челябинская облость
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
Скрипт для вызова faceplate с trend
Кому интересно, разобрался как это сделать, код ниже
char * PictureName = "TrendPdg";
char * WindowName ="TrendPic";
char * WindowTitle = "CaptionText";
char ArchiveTagName [100];
char value [100];
sprintf(ArchiveTagName, "Temperatures_Station1\\%sTemperature_R2", value);
SetVisible(lpszPictureName,"TrendPic",TRUE); //Return-Type: BOOL
SetPropChar(lpszPictureName, WindowName, WindowTitle,"Temperature_R2");
SetPropChar(PictureName,"Trendlbl1","TrendTagName",ArchiveTagName); //Return-Type: BOOL
char * PictureName = "TrendPdg";
char * WindowName ="TrendPic";
char * WindowTitle = "CaptionText";
char ArchiveTagName [100];
char value [100];
sprintf(ArchiveTagName, "Temperatures_Station1\\%sTemperature_R2", value);
SetVisible(lpszPictureName,"TrendPic",TRUE); //Return-Type: BOOL
SetPropChar(lpszPictureName, WindowName, WindowTitle,"Temperature_R2");
SetPropChar(PictureName,"Trendlbl1","TrendTagName",ArchiveTagName); //Return-Type: BOOL
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- эксперт
- Сообщения: 1035
- Зарегистрирован: 31 мар 2018, 12:05
- Имя: Вячеслав
- Благодарил (а): 100 раз
- Поблагодарили: 141 раз
Скрипт для вызова faceplate с trend
swaips-87, Изначально - вопрос поставлен неверно. Faceplate и Picture Window абсолютно разные вещи ;)
С PW подход как в ООП - объект.свойство ;)
Не понятен подход, но "плодить" их нужно лишь для каждого экземпляра Structure Tag
С PW подход как в ООП - объект.свойство ;)
-
- освоился
- Сообщения: 222
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 38 раз
Скрипт для вызова faceplate с trend
Вот наш скрипт. Например, тег TIR_0811.Value. Называем объект вызванного фейсплейта TIR_0811.
На клик вешаем этот скрипт. В стартовую картинку кладем Window с названием Trend_for_Script, в котором уже лежит OnlineTrendControl с названием TrendControl. Если уже вызван тренд и кликнуть на другой фейсплейт с нажатым контрл или альт, в окно трендов добавится еще тренд с новой осью значений. Если не зажимать контрл или альт, тренд не добавится, а заменится.
На клик вешаем этот скрипт. В стартовую картинку кладем Window с названием Trend_for_Script, в котором уже лежит OnlineTrendControl с названием TrendControl. Если уже вызван тренд и кликнуть на другой фейсплейт с нажатым контрл или альт, в окно трендов добавится еще тренд с новой осью значений. Если не зажимать контрл или альт, тренд не добавится, а заменится.
WinCC 7.4 SP1 Upd15, Step5.6
-
- здесь недавно
- Сообщения: 54
- Зарегистрирован: 06 фев 2021, 02:47
- Имя: Юрий
- Страна: Россия
- город/регион: Челябинская облость
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
Скрипт для вызова faceplate с trend
Ну да, согласен, возможно не совсем корректно поставил вопрос. В начале пути изучения WiCC. Спасибо всем кто откликнулся. Проработаю разные варианты, решения задачи, но пока решение найдено. Очень интересное решение с добавлением трендов, при помощи зажатия контрл и альт. Вопросы, в процессе изучения, возникнут ещё.. прошу прощения за кажущуюся вам глупость и неопытность. всё знать не возможно, когда-то, у всех могут возникнуть глупые вопросы.
-
- эксперт
- Сообщения: 1035
- Зарегистрирован: 31 мар 2018, 12:05
- Имя: Вячеслав
- Благодарил (а): 100 раз
- Поблагодарили: 141 раз
Скрипт для вызова faceplate с trend
Абсолютно у всех ;)
Но настоятельно советую тему с PW прокачать. Это крутой инструмент.
-
- здесь недавно
- Сообщения: 54
- Зарегистрирован: 06 фев 2021, 02:47
- Имя: Юрий
- Страна: Россия
- город/регион: Челябинская облость
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
Скрипт для вызова faceplate с trend
Добрый день Вячеслав, можете помочь, запутался немного.
Ситуация такая, требуется с одного PW открыть кнопкой второе PW на родительском окне. можете помочь со скриптом на С?
У вас нет необходимых прав для просмотра вложений в этом сообщении.