Добрый день.
Это баг плагина визуализации 4.1.1.0.
Можете повесить на кнопку два действия изменить показанную визуализацию.
Вид для печати
Вопрос по масштабированию вебвизуализации. После перехода на 17 версию при масштабировании изображения на андроиде в яндекс браузере жестом ( двумя пальцами) масштабирование не происходит. И это только с веб от овена. Весь остальной контент масштабируется. Как будто принудительно стоит фиксация размера. Но режим масштабирования у веб ИЗОТРОПНЫЙ. При подключении через браузер компьютера , то же через яндекс, размер равен размеру открытого окна, те масштабируется. Надеюсь понятно. Кто виноват?
Евгений, прошло много лет, а не появился ли "нормальный" способ воспроизведения звука в вебвизуализации?
Добрый день
Codesys 3.5 SP17 Patch 3 (ПЛК210 веб-визуализация на ВП110, если что). ПЛК читает температуру с модуля МВ210-101 в целых числах одним регистром, в настройках одна точка после запятой (т.е. при температуре 15,4 °С в ПЛК читает значение 154).
На визуализации сначала выводил значение REAL через соответствующий спецификатор, но при отсутствии связи с модулем или неисправности датчика значение либо остается прежним, либо сбрасывается в ноль (в зависимости от настроек), а хотелось бы видеть что-то типа "--" (прочерк). И с этим справляется вот такой простой код:
IF <нет ошибок> THEN
sTemp := TO_STRING(0.1*TO_REAL(iValue));
ELSE
sTemp := '--';
END_IF
Идея проста - создать строковую переменную для температуры (sTemp) и в нее писать преобразованное в строку значение температуры (предварительно приведенное к нужному виду). Ну и эту переменную уже вывожу в визуализации со спецификатором %s.
И все вроде работает, но периодически вместо, скажем, "15,4" (уже в виде строки) на экране появляется "15,4000". Далее при изменении температуры на 0,1 °С все опять приходит в норму - "15,5". И так до следующего раза на произвольном значении температуры. Таких температур на экране 4 штуки и у всех такая беда. Пробовал явно указывать REAL_TO_STRING и INT_TO_REAL - не помогает.
P.S. Накладывать друг на друга отображение двух переменных (численной и строковой) и скрывать одну показывать другую, а потом наоборот как то не хочется, т.к. потом забудется что их там две
sTemp := OSU.Before(TO_STRING(0.1*TO_REAL(iValue)),000);
Подскажите какой элемент надо использовать в визуализации чтобы отобразить значение строки?
Цитата:
wsStatus := "В режиме остановки";
Я так понимаю Овен тренд резать нельзя ? - я убрал лишние кнопки настройки и отображения индикаторов с права от Фрейма которые мне не нужны и получит исключение через время. Вложение 71552Access violation
Код: 81
Добрый день! Подскажите, а нет ли в WEB-визуализации возможности дописать что-либо внутри нее на JS? Например, сменить текущую страницу только на данном клиенте визуализации при нажатии на кнопку на WEB-странице? Инногда это было бы очень удобно, часть логики интерфейса можно было бы обрабатывать в браузере.
> Это можно сделать и штатными средствами CODESYS.
Понятно, спасибо. А вот такой вопрос. Интересно, большую ли дополнительную нагрузку дает на контроллеры Owen 200 серии использование HTTPS для доступа к визуализации? Дополнительное шифрование там и прочее? В процессоре вроде есть что-то для ускорения этого, а на практике?
Добрый день.
Прошу помощи в реализации подсветки нажатия кнопок.
Есть основной экран, занимающий 100% площади монитора 1920*1080, на котором нарисовано меню с кнопками-названиями объектов автоматизации.
В моём кейсе 11 пунктов меню , к которым добавляется ещё 11 лампочек тревоги в каждом из пунктов и 5 элементов с информацией, не хотелось бы заниматься копированием 27 элементов навигации на каждую страницу, как в примере на степике.
Поэтому навигация ощущаствляется через кнопку -> конфигурация ввода -> OnMouseClick -> переключить визуализацию фрейма
И уже во фрейм, размером 1500*1060 загружается нужный экран объекта астоматизации.
Но очень сильно хочется, чтобы кнопка соответствующая активному фрейму подсвечивалась другим цветом.
Какие есть варианты? Можно как то сделать средствами CodeSYS, не прибегая к рисованию 11 картинок и прозрачных кнопок над ними.
Евгений, добрый день.
Правильно ли я Вас понял:
Надо создать отдельную переменную для каждой кнопки или строку или массив.
Далее создать отдельную функцию, которая будет отлавливать - какой номер фрейма сейчас активен и на основе этого уже передавать в некую строку из 11 элементов состояние для каждой.
И далее из этой строки индексами достаем состояние соответствующей кнопки?
Или есть какой то простой способ просто взять номер активного фрейма и сразу его использовать, задав состояние тревоги?
Да, вам в любом случае потребуется массив булевских переменных, которые будут привязаны к кнопкам.
Так как фреймы у вас переключаются по нажатиями по кнопкам - то можно добавить код изменения цветов кнопок ("подсветки" нужной кнопки, "выключение подсветки" всех остальных) в код каждой кнопки (OnMouseClick - Выполнить ST-код).
Можно и так - через "переменную-переключатель фрейма".Цитата:
Или есть какой то простой способ просто взять номер активного фрейма и сразу его использовать, задав состояние тревоги?
Благодарю. пока не смог её найти, но в поисках.
Зато удалось добиться очень странного поведения визуализации. А именно, экраны визуализации закрываются не открывшис. То есть подключаюсь к контроллеру, загружаю программу, открываю любую из страниц визуализации и она сразу же закрывается.
Все окна которые закрываются сами связаны тем фактом, что были добавлены в "переключить визуализацию фрейма". Но сейчас я фрейм удалил и со всех кнопок событие переключающее содержимое - убрал. Не помогло.
Где я мог так накосячить?
Заранее спасибо)
Здравствуйте! CDS 3.5.14.3. Куда подевался параметр внутреннее вращение??
Вложение 71647
Добрый день.
Какой контроллер вы используете?
Вложение 71648
Вложение 71649
Профиль визуализации 3.5.14.3
Стиль: дефолт 3.5.14.0
Евгений, ещё раз спасибо за удалённое решение проблемы. Всё оказалось намного проще чем я представлял.
Для тех кто будет делать так же повторю задачу и решение:
Есть основной экран, занимающий 100% площади монитора 1920*1080, на котором, справа, столбцом, нарисовано меню с кнопками-названиями объектов автоматизации и "экранов" соответствующих им.
На оставшемся пустом месте добавлен фрейм, размером 1500*1060. В который загружается нужный экран объекта автоматизации.
Чтобы кнопка активной визуализации во фрейме подсвечевалась и, тем самым, экономила место заголовка-названия экрана:
В любой программе создаём переменную в которой будет храниться индекс активной визуализации во фрейме
iMainFrameIndex: INT;
Создаём N визуализаций, размером с фрейм.
Создаём фрейм, на экране с меню. В конфигурации фрейма добавляем эти визуализации и запоминаем присвоенные им индексы.
В свойствах фрейма Конфигурация Ввода -> Переключение -> Переменная добавляем нашу переменную visualization.iMainFrameIndex
Теперь в наши кнопки на главном экране добавляем:
Переменные цвета -> переключить цвет
visualization.iMainFrameIndex = 0
Вместо нуля поочерёдно подставляем индекс визуализации соответствующий этой кнопке из настроек фрейма.
Далее в Конфигурация Ввода -> OnMouseClick добавляем событие "Выполнить ST-код", куда прописываем
visualization.iMainFrameIndex := 0;
Добрый день.
Управление процессом на базе СПК110. Архив пишется на флэшку, а для визуального контроля параметров в проект добавлен тренд.
Можно как-то оценить на какой период хватит флэш-памяти СПК после чего история тренда начнет затираться?
Добрый день.
Провести такой расчет можно только опытным путем - посмотреть, например, на сколько килобайт файл тренда увеличивается каждый час.
Рекомендую сохранять файлы тренда на накопителе, а не в памяти контроллера - у нее ограниченное число циклов перезаписи, со временем память просто "перетрется".