Добрый день.
Напишите, пожалуйста, завтра утром мне в телеграм (см. в подписи) и подготовьте доступ по AnyDesk - посмотрим, что именно у вас происходит.
Вид для печати
Завтра не смогу, c утра на объекте, можно потом.
А есть какая нибудь команда Codesys для изменения таймзоны, чтобы не пользоваться таргетами из OwenRTC ?
когда меняем через OwenRTC UTC offset то в зависимости от цифры меняется и на данную величину (Application.TargetVars.stRtc.dtDateAndTime) системное время в формате Unixtime, а этого быть недолжно !
Более того при прохождении команды от NTP время может поменяться еще раз на этуже величину.
Если Offset сделать равным 0 то NTP работает правильно, но местное время равно времени в UTC.
Сделайте отдельную переменную, в которой будет NTP +3 часа и не трогайте NTP. Какие проблемы то?
Или используйте UTC и не трогайте его.
Вот ещё пример получения времени с помощью функции SysTimeRtcGet
https://owen.ru/forum/showthread.php...l=1#post455664
https://owen.ru/forum/showthread.php...l=1#post455747
Здравствуйте. Не подскажете, существуют ли расширенные библиотеки визуализации с различным технологическим оборудованием (задвижка, насос, бункер, конвейер...)?
СПК210 3.7.0228.1046 в свежезалитом контроллере слетает "верстка"(в основном выравнивание текста на кнопках/размер шрифта): т.е берешь новый контроллер, заливаешь болванку: на некоторых кнопках шрифт по левому краю(в редакторе и симуляторе все ОК(по центру)) и далее по мере допиливания проекта эти глюки сами както рассасываются(чегото не догрузилось сразу или ....)?
Добрый день! Как по кнопке вызвать конкретную визуализацию, например Visu1..Visu3, в зависимости от конкретного экземпляра структуры привязанной во фрейме, например astValue: array [1..3] of stData?
Т.е. по кнопке ГРАФИК переходить на визуализацию тренда Камеры активной в окне.
1. Именно так, переключают структуру фрейма.
2. кнопка "ГРАФИК", допустим BOOL переменная структуры Камера. Можно и по другому, но пока не понимаю решения моей задачи (про вывод трендов).
Самое простое, как видится, это было бы для каждой структуры камера присвоить константу типа sVisuNameTrend: string := 'visuTrend_X'; При нажатии кнопки "ГРАФИК" выполнялся ST код который передает переменную sVisuNameTrend в функцию вызова визуализации. Примерно, тоже что и "Перейти к URL (Webvisu)"
Если для переключения экранов фрейма использовать параметр элемента Фрейм "Переменная-переключатель фрейма", то в каждый момент времени вы будете знать индекс текущего активного фрейма.
Соответственно, на кнопку Тренд можно привязать действие Выполнить ST-код с кодом типа
и действие Изменить отображаемую визуализацию - Присвоить выражение - PLC_PRG.sTrendVisuNameКод:PLC_PRG.sTrendVisuName := CONCAT('visuTrend_', TO_STRING(PLC_PRG.iCurrentFrameIndex) );
Доброе утро
При попытке привязать свойство ФБ к визуализации пишет: "someValue недопустим в качестве операнда для ADR". Так нельзя делать?
Вложение 85947Вложение 85948Вложение 85949Вложение 85950Вложение 85951
Добрый день.
Чтобы можно было - надо поставить галочку: Проект - Установки проекта - Визуализация - Дополнительно - Активировать обработку свойств во всех элементах визуализации
Но с ней исторически связаны разного рода баги, так что я рекомендую сначала подумать, точно ли вам нужны все эти изыски.
Из последнего встретившегося - при установке этой галочки в визуализации некорректно отображались тексты встроенного списка текстов переменной-перечисления.
Но вообще их гораздо больше. Только найденные за последние пару лет:
Вложение 85956
Добрый день, вопрос по веб визуализации. Вроде простой момент, но не могу найти как сделать ввод текста, например строковую переменную. Как понимаю текстовое поле только для отображения переменной в соответствии с выбранным форматом, а как именно ввести?
Конфигурация ввода-MouseClick-Записать переменную
Доброе утро. Есть проект с визуализацией.
Хочу сделать рефакторинг: вношу изменения, делаю "сохранить как" в другую папку. И после логина в проект и нажатия "старт" в меню "отладка" выдает такое окошко (вложение)
Как с этим бороться?Вложение 85977
UPD: решилось выпиливанием трендов
Это значит, что где-то в проекте ошибка.
Надо её искать.
ПЛК пытается показать место с ошибкой, но так как оно в ядре - то исходного кода не будет
Подскажите пожалуйста, можно ли число "305" формата WORD, в визуализации отображать как 30.5 не переводя в REAL ? Просто так же как в сенсорной панели сместить точку при отображении? Долго сам пытался, искал казалось бы часто нужную вещь в документации и на форуме но не нашел.
Добрый день.
Встроенного смещения десятичной точки, как в панелях оператора, в визуализации CODESYS нет.
Можно конвертировать вашу переменную типа WORD в переменную типа REAL и привязать к визуализации ее.
Или сделать конвертацию прямо в поле привязки переменной к визуализации:
Вложение 86243
Евгений, здравствуйте.
Решил попробовать библиотеку OwenVisuTools в проекте, интересуют ответы на пару вопросов:
1. По нулю оси Y рисуется какая-то тонкая линия (свои по 3pt сделал) оранжевого цвета. Возможно её как-то убрать, чтобы "глаз не мозолила" и путаницу не создавала?
2. Возможно как-то использовать свои AxisName, вместо тех, которые содержатся в списке текстов самой библиотеки, без её (библиотеки) редактирования? Пробовал в том числе в поле "ID списка текстов для названия" окна "Настройки осей и перьев" указывать свой список с индексом, нечего не меняется, надпись отсутствует. С AxisName.0, например, надпись (Ось 0) появляется.
Вложение 86404Цитата:
1. Покажите, пожалуйста, скриншотом, о чем речь.
Вот...
Нет, снимаю все галочки, линия на месте...:)
Если использовать исходную версию библиотеки, а не отредактированную вами - эта линия сохраняется?
Upd. - повторил у себя.
Чтобы убрать эту линию - надо перед запуском экземпляра ФБ тренда (пока xEnable в FALSE) отключить видимость неиспользуемых перьев.
В рамках примера с нашего сайта это можно сделать так:
Код:IF NOT(xIsInitVisuSettings) THEN
...
// отключите видимость только тех перьев, которые не планируете использовать
stTrendVisuSettings.astCurves[3].xNoVis := TRUE;
...
stTrendVisuSettings.astCurves[8].xNoVis := TRUE;
...
END_IF
В общем, "пощупал" я на днях этот аналог встроенного в CDS компонента "Тренд" (OwenVisuTools), и что хочется сказать (написать), ребят (представители компании), вы пока не вылечите все болячки своего оборудования, которые кочуют из релиза в релиз, о перспективе линейки СПК, как таковой, не стоит и задумываться. Вроде и железо умощнили (на руках СПК210), вроде и дизайн проработали, вроде и практичности добавилось, но эти тренды...
Для себя, честно, пришел (давно, данный конкретный СПК, с которым сейчас приходится работать, заказывал не я, так, в качестве "оправдания") к выводу, что в проектах с HMI ТОЛЬКО СВЯЗКА ПЛК+СП, как минимум. Как бы мне не нравилась практическая сторона СПК, на его косяки сводят на нет все желание с ним связываться.
ОВЕН позиционирует свое оборудование, в первую очередь, как оборудование для решения задач ПРОМЫШЛЕННОЙ автоматизации ("а уже потом всё остальное"), которое должно отвечать определенным требованиям и функциональным возможностям, а не только требованиям о внесение того или иного оборудования в реестр СИ. Так вот, одна из таких функциональных возможностей - это тренды (ну коли у нас HMI устройство "в руках" и далеко не ИП320), которые что оригинал, что аналог, недопилены. Проблемы встроенного компонента описывать не буду, причастные о нем давно знают, опишу аналог:
1. Глубина архива(ов) *.bin. Изучая пример, в глаза сразу бросилось значение 7200 переменной udiSaveBinPeriod (udiSaveCsvPeriod), спустя некоторое время тестирования ШУ на столе, начало приходить осознание выбора данного значения автором OVT. Ребят, вы серьезно, 7200 записей, два часа посекундно? Да вас (меня в данном конкретном случае) конечный потребитель/пользователь/заказчик системы с ботинками сожрет, с такой глубиной трендов. Почему осознание данного значения пришло только спустя некоторое время? Потому что я вместо 7200 указал 604800. И вот спустя почти двое суток (что будет дальше, страшно вообразить), "передернув" питание СПК наблюдаем "веселье". Для начала опишу свою "кухню". Три ТА, по 4 датчика температуры на каждом (итого 12), и "довесок" с еще пяток, итого 17 штук (измеряемых параметров). Городить все/всё это в кучу не стал, во-первых, нужно разделение/разнесение датчиков по принадлежности, во-вторых, OVT не "разрешает" больше восьми значений на один fbTrend. Так вот, спустя почти двое суток и по ~10МБ (всего-то) накопленных данных в файлах архивов, программа СПК, после загрузки CODESYS, начинает "шевелиться" только по прошествии более 50 секунд... это пипец, больше сказать нечего. Т.е. 50 секунд визуализация "стоит", основная программа "стоит", я из-за этого даже стартовую визуализацию с задержкой оформить не могу. Опять же возвращаемся к вопросу целесообразности данного компонента, на этот раз аналога, если с такой его работой, проще использовать трассировки.
2. С изменением системного (СПК) времени тоже атас. Любые устройства с RTC, которые не синхронизируются с источником эталонного времени, имеют свойство, через определенные интервалы, показывать его (время) неправильно, соответственно, когда-то придется его изменить. Ну и что, скорректировал время/дату и с временными метками текущих и архивных данных начинается кавардак, причем текущие временные метки постепенно "лечатся", архивные нет. Что будет происходить с временными метками при постоянной автоматической синхронизации СПК, например, с сервером NTP, караул полный? Что в таком случае делать, при изменении системных времени/даты удалять файлы архивных данных, чтобы они начинали писаться с нуля без искажений? Я "как послушная маня" сделал органы редактирования времени/даты для пользователя, чтобы не бегать самому за тридевять земель с такой примитивной проблемой, пришлось "отмену запуска" делать. У встроенного компонента данные портятся при перезагрузке оного не вовремя, у OVT при редактировании системных времени/даты. Это ирония какая-то?
3. Просмотр архивных данных. Почему в OVT нельзя было сделать селектор временного интервала по примеру оригинального компонента, пускай не всего, но хотя бы 10мин/30мин/60мин? Почему нельзя было сделать возможность выбирать и просматривать архивные данные диапазоном (с соответствующими селекторами), листать по (даже) 50 минут назад двое-трое суток - это просто мученье. А если нужно неделю отмотать?
4. В РЭ СПК210 вы пишете, что рекомендуется использовать журналируемЫЕ файловЫЕ системЫ (во множественном числе) и тут же, что NTFS только для чтения. Тупой вопрос - какую же журналируемую файловую систему мне тогда выбрать? Наверное, Ext4 попробую, но это не точно, потому как форматирование SD-карты в конфигураторе (при загрузке) только в FAT32...рука-лицо... CODESYS "крутящийся" на Linux'е не умеет форматировать SD-карту в формат "родной" файловой системы? :confused:
Одно лечится, другое калечится. Честно, вот проще и быстрее было остаться на встроенном компоненте, "прикрутить" к шкафу бесперебойник с замком и года 2-3 к нему не подходить.
В общем не знаю... уже проект заканчивать нужно, а я с граблей слезть не могу. Это был, походу, крайний СПК, который я взял в руки.
Вложение 86557
И выдайте сборщикам динамометрические отвертки, все корпусные болты сорваны.
Вложение 86562
А я против того, что всё то, что нужно реализовывать через скада и базы данных, пытаются втолкнуть в плк (спк). Зачем!?
Да, есть встроенная визуализация (для плк), но это не делает его полноценной системой для хранения исторических трендов и пр.