3

Глобальные переменные CoDeSys

Объявленные как глобальные, «нормальные» переменные, реманентные переменные и константы имеют область видимости, включающую весь проект. Более того, сетевые переменные (Network variables) могут служить для передачи данных между несколькими абонентами сети.

Если в некотором программном компоненте проекта объявлена локальная переменная, имя которой совпадает с именем глобальной переменной, то в данном компоненте будет работать локальная переменная. Нельзя давать одинаковое имя двум глобальным переменным. Так, например, если вы определили переменную «var1″ в PLC Configuration, то при объявлении ее в списке глобальных, вы получите сообщение об ошибке.

Сетевые переменные

Работа с сетевыми переменными должна быть поддержана целевой платформой и разрешена в ее настройках (категория Network functionality).

Механизм автоматического обмена значениями переменных в сети (альтернативный вариант – это управляемый обмен через Менеджер параметров) дает возможность нескольким контроллерам (CoDeSys совместимых) в сети совместно использовать значения определенных общедоступных переменных. При этом не нужно создавать никаких дополнительных функций. Достаточно, чтобы абоненты сети имели совместимые настройки конфигурации сети и абсолютно идентичные списки сетевых переменных. Поэтому рекомендуется не создавать такие списки вручную в каждом проекте, а загружать их из одного отдельного файла.

Создание списков глобальных переменных

Наименование списка глобальных переменных можно изменить (по умолчанию Global Variables). Кроме того, можно создать несколько таких списков. Откройте вкладку Ресурсы в Организаторе объектов и выберите уже существующий список переменных. Дайте команду ‘Project’ ‘Object’ ‘Add’. В появившемся диалоговом окне (см. рис. ниже) надо указать имя и параметры списка. Этот же диалог открывается командой ‘Project’ ‘Object’ ‘Properties’, доступной для определенных в проекте списков.

Задайте имя списка в строке “Name of the global variable list:”

Связать с файлом (Link to file):

Если у вас имеется экспортный файл (*.esp) или DCF файл (*.dcf), содержащий глобальные переменные, вы можете связать с ним данный список. Для этого нужно записать путь и имя файла в поле Filename. Используйте кнопку Browse для доступа к стандартному диалогу выбора файлов. DCF файлы будут преобразованы согласно МЭК синтаксису при вызове.

Опция Import before compile приводит к чтению внешнего файла переменных перед каждой компиляцией. Опция Export before compile сохраняет список переменных во внешнем файле перед каждой компиляцией.

После подтверждения ввода кнопкой OK будет создан новый список. Списки глобальных переменных отмечены иконкой . В любое время вы можете исправить заданные свойства, вызвав данный диалог командой ‘Project’ ‘Object’ ‘Properties’.

Глобальные переменные CoDeSys, image00210

Диалог свойств списка переменных

Конфигурация сетевых переменных

Если опция ‘Support network variables’ включена в настройках целевой платформы, то в данном диалоге будет доступна кнопка <Add network>. Нажатие этой кнопки расширяет диалог, и он будет выглядеть, как показано на рисунке. Если данная опция не включена, то кнопка недоступна.

Connection <n> (<Network type>): В нижней части диалога вы можете создать наборы конфигураций до четырех сетевых соединений. Каждая конфигурация определяется на отдельной вкладке и задает параметры сетевого обмена для выбранного списка. Аналогичным образом должны быть определены параметры этого списка переменных для других абонентов сети. Если никакие конфигурации еще не определены, то для UDP сети будет отображена единственная вкладка ‘Connection 1 (UDP)’. Каждое нажатие кнопки ‘Add network’ приводит к созданию новой вкладки с очередным номером после слова “Connection”. Network type: выберете необходимый тип сети из списка доступных для данной целевой платформы.

Например: „CAN» или „UDP».

Settings: эта кнопка открывает диалог настроек для соответствующей сети:

UDP:

Кнопка Use standard определяет использование стандартного порта (Port 1202) для обмена данными с другими абонентами. Адрес Broadcast/Multicast устанавливается в «255 . 255 . 255 . 255″, что означает: обмен данными будет происходить со всеми абонентами сети.

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

Broadcast/Multicast address: задайте адреса соответствующей подсети, если необходимо изменить настройки по умолчанию (например, «197 . 200 . 100 . 255″, если вы хотите взаимодействовать со всеми абонентами с IP-адресами 197 . 200 . 100 . x).

Для Win32 систем, Broadcast/Multicast адреса должны соответствовать маске подсети в конфигурации TCP/IP на PC.

Глобальные переменные CoDeSys, image00411

Диалог Настройки UDP

CAN:

Controller Index: индекс контроллера CAN, которым переменные должны передаваться. Следущие опции могут быть активированы в этой конфигурации:

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

Variable telegram number: идентификационный номер первого пакета данных (по умолчанию 1). Последующие пакеты нумеруются по возрастанию.

Include Checksum: контрольная сумма будет помещена в каждый пакет. Данная контрольная сумма будет проверена получателем для проверки отсутствия искажений данных. Пакеты с ошибочной контрольной суммой игнорируются, и, если задано (см. ‘Use acknowledge transfer’), то будет дан соответствующий ответ.

Use acknowledged transfer: каждое сообщение подтверждается приемником. Если передатчик не получит хотя бы одно подтверждение, будет сформировано сообщение об ошибке.

Read: значения переменных списка читаются; если опция отключена, то передаваемые в сети значения игнорируются.

Request at Bootup: если локальный узел является «читающим» (опция ‘Read’ включена), то при перезагрузке актуальные значения переменных будут запрошены из «записывающих» узлов независимо от других условий передачи (время, событие), управляющих нормальной коммуникацией. Обязательное условие: в конфигурации записывающих узлов опция ‘Answer Bootup requests’ должна быть включена ! (см. ниже).

Write: переменные записываются; применимы следующие опции:

Answer Bootup requests: если локальный узел является «записывающим» (опция ‘Write’

включена), то будут формироваться ответы на запросы чтения при перезагрузке (см. Request on Bootup). Это означает, что актуальные значения переменных будут переданы даже при отсутствии условий коммуникации (время, событие).

Cyclic transmission: переменные будут записываться с интервалом, заданным в поле Interval (нотация длительности, например T#70ms).

Transmit on change: переменные будут записываться, только если их значения изменились. При этом Minimum ограничивает минимальный интервал между передачами.

Transmit on event: переменные списка будут записываться, когда переменная Variable принимает значение TRUE.

Списки глобальных сетевых переменных отмечены символом в Организаторе объектов. Передача выполняется системой исполнения без вмешательства прикладной программы. Никаких дополнительных функций ненужно.

Редактирование списков глобальных и сетевых переменных

Редактор глобальных переменных работает аналогично редактору раздела объявлений. Если подключен внешний список переменных, то его редактировать нельзя. Внешний список редактируется вне проекта и считывается каждый раз, когда проект открывается или компилируется.

Синтаксис:

VAR_GLOBAL

(*объявление переменных *)

END_VAR

Сетевые переменные можно применять, только если это поддержано выбранной целевой платформой.

Глобальные переменные CoDeSys, image0068

Пример списка сетевых переменных, созданных путем подключения UDP.EXP файла:

Редактирование списков реманентных переменных

Существуют два типа реманентных переменных:

  • Retain variables, сохраняющие свои значения при выключении питания и сбросе ‘Online’ ‘Reset’ в CoDeSys. Persistent variables сохраняют свои значения при сбросе без выключения питания, управляемом останове системы исполнения (стоп, старт).
  • Реманентные переменные объявляются с дополнительным ключевым словом RETAIN или PERSISTENT.

Синтаксис:

VAR_GLOBAL RETAIN

(*объявление переменных*)

END_VAR

VAR_GLOBAL PERSISTENT

(*объявление переменных*)

END_VAR

Persistent переменные не являются автоматически Retain переменными. При необходимости используйте комбинированное объявление:

VAR_GLOBAL RETAIN PERSISTENT или VAR_GLOBAL PERSISTENT RETAIN

Редактирование списков глобальных констант

Глобальные константы дополнительно получают ключевое слово CONSTANT.

Синтаксис:

VAR_GLOBAL CONSTANT

(*объявление переменных*)

END_VAR

 

Раздел: CoDeSys. Теория. Метки: 

3 комментариев к "Глобальные переменные CoDeSys"

  1. Daniel:

    Спасибо за статью. У меня тут такой вопрос, вот есть RETAIN — реманентные переменные, а еще я видел объявление VAR NON_RETAIN, т.е. это нереманентные?
    VAR RETAIN
    (*Реманентные переменые*)
    END_VAR
    VAR NON_RETAIN
    (*Нереманентные переменые*)
    END_VAR

    А как можно эти два типа переменных еще обозвать?

    • admin:

      Retain — это переменные, которые сохраняются в энергонезависимой памяти ПЛК при сбросе или пропадании питания. Non_retain должен сбрасываться на настройки по умолчанию при каждом сбросе или отключении питания. названий применяется для них достаточно много, термин не установившийся, самое распространенное Вами приведено

  2. Oleg:

    Здравствуйте, подскажите, может ли переменная быть и сетевой и энергонезависимой одновременно? Если да, то как её объявить?
    Сетевые переменные (для обмена по MODBUS) не объявлены в объявлениях глобальных переменных в моей задаче. Использую CoDeSys 2.3.9.38 + Owen PLC110-32

Оставить комментарий

Отправить сообщение

CoDeSys GSM/GPRS модем Lectus OPC MasterSCADA Modbus MX110 Omron OPC-сервер owen OWEN Easy Logic owen logic PLC Configuration PROFIBUS s-200 SCADA scada системы siemens siemens plc SIMATIC Simplight SMS step7 TRACE MODE Динамизация ИП-320 ОВЕН ОВЕН ПЛК ОВЕН ПЧВ ПЛК ПЛК ОВЕН ПР 110 Панель оператора Программируемое реле Частотный преобразователь библиотека в CoDeSys визуализация диспетчеризация конфигурация панели программирование ПЛК серия NS сименс плк частотник частотное управление язык CFC язык ST
.