Страница 6 из 17 ПерваяПервая ... 4567816 ... ПоследняяПоследняя
Показано с 51 по 60 из 168

Тема: CODESYS V3.5. Онлайн-FAQ

  1. #51

    По умолчанию DEBUG#03. Что делать, если появляется ошибка "Адрес уже используется" ?

    Вопрос: при компиляции проекта появляется ошибка "Адрес %<...> уже используется". Как ее убрать?

    Ответ: вероятно, некоторые адреса в каналах компонентов, размещенных в дереве проекта, случайно были назначены вручную, и совпали с уже используемыми.

    В этом случае рядом с ними появляется синяя буква М (17-05-2019 7-40-07.png):

    17-05-2019 7-33-30.png

    Следует проверить все узлы таргет-файла с каналами (системные узлы типа Drives и другие, компоненты Modbus, OwenArhiver и т. д.) и отменить ручное распределение адресов.

    Для этого следует нажать на ячейку, в которой расположена синяя буква М (17-05-2019 7-40-07.png) и удалить в ней все символы, после чего нажать Enter. В результате адрес канала будет рассчитан автоматически.

  2. #52

    По умолчанию DEBUG#04. Что делать,если при загрузке проекта появилась ошибка "Download denied..."?

    Вопрос: что делать, если при загрузке проекта появляется подобная ошибка?

    26-06-2019 8-03-03.png

    Ответ: вероятно, ранее контроллер был переведен в режим Заблокировано или Рабочий с помощью команды Онлайн - Режим работы.
    Требуется установить соединение с контроллером (Device - Сканировать сеть - подключиться к контроллеру без загрузки проекта) и использовать команду Онлайн - Режим работы - Отладка.
    После этого можно будет загрузить проект.

    Также такое сообщение может появиться, если загрузка проекта запрещена из кода программы через ФБ PlcOperationControl.
    В этом случае требуется удалить текущий проект из контроллера через конфигуратор, после чего загрузить новый.

  3. #53

    По умолчанию OTHER#05. Как организовано сохранение retain-переменных?

    Вопрос: как организовано сохранение энергонезависимых переменных (RETAIN и PERSISTENT) в контроллерах ОВЕН?

    Ответ: в контроллерах СПК и ПЛК210/200 энергонезависимые переменные сохраняются в микросхеме MRAM. Сохранение энергонезависимых переменных выполняется по изменению любой из переменных, но не чаще раза в секунду - при этом вся область RETAIN-памяти перезаписывается целиком. Число циклов перезаписи MRAM практически бесконечно. MRAM включает в себя две дублирующие друг друга области памяти. При старте контроллер проверяет CRC этих областей - если для одной области рассчитанный CRC не соответствует сохраненному (такое может быть, например, при пропадании питания в момент сохранения), то значения RETAIN переменных восстанавливаются из другой.

  4. #54

    По умолчанию 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-адрес автоматически - -

    2022-10-24_6-18-58.png

  5. #55

    По умолчанию 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).

    Favicon01.png

    Также можно настроить мобильный значок страницы. Для этого потребуется загрузить файл значка (например, owen.png) в соответствующую директорию (см. пути выше) и добавить в файл webvisu.htm (расположенный в той же директории) строку типа

    Код:
    <link rel="apple-touch-icon" sizes="196x196" href="owen.png" />
    Favicon02.png

    Более подробная информация по синтаксису приведена по ссылке.

    Обратите внимание, что при перезагрузке по питанию файл webvisu.htm будет создан заново, поэтому удобнее всего записывать в него эту строку из кода программы при запуске приложения.

    Источник информации: https://www.codesys-blog.com/visuali...visu-app-icon/

  6. #56

    По умолчанию PRG#15. Как запаковать файл в архив с установкой пароля?

    Вопрос: на контроллере сохраняются файлы отчетов, которые требуется передавать на web-сервер в виде запароленных архивов. Каким образом это можно сделать?

    Ответ: предположим, в контроллер есть файл Arc1.log, размещенный в директории /mnt/ufs/home/root:

    16-08-2019 10-42-45.png

    В проект нужно добавить библиотеку 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:

    16-08-2019 10-46-40.png

    Для распаковки архива потребуется ввести пароль:

    16-08-2019 10-47-09.png

  7. #57

    По умолчанию VISU#13. Как переключить экран визуализации при входе пользователя в систему?

    Вопрос: в проекте есть несколько пользователей web-визуализации.
    Требуется при авторизации конкретного пользователя переключить экран визуализации (только для данного пользователя).
    Как это можно сделать?

    Примечание: приведенный ниже пример подходит для контроллеров, программируемых в CODESYS V3.5 SP11 Patch 5 или выше.

    Ответ: см. данный пример, который сделан на базе примера получения информации о пользователях визуализации.

    В примере создано два пользователя: User1 с паролем 1 и User2 с паролем 2.

    SwitchVisuForUserFromCode01.png

    На основном экране (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 данного документа.

  8. #58

    По умолчанию 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 - Свойства - Установки загрузочного приложения).

    27-08-2019 14-57-04.png

  9. #59

    По умолчанию VISU#14. При открытии диалога на экране артефакты или пропадают элементов...

    Вопрос: после открытия диалога на экране визуализации, поверх которого он открывается, наблюдаются визуальные артефакты (полосы, "лишние" прямоугольники, пропадание элементов). Как можно решить эту проблему?

    Примечание: данная проблема связана с багом в версии CODESYS V3.5 SP11 (присутствует во всех патчах).

    Ответ: нажмите ПКМ на экран диалога и выберите команду Фон. В открывшемся окне снимите обе галочки. В качестве фона диалога используйте элемент Прямоугольник нужного цвета или элемент Изображение, размещенные в нижнем слое экрана диалога.

    13-01-2020 14-39-48.png

  10. #60

    По умолчанию VISU#15. При использовании трендов возникает ошибка...

    Вопрос: при использовании трендов возникает одна из следующих проблем:

    1. На тренде вместо данных отображается сообщение "Error 30405 occurred" (число может быть другим)
    2. На тренде вместо данных отображется сообщение "Some kind of disk I/O error occurred. Check disk space"
    3. В визуализации контроллера отображается следующее сообщение:

    visu_exception.jpg

    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) исправлено две критических ошибок, связанных с трендами:

    trend01.png trend02.png

    Исправление еще двух запланировано в версии SP16:

    trend03.png trend04.png

    И еще одной - в SP17:

    30-03-2020 18-28-58.png

    Пользователь может уменьшить вероятность описанных ситуаций, выбрав для тренда адекватный период записи данных в файл:

    1. В настройках тренда на вкладке Дополнительно следует настроить параметр Измерение в каждом N-цикле. Этот параметр определяет периодичность (выраженную в числе циклов задачи, связанной с трендом) добавления точек на тренд и копирования данных в буфер тренда. Этот буфер размещается в оперативной памяти.

    TrendSettingBuffer.png

    2. В настройках тренда на вкладке Сохранение трендов следует настроить параметр Сохранение каждые N мс. Этот параметр определяет периодичность записи данных из буфера тренда в файл.

    TrendSettingFile.png

    Соответственно, чем реже происходит запись в файл - тем меньше вероятность того, что она произойдет в момент пропадания питания контроллера и тем меньше вероятность возникновения ситуаций из п. 1-3.


    Ситуация, описанная в п. 4, обычно связана с обработкой отображаемых данных, которую производит компонент. Для предотвращения этой ошибки можно воспользоваться следующими рекомендациями:

    1. Не привязывать к тренду выходы ФБ (предварительно следует копировать их в локальные переменные программы).
    2. Обрабатывать значения, записываемые в эти переменные, через оператор LIMIT. Это связано с тем, что описанное исключение может возникнуть при резком изменении значений переменных, отображаемых на тренде (например, когда между циклами значение переменной изменяется от 10 до 100000000). Такая ситуация может возникнуть, если, например, в значении аналогового канала также кодируется его статус.

Страница 6 из 17 ПерваяПервая ... 4567816 ... ПоследняяПоследняя

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 29.06.2017, 11:21

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •