PDA

Просмотр полной версии : Вывод изменяющегося текста в одном поле



fizhimik
30.07.2018, 17:03
Здравствуйте! Подскажите пожалуйста как вывести различный текст в одном поле? К примеру выводится текст "Превышение температуры", затем его сменяет текст "Превышение давления" с задержкой в 2-5 секунды. Или надо создавать элементы для каждого текста и накладывать его друг на друга?

Евгений Кислов
30.07.2018, 17:21
Добрый день.

Накладывать ничего не нужно.
Используйте, например, элемент Прямоугольник - привяжите к нему переменную типа WSTRING (к параметру Текстовая переменная) и в программе изменяйте ее значение.

Sulfur
31.07.2018, 10:57
fizhimik
Вариант №2 - создаете "Список текстов", где прописываете ID и сопоставленный ему текст. В выводимом окне в пункте "Динамические тексты" в поле "Список текстов" указываете свой список (в кавычках). Там же в поле "Индекс текста" указываете переменную типа INT, которая отвечает за вывод нужного текста. Если значение переменной не совпадает ни с одним ID, то ничего выводиться и не будет. Дополнительно можно прикрутить управление видимостью собственно самого поля текста.

PalLORD
16.03.2021, 13:13
Добрый день. Подскажите, могу ли я каким-то образом привязать к текстовому полю список текстов, ID у которых представляют собой элементы перечисления? Например, у меня имеется тип COLOR с элементами Red:= 21, Green:= 31, Blue := 41. Я разместил текстовое поле, в котором индекс eColor типа COLOR, и привязал к нему список текстов, где в столбце ID указано Red, Green и Blue, а не 21, 31 и 41, однако текст не отображается. С «комбинированным окном — целочисленным» у меня получилось так сделать с помощью поддержки списков текстов, но там я указал переменную eColor в строке «Переменная», у текстового поля её нет.

Евгений Кислов
16.03.2021, 13:32
Добрый день. Подскажите, могу ли я каким-то образом привязать к текстовому полю список текстов, ID у которых представляют собой элементы перечисления? Например, у меня имеется тип COLOR с элементами Red:= 21, Green:= 31, Blue := 41. Я разместил текстовое поле, в котором индекс eColor типа COLOR, и привязал к нему список текстов, где в столбце ID указано Red, Green и Blue, а не 21, 31 и 41, однако текст не отображается. С «комбинированным окном — целочисленным» у меня получилось так сделать с помощью поддержки списков текстов, но там я указал переменную eColor в строке «Переменная», у текстового поля её нет.

Добрый день.
Если я правильно понял ваш вопрос - то вам надо создать Перечисление с поддержкой списка текстов.

54020

Тогда при привязке к текстовому полю экземпляра перечисления - в нем должнен отображаться текст.
Обратите внимание, что это будет работать в SP14 Patch 3, но в более поздних версиях, к сожалению, этот функционал сломали.

PalLORD
16.03.2021, 13:54
Евгений Кислов, спасибо за ответ. Я так пробовал, но текст не отображается. Возможно, я неправильно привязал? Вписывал переменную eColor и в строку «Текстовая переменная», и в «Индекс текста» — безрезультатно.

У меня SP11. Может ли это быть причиной?

Евгений Кислов
16.03.2021, 14:04
Евгений Кислов, спасибо за ответ. Я так пробовал, но текст не отображается. Возможно, я неправильно привязал? Вписывал переменную eColor и в строку «Текстовая переменная», и в «Индекс текста» — безрезультатно.

У меня SP11. Может ли это быть причиной?

В SP11 это тоже работало.
Посмотрите это видео с 08:10:
https://youtu.be/qA6UNfhbpwc

PalLORD
17.03.2021, 13:48
Евгений Кислов, посмотрел видео (полезное, кстати, спасибо). Там, как и в документе «Работа со списками текстов вCODESYS V3», перечисление со встроенным списком текстов прикручивается к элементу «комбинированное окно — целочисленный». С ним у меня проблем не возникло. А вот с элементом «текстовое поле» так сделать не получается. Строчки (в свойствах) «Переменная», как у комбинированного окна, там нет. Как я уже сказал выше,


Вписывал переменную eColor и в строку «Текстовая переменная», и в «Индекс текста» — безрезультатно.

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

Евгений Кислов
17.03.2021, 14:08
Евгений Кислов, посмотрел видео (полезное, кстати, спасибо). Там, как и в документе «Работа со списками текстов вCODESYS V3», перечисление со встроенным списком текстов прикручивается к элементу «комбинированное окно — целочисленный». С ним у меня проблем не возникло. А вот с элементом «текстовое поле» так сделать не получается. Строчки (в свойствах) «Переменная», как у комбинированного окна, там нет. Как я уже сказал выше,



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

В SP14 Patch 3 у меня проблема не воспроизводится.
Проверил в SP11 Patch 5 - там тоже всё корректно отрабатывает.

54046 54047 54048

ВладОвен
08.06.2022, 14:36
Для строк нужно в поле "Текст" вписать %s.
А для w-строк что вписывать? %ws?

Евгений Кислов
08.06.2022, 16:16
Для строк нужно в поле "Текст" вписать %s.
А для w-строк что вписывать? %ws?

Для WSTRING тоже %s используется.

Schneider
25.04.2023, 11:26
Тогда при привязке к текстовому полю экземпляра перечисления - в нем должнен отображаться текст.
Обратите внимание, что это будет работать в SP14 Patch 3, но в более поздних версиях, к сожалению, этот функционал сломали.


В SP11 это тоже работало.
Посмотрите это видео с 08:10:
https://youtu.be/qA6UNfhbpwc

3.5.17 patch3 вроде работает, пока только в режиме эмуляции попробовал, на контроллере завтра проверю.
Контроллер СПК110, так что не совсем в той ветке, но, думаю это без разницы.

PS.спасибо за подробное видео и разъяснения!