• ОБЯЗАТЕЛЬНО заполнить свой профиль НА РУССКОМ ЯЗЫКЕ КИРИЛЛИЦЕЙ.
  • НЕ НУЖНО писать свой вопрос в первую попавшуюся тему, а вместо этого создать НОВУЮ тему.
  • Дублирование сообщений приравнивается к спаму.
  • Рекламу мы не размещаем ни на каких условиях.

WinCC

Ответить

Автор темы
SERG1190
здесь недавно
здесь недавно
Сообщения: 30
Зарегистрирован: 06 окт 2016, 16:48
Имя: Коломоец Сергей Владимирович

WinCC

Сообщение SERG1190 » 20 дек 2017, 17:36

Здравствуйте! Помогите пожалуйста с WinCC нужно изменять текст в зависимости значения тега. Значение тега INT.
Например: при ТЕГ=10 пишет "Привет"
ТЕГ=11 пишет "Пока"
ТЕГ=12 пишет "Учись"
и все эти надписи должны изменятся в одном объекте!
Помогите пожалуйста!


LexSL
здесь недавно
здесь недавно
Сообщения: 94
Зарегистрирован: 16 дек 2011, 14:13
Имя: Михайлов Алексей
Поблагодарили: 13 раз

WinCC

Сообщение LexSL » 21 дек 2017, 07:44

если Static Text: свойство Text, правой кнопкой Dynamic -> VBS Action
или IO Field: DataFormat = String , свойство OutputValue, правой кнопкой Dynamic -> VBS Action
или

Код: Выделить всё

Function Text_Trigger(ByVal Item)
dim Tag, value
Set Tag = HMIRuntime.Tags("ТЕГ")
value = Tag.Read
Select case value
	Case 10
		Item.Text = "Привет"
	Case 11
		Item.Text = "Пока"
	Case 12
		Item.Text = "Ученье - свет, а неученых - тьма"
	Case Else
		Item.Text = "н/д"	
End Select
End Function
Для IO Field "Item.Text" заменить на "Item.OutputValue"


Автор темы
SERG1190
здесь недавно
здесь недавно
Сообщения: 30
Зарегистрирован: 06 окт 2016, 16:48
Имя: Коломоец Сергей Владимирович

WinCC

Сообщение SERG1190 » 21 дек 2017, 09:22

Спасибо! Щас попробую о результате отпишусь!

Отправлено спустя 48 минут 28 секунд:
Все получилось! :thankyou:


Автор темы
SERG1190
здесь недавно
здесь недавно
Сообщения: 30
Зарегистрирован: 06 окт 2016, 16:48
Имя: Коломоец Сергей Владимирович

WinCC

Сообщение SERG1190 » 21 дек 2017, 13:43

Здравствуйте не получается считать системное время и вывести его на визуализацию. В объекте IO в свойствах выбрал string формат 99:99
и написал скрипт



#include "apdefap.h"
char* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#pragma code("kernel32.dll")
void GetLocalTime(LPSYSTEMTIME lpSystemtime);
#pragma code()

SYSTEMTIME sysTime;
char szTime[6]="";
GetLocalTime(&sysTime);

sprintf(szTime,"%02d:%02d",sysTime.wHour,sysTime.wMinute);
return szTime;
}


но не пойму куда привязать его не выходит!


winb
осмотрелся
осмотрелся
Сообщения: 167
Зарегистрирован: 31 янв 2017, 08:44
Имя: Маркушин Андрей Геннадьевич
Благодарил (а): 6 раз
Поблагодарили: 27 раз

WinCC

Сообщение winb » 21 дек 2017, 13:51

Самое простое решение - использовать внутренний тег для вывода значения в "IO". Привязываете текстовых тег для вывода его значения, а в своём скрипте - записывайте полученное значение (szTime) в этот тег.
Если хотите поизвращаться - есть вариант выводить значение прямо в объект. Но это слегка мммм... хлопотно.


Автор темы
SERG1190
здесь недавно
здесь недавно
Сообщения: 30
Зарегистрирован: 06 окт 2016, 16:48
Имя: Коломоец Сергей Владимирович

WinCC

Сообщение SERG1190 » 21 дек 2017, 14:44

А у Вас нет примера как это реализовать?

Отправлено спустя 2 часа 39 минут 7 секунд:
Я разобрался как с помощью внутреннего тега это сделать. Я же не добавил System info потому и не получалось спасибо за наводку!

Ответить

Вернуться в «WinCC»