Добавить в корзинуПозвонить
Найти в Дзене

Переменные в программировании ПЛК. Полезные советы для новичков.

Переменные в программировании ПЛК и в любом другом программировании занимают особое место.
Почему они так важны? Разберем в этой статье! ... именованная область памяти, которая используется для записи или хранения какого-либо значения. Любая переменная состоит из: Например, у нас есть кнопка с фиксацией, которая имеет 2 состояния: первое — запуск (нажата), второе — запуск (отжата). И лампочка, которая может гореть или не гореть, в зависимости от состояния кнопки.
Объявим для них переменные с именами PUSK и LAMP и типом BOOL. Тип BOOL определяет, что эта переменная может хранить только одно из двух значений: TRUE (1) или FALSE (0). Например, если кнопка в положении «запуск» - в переменную записываем TRUE или 1, соответственно и наша лампочка, подключенная к кнопке, загорается – переменная LAMP тоже принимает значение TRUE или 1. Таким образом, переменные используются для хранения данных, к которым программа может получить доступ и которыми она может манипулировать. Они могут содержать
Оглавление

Переменные в программировании ПЛК и в любом другом программировании занимают особое место.
Почему они так важны? Разберем в этой статье!

Переменная - это...

... именованная область памяти, которая используется для записи или хранения какого-либо значения.

Любая переменная состоит из:

  • Имя — уникальный идентификатор, его используют для обращения к значению.
  • Тип данных — определяет, какие значения может хранить переменная и какие операции с ними можно выполнять.
  • Значение — содержимое переменной в конкретный момент времени.

Например, у нас есть кнопка с фиксацией, которая имеет 2 состояния: первое — запуск (нажата), второе — запуск (отжата). И лампочка, которая может гореть или не гореть, в зависимости от состояния кнопки.
Объявим для них переменные с именами PUSK и LAMP и типом BOOL. Тип BOOL определяет, что эта переменная может хранить только одно из двух значений: TRUE (1) или FALSE (0). Например, если кнопка в положении «запуск» - в переменную записываем TRUE или 1, соответственно и наша лампочка, подключенная к кнопке, загорается – переменная LAMP тоже принимает значение TRUE или 1.

-2

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

Многообразие переменных и их типов
Многообразие переменных и их типов

Переменные – основа любого программирования. Почему они так важны?

  • Оптимизируют и упрощают внутренние вычисления.
  • Ликвидируют сложности с прямой адресацией и обращением к регистрам памяти по адресу из программы.
  • Программа становится читабельной и понятной.
  • Код программы с переменными легко редактировать, можно быстро вносить изменения.
  • Отладка проще – создайте временную переменную, которая будет имитировать сигнал с датчика и вручную (или с помощью куска кода) присваивайте ей нужные значения при отладке.

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

Итак, мы поняли, переменные – это очень удобно. Но с написанием все более сложного кода количество переменных неизменно растет. И вот уже в списке объявленных переменных их набирается несколько десятков и больше…
Поэтому в программировании промышленных контроллеров (да и в любом другом программировании) переменные делятся на
глобальные и локальные.

Глобальные переменные — это переменные, которые определены на уровне всего проекта и доступны для чтения и записи из любой части программы.
Глобальные переменные объявляются в списке глобальных переменных (GVL). Для этого используется ключевое слово VAR_GLOBAL.

Глобальные переменные в списке GVL
Глобальные переменные в списке GVL

Глобальные переменные подходят для обмена данными между программными компонентами (POU). Например, их можно использовать для хранения настроек или параметров, которые должны сохраняться на протяжении выполнения программы.
Также все переменные, объявленные в конфигурации ПЛК (при назначении входов-выходов, например) – глобальные.

Глобальные переменные, объявленные в конфигурации модуля, не зачеркнуты
Глобальные переменные, объявленные в конфигурации модуля, не зачеркнуты

Локальные переменные – это переменные, объявленные внутри конкретного программного компонента POU (например, функции или функционального блока). Они доступны для чтения и записи только внутри этого компонента.

В программировании контроллеров у блоков также есть входные и выходные переменные. К ним можно обращаться извне, указывая их полное имя ИМЯ_БЛОКА.ИМЯ_ПЕРЕМЕННОЙ.
То есть они локальные, принадлежат конкретному блоку, но использовать их в других местах программы также можно.

Локальные переменные, объявленные в интерфейсе функционального блока
Локальные переменные, объявленные в интерфейсе функционального блока

Глобальная и локальная переменные могут иметь одинаковое имя. В POU, где объявлена такая локальная переменная, она оказывается «сильнее» одноименной глобальной.

Использовать одноименные глобальные переменные нельзя (например, объявленные в конфигурации модуля расширения и в списке глобальных переменных).

Советы:

  • Имена переменных. Используйте осмысленные имена для переменных, чтобы программа была более читаемой и понятной.
-7
  • Тип данных. Выберите правильный тип данных, чтобы значения передавались корректно и не происходило переполнение или перерасход памяти.
    Например, все типы лампочек, выключателей и других дискретных устройств используют логический тип данных (BOOL), значение аналогового датчика является вещественным или целым числом, поэтому требуется тип данных INT или REAL, а информация по Modbus передается с помощью WORD.
-8
  • Адреса регистров. Будьте внимательны при назначении адресов переменным. Бывает так, что адреса сбиваются, если удалить лишний модуль ввода-вывода, например. Зафиксируйте адрес вручную, чтобы это не происходило, кликнув по нему дважды мышкой и нажав Enter.
-9
  • Глобальные переменные. Используйте их по назначению, не нужно все переменные делать глобальными – это усложняет отладку и поиск ошибок.
  • Инициализация. Не забывайте инициализировать переменные с нужными значениями, если это необходимо. Типичная ошибка новичка – деление на 0. Это когда вы не инициализировали переменную, а затем применили ее в вычислении с делением.
-10
Ставьте 👍🏻, если статья понравилась!
А если хотите узнать больше о переменных и нюансах их использования - приходите к нам на
курс Программирования ПЛК, набор уже идет!