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

Давайте разберем простую программу на языке ST (Structured Text) для ПЛК (программируемого логического контроллера) максимально подробно.

Давайте разберем простую программу на языке ST (Structured Text) для ПЛК (программируемого логического контроллера) максимально подробно, как для начинающих. Общая идея программы Если говорить очень просто: эта программа включает мотор, когда нажата кнопка "Пуск". Это как самая простая электрическая цепь: провод от кнопки к мотору. Нажал кнопку — ток пошел — мотор заработал. Отпустил — ток прервался — мотор остановился. --- Построчное объяснение Строка 1: PROGRAM Main · PROGRAM — это ключевое слово, которое сообщает компилятору, что здесь начинается описание программы. · Main — это имя программы. Main (главная) — это стандартное имя для основной программы в проекте, которая выполняется снова и снова циклически. · Аналог из мира Windows: Это как создать новый файл и назвать его "Главная программа.exe". Строка 2: VAR · VAR — это ключевое слово, которое начинает блок объявления переменных. Здесь мы сообщаем контроллеру: "Сейчас я буду перечислять все данные, с которыми буду работ

Давайте разберем простую программу на языке ST (Structured Text) для ПЛК (программируемого логического контроллера) максимально подробно, как для начинающих.

Общая идея программы

Если говорить очень просто: эта программа включает мотор, когда нажата кнопка "Пуск". Это как самая простая электрическая цепь: провод от кнопки к мотору. Нажал кнопку — ток пошел — мотор заработал. Отпустил — ток прервался — мотор остановился.

---

Построчное объяснение

Строка 1: PROGRAM Main

· PROGRAM — это ключевое слово, которое сообщает компилятору, что здесь начинается описание программы.

· Main — это имя программы. Main (главная) — это стандартное имя для основной программы в проекте, которая выполняется снова и снова циклически.

· Аналог из мира Windows: Это как создать новый файл и назвать его "Главная программа.exe".

Строка 2: VAR

· VAR — это ключевое слово, которое начинает блок объявления переменных. Здесь мы сообщаем контроллеру: "Сейчас я буду перечислять все данные, с которыми буду работать: кнопки, моторы, датчики и т.д.".

· Аналог: Это как сказать "Список ингредиентов для рецепта:".

Строка 3: StartButton AT %IX0.0 : BOOL;

Это самая важная строка для понимания работы с "железом". Давайте разберем ее по частям:

· StartButton — это имя переменной, которое придумал программист. Мы могли бы назвать ее Кнопка, Кн1 или Button_Start. Имя должно быть понятным.

· AT — ключевое слово, которое означает, что эта переменная привязана (маппируется) к конкретному физическому входу или выходу контроллера.

· %IX0.0 — это адрес физического входа на ПЛК.

 · % — символ, указывающий на физический адрес.

 · I — означает Input (вход). Это сигнал, который ПЛК получает от внешнего устройства (например, кнопки, датчика).

 · X — означает, что это дискретный (битовый) сигнал. Он может иметь только два значения: 1 (есть сигнал/включено) или 0 (нет сигнала/выключено).

 · 0.0 — номер модуля и номер канала. Обычно 0.0 означает первый канал (клемму) на первом модуле ввода.

 · Проще говоря: Мы говорим контроллеру: "Переменная StartButton — это то, что подключено к самой первой клемме на твоей плате входов".

· : BOOL — указывает тип данных переменной.

 · BOOL (сокращение от Boolean — логический) — это тип, который может принимать только два значения: TRUE (истина/1) или FALSE (ложь/0).

 · Это идеально подходит для кнопки (нажата/не нажата) и мотора (включен/выключен).

· ; — точка с запятой означает конец объявления этой переменной. Как точка в конце предложения.

Итог по строке: Мы создали переменную StartButton и сказали, что ее значение будет читаться с физического входа №0.0, и что это логический сигнал.

Строка 4: Motor AT %QX0.0 : BOOL;

Объявление переменной для мотора. Структура похожа, но есть ключевое отличие:

· Motor — имя переменной для управления мотором.

· AT %QX0.0 — ключевое отличие здесь в Q:

 · Q — означает Output (выход). Это сигнал, который ПЛК подает на внешнее устройство (например, мотор, лампу, реле).

 · X — снова означает дискретный сигнал.

 · 0.0 — первый канал (клемма) на модуле выходов.

· : BOOL — тип также логический, так как мотор либо включен, либо выключен.

Итог по строке: Мы создали переменную Motor и сказали, что ее значение будет подаваться на физический выход №0.0.

Строка 5: END_VAR

· END_VAR — ключевое слово, которое завершает блок объявления переменных. Мы сообщаем контроллеру: "Список переменных окончен, можно приступать к логике программы".

· Аналог: "Конец списка ингредиентов. Теперь начинается сам рецепт."

Строка 6: Motor := StartButton;

Это тело программы, ее логика. Это команда, которая выполняется снова и снова в бесконечном цикле.

· := — это оператор присваивания. Он означает "взять значение справа и записать его в переменную слева". Читается как "становится равно".

· StartButton — это значение, которое мы читаем с входа %IX0.0 (нажата кнопка или нет).

· Motor — это переменная, значение которой мы подаем на выход %QX0.0 (включить мотор или выключить).

Проще говоря: Эта строка означает "Состояние мотора становится таким же, как состояние кнопки".

· Если на входе %IX0.0 появилось напряжение (кнопку нажали, StartButton = TRUE), то на выход %QX0.0 тоже подается напряжение (Motor := TRUE), и мотор включается.

· Если на входе %IX0.0 напряжения нет (кнопку отпустили, StartButton = FALSE), то и на выходе %QX0.0 напряжение пропадает (Motor := FALSE), и мотор выключается.

Строка 7: END_PROGRAM

· END_PROGRAM — ключевое слово, которое сообщает о завершении кода программы.

---

Как это все работает в ПЛК (цикл сканирования)

ПЛК работает по принципу бесконечного цикла, который называется "Цикл сканирования". Он состоит из трех основных этапов:

1. Считывание входов (READ INPUTS): ПЛК считывает состояния всех своих физических входов (например, %IX0.0, %IX0.1...) и записывает эти значения в соответствующие переменные в своей памяти (в нашем случае в переменную StartButton).

2. Выполнение программы (EXECUTE PROGRAM): ПЛК выполняет код вашей программы, строчку за строчкой. Он берет значение StartButton из своей памяти, присваивает его переменной Motor.

3. Запись выходов (WRITE OUTPUTS): После того как весь код выполнен, ПЛК берет новые значения всех переменных, привязанных к выходам (в нашем случае значение Motor), и подает соответствующие сигналы на физические выходы (%QX0.0, %QX0.1...).

Затем этот цикл повторяется снова и снова, миллионы раз в секунду.

Резюме для начинающего

· VAR...END_VAR — здесь ты "знакомишь" контроллер со всеми кнопками и моторами, указывая, к каким клеммам они подключены.

· %I — это вход (сигнал от устройства к контроллеру).

· %Q — это выход (сигнал от контроллера к устройству).

· := — это сердце логики. Это команда "сделать так, чтобы".

· Вся программа — это одно правило: "Включи мотор, когда нажата кнопка".

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