Вложений: 8
VISU#15. При использовании трендов возникает ошибка...
Вопрос: при использовании трендов возникает одна из следующих проблем:
1. На тренде вместо данных отображается сообщение "Error 30405 occurred" (число может быть другим)
2. На тренде вместо данных отображется сообщение "Some kind of disk I/O error occurred. Check disk space"
3. В визуализации контроллера отображается следующее сообщение:
Вложение 47153
4. В проекте возникает исключение с приблизительно следующим содержанием (его можно увидеть на вкладке Device - Журнал при подключении к контроллеру):
Код:
Due to the exception the visualization goes into a safe mode until restart
Exception happened while evaluating main visu 'Trend2', exception code: 0
*SOURCEPOSITION* App=[<app>Application</app>] area=<area>0</area>, offset=<off>4131956</off>
*EXCEPTION* App=[<app>Application</app>], Exception=[<excpt>FPU DivisionByZero]
Чем они вызваны и что можно сделать?
Примечание: для концептуального решения этой проблемы мы разработали библиотеку OwenVisuTools с собственной реализацией трендов.
Ответ: в большинстве случаев подобные проблемы возникают при перезагрузке контроллера по питанию в тот момент, когда происходит работа с файлом тренда - что приводит к повреждению этого файла.
С этим связаны ситуации из п. 1 и 3, а в некоторых случаях - из п. 2.
Ситуация из п. 2 также возникает, если файлы трендов были удалены из контроллера (например, через вкладку Device - Файлы).
В свежих версиях CODESYS (SP14) исправлено две критических ошибок, связанных с трендами:
Вложение 47154 Вложение 47155
Исправление еще двух запланировано в версии SP16:
Вложение 47156 Вложение 47157
И еще одной - в SP17:
Вложение 48179
Пользователь может уменьшить вероятность описанных ситуаций, выбрав для тренда адекватный период записи данных в файл:
1. В настройках тренда на вкладке Дополнительно следует настроить параметр Измерение в каждом N-цикле. Этот параметр определяет периодичность (выраженную в числе циклов задачи, связанной с трендом) добавления точек на тренд и копирования данных в буфер тренда. Этот буфер размещается в оперативной памяти.
Вложение 47160
2. В настройках тренда на вкладке Сохранение трендов следует настроить параметр Сохранение каждые N мс. Этот параметр определяет периодичность записи данных из буфера тренда в файл.
Вложение 47161
Соответственно, чем реже происходит запись в файл - тем меньше вероятность того, что она произойдет в момент пропадания питания контроллера и тем меньше вероятность возникновения ситуаций из п. 1-3.
Ситуация, описанная в п. 4, обычно связана с обработкой отображаемых данных, которую производит компонент. Для предотвращения этой ошибки можно воспользоваться следующими рекомендациями:
1. Не привязывать к тренду выходы ФБ (предварительно следует копировать их в локальные переменные программы).
2. Обрабатывать значения, записываемые в эти переменные, через оператор LIMIT. Это связано с тем, что описанное исключение может возникнуть при резком изменении значений переменных, отображаемых на тренде (например, когда между циклами значение переменной изменяется от 10 до 100000000). Такая ситуация может возникнуть, если, например, в значении аналогового канала также кодируется его статус.
IDE#10. Можно ли установить среду программирования CODESYS на ПК с ОС Linux?
Вопрос: можно ли установить среду программирования CODESYS на ПК с ОС Linux?
Ответ: да, такая возможность поддерживается начиная с версии V3.5 SP13. Инструкция по установке приведена в этой статье.
Для упрощения установки доступен docker-контейнер (начиная с версии V3.5 SP17 - он не работает).
PRG#16. Как считать данные мониторинга задач в переменные программы?
Вопрос: как считать данные мониторинга задач (отображаемые в компоненте Конфигурация задач при онлайн-подключении к ПЛК) в переменные программы?
Ответ: это можно сделать с помощью библиотеки CmpIecTask. См. видео.
Вложений: 1
COM#10. Можно ли подключить к контроллеру преобразователь АС4-М?
Вопрос: можно ли подключить к контроллеру преобразователь АС4-М и работать с ним в CODESYS как c виртуальным COM-портом?
Ответ: это возможно при работе с контроллерам ПЛК210 и СПК1хх [М01] (для СПК1хх [М01] - начиная с прошивки 1.2.0131.1405).
Поддерживается АС4-М и другие преобразователи на базе чипа cp210x.
После подключения преобразователя к порту USB A контроллера в web-конфигураторе на вкладке Состояние/Журнал ядра появится информация о подключении устройства:
Вложение 48141
После этого можно работать с преобразователем в CODESYS как с COM-портом:
- Для ПЛК210 - ID COM-порта в CODESYS = 11
- Для СПК1хх [М01] - ID COM-порта в CODESYS = 6
Вложений: 2
DEBUG#05. Что делать, если контроллер не обнаруживается при сканировании сети?
Вопрос: при выполнении команды Сканировать сеть (вкладка Device - Установки соединения) контроллер не обнаруживается. Что делать?
Вложение 48346
Ответ: сканирование сети производится путем рассылки широковещательных UDP-пакетов. Они могут быть заблокированы в рамках конкретной сети.
Например, это характерно при подключении через VPN.
В этом случае необходимо ввести IP-адреса контроллера (в рамках примера ниже - это 192.168.0.33; вместо него вам нужно ввести IP-адрес вашего контроллера) и нажать Enter:
Вложение 48345
Если это не решит проблему - то следует проверить, не заблокированы ли на сетевом оборудовании порты, используемые CODESYS или не запрещен доступ из CODESYS в web-конфигураторе контроллера (вкладка Сеть - Межсетевой экран - Правила для трафика - проверить, что включены правила Allow-CODESYS-GATEWAY-TCP и Allow-CODESYS-GATEWAY-UDP).
Вложений: 1
VISU#16. Как вкл./откл. поддержку multi-touch для различных клиентов визуализации?
Вопрос: как включить/отключить поддержку multi-touch для различных клиентов визуализации?
Ответ: в установках Менеджера визуализации есть галочка Обработка мультикасания, которая активирует multi-touch для всех клиентов визуализации.
Галочка влияет на поддержку жестов и взаимодействие с некоторыми элементами, поддерживающими прокрутку (Таблица, Combobox и др.).
Вложение 48643
В некоторых случаях требуется, чтобы для одних клиентов multi-touch был активирован (например, он необходим для корректной работы с web-визуализацией на панели ВП110), а на других - отключен (например, на ПК).
В таких ситуациях можно в URL web-визуализации использовать специальный флаг ?CFG_TouchHandlingActive=True или ?CFG_TouchHandlingActive=False.
Пример полного URL:
Код:
http://192.168.0.33:8080/webvisu.htm?CFG_TouchHandlingActive=False
VISU#17. Как в визуализации посмотреть список файлов ПЛК и подключенного накопителя?
Вопрос: требуется организовать в визуализации контроллера просмотр файлов, которые хранятся в его памяти (или на подключенном накопителе).
Каким образом это можно сделать?
Ответ: можно использовать диалог FileDirChoiceOwen из библиотеки OwenVisuDialogs.
Принципы работы c диалогом (на примере стандартного диалога FileOpenSave, на базе которого создан FileDirChoiceOwen) приведены в этом видео.
OTHER#08. Как перепрошить СПК1хх с прошивкой SP14 на прошивку с SP11?
Вопрос: как перепрошить СПК1хх [М01] с прошивкой с CODESYS V3.5 SP14 Patch 3 (например, 1.2.0131.1405) на прошивку с CODESYS V3.5 SP11 Patch 5 (например, 1.1.0611.1056)?
При попытке перепрошивки стандартным методом контроллер перестает загружаться.
Комментарии:
1. "Откатить" прошивку можно только до версии 1.1.0611.1056 - но не до более ранних версий.
2. Перед процедурой "отката" обязательно следует связаться с техподдержкой, чтобы подтвердить его возможность и целесообразность в конкретном случае.
3. Следует заранее подготовить нуль-модемный кабель и переходник RS-232/USB (с подтвержденной работоспособностью) - это позволит с определенной вероятностью восстановить работу прибора, если процедура перепрошивки будет проведена некорректно.
Ответ: начиная с прошивки 1.2.0131.1405 в операционной и файловой системе контроллера произошли серьезные изменения.
Поэтому для перепрошивки контроллера с версией прошивки >= 1.2.0131.1405 на более раннюю версию прошивки требуется сделать следующее:
1. Подключиться к терминалу Linux (через web-конфигуратор, вкладка Система/Терминал или утилиту типа putty).
2. Выполнить команды
Код:
echo 0 > /sys/class/block/mmcblk1boot1/force_ro
fw_setenv force_mmc_update yes
reboot
3. После команды reboot контроллер начнет перезагружаться.
Перейдите в сервисное меню и обновите прошивку с USB или SD-накопителя.
Вложений: 2
DEBUG#06. Что делать при возникновении ошибки "Недостаточно памяти на устройстве"?
Вопрос: при загрузке проекта из CODESYS возникает ошибка "Загрузка не завершена: недостаточно памяти на устройстве". Что делать?
Вложение 50250
Ответ: обычно эта ошибка указывает на то, что перед последней перезагрузкой контроллера не было создано загрузочное приложение.
(см. более подробную информацию здесь).
Самый простой вариант решения проблемы - перейти в web-конфигуратор и на вкладке ПЛК/Настройки нажать кнопку Очистить retain-память:
Вложение 50251
После этого загрузка проекта пройдет без ошибок.
Также можно перезагрузить контроллер - это приведет к такому же результату.
COM11. Можно ли к контроллерам ОВЕН подключать USB HID устройства?
Вопрос: можно ли к контроллерам ОВЕН, программируемым в среде CODESYS V3.5, подключать USB HID устройства?
Ответ: да, это возможно. Допускается подключение символьных устройств (клавиатуры, сканера штрихкодов и т.д.) и манипуляторов (мышь, графический планшет и т.д.).
Данный функционал поддерживается контроллерами СПК1хх [М01] и ПЛК210 начиная с версии прошивки 1.2.0623.1009.
Для получения информации от HID устройств (строк данных, координат нажатий и т.д.) используется библиотека CmpOwenUsbHid.
Библиотека и документация доступны по ссылке:
https://owen.ru/product/codesys_v3/libraries
См. видеопример.
Для использования клавиатуры и мыши в таргет-визуализации контроллеров СПК1хх [М01] применение библиотеки не требуется - ввод данных и управление курсором будет работать автоматически.
Для ввода текста на кириллице потребуется зажать клавишу RigthAlt , а переменная, привязанная к элементу, должна иметь тип WSTRING.
Информация по использованию горячих клавиш доступна в документе CODESYS V3.5. Визуализация (п. 3.1.3, 5.4.2 и табл. 9.1, параметр 10).
Контроллеры СПК1хх [М01] также поддерживают системные переменные, позволяющие определить координаты и число нажатий курсора:
- Screen.cursorX (INT) – координата последнего нажатия курсора по оси X;
- Screen.cursorY (INT) – координата последнего нажатия курсора по оси Y;
- Screen.countTouch (UDINT) – число нажатий на экран с момента включения.