Страница 4 из 15 ПерваяПервая ... 2345614 ... ПоследняяПоследняя
Показано с 31 по 40 из 148

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

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

    По умолчанию VISU#04. Как из программы изменить диапазон элемента Стрелочный индикатор?

    Вопрос: как из программы изменить диапазон элемента Стрелочный индикатор?

    Ответ: привязка переменных к параметрам Начало шкалы и Конец шкалы поддерживается начиная с версии CODESYS V3.5 SP14 Patch 3.

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

    По умолчанию VISU#05. Почему вместо элемента Индикатор добавляется Стрелочный индикатор?

    Вопрос: почему в редакторе визуализации при добавлении на экран элемента Индикатор (лампа) добавляется Стрелочный индикатор?

    Примечание: это проявляется в версии CODESYS V3.5 SP5 Patch 5 при использовании русскоязычного интерфейса.

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

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

    По умолчанию PRG#10. Вопросы по таймерам

    Вопросы:

    1. Как запускать таймеры TON/TOF по импульсу на входе IN?
    2. Как реализовать таймер с возможностью установки паузы?
    3. Как реализовать таймер обратного отсчета?

    Ответ: см. пример (создан в 3.5 SP7 Patch4). В его состав входит:

    1. Демонстрация запуска таймера TON по импульсу с помощью конструкции типа

    Код:
    fbTon (IN := xStart OR fbTon.IN);
    где xStart - переменная, по импульсу которой происходит запуск таймера. Для сброса таймера необходимо вызвать его со значением FALSE на входе IN.

    2. ФБ таймеров с возможностью установки паузы (TONP, TOFP).
    3. ФБ таймеров обратного отсчета (TONR, TOFR).

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

    По умолчанию PRG#11. Что можно применить вместо ФБ Сhange_Real_Time_Clock из библиотеки SPK_Tools?

    Вопрос: что можно использовать вместо ФБ Сhange_Real_Time_Clock из библиотеки SPK_Tools?

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

    Ответ: действительно, библиотека SPK_Tools не рекомендуется к использованию. Основная часть ее функционала была перенесена в узлы таргет-файлов (начиная с версии 3.5.4.26).
    Тем не менее, узел для работы с системным временем в настоящий момент отсутствует (но его создание запланировано). Пока что можно воспользоваться примером (создан в 3.5 SP7 Patch4).
    В его состав входит ФБ REAL_TIME_CLOCK, чей функционал полностью перекрывает функционал ФБ Сhange_Real_Time_Clock.

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

    По умолчанию PRG#12. Как вывести сообщение в лог CODESYS из программы?

    Вопрос: как вывести сообщение в лог CODESYS из программы?

    Ответ: рассмотрим самый простой способ:

    Код:
    VAR
    	xWriteToLog: 	        BOOL;
    	sMessage:	        STRING:='Hello, world!';
    END_VAR
    
    IF xWriteToLog THEN
    	VisuElems.Visu_Output(sMessage, VisuElems.LogClass.LOG_INFO);
    	xWriteToLog:=FALSE;
    END_IF
    12-03-2018 10-41-18.jpg

    Второй аргумент функции определяет жесткость (класс) сообщения:

    12-03-2018 10-52-57.jpg

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

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

    По умолчанию COM#06. Как переинициализировать компонент ModbusCom?

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

    Примечание: это может потребоваться при зависании порта (например, из-за воздействия помехи от силового оборудования).

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

    0.jpg

    Компонент Modbus Master содержит переменную xResetComPort, по переднему фронту которой происходит переинициализация порта.

    Рассмотрим несколько вариантов воздействия на эту переменную:

    1. Если опрос организован исключительно через шаблоны, то можно контролировать их переменные xError (обратите внимание, что требуется добавить постфикс _Modbus к названию устройства для доступа к ним) или привязать переменные к каналам Флаг ошибки. На скриншоте ниже приведены оба варианта (в реальном проекте, конечно, разумнее использовать только один из способов).

    resetcom01.jpg

    2. Если опрос организован через стандартные компоненты Modbus Slave, то можно контролировать их переменные xError (в этом случае доступ осуществляется по названию устройства, без постфикса).

    resetcom02.jpg

    3. Если опрос организован и через шаблоны, и через стандартные компоненты Modbus Slave, то можно использовать переменную xAllSlavesOk компонента Modbus Master (обратите внимание, что в этом случае переинициализация порта будет происходить при появлении ошибки у любого устройства. В некоторых ситуациях это решение является не самым удачным - например, если из-за проблем на полевом уровне (помехи/некорректная топология сети/etc.) возникновение ошибок, не связанных с зависанием порта, неизбежно, а их частота - высока.

    3.jpg

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

    По умолчанию VISU#06. Как создать в визуализации вертикальный текст?

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

    Ответ: см. видео + пример.

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

    По умолчанию IDE#09. При запуске CODESYS возникает ошибка...

    Вопрос: при запуске CODESYS возникает следующая ошибка. Что нужно сделать?

    20-04-2018 14-08-26.jpg

    Ответ: перейдите в папку C:\ProgramData\CODESYS и удалите все файлы с разрешением .opt.

    18-05-2018 13-51-00.png

    После этого запустите CODESYS, создайте и сохраните новый проект. В результате .opt файлы будут автоматически пересозданы.

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

    По умолчанию PRG#13. Как работать с длинными (>255 символов) строками?

    Вопрос: Как работать с длинными строками?

    Ответ: Функции библиотеки Standard позволяют работать только со строками, длина которых не превышает 255 символов. В случае необходимости работы с более длинными строками используйте библиотеку StringUtils.

    Пример использования функции StrConcatA:

    Код:
    PROGRAM PLC_PRG
    VAR
    	sLongStr1:	STRING(4096) := 'длинная строка 1';
    	sLongStr2:	STRING(4096) := 'длинная строка 2';
    	sVeryLongStr:	STRING(8192);
    	xConcat:		BOOL;
    END_VAR
    
    IF xConcat THEN
    	
    	// склеить sLongStr1 и sLongStr2 в sVeryLongStr
    	STU.StrConcatA(ADR(sLongStr1), ADR(sVeryLongStr), SIZEOF(sVeryLongStr) );
    	STU.StrConcatA(ADR(sLongStr2), ADR(sVeryLongStr), SIZEOF(sVeryLongStr) );
    	xConcat := FALSE;
    
    END_IF

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

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

    Вопрос: как сделать резервную копию проекта, если нет исходников (файла .project или .projectarchive).

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

    Ответ: есть два способа:

    1. С использованием среды CODEYS - вкладка Backup&Restore в узле Device (см. видео). В этом случае в состав бэкапа войдут энергонезависимые переменные.

    2. Без использования среды CODESYS - подключить к контроллеру USB или SD-накопитель, перейти в конфигуратор и на вкладке Накопители для нужного накопителя нажать кнопку Резервная копия, нажать Сохранить, установить галочку Добавить проект СODESYS в резервную копию и нажать кнопку Сохранить резервную копию. На накопителе будет создан файл backup_spk1xxm01_<метка_времени_создания_резервной _копии>.tar.gz, который содержит резервную копию настроек контроллера и проекта CODESYS, но не предоставляет доступа к исходным кодам проекта.

    Также создать резервную копию можно в web-конфигураторе на вкладке Система/Резервное копирование.

Страница 4 из 15 ПерваяПервая ... 2345614 ... ПоследняяПоследняя

Похожие темы

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

Ваши права

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