Вложений: 1
VISU#11. Можно ли изменить картинку "Отсутствует визуализация"?
Вопрос: можно ли изменить картинки "Отсутствует визуализация" и "Отсутствует загрузочное приложение"?
Вложение 42694
Комментарий: начиная с версии прошивки 1.2.0623.1009 это можно сделать в web-конфигураторе. См. информацию здесь.
Комментарий: приведенная ниже информация актуальна только для контроллеров c версией прошивки 1.1.0611.1056.
Ответ: это возможно.
Подключитесь к контроллеру по SSH (см. CODESYS V3.5. FAQ, п. 13.4) и выполните команду mount -o remount,rw / /
После этого подключитесь к контроллеру с помощью WinSCP (см. CODESYS V3.5. FAQ, п. 13.5) и перейдите в директорию /usr/bin/CODESYS.
Вы увидите 4 нужных вам файла (не удаляйте и не редактируйте остальные файлы - это может нарушить нормальную работу контроллера):
- stop_plc.jpg (Отсутствует загрузочное приложение, горизонтальная ориентация дисплея)
- stop_plc_v.jpg (Отсутствует загрузочное приложение, вертикальная ориентация дисплея)
- stop_visu.jpg (Отсутствует визуализация, горизонтальная ориентация дисплея)
- stop_visu_v.jpg (Отсутствует визуализация, вертикальная ориентация дисплея)
Вы можете заменить эти изображения на свои, при этом сохранив названия, формат и разрешение.
После загрузки новых картинок необходимо перезагрузить контроллер командой reboot
При перезагрузке путем выключения и подачи питания файловая система контроллера может быть повреждена, так как в данный момент она еще примонтирована в режиме read-write.
После перезагрузки по команде reboot файловая система опять будет смонтирована в режиме read-only.
Вложений: 2
DEBUG#03. Что делать, если появляется ошибка "Адрес уже используется" ?
Вопрос: при компиляции проекта появляется ошибка "Адрес %<...> уже используется". Как ее убрать?
Ответ: вероятно, некоторые адреса в каналах компонентов, размещенных в дереве проекта, случайно были назначены вручную, и совпали с уже используемыми.
В этом случае рядом с ними появляется синяя буква М (Вложение 42756):
Вложение 42754
Следует проверить все узлы таргет-файла с каналами (системные узлы типа Drives, компоненты Modbus, OwenArhiver) и отменить ручное распределение адресов.
Для этого следует нажать на ячейку, в которой расположена синяя буква М (Вложение 42756) и удалить в ней все символы, после чего нажать Enter. В результате адрес канала будет рассчитан автоматически.
Вложений: 1
DEBUG#04. Что делать,если при загрузке проекта появилась ошибка "Download denied..."?
Вопрос: что делать, если при загрузке проекта появляется подобная ошибка?
Вложение 43309
Ответ: вероятно, ранее контроллер был переведен в режим Заблокировано или Рабочий с помощью команды Онлайн - Режим работы.
Требуется установить соединение с контроллером (Device - Сканировать сеть - подключиться к контроллеру без загрузки проекта) и использовать команду Онлайн - Режим работы - Отладка.
После этого можно будет загрузить проект.
Также такое сообщение может появиться, если загрузка проекта запрещена из кода программы через ФБ PlcOperationControl.
В этом случае требуется удалить текущий проект из контроллера через конфигуратор, после чего загрузить новый.
OTHER#05. Как организовано сохранение retain-переменных?
Вопрос: как организовано сохранение энергонезависимых переменных (RETAIN и PERSISTENT) в контроллерах ОВЕН?
Ответ: в контроллерах СПК1хх [М01] и ПЛК2xx энергонезависимые переменные сохраняются в микросхеме MRAM. Сохранение энергонезависимых переменных выполняется по изменению любой из переменных, но не чаще раза в секунду - при этом вся область RETAIN-памяти перезаписывается целиком. Число циклов перезаписи MRAM практически бесконечно. MRAM включает в себя две дублирующие друг друга области памяти. При старте контроллер проверяет CRC этих областей - если для одной области рассчитанный CRC не соответствует сохраненному (такое может быть, например, при пропадании питания в момент сохранения), то значения RETAIN переменных восстанавливаются из другой.
Вложений: 1
OTHER#06. Что делать, если не удается подключиться к контроллеру через кабель USB B?
Вопрос: что делать, если не удается подключиться к контроллеру через кабель USB B?
Ответ:
1. Убедитесь в исправности кабеля.
2. Убедитесь, что на ПК установлен драйвер.
3. Убедитесь, что в сетевых настройках ПК для виртуального адаптера задан корректный адрес и маска (см. пример ниже).
4. Убедитесь, что в конфигураторе для интерфейсов Ethernet и USB настроены разные подсети.
Пример корректных настроек:
Устройство/Параметр |
IP |
Маска |
Шлюз |
Контроллер (Ethernet) |
192.168.0.10 |
255.255.0.0 |
192.168.0.1 |
Контроллер (USB) |
10.0.6.10 |
255.255.255.248 |
- |
ПК (виртуальный адаптер) |
Получить IP-адрес автоматически |
- |
- |
Вложение 63324
Вложений: 2
VISU#12. Как настроить favicon для страницы web-визуализации?
Вопрос: как настроить favicon для страницы web-визуализации?
Ответ: для этого достаточно загрузить (о том, как это сделать - см. п. 13.5 в документе CODESYS V3.5. FAQ) файл favicon.ico в директорию /home/root/CODESYS_WRK/PlcLogic/visu (для СПК1хх [М01]) или в директорию /root/CODESYS/PlcLogic/visu (для ПЛК2хх). Для СПК1хх [М01] загрузить favicon также можно через web-конфигуратор (вкладка ПЛК/Заставка).
Чтобы увидеть изменения в браузере потребуется обновить страницу c очисткой кеша (в Google Chrome - Ctrl+F5).
Вложение 43468
Также можно настроить мобильный значок страницы. Для этого потребуется загрузить файл значка (например, owen.png) в соответствующую директорию (см. пути выше) и добавить в файл webvisu.htm (расположенный в той же директории) строку типа
Код:
<link rel="apple-touch-icon" sizes="196x196" href="owen.png" />
Вложение 43469
Более подробная информация по синтаксису приведена по ссылке.
Обратите внимание, что при перезагрузке по питанию файл webvisu.htm будет создан заново, поэтому удобнее всего записывать в него эту строку из кода программы при запуске приложения.
Источник информации: https://www.codesys-blog.com/visuali...visu-app-icon/
Вложений: 3
PRG#15. Как запаковать файл в архив с установкой пароля?
Вопрос: на контроллере сохраняются файлы отчетов, которые требуется передавать на web-сервер в виде запароленных архивов. Каким образом это можно сделать?
Ответ: предположим, в контроллер есть файл Arc1.log, размещенный в директории /mnt/ufs/home/root:
Вложение 44125
В проект нужно добавить библиотеку CmpSysExeс.
Для добавления файла в архив с установкой пароля требуется выполнить следующий код:
Код:
VAR
xCreateArchiveWithPassword: BOOL;
fbSysExec3: CmpSysExec.sysExecute3;
END_VAR
fbSysExec3(xExecute := xCreateArchiveWithPassword, sCommand := '/usr/bin/7za a -p123 /mnt/ufs/home/root/Arc1.7z /mnt/ufs/home/root/Arc1.log');
В приведенном выше примере кода:
- 123 - пароль на архив
- /mnt/ufs/home/root/Arc1.7z - путь к создаваемому файлу архива
- /mnt/ufs/home/root/Arc1.log - путь к файлу, добавляемого в архив
Файл архива будет создан по переднему фронту переменной xCreateArchiveWithPassword:
Вложение 44126
Для распаковки архива потребуется ввести пароль:
Вложение 44127
Вложений: 1
VISU#13. Как переключить экран визуализации при входе пользователя в систему?
Вопрос: в проекте есть несколько пользователей web-визуализации.
Требуется при авторизации конкретного пользователя переключить экран визуализации (только для данного пользователя).
Как это можно сделать?
Примечание: приведенный ниже пример подходит для контроллеров, программируемых в CODESYS V3.5 SP11 Patch 5 или выше.
Ответ: см. данный пример, который сделан на базе примера получения информации о пользователях визуализации.
В примере создано два пользователя: User1 с паролем 1 и User2 с паролем 2.
Вложение 44158
На основном экране (Vis1) расположена кнопка Войти в систему. При нажатии на кнопку появляется окно авторизации.
После авторизации выполняется сбор информации о пользователя (для этого в настройках кнопки в конфигурации ввода на вкладке OnDialogClosed переменной xLogin присваивается TRUE).
Сбор информации осуществляется в программе ClientPrg.
Если обнаружен вход пользователя User1, то осуществляется переход на экран Vis2.
Если обнаружен вход пользователя User2, то осуществляется переход на экран Vis3.
Код:
// переключаем экраны в зависимости от имен залогинившихся пользователей
FOR i:=1 TO iVisuClientCount DO
IF astVisuClientData[i].wsCurrentUserName = "User1" AND NOT(axIsLogged[i]) THEN
axIsLogged[i] := TRUE;
VisuElems.g_VisuManager.SetMainVisu(astVisuClientData[i].pstClientData, 'Vis2');
ELSIF astVisuClientData[i].wsCurrentUserName = "User2" AND NOT(axIsLogged[i]) THEN
axIsLogged[i] := TRUE;
VisuElems.g_VisuManager.SetMainVisu(astVisuClientData[i].pstClientData, 'Vis3');
ELSIF astVisuClientData[i].wsCurrentUserName = "" THEN
axIsLogged[i] := FALSE;
END_IF
END_FOR
Если пользователь нажимает кнопку Назад, то выполняются три действия:
- переключение на экран Vis1
- "разлогинивание" пользователя
- обновление информации о пользователях (xLogin := TRUE), чтобы в программе снять флаг логина данного клиента
Если вы используете CODESYS V3.5 SP17 Patch 3 с плагином визуализации 4.3.0.0 или выше - то см. этот пример и информацию из п. 1.3 данного документа.
Вложений: 1
OTHER#07. Особенности выполнения команды "Создать загрузочное приложение"
Приведенная информация актуальна для контроллеров СПК1хх [М01] и ПЛК2xx.
В прошивке 1.0.1229.1031 для СПК1хх [М01] загрузочное приложение создавалось неявно при загрузке проекта - такой подход используется в современных версиях CODESYS по умолчанию.
Этот подход имеет существенный недостаток - пользователь не может избежать загрузочного приложения даже в тех случаях, когда оно не требуется.
Например, в процессе отладки некорректно написанная программа может привести к перезагрузке контроллера.
Неявно созданное загрузочное приложение в данном случае приведет к циклической перезагрузке контроллера - поэтому потребуется перейти в конфигуратор и удалить проект.
В прошивке 1.1.0611.1056 для СПК1хх [М01] и всех прошивках для ПЛК2хх (точнее - в таргет-файлах для этих прошивок) неявное создание загрузочного приложения отключено.
Загрузочное приложение создается только при выполнении команды Создать загрузочное приложение из меню Онлайн.
Этот подход не имеет описанного выше недостатка, но при определенных обстоятельствах может привести к неочевидному для пользователя поведению контроллера.
Предположим, в контроллере создано загрузочное приложение. Происходит загрузка нового проекта (или онлайн-изменение).
В этот момент выполняется инициализация области RETAIN-переменных - даже если они отсутствуют в проекте (потому что, например, узел таргет-файла Watchdog использует Retain-память).
Предположим, пользователь не создает загрузочного проекта и перезагружает контроллер по питанию.
При старте система исполнения определяет, что загрузочное приложение и образ retain-памяти не соответствуют друг другу.
В результате генерируется исключение RETAIN_IDENTITY_MISMATCH (его можно увидеть на дисплее, если в конфигураторе включен режим обработки ошибок TraceInfo или TraceInfoAndReboot).
Пользовательский проект, соответственно, не запускается.
Если опять перезагрузить контроллер - то retain-память будет заново проинициализирована и проект будет запущен.
Таким образом, перед перезагрузкой контроллера рекомендуется создать загрузочное приложение, чтобы избежать описанной выше ситуации.
При желании пользователь может включить неявное создание загрузочного приложения при загрузке и онлайн-изменении.
Это выполняется в настройка приложения (Application - Свойства - Установки загрузочного приложения).
Вложение 44326
Вложений: 1
VISU#14. При открытии диалога на экране артефакты или пропадают элементов...
Вопрос: после открытия диалога на экране визуализации, поверх которого он открывается, наблюдаются визуальные артефакты (полосы, "лишние" прямоугольники, пропадание элементов). Как можно решить эту проблему?
Примечание: данная проблема связана с багом в версии CODESYS V3.5 SP11 (присутствует во всех патчах).
Ответ: нажмите ПКМ на экран диалога и выберите команду Фон. В открывшемся окне снимите обе галочки. В качестве фона диалога используйте элемент Прямоугольник нужного цвета или элемент Изображение, размещенные в нижнем слое экрана диалога.
Вложение 46659