1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

WinCC

Модератор: Глоб.модераторы

Ответить

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

WinCC

Сообщение SERG1190 »

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

LexSL
освоился
освоился
Сообщения: 208
Зарегистрирован: 16 дек 2011, 15:13
Имя: Алексей
Страна: Россия
Благодарил (а): 67 раз
Поблагодарили: 53 раза

WinCC

Сообщение LexSL »

если 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
здесь недавно
здесь недавно
Сообщения: 41
Зарегистрирован: 06 окт 2016, 16:48
Имя: Коломоец Сергей Владимирович
Страна: Украина
город/регион: Днепр
Поблагодарили: 1 раз

WinCC

Сообщение SERG1190 »

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

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

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

WinCC

Сообщение SERG1190 »

Здравствуйте не получается считать системное время и вывести его на визуализацию. В объекте 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
освоился
освоился
Сообщения: 248
Зарегистрирован: 31 янв 2017, 08:44
Имя: Маркушин Андрей Геннадьевич
Страна: Россия
город/регион: Нижегородская обл., Выкса
Благодарил (а): 19 раз
Поблагодарили: 64 раза

WinCC

Сообщение winb »

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

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

WinCC

Сообщение SERG1190 »

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

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

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