Евгений, я нашел ошибку, все заработало. Извините за беспокойство.
Вид для печати
Евгений, я нашел ошибку, все заработало. Извините за беспокойство.
Со временем проекты становятся все сложнее и забивать сотни аварийных сообщений в Alarm Manager становится слишком рутинно. Плюс к тому еще глюки связанные с приоритетом аварий, при появлении более приоритетной аварии хотелось бы чтобы менее приоритетная исчезала, но вместо этого они висят обе хотя и настроено вытеснение (возможно это только у меня так криво работает, руки не дойдут основательно все протестировать).
Но вопрос в другом. Наверняка есть способы активировать аварии, да и вообще "заполнять" Alarm Manager из кода программы, подскажите в какую сторону смотреть, возможно описание или даже пример есть.
Как считывать аварии информация есть, правда библиотека Alarm Manager Interfaces пытается вызывать библиотеку Stndard64 3.5.2.0, из-за чего компилятор постоянно ругается.
А зачем тогда вообще AlarmManager?
Обычная таблица дает полный контроль из кода.
Возможно вы и правы, наверно не хочется думать о энергонезависимом хранении, а главное поддержать, хоть и кривые но стандарты.
Просто я стал замечать, что большинство аварий копируются из проекта в проект, но приходится тексты сообщений править под каждый датчик и т.д. А в коде можно взять стандартную часть фразы, например "Обрыв датчика" и прицепить к ней название датчика из списка текстов с названиями датчиков и провести всю эту операцию в цикле. Можно конечно подумать в сторону библиотеки CmpDynamicText но еще надо проверить, а будут ли тексты динамически изменяться в AlarmManager после подгрузки новых текстов из кода.
Еще одна задача, чтобы не дублировать проверки - это получить состояние конкретной аварии из списка AlarmManager. Пока приходится в коде дублировать проверку условия из настройки Alarma если при наступлении аварии надо что-то сделать. Пример работы с алармами использует фильтрацию аварий и пока я не понял как получить конкретную аварию не выделяя ее в отдельную группу или отдельным приоритетом. Получается код условия меньше строк занимает чем фильтрация через Alarm Manager Interfaces.
В СПК1хх [М01] 64 Кб Retain, в следующих контроллерах должно быть не меньше.
Если предположить, что одна тревога занимает 10 байт (метки времени появления/квитирования/исчезновения, DWORD на ID и DWORD на регистр статуса), то хранение 500 тревог займет < 10% Retain.
Можно по факту возникновения сразу писать тревоги на USB/SD, а в Retain хранить историю за последнюю неделю.
Будут, проверял.Цитата:
Можно конечно подумать в сторону библиотеки CmpDynamicText но еще надо проверить, а будут ли тексты динамически изменяться в AlarmManager после подгрузки новых текстов из кода.
Я делаю так: условие аварии собираю в коде. Для каждой аварии получаю переменную типа BOOL.Цитата:
Еще одна задача, чтобы не дублировать проверки - это получить состояние конкретной аварии из списка AlarmManager. Пока приходится в коде дублировать проверку условия из настройки Alarma если при наступлении аварии надо что-то сделать
Все условия тревог делаю дискретными, и к ним привязываю эти переменные.
Таким образом, дублирования условий не происходит.
Также список тревог с их настройками можно экспортировать/импортировать в .csv - зачастую проще в нем руками внести изменения.
Здравствуйте. Подскажите настроил веб визуализацию (СПК 110 [М01]) на телефоне. Все работает но только внутри сети. Как сделать чтобы работало через интернет?
Добрый день.
Обратиться к вашей IT-службе. Этот вопрос касается не СПК, а настроек сетевого оборудования, выделения статических адресов, проброса портов и т.д.
Добрый день.
Подскажите в чем может проблема, что значение параметров, а также часы при их изменении накладываются значения..Вложение 42548
Добрый день.
См. здесь: https://www.owen.ru/forum/showthread...l=1#post304650
Добрый день, вопрос к опытным коллегам. Каким наилучшим образом управлять окнами визуализации. Необходимый функционал: в случае аварии или нештатной ситуации появляется окно/диалог и блокирует все остальные окна до того момента пока ошибка не будет квитирована и/или оператор не произведет определенное действие с оборудованием. Примером такого окна может быть окно с состоянием ошибок приводов, тепловой защиты мотора-втоматов и кнопок Emergency_Stop. В настоящий момент использую переменную CurentVisu. Это не всегда удобно. Если ли какой либо аналог приоритета видимости окон, как при настройки обычной панели оператора (Овен, Wientek)
Добрый день.
Для СПК1хх [М01] можно открыть диалоговое окно из кода программы (по срабатыванию нужного условия) - см. библиотеку Visu Utils с ФБ fbOpenDialog.
У этого ФБ есть вход xModal - если окно является модальным, то оно блокирует элементы экрана, поверх которого открывается.
https://youtu.be/O5_K2flbUKI
Для старых СПК1хх (без Ethernet) и СПК207 такой вариант не подойдет - остается только вариант с CurrentVisu.
Добрый день, Евгений
огромное спасибо за предоставленную информациюОтдельное спасибо за весь плейлист СПК1хх [М01].Цитата:
Для СПК1хх [М01] можно открыть диалоговое окно из кода программы (по срабатыванию нужного условия) - см. библиотеку Visu Utils с ФБ fbOpenDialog.
У этого ФБ есть вход xModal - если окно является модальным, то оно блокирует элементы экрана, поверх которого открывается.
https://youtu.be/O5_K2flbUKI
Доброго времени суток.
Есть Codesys 3.5 SP11 path5. Как в нем настроить ввод числа переменной с экранной клавиатуры?
Сделал как в мануале, а там "пустота"
Вложение 43972
Что делать? Может нужна доп. библиотека? Подскажите пожалуйста
Нужно установить хотфикс:
https://owen.ru/forum/showthread.php...l=1#post297193
В Codesys 3.5 SP10 так же есть библиотека Visu Utils. Блок FbOpenDialog вставляется без проблем, но компилятор выдает 19 ошибок (C0086: Не найдено определения для интерфейса 'VisuElemBase.IDialogOpenedListener', и т.д.).
В чем причина?
Вложение 43982
Сама библиотека появилась только в SP11.
В любой версии CODESYS видно все установленные библиотеки - то это не значит, что их все можно использовать.
Доброе утро. Спасибо за рекомендацию.
Установил, однако не пошло
Вложение 43983
Странно, ведь у меня установлен Codesys 3.5 SP11 path5
Вложение 43984
Подскажите пожалуйста, что нужно сделать, чтобы Hotfix увидел, что у меня уже установлен Codesys 3.5 SP11 path5?
Сложно дать какие-то комментарии.
Попробуйте удалить и установить еще раз.
Подскажите пожалуйста, где можно найти руководство по WEB-визуализации?
Web-визуализация практически не имеет какой-то специфики (по сравнению с обычной визуализацией).
Если в компоненте Менеджер визуализации есть узел WebVisualization - то этого достаточно.
По умолчанию доступ к web-визуализации выполняется по адресу: <IP-адрес контроллера>:8080/webvisu.htm
В руководстве по визуализации есть пример открытия диалога из кода программы:
Есть ли код для закрытия?Код:VisuElems.g_VisuManager.SetMainVisuGlobally(VisuElems.Visu_ClientType.Targetvisualization,sVisuName);
Это не пример открытия диалога, это пример переключения экрана визуализации.
Нужный вам пример есть:
https://ftp.owen.ru/CoDeSys3/21_Exam...projectarchive
Этот пример я видел. Слишком сложно. Опять же непонятно, как при помощи библиотеки Visu Utils можно закрыть диалог.
При помощи библиотеки и нельзя - в примере показывается доступ к системному интерфейсу.
Вопрос сложности здесь субъективен. Можно не вдаваться в подробности реализации и использовать как готовое решение.
Добрый день! У меня несколько коротких и, надеюсь, простых вопросов.
1. В каждой визуализации есть «редактор интерфейсов», где по умолчанию висит пустой блок «VAR_IN_OUT...END_VAR». Там я объявляю переменные, которые обычно дальше не уходят. Однако у меня бывает потребность к ним обратиться из основной программы, каким образом это можно сделать?
2. Допустим, у меня три визуализации: первая и вторая имеют по одной таблице, в третьей располагается элемент «набор вкладок», к которому привязаны первые две визуализации. Таким образом я переключаю в одной визуализации таблицы (мне это нужно, чтобы не множить управляющие элементы вроде кнопок, посредством которых я редактирую содержимое таблиц)*. Вопрос: каким образом в третьей визуализации (где набор вкладок) мне можно получить индекс выбранной строки таблицы, не прибегая к промежуточной переменной в PLC_PRG? В таблицах отображаются два массива (которые объединены в массив массивов), и номер строки даст мне индекс элемента, который нужно редактировать. Номер массива я определяю с помощью переменной, привязанной к индексу активной вкладки. Остаётся номер строки.
3. У меня была визуализация, которую я то ли удалил коряво, то ли как-то скрыл. Сейчас в дереве компонентов проекта она не отображается, но присутствует в менеджере. Если поставить напротив неё галочку «Целевая визуализация», то при компилировании вылезут связанные с ней ошибки. Её можно привязать к набору вкладок (по крайней мере, она присутствует в списке). Но она мне не нужна, я хочу её удалить, но не могу, так как её нет в дереве компонентов. Как её удалить?
Заранее спасибо за ответы!
* Я понимаю, что можно в одной визуализации разместить несколько таблиц, активную отображать, а неактивные скрывать, но это запасной вариант.
Добрый день.
1. «VAR_IN_OUT...END_VAR» переменные не могут использоваться напрямую. В какой-то момент к ним должны быть привязаны переменные из программы или глобальные переменные.
Например, при вызове диалога, настройке фрейма и т.д.
2, 3. Выложите ваш проект, пожалуйста - так будет проще вам помочь.
Увеличил шрифт в диалоге Numpad до 16 пт. При вызове диалога из программы, шрифт на кнопках увеличенный, на индикаторе все равно мелкий. Как можно увеличить шрифт на индикаторе? Версию CoDeSys менять не желательно.
Вложение 44681
Возможно, выбрали неподдерживаемый на СПК шрифт?
У меня проблема не воспроизводится:
Вложение 44682
Проблема наблюдается уже в эмуляции на устройстве CODESYS Control Win V3. Шрифт по умолчанию Arial.
Было бы проще, если бы вы уточнили свою версию CODESYS и выложили вашу библиотеку диалогов.
На виртуальнике проблем тоже не видно:
Вложение 44683 Вложение 44684
Версия CODESYS 3.5 SP10 Patch1. Так же было на SP5.
Вложение 44685
У меня с вашей библиотекой проблем нет.
Попробуйте так (убрал ошибку компиляции и прописал уникальное название/placeholder):
Спасибо, но не получилось. Шрифт все равно мелкий.
Если выложите архив вашего проекта - посмотрю, в чем может быть дело.
Сейчас ставлю CODESYS 3.5 SP11 Patch5. Посмотрю, что получится.
Ставлю CODESYS 3.5 SP11 Patch5. Посмотрю, что получится.
В CODESYS 3.5 SP11 Patch5 проблем со шрифтом нет.
Здравствуйте. Подскажите, пожалуйста, возможно ли управлять цветом изображений загруженных в проект?
Я только осваиваю CODESYS и в своём первом проекте хочу применить подсвечивание пиктограмм исполнительных механизмов и трубопровода в зависимости от их состояния и рабочей среды в них. Поскольку таких пиктограмм в стандартной библиотеке программы я не обнаружил, то использовал сторонние в формате SVG и к своему сожалению обнаружил, что их цвет не меняется через соответствующие переменные.
В процессе поиска решения этой проблемы также появились такие вопросы:
1) Возможно ли создать описание параметров для пиктограммы, как у стандартных изображений элементов, которые хранятся в папке C:\ProgramData\CODESYS\Visualization Styles\3S-Smart Software Solutions GmbH
2) Возможно ли создать необходимые пиктограммы, используя графические примитивы инструментария CODESYS и сохранить их отдельным файлом/библиотекой?
2.1) Существует ли библиотека с подобными пиктограммами? У тех же OSCAT, например.
Добрый день.
Действительно, цвет загруженных изображений изменить не получится.
1) Нет.
2) Можно сделать библиотеку, в которой каждый элемент будет представлен в виде небольшого экрана, который будет открываться в основном проекте через элемент типа Фрейм.
2.1) Нет.
Добрый день! Пишу проект для старого СПК107 на CoDeSys V3.5 SP5 Patch 5. Захотел сделать тренд, однако не тут-то было. При компиляции выдается 44 ошибки и понять что за ошибки и отчего они лезут не могу. Шлю архив проекта. Прошу помощи в решении этой задачи.