Страница 2 из 9 ПерваяПервая 1234 ... ПоследняяПоследняя
Показано с 11 по 20 из 85

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

  1. #11

    По умолчанию 10. Как переключить режим отображения переменных? (DEC/HEX)

    Вопрос: как переключить режим отображения переменных? (DEC/HEX)

    Ответ: меню Отладка - Режим отображения.

    Эта функция меняет режим отображения для всех типов числовых переменных (кроме REAL и LREAL).
    В некоторых случаях представляется удобным единовременно использовать разные режимы для различных переменных.

    Для этого следует при объявлении переменных использовать директиву displaymode:

    Код:
    	{attribute 'displaymode':='bin'}
    	byVar: 		BYTE := 2#0011_1100;
    	{attribute 'displaymode':='dec'}
    	uiVar: 		UINT := 123;
    	{attribute 'displaymode':='hex'}
    	wVar: 		WORD := 16#ABCD;
    13-02-2018 11-42-52.png

  2. #12

    По умолчанию 11. Как изменить версию библиотеки в проекте?

    Вопрос: как изменить версию библиотеки в проекте?

    Ответ: в Менеджере библиотек нажмите кнопку Плейсхолдеры. В появившимся списке однократным нажатием ЛКМ выберите нужную библиотеку (соответствующая строка выделится синим).
    Нажмите ЛКМ на текущую версию библиотеки - появится окно со списком всех установленных системе версий данной библиотеки. Выберите нужную.

    Placeholders.png

  3. #13

    По умолчанию 12. Как синхронизировать системное время контроллера с NTP-сервером?

    Вопрос: как синхронизировать системное время контроллера с NTP-сервером?

    Примечание: для контроллеров, программируемых в CODESYS V3.5 SP11 Patch 5 или выше, этот функционал доступен в конфигураторе и узле OwenRTC таргет-файла.

    Примечание: для контроллеров, программируемых в CODESYS V3.5 SP14 Patch 3 или выше, этот функционал доступен в web-конфигураторе.

    Ответ: см. пример (создан в 3.5 SP7 Patch4). В нем демонстрируется отправка запроса на NTP-сервер и разбор ответа. На основе примера пользователь может создать ФБ с нужным для его задачи поведением. Записать полученное время в системные часы контроллера можно с помощью библиотеки CAA DTUtil (см. ее описание).

  4. #14

    По умолчанию 13. Как при отладке увидеть промежуточные значения переменных?

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

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

    FlowControl.png _cds_img_flowcontrol_ld.png

    Примечания: при использовании данного режима:

    1. возрастает время выполнения цикла;
    2. невозможно использование точек останова;
    3. ввод значений переменных возможен только в поле объявления (но не напрямую в редакторе).

  5. #15

    По умолчанию 14. Можно ли считать тексты из компонента Список текстов в переменные программы?

    Вопрос: можно ли считать тексты из компонента Список текстов в переменные программы? Можно ли отредактировать список текстов в процессе работы программы?

    Ответ: да, это возможно. См. этот документ.

  6. #16

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

    Вопрос: как определить неиспользуемые в проекте переменные?

    Ответ: в меню Проект выберите пункт Установки проекта, и в появившемся окне найдите вкладку Статический анализ. Установите нужные галочки.

    19-02-2018 8-17-40.png

    После этого при выполнении команды Генерация кода (меню Компиляция) на панели сообщений будет выводится соответствующая информация:

    19-02-2018 8-19-45.png

  7. #17

    По умолчанию 16. Как установить и добавить библиотеку?

    Вопрос: как установить и добавить библиотеку?

    Ответ: в целом, есть три способа способа распространения библиотек:

    1.В виде архива репозитория. Архив содержит все версии системных библиотек, начиная с самых ранних релизов CODESYS V3 и заканчивая 3.5 SP4. Он необходим для работы с контроллерами Овен.
    Скачать архив репозитория можно здесь. Архив представляет собой файл формата .msi, который необходимо запустить для начала установки.

    2. В виде пакета (формата .package). В виде пакетов распространяются компоненты и библиотеки ОВЕН, а также, например, библиотеки OSCAT. Для установки пакета следует на вкладке Инструменты выбрать пункт Менеджер пакетов и нажать кнопку Установить.

    3. В видео отдельного файла (формата .library, .compiled-library). Для установки библиотеки следует на вкладке Инструменты выбрать пункт Репозиторий библиотек в и нажать кнопку Установить.

    lib01.png

    Все установленные библиотеки по умолчанию размещаются в папке C:\ProgramData\CODESYS\Managed Libraries

    Важно отметить, что версии библиотек устанавливаются независимо (в отличие от Codesys 2.3, где каждая новая версия перезаписывала предыдущую).
    При этом автоматического обновления библиотеки в проекте не происходит - при необходимости следует произвести эту операцию вручную в Менеджере библиотек (см. подробности здесь).

  8. #18

    По умолчанию 17. Как преобразовывать данные? (2 WORD в REAL и т.п.)

    Вопрос: в процессе разработки программы часто возникают задачи преобразования данных. В некоторых случаях достаточно стандартных операторов конверсии (например, REAL_TO_INT). Но иногда возникают вопросы другого рода, например - как разбить переменную DWORD на 4 отдельных байта, как преобразовать 2 переменные типа WORD в REAL и т.д. Очевидно, что можно сделать это с помощью указателей. Но есть ли более простые способы?

    Ответ: такие способы есть. Рассмотрим три библиотеки:

    1. Библиотека Util содержит функции, позволяющие:

    • собирать переменные типов BYTE/WORD/DWORD из отдельных битов и разделять их на отдельные биты (удобно для графических языков);
    • выделять/устанавливать конкретный бит переменных типа BYTE/WORD/DWORD;
    • преобразовывать данные из десятичного формата в двоично-десятичный и обратно.

      а также:

    • функции конверсии для кода Грея;
    • функции преобразования HEX-значений в ASCII-коды и обратно (пример: 16#30--->16#3330, где 16#33 - ASCII-код символа '3', а 16#30 - ASCII-код символа '0').


    Util.png

    2. Библиотека CAA Memory содержит функции, позволяющие:

    • выделять младшие и старшие байты/слова из переменных типа WORD/DWORD;
    • собирать переменные типов BYTE/WORD/DWORD из отдельных битов/байт/слов и разделять их на отдельные биты/байты/слова;
    • изменять порядок бит/байт/слов в переменных типа BYTE/WORD/DWORD.


    caa memory.png

    Приведем также пример конвертации 2 WORD в REAL с помощью данной библиотеки:

    Код:
    VAR
    	wLow: 	WORD := 16#851F;
    	wHigh: 	WORD := 16#4133;
    	
    	dwVar:  DWORD;
    	
    	rVar: 	REAL;
    END_VAR
    
    
    dwVar := MEM.PackWordsToDword(wHigh, wLow);
    
    MEM.MemMove(ADR(dwVar), ADR(rVar), SIZEOF(rVar));
    
    // rVar теперь имеет значение 11.22
    3. Библиотека OwenCommunication содержит функции и ФБ, позволяющие:

    • преобразовать REAL в 2 WORD и наоборот с возможностью изменения порядка байт;
    • преобразовать DWORD в 2 WORD и наоборот с возможностью изменения порядка байт;
    • преобразовать любой тип данных в любой.


    OwenComm.png

    Код:
    VAR
    	wLow: 	WORD := 16#851F;
    	wHigh: 	WORD := 16#4133;
    	
    	rVar: 	REAL;
    END_VAR
    
    rVar := OCL.WORD2_TO_REAL(wHigh, wLow, FALSE);
    
    // rVar теперь имеет значение 11.22

  9. #19

    По умолчанию 18. Как изменить имя переменной во всех местах проекта, где она используется?

    Вопрос: как изменить имя переменной во всех местах проекта, где она используется?

    Ответ: найдите строку объявления переменной и поставьте курсор в любую позицию ее имени (или просто выделите имя). Нажмите ПКМ и выберите команду Рефакторинг. Укажите новое имя переменной и нажмите ОК. Имя переменной изменится во всех местах проекта, где она была использована - в коде, в визуализации, в узлах Modbus и т.д.

    refactoring.png

  10. #20

    По умолчанию 19. Почему при конверсии кириллицы из STRING в WSTRING получаются "крокозябры"?

    Вопрос: почему при конверсии кириллицы из STRING в WSTRING (и наоборот) получаются "крокозябры"?

    Ответ: напомним, что переменные типа STRING используются для представления символов кодировки из семейства ASCII (каждый символ - байт), а WSTRING - для кодировки UCS2 из семейства Unicode (каждый символ - два байта, т.е. WORD).

    При конверсии STRING в WSTRING (и наоборот) происходит не интерпретация данных, а обычное перемещение байт. Проще всего пояснить это на примере, разместив строки в объединениях (UNION), чтобы иметь возможность просматривать содержимое их отдельных байтов:

    String_and_Wstring.png

    Для конверсии с интерпретацией данных ('тест'--->"тест") используйте функции CP1251_TO_UNICODE и UNICODE_TO_CP1251 из библиотеки OwenStringUtils.

    Примечание: не забудьте установить галочку Использовать строки Unicode в Менеджере визуализации для отображения кириллицы в WSTRING в визуализации проекта.

Страница 2 из 9 ПерваяПервая 1234 ... ПоследняяПоследняя

Похожие темы

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

Ваши права

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