- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Winc 7.3 Использование глобального тега внутри TagPrefix
-
- здесь недавно
- Сообщения: 24
- Зарегистрирован: 21 авг 2020, 14:51
- Имя: Андрей
- Страна: РФ
- Поблагодарили: 1 раз
Winc 7.3 Использование глобального тега внутри TagPrefix
Коллеги, доброго времени суток.
Такой вопрос. Wincc 7.3.
Задача отобразить на главном экране 60 строк с информацией о материале. На главной картинке соответственно 60 pdl и передача данных через тегпрефикс. Всё работает, без проблем.
А теперь поставили задачу, что данные внутри строк (pdl) должны зависеть от глобального тэга, который един на все 60 строк. (если глобальный бит=1 показывать вес, если 0- длину материала)
Банальное решение в виде двух I/O field, видимость которых через Dinamic Dialog свойства Display(зависящего от глобального тега) внутри pdl не сработало.
Подскажите, как внутри pdl с тегпрефиксом, обращаться к глобальному тегу?
Такой вопрос. Wincc 7.3.
Задача отобразить на главном экране 60 строк с информацией о материале. На главной картинке соответственно 60 pdl и передача данных через тегпрефикс. Всё работает, без проблем.
А теперь поставили задачу, что данные внутри строк (pdl) должны зависеть от глобального тэга, который един на все 60 строк. (если глобальный бит=1 показывать вес, если 0- длину материала)
Банальное решение в виде двух I/O field, видимость которых через Dinamic Dialog свойства Display(зависящего от глобального тега) внутри pdl не сработало.
Подскажите, как внутри pdl с тегпрефиксом, обращаться к глобальному тегу?
-
- эксперт
- Сообщения: 1001
- Зарегистрирован: 31 мар 2018, 12:05
- Имя: Вячеслав
- Благодарил (а): 87 раз
- Поблагодарили: 126 раз
Winc 7.3 Использование глобального тега внутри TagPrefix
Зачем их столько? Или префикс разный?
Глобальный тег на родительский экран и добирайтесь до Parent.ScreenItems("name_teg_IOfield").OutputValue
-
- здесь недавно
- Сообщения: 24
- Зарегистрирован: 21 авг 2020, 14:51
- Имя: Андрей
- Страна: РФ
- Поблагодарили: 1 раз
Winc 7.3 Использование глобального тега внутри TagPrefix
Разный. Место1, место2 и так далее.
Глобальный тег на главном экране, по кнопке вкл/выкл.
А можно чутка подробнее, через куда добираться?)
-
- осмотрелся
- Сообщения: 187
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 32 раза
Winc 7.3 Использование глобального тега внутри TagPrefix
К глобальному тегу в тегпрефиксном окне можно обращаться указав перед названием тега @NOTP::
Привязывать тег к IOField, или к чему угодно можно также через @NOTP::
Привязывать тег к IOField, или к чему угодно можно также через @NOTP::
WinCC 7.4 SP1 Upd15, Step5.6
-
- здесь недавно
- Сообщения: 24
- Зарегистрирован: 21 авг 2020, 14:51
- Имя: Андрей
- Страна: РФ
- Поблагодарили: 1 раз
Winc 7.3 Использование глобального тега внутри TagPrefix
Коллеги, подскажите что делаю не так?
Название тега "BOOL". Начал тестить на главной страничке. I/o Field, свойство Display. Открываю dinamic Dialog, bool типа, вставляю тэг "@NOTP::Bool" (check проходит без проблем). Внизу соответственно YES/NO. С-акция свойства выглядит вот так
if ("@NOTP::Bool")
return 1;
else
return 0;
Сохраняю, включаю- никакой реакции на изменение тега. Убираю @NOTP- все работает.
И акция стала не Тэг типа, а на Default Trigger.
Внутри тег-префикса аналогично, не реагирует на изменение тега
Название тега "BOOL". Начал тестить на главной страничке. I/o Field, свойство Display. Открываю dinamic Dialog, bool типа, вставляю тэг "@NOTP::Bool" (check проходит без проблем). Внизу соответственно YES/NO. С-акция свойства выглядит вот так
if ("@NOTP::Bool")
return 1;
else
return 0;
Сохраняю, включаю- никакой реакции на изменение тега. Убираю @NOTP- все работает.
И акция стала не Тэг типа, а на Default Trigger.
Внутри тег-префикса аналогично, не реагирует на изменение тега
-
- осмотрелся
- Сообщения: 187
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 32 раза
Winc 7.3 Использование глобального тега внутри TagPrefix
А зачем вы собственно это делаете ч/з С-action? Просто сделайте напрямую без скриптов. Если конечно тег BOOL типа Binary Tag.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
WinCC 7.4 SP1 Upd15, Step5.6
-
- здесь недавно
- Сообщения: 24
- Зарегистрирован: 21 авг 2020, 14:51
- Имя: Андрей
- Страна: РФ
- Поблагодарили: 1 раз
Winc 7.3 Использование глобального тега внутри TagPrefix
Пробывал напрямую, ничего не вышло.
Да, BOOL тип Binary Tag.
https://yadi.sk/i/iLO94hUa1LcbPA -ссылка на скриншот, через форум добавить не могу.
Сработало только через вот такую костыльную акцию
if ((unsigned long)GetTagDouble ("@NOTP::Bool"))
return 1;
else
return 0;
}
P.s. И я слукавил, Wincc 7.0, систем много, началась путаница в головах...
Да, BOOL тип Binary Tag.
https://yadi.sk/i/iLO94hUa1LcbPA -ссылка на скриншот, через форум добавить не могу.
Сработало только через вот такую костыльную акцию
if ((unsigned long)GetTagDouble ("@NOTP::Bool"))
return 1;
else
return 0;
}
P.s. И я слукавил, Wincc 7.0, систем много, началась путаница в головах...
-
- осмотрелся
- Сообщения: 187
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 32 раза
Winc 7.3 Использование глобального тега внутри TagPrefix
Не сработало потому что должно бытьif ("@NOTP::Bool")
return 1;
else
return 0;
else
return 0;
if (GetTagBit("@NOTP:Bool"))
{return 1;}
else return 0;
Вы брали не значение тега Bool, а текст "@NOTP::Bool"
WinCC 7.4 SP1 Upd15, Step5.6
-
- эксперт
- Сообщения: 1001
- Зарегистрирован: 31 мар 2018, 12:05
- Имя: Вячеслав
- Благодарил (а): 87 раз
- Поблагодарили: 126 раз
Winc 7.3 Использование глобального тега внутри TagPrefix
Объясните, пожалуйста, по коду, для моего развития, зачем фигурные скобки на первом Return, разве не вся конструкция (c else) должны быть в них? Или же это для объединения операторов, которых здесь один? И также не вижу отличия от кода
только другой тип...
Или все дело в тех самых фигурных скобках? Которые автор даже не открывает
-
- осмотрелся
- Сообщения: 187
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 32 раза
Winc 7.3 Использование глобального тега внутри TagPrefix
Если честно, я даже не знал что можно писать без скобок
Интернет выдает сразу вариант со скобками, поэтому и сам их добавлял. Вот тут объясняют. Скрипт verner не работал не из-за скобок, а из-за того что он брал имя тега, а не его значение.
Интернет выдает сразу вариант со скобками, поэтому и сам их добавлял. Вот тут объясняют. Скрипт verner не работал не из-за скобок, а из-за того что он брал имя тега, а не его значение.
WinCC 7.4 SP1 Upd15, Step5.6
-
- эксперт
- Сообщения: 1001
- Зарегистрирован: 31 мар 2018, 12:05
- Имя: Вячеслав
- Благодарил (а): 87 раз
- Поблагодарили: 126 раз
Winc 7.3 Использование глобального тега внутри TagPrefix
Где разница?
Я вроде знал, но Си у Симатика - чем черт не шутит )))
-
- осмотрелся
- Сообщения: 187
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 32 раза
Winc 7.3 Использование глобального тега внутри TagPrefix
Ну смотрите в теле if должно быть значение типа bool, TRUE или FALSE, то есть надо либо значение бинарного тега брать, либо использовать какое-нибудь сравнение.
if (GetTagBit("@NOTP:Bool")) - здесь берется значение бинарного тега, в теле if'a bool, все ок
if ("@NOTP::Bool") - а здесь текст "@NOTP::Bool", в теле if'a string, а не bool.
if ((unsigned long)GetTagDouble ("@NOTP::Bool")) ну а тут с, натяжечкой, более-менее работоспособно
if (GetTagBit("@NOTP:Bool")) - здесь берется значение бинарного тега, в теле if'a bool, все ок
if ("@NOTP::Bool") - а здесь текст "@NOTP::Bool", в теле if'a string, а не bool.
if ((unsigned long)GetTagDouble ("@NOTP::Bool")) ну а тут с, натяжечкой, более-менее работоспособно
WinCC 7.4 SP1 Upd15, Step5.6
-
- эксперт
- Сообщения: 1001
- Зарегистрирован: 31 мар 2018, 12:05
- Имя: Вячеслав
- Благодарил (а): 87 раз
- Поблагодарили: 126 раз