Страница 1 из 12 12311 ... ПоследняяПоследняя
Показано с 1 по 10 из 113

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

  1. #1
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    7,401

    Lightbulb CODESYS V3.5. Онлайн-FAQ

    CODESYS V3.5 – достаточно сложный программный продукт, и довольно часто у пользователей возникают вопросы по работе с ним. Эти вопросы публикуются на форуме, поступают в техподдержку и т.д. Ответы на наиболее часто задаваемые вопросы собраны в документе CODESYS V3.5. FAQ. В этой теме будут публиковаться ответы на более специфические вопросы, которые, тем не менее, могут представлять интерес для определенного числа пользователей. Вполне вероятно, что часть из них также войдет в следующую версию документа.

    ОГЛАВЛЕНИЕ:

    Среда разработки:


    Программирование:

    PRG#01. Почему при делении происходит округление значения?
    PRG#02. Как проверить, что число имеет значение NaN?
    PRG#03. Можно ли считать тексты из компонента Список текстов в переменные программы?
    PRG#04. Как преобразовывать данные? (2 WORD в REAL и т.п.)
    PRG#05. Почему при конверсии кириллицы из STRING в WSTRING получаются "крокозябры"?
    PRG#06. Как считать информацию об устройстве в переменные программы?
    PRG#07. Как считать информацию о проекте в переменные программы?
    PRG#08. Чем отличаются типы данных WORD и UINT?
    PRG#09. Некоторые особенности языка CFC
    PRG#10. Вопросы по таймерам
    PRG#11. Что можно использовать вместо ФБ Сhange_Real_Time_Clock из библиотеки SPK_Tools?
    PRG#12. Как вывести сообщение в лог CODESYS из программы?
    PRG#13. Как работать с длинными (>255 символов) строками?
    PRG#14. Как выполнить фрагмент кода однократно при старте приложения?
    PRG#15. Как запаковать файл в архив с установкой пароля?
    PRG#16. Как считать данные мониторинга задач в переменные программы?
    PRG#17. Как работать с JSON в проекте CODESYS?
    PRG#18. Как в CODESYS организовано выполнение задач из Конфигурации задач?
    PRG#19. Как в коде программы узнать сетевые настройки ПЛК210?
    PRG#20. Как организовать архивацию в формате ПЛК1хх? (для 20 функции Modbus, OPC HDA)
    PRG#21. Как реализовать энергонезависимый счетчик наработки оборудования?
    PRG#22. Как считать серийный номер USB-накопителя, подключенного к контроллеру?
    PRG#23. Как использовать функции для работы со временем из библиотеки Util?
    PRG#24. CAA Memory и работа с памятью
    PRG#25. Привязка переменных к каналам компонентов дерева проекта
    PRG#26. Ограничение библиотеки CmpSysExec на длину команды и способ его обхода
    PRG#27. Файловые плейсхолдеры
    PRG#28. Как инициализировать структуру в коде программы?


    Визуализация:

    VISU#01. Как настроить воспроизведение звука в web-визуализации?
    VISU#02. Где хранятся изображения стандартных ламп и кнопок, используемые в визуализации?
    VISU#03. Можно ли изменить внешний вид диалогов ввода? (Numpad, Keypad)
    VISU#04. Как из программы изменить диапазон элемента Стрелочный индикатор?
    VISU#05. Почему вместо элемента Индикатор добавляется Стрелочный индикатор?
    VISU#06. Как создать в визуализации вертикальный текст?
    VISU#07. Как реализовать управление пользователями визуализации из кода?
    VISU#08. Как использовать кириллицу для логинов/паролей?
    VISU#09. Как обновить изображение в визуализации с USB- или SD-накопителя?
    VISU#10. Что делать, если в визуализации происходит "наложение" текстов?
    VISU#11. Можно ли изменить картинку "Отсутствует визуализация"?
    VISU#12. Как настроить favicon для страницы web-визуализации?
    VISU#13. Как переключить экран визуализации при входе пользователя в систему?
    VISU#14. При открытии диалога на экране наблюдаются артефакты или пропадание элементов...
    VISU#15. При использовании трендов возникает ошибка...
    VISU#16. Как включить/отключить поддержку multi-touch для различных клиентов визуализации?
    VISU#17. Как в визуализации посмотреть список файлов ПЛК или подключенного накопителя?
    VISU#18. Можно ли изменить логотип на экране загрузки СПК1хх [М01]?
    VISU#19. Как создавать и использовать стили визуализации?
    VISU#20. Как задать цвет выделения элемента при использовании аппаратной клавиатуры?
    VISU#21. Как выводить в таблицу тревог сообщения о входе/выходе пользователя визуализации?
    VISU#22. Как сделать так, чтобы диалог открывался рядом с кнопкой его вызова?
    VISU#23. Как изменить язык по умолчанию в клавиатурах библиотеки OwenVisuDialogs?
    VISU#24. Как сделать скриншот web-страницы и отобразить его в визуализации?
    VISU#25. Как программно обработать результат закрытия диалога ввода? (Numpad, Keypad)
    VISU#26. Как считать информацию о пользователях визуализации в переменные программы?
    VISU#27. Проблемы с отображением длинных строковых переменных в визуализации
    VISU#28. Как переключить экран в фрейме из кода программы?
    VISU#29. Работа с тревогами из кода программы (AlarmManager)


    Обмен:

    COM#01. Как настроить обмен по протоколу MQTT?
    COM#02. Как по RS-485 опросить устройство, работающее на скорости <4800 бод?
    COM#03. Контроллер - Modbus Slave. Можно ли изменить его адрес (slave ID) в процессе работы?
    COM#04. Как организовать обмен по протоколу Modbus ASCII?
    COM#05. Как подключить контроллер к SCADA-системе TraceMode?
    COM#06. Как переинициализировать компонент ModbusCom?
    COM#07. Modbus TCP - изменение сетевых настроек из кода программы
    COM#08. Как настроить обмен с электросчетчиками Меркурий?
    COM#09. Как отключить устройство из опроса при обмене через конфигурацию?
    COM#10. Можно ли подключить к контроллеру преобразователь АС4-М?
    COM#11. Можно ли к контроллерам ОВЕН подключать USB HID устройства?
    COM#12. Проблемы с опросом Modbus Serial Slave устройств через МКОН
    COM#13. Как интегрировать контроллер с Telegram-ботом?
    COM#14. Почему при работе с шаблонами Mx210 настройки модулей сбрасываются на заводские?
    COM#15. Почему значения в каналах Modbus отображаются серым?
    COM#16. Как работать с OwenCloud через API?
    COM#17. Как настроить контроллер в режиме Slave по нестандартному протоколу обмена?
    COM#18. Как получить информацию о погоде?
    COM#19. Как настроить проброс портов для ПЛК2хх?
    COM#20. Как отмасштабировать значение, считываемое по Modbus?
    COM#21. Как подключиться к SQL-серверу?
    COM#22. Как подключить контроллер к VPN?
    COM#23. Как работать с GSM/GPRS-модемами?
    COM#24. Как настроить обмен между ПЛК, программируемыми в CODESYS V3.5?


    Отладка:



    Другие вопросы:


    Все вопросы одним списком:

    IDE#01. Какие горячие клавиши используются в CODESYS 3.5?
    IDE#02. Как включить отображение пиктограмм POU в редакторе CFC?
    IDE#03. Как изменить версию библиотеки в проекте?
    IDE#04. Как определить неиспользуемые в проекте переменные?
    IDE#05. Как установить и добавить библиотеку?
    IDE#06. Как изменить имя переменной во всех местах проекта, где она используется?
    IDE#07. Как сделать ярлык для англоязычной версии CODESYS?
    IDE#08. В каких форматах можно сохранить проект CODESYS?
    IDE#09. При запуске CODESYS возникает ошибка...
    IDE#10. Можно ли установить среду программирования CODESYS на ПК с ОС Linux?
    IDE#11. Как восстановить проект после некорректного завершения работы CODESYS?


    PRG#01. Почему при делении происходит округление значения?
    PRG#02. Как проверить, что число имеет значение NaN?
    PRG#03. Можно ли считать тексты из компонента Список текстов в переменные программы?
    PRG#04. Как преобразовывать данные? (2 WORD в REAL и т.п.)
    PRG#05. Почему при конверсии кириллицы из STRING в WSTRING получаются "крокозябры"?
    PRG#06. Как считать информацию об устройстве в переменные программы?
    PRG#07. Как считать информацию о проекте в переменные программы?
    PRG#08. Чем отличаются типы данных WORD и UINT?
    PRG#09. Некоторые особенности языка CFC
    PRG#10. Вопросы по таймерам
    PRG#11. Что можно использовать вместо ФБ Сhange_Real_Time_Clock из библиотеки SPK_Tools?
    PRG#12. Как вывести сообщение в лог CODESYS из программы?
    PRG#13. Как работать с длинными (>255 символов) строками?
    PRG#14. Как выполнить фрагмент кода однократно при старте приложения?
    PRG#15. Как запаковать файл в архив с установкой пароля?
    PRG#16. Как считать данные мониторинга задач в переменные программы?
    PRG#17. Как работать с JSON в проекте CODESYS?
    PRG#18. Как в CODESYS организовано выполнение задач из Конфигурации задач?
    PRG#19. Как в коде программы узнать сетевые настройки ПЛК210?
    PRG#20. Как организовать архивацию в формате ПЛК1хх? (для 20 функции Modbus, OPC HDA)
    PRG#21. Как реализовать энергонезависимый счетчик наработки оборудования?
    PRG#22. Как считать серийный номер USB-накопителя, подключенного к контроллеру?
    PRG#23. Как использовать функции для работы со временем из библиотеки Util?
    PRG#24. CAA Memory и работа с памятью
    PRG#25. Привязка переменных к каналам компонентов дерева проекта
    PRG#26. Ограничение библиотеки CmpSysExec на длину команды и способ его обхода
    PRG#27. Файловые плейсхолдеры
    PRG#28. Как инициализировать структуру в коде программы?


    VISU#01. Как настроить воспроизведение звука в web-визуализации?
    VISU#02. Где хранятся изображения стандартных ламп и кнопок, используемые в визуализации?
    VISU#03. Можно ли изменить внешний вид диалогов ввода? (Numpad, Keypad)
    VISU#04. Как из программы изменить диапазон элемента Стрелочный индикатор?
    VISU#05. Почему вместо элемента Индикатор добавляется Стрелочный индикатор?
    VISU#06. Как создать в визуализации вертикальный текст?
    VISU#07. Как реализовать управление пользователями визуализации из кода?
    VISU#08. Как использовать кириллицу для логинов/паролей?
    VISU#09. Как обновить изображение в визуализации с USB- или SD-накопителя?
    VISU#10. Что делать, если в визуализации происходит "наложение" текстов?
    VISU#11. Можно ли изменить картинку "Отсутствует визуализация"?
    VISU#12. Как настроить favicon для страницы web-визуализации?
    VISU#13. Как переключить экран визуализации при входе пользователя в систему?
    VISU#14. При открытии диалога на экране наблюдаются артефакты или пропадание элементов...
    VISU#15. При использовании трендов возникает ошибка...
    VISU#16. Как включить/отключить поддержку multi-touch для различных клиентов визуализации?
    VISU#17. Как в визуализации посмотреть список файлов ПЛК или подключенного накопителя?
    VISU#18. Можно ли изменить логотип на экране загрузки СПК1хх [М01]?
    VISU#19. Как создавать и использовать стили визуализации?
    VISU#20. Как задать цвет выделения элемента при использовании аппаратной клавиатуры?
    VISU#21. Как выводить в таблицу тревог сообщения о входе/выходе пользователя визуализации?
    VISU#22. Как сделать так, чтобы диалог открывался рядом с кнопкой его вызова?
    VISU#23. Как изменить язык по умолчанию в клавиатурах библиотеки OwenVisuDialogs?
    VISU#24. Как сделать скриншот web-страницы и отобразить его в визуализации?
    VISU#25. Как программно обработать результат закрытия диалога ввода? (Numpad, Keypad)
    VISU#26. Как считать информацию о пользователях визуализации в переменные программы?
    VISU#27. Проблемы с отображением длинных строковых переменных в визуализации
    VISU#28. Как переключить экран в фрейме из кода программы?
    VISU#29. Работа с тревогами из кода программы (AlarmManager)


    COM#01. Как настроить обмен по протоколу MQTT?
    COM#02. Как по RS-485 опросить устройство, работающее на скорости <4800 бод?
    COM#03. Контроллер - Modbus Slave. Можно ли изменить его адрес (slave ID) в процессе работы?
    COM#04. Как организовать обмен по протоколу Modbus ASCII?
    COM#05. Как подключить контроллер к SCADA-системе TraceMode?
    COM#06. Как переинициализировать компонент ModbusCom?
    COM#07. Modbus TCP - изменение сетевых настроек из кода программы
    COM#08. Как настроить обмен с электросчетчиками Меркурий?
    COM#09. Как отключить устройство из опроса при обмене через конфигурацию?
    COM#10. Можно ли подключить к контроллеру преобразователь АС4-М?
    COM#11. Можно ли к контроллерам ОВЕН подключать USB HID устройства?
    COM#12. Проблемы с опросом Modbus Serial Slave устройств через МКОН
    COM#13. Как интегрировать контроллер с Telegram-ботом?
    COM#14. Почему при работе с шаблонами Mx210 настройки модулей сбрасываются на заводские?
    COM#15. Почему значения в каналах Modbus отображаются серым?
    COM#16. Как работать с OwenCloud через API?
    COM#17. Как настроить контроллер в режиме Slave по нестандартному протоколу обмена?
    COM#18. Как получить информацию о погоде?
    COM#19. Как настроить проброс портов для ПЛК2хх?
    COM#20. Как отмасштабировать значение, считываемое по Modbus?
    COM#21. Как подключиться к SQL-серверу?
    COM#22. Как подключить контроллер к VPN?
    COM#23. Как работать с GSM/GPRS-модемами?
    COM#24. Как настроить обмен между ПЛК, программируемыми в CODESYS V3.5?


    DEBUG#01. Как переключить режим отображения переменных? (DEC/HEX)
    DEBUG#02. Как проверить проект в эмуляции?
    DEBUG#03. Что делать, если появляется ошибка "Адрес уже используется" ?
    DEBUG#04. Что делать, если при загрузке проекта появляется ошибка "Download denied..." ?
    DEBUG#05. Что делать, если контроллер не обнаруживается при сканировании сети?
    DEBUG#06. Что делать при возникновении ошибки "Недостаточно памяти на устройстве"?
    DEBUG#07. В чем причина ошибки "Processor load watchdog of all IEC-tasks detected"?
    DEBUG#08. Что делать, если системное время периодически отображается без учета UTC?
    DEBUG#09. Как при отладке увидеть промежуточные значения переменных?


    OTHER#01. Какие сетевые порты контроллера использует среда исполнения?
    OTHER#02. Как синхронизировать системное время контроллера с NTP-сервером?
    OTHER#03. Как сделать резервную копию, если нет исходников проекта?
    OTHER#04. Как защитить загруженный в контроллер проект от копирования?
    OTHER#05. Как организовано сохранение retain-переменных?
    OTHER#06. Что делать, если не удается подключиться к контроллеру через кабель USB B?
    OTHER#07. Особенности выполнения команды "Создать загрузочное приложение"
    OTHER#08. Как перепрошить СПК1хх с прошивкой SP14 на прошивку с SP11?
    OTHER#09. Можно ли использовать для ПЛК ОВЕН платные компоненты из CODESYS Store?
    OTHER#10. Можно ли организовать удаленный доступ к контроллеру из CODESYS для загрузки проектов?
    OTHER#11. Как исполнить на ПЛК "имперский марш"?

  2. #2
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    7,401

    По умолчанию VISU#01. Как настроить воспроизведение звука в web-визуализации?

    Вопрос: при возникновении аварии оператор должен услышать аварийный сигнал. Как реализовать это при использовании web-визуализации?

    Ответ: см. данное видео.

  3. #3
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    7,401

    По умолчанию COM#01. Как настроить обмен по протоколу MQTT?

    Вопрос: как в CODESYS 3.5 настроить обмен по протоколу MQTT?

    Ответ: можно воспользоваться библиотекой MQTT Client - она содержит реализацию клиента для протокола MQTT. Поддерживается подписка и публикация. Исходные коды библиотеки открыты.
    Скачать библиотеку и посмотреть примеры ее использования можно на данной странице.

    См. пример использования библиотеки.

    Есть и альтернативная реализация - более функциональная, но сложная в использовании:
    https://github.com/stefandreyer/CODESYS-MQTT

  4. #4
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    7,401

    По умолчанию COM#02. Как по RS-485 опросить устройство, работающее на скорости <4800 бод?

    Вопрос: как по RS-485 опросить устройство, работающее на скорости <4800 бод?

    Ответ: для контроллеров, программируемых в CODESYS V3.5 SP11 Patch 5 или выше, скорости обмена 1200...4800 работают без дополнительных настроек.

    В старых версиях CODESYS (3.5.5.5) нет возможности при открытии порта выбрать скорость меньше 4800.
    Тем не менее, это можно сделать через Linux с помощью библиотеки CmpSysExec.
    С помощью функции SysExecute необходимо однократно отправить в терминал команду типа

    stty -F /dev/ttyS2 2400

    где 2 - номер порта, совпадающий с маркировкой на задней крышке СПК;
    2400 - скорость, на которой должен работать порт.

    После этого можно открыть порт на любой скорости (с помощью соответствующего ФБ из библиотеки CAA SerialCom, SysCom или др.) - данная настройка уже не будет ни на что влиять, порт будет работать на скорости, заданной ранее.

  5. #5
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    7,401

    По умолчанию OTHER#01. Какие сетевые порты контроллера использует среда исполнения?

    Вопрос: какие сетевые порты (TCP и UDP) использует среда исполнения контроллера в процессе работы?

    Ответ:

    • 1217 - сервис Gateway (для подключения к контроллеру через промежуточный ПК, на котором запущен CODESYS Gateway)
    • 1740-1743 - сервис обнаружения ПЛК через сканирование сети (UDP broadcast)
    • 11740 - подключение к контроллеру (TCP)
    • 8080 - сервер web-визуализации (HTTP)
    • 8443 - сервер web-визуализации (HTTPS)
    • 502 - протокол Modbus TCP
    • 4840 - протокол OPC UA



    Примечание: для контроллеров, программируемых в CODESYS V3.5 SP11 Patch 5 или выше, номера портов web-визуализации (для HTTP и HTTPS) могут быть изменены в конфигураторе.

  6. #6
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    7,401

    По умолчанию PRG#01. Почему при делении происходит округление значения?

    Вопрос: почему в результате выполнения следующего кода...

    Код:
    VAR
    	rVar: 	REAL;
    	iVar1: 	INT := 10;
    	iVar2:	INT := 4;
    END_VAR
    
    rVar := iVar1 / iVar2;
    ...переменная rVar принимает значение 2, а не 2.5? Ведь она имеет тип REAL - с плавающей точкой!

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

    Код:
    VAR
    	rVar: 	REAL;
    	iVar1: 	INT := 10;
    	iVar2:	INT := 4;
    END_VAR
    
    rVar := INT_TO_REAL(iVar1) / iVar2;
    Если в делении участвуют константы, то можно сделать так:

    Код:
    rVar := iVar1 / 4.0; // 4.0, а не 4
    или

    Код:
    rVar := iVar1 / REAL#4;

  7. #7
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    7,401

    По умолчанию COM#03. ПЛК - Modbus Slave. Можно ли изменить его адрес (slave ID) в процессе работы?

    Вопрос: контроллер выполняет функцию Modbus RTU Slave. Можно ли изменить его адрес (slave ID) в процессе работы (например, с дисплея контроллера)?

    Ответ: да, это возможно при использовании библиотеки OwenCommunication. Подробная информация приведена в данном видео.

  8. #8
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    7,401

    По умолчанию IDE#01. Какие горячие клавиши используются в CODESYS 3.5?

    Вопрос: какие горячие клавиши используются в CODESYS 3.5? Можно ли их переназначить?

    Ответ: Список горячих клавиш приведен в данном документе. Переназначить горячие клавиши можно в меню Инструменты - Настройки - Клавиатура. Выберите нужное действие, установите курсор на поле Горячие клавиши, нажмите комбинацию клавиш (Ctrl+<...> или Ctrl+Shift+<...>), после чего нажмите Назначить.

  9. #9
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    7,401

    По умолчанию IDE#02. Как включить отображение пиктограмм POU в редакторе CFC?

    Вопрос: при создании программ на языках LD и FBD каждый оператор/POU имеет пиктограмму, характеризующее его назначение. В редакторе CFC эти пиктограммы не отображаются. Можно ли их включить?

    Ответ: да, можно. Для этого на панели инструментов выберите вкладку Инструменты, в ней - пункт Опции. В опциях найдите пункт CFC-редактор, и на вкладке Вид поставьте галочку Иконки элементов.

    08-02-2018 10-55-22.png 08-02-2018 10-59-52.png

    Для POU, созданных пользователем, можно задать произвольную пиктограмму (ПКМ на POU - Свойства - Изображение).

  10. #10
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    7,401

    По умолчанию PRG#02. Как проверить, что число имеет значение NaN?

    Вопрос: как проверить, что число имеет значение NaN?

    Комментарий: NaN (Not-a-Number) - это особое состояние числа с плавающей точкой, возникающее при специфических (в большинстве случаев - некорректных) математических операциях. Подробнее см. в статье на Википедии.

    Ответ: например, можно воспользоваться функцией IsRealNaN из библиотеки FloatingPointUtils:

    Код:
    VAR
    	rVar:      REAL;
    	
    	xIsNaN:    BOOL;
    END_VAR
    
    rVar := SQRT(-1.0); // генерируем NaN
    
    xIsNaN := FPU.IsRealNaN(rVar);

    или с помощью конвертации значения в строковый вид:

    Код:
    VAR
    	rVar: 	 REAL;
    	
    	sVar: 	 STRING;
    	xIsNaN:     BOOL;
    END_VAR
    
    rVar := SQRT(-1.0); // генерируем NaN
    
    sVar := REAL_TO_STRING(rVar);
    
    xIsNaN := (sVar='#NaN');

    Можно также воспользоваться особым свойством NaN - оно не равно ни одному числу, в т.ч. и самому себе:

    Код:
    VAR
    	rVar:      REAL;
    	
    	xIsNaN:    BOOL;
    END_VAR
    
    rVar := SQRT(-1.0); // генерируем NaN
    
    xIsNaN := (rVar<>rVar);

Страница 1 из 12 12311 ... ПоследняяПоследняя

Похожие темы

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

Ваши права

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