
Языки программирования ПЛК стандартизированы по IEC 61131-3. Начните с LD (Ladder Diagram) – визуального языка, напоминающего электрические схемы. Он используется в 60% проектов благодаря простоте отладки. Для сложных алгоритмов применяйте ST (Structured Text), синтаксис которого похож на Pascal. Установите бесплатную среду разработки, например, CODESYS или TIA Portal (пробная версия на 21 день), чтобы сразу писать и тестировать код.
Первый проект соберите на макетной плате: подключите кнопку к дискретному входу и светодиод к выходу. Напишите программу, которая включает светодиод при нажатии кнопки. Используйте таймеры и счётчики – базовые функции, встречающиеся в 90% задач автоматизации. Для отладки применяйте симулятор ПЛК или аппаратный эмулятор, например, PLCLogix, чтобы избежать ошибок при работе с реальным оборудованием.
Освойте работу с аналоговыми сигналами: настройте вход для датчика температуры (0–10 В или 4–20 мА) и выведите значение на дисплей. Изучите PID-регуляторы – они управляют 70% промышленных контуров. Начните с простого примера: стабилизация температуры в резервуаре с водой. Для этого потребуется датчик DS18B20 и нагревательный элемент мощностью до 1 кВт.
Коммуникация между ПЛК и другими устройствами строится на протоколах Modbus, Profibus или Ethernet/IP. Настройте обмен данными между двумя контроллерами по Modbus RTU: один будет ведущим (master), другой – ведомым (slave). Для тестирования используйте бесплатный инструмент Modbus Poll. Освойте работу с регистрами: дискретные входы/выходы (0x и 1x), аналоговые входы (3x) и хранение данных (4x).
Выбор оборудования и программного обеспечения для первых проектов

Начинать работу с ПЛК проще с контроллеров, поддерживающих стандартные протоколы и имеющих низкий порог входа. Оптимальные варианты для первых проектов:
- Siemens LOGO! 8 – компактный ПЛК с встроенным дисплеем, 8 дискретными входами/выходами и поддержкой Modbus. Подходит для автоматизации освещения, вентиляции, простых конвейеров. Программируется в среде LOGO! Soft Comfort (бесплатная версия доступна для ознакомления).
- Omron CP1E – бюджетный контроллер с 10–40 входами/выходами, Ethernet и поддержкой CX-Programmer (бесплатная демо-версия). Совместим с датчиками NPN/PNP, реле и частотными преобразователями. Хорош для учебных стендов и небольших производственных задач.
- CODESYS-совместимые устройства (например, WAGO PFC200 или Phoenix Contact AXC F 2152) – универсальные контроллеры с открытой архитектурой. Позволяют писать код на языках IEC 61131-3 (ST, LD, FBD) и подключать сторонние библиотеки. Идеальны для изучения промышленного программирования без привязки к вендору.
Программное обеспечение выбирайте исходя из задач и бюджета. Бесплатные инструменты для старта:
- TIA Portal Basic (Siemens) – ограниченная версия для LOGO! и базовых S7-1200. Включает симулятор и поддержку LAD/FBD/SCL. Требует регистрации на сайте Siemens.
- CX-One (Omron) – пакет с CX-Programmer, CX-Designer (HMI) и симулятором. Бесплатная демо-версия работает 30 дней, затем требует лицензии.
- CODESYS Development System V3 – полнофункциональная среда с 2-часовым сеансом без лицензии. Поддерживает все языки IEC 61131-3, отладку в реальном времени и работу с виртуальными ПЛК.
Для первых проектов избегайте дорогих промышленных решений. Вместо этого используйте:
- Модули расширения с дискретными и аналоговыми входами/выходами (например, Siemens SM1223 или Omron CP1W-AD041). Позволяют подключать датчики температуры (Pt100), давления (4–20 мА) и энкодеры.
- Программируемые реле (Phoenix Contact PLC-RELAY) – дешевая альтернатива ПЛК для простых логических схем. Управляются через веб-интерфейс или специализированное ПО.
- Отладочные платы с открытым исходным кодом (OpenPLC на базе Raspberry Pi или Arduino + Modbus Shield). Подходят для изучения основ без покупки промышленного оборудования.
При выборе оборудования проверяйте совместимость с выбранным ПО и наличие документации. Для Siemens и Omron официальные руководства содержат примеры кода и схемы подключения. У CODESYS-совместимых устройств ищите форумы производителя (например, CODESYS Forum) – там публикуют готовые проекты и решения типовых задач. Начинайте с задач, требующих минимальной периферии: управление светодиодами, чтение кнопок, работа с аналоговыми датчиками. Это позволит освоить базовые принципы без лишних затрат.
Настройка среды разработки и подключение ПЛК к компьютеру
Первым шагом выберите IDE, совместимую с вашим ПЛК. Для контроллеров Siemens используйте TIA Portal (версии 15.1 или новее), для Omron – CX-Programmer (не ниже 9.7), для Schneider Electric – EcoStruxure Machine Expert. Скачайте дистрибутив с официального сайта производителя, избегая сторонних источников. Убедитесь, что ваша ОС поддерживается: TIA Portal работает только на Windows 10/11 (x64), CX-Programmer – на Windows 7 и выше. При установке отметьте компоненты для работы с целевым ПЛК (например, драйверы для связи по PROFINET или Modbus).
Настройте параметры подключения до физического соединения. В TIA Portal откройте Project View → Devices & Networks и добавьте контроллер, указав его IP-адрес (по умолчанию часто 192.168.0.1) и тип интерфейса (Ethernet/PROFIBUS). Для ПЛК с последовательным портом (RS-232/485) используйте USB-адаптер с чипом FTDI или Prolific – драйверы для них устанавливаются автоматически в Windows 10+. В CX-Programmer настройте COM-порт вручную: скорость 9600–115200 бод, 8 бит данных, 1 стоп-бит, без контроля четности. Проверьте настройки в PLC Settings → Communication Settings.
- Кабели и адаптеры:
- Ethernet: стандартный патч-корд Cat5e/Cat6 (кросс-кабель не требуется для современных ПЛК).
- USB-to-Serial: адаптер с гальванической развязкой (например, Moxa UPort 1150) для защиты от помех.
- PROFIBUS: кабель с терминатором (120 Ом) на обоих концах линии.
- Диагностика подключения:
- Ping-тест:
ping 192.168.0.1(замените IP на адрес вашего ПЛК). - Проверка порта: в Windows Диспетчер устройств → Порты COM и LPT.
- Логирование ошибок: в TIA Portal используйте Online & Diagnostics → Diagnostics.
- Ping-тест:
После физического подключения выполните тест связи. В TIA Portal нажмите Go Online и выберите интерфейс (например, PN/IE для Ethernet). Если соединение не устанавливается, проверьте:
- Соответствие IP-адресов подсети (например, ПК: 192.168.0.10, ПЛК: 192.168.0.1).
- Отключенный брандмауэр Windows или добавленное исключение для порта 102 (S7 Protocol).
- Физическую целостность кабеля (тестером или заменой на заведомо исправный).
Для ПЛК с Modbus TCP используйте утилиту Modbus Poll (бесплатная версия доступна на modbustools.com) для проверки регистров.
Завершите настройку, сохранив конфигурацию подключения. В TIA Portal экспортируйте настройки через Project → Export → Device Configuration. Для CX-Programmer сохраните файл .cxp с параметрами COM-порта. Создайте резервную копию настроек сети ПЛК (например, через веб-интерфейс контроллера или кнопку Upload в IDE). При работе с несколькими ПЛК используйте уникальные IP-адреса и имена устройств, чтобы избежать конфликтов. Для удаленного доступа настройте VPN или используйте облачные решения производителя (например, Siemens MindSphere), но только после базовой отладки локального подключения.
Основы языка лестничной логики (LAD) и создание первой программы

Язык LAD (Ladder Diagram) – графический стандарт IEC 61131-3 для программирования ПЛК, имитирующий релейно-контактные схемы. Программа состоит из рельсов (вертикальные линии, обозначающие питание) и ступеней (горизонтальные цепочки контактов и катушек). Контакты бывают нормально разомкнутыми (NO, `—| |—`) и нормально замкнутыми (NC, `—|/|—`), а катушки (`—( )—`) активируют выходы при срабатывании цепи. Для примера: простая программа управления двигателем включает контакт кнопки «Пуск» (NO), параллельно которому подключен контакт самоподхвата (NO), и катушку реле двигателя. В TIA Portal или CODESYS ступени нумеруются слева направо, а адресация входов/выходов зависит от модели ПЛК (например, I0.0 для дискретного входа, Q0.0 для выхода).
Создайте первую программу в LAD с логикой «И-НЕ»: разместите два последовательных NC-контакта (I0.1 и I0.2) и катушку Q0.1. При активации обоих входов цепь размыкается, отключая выход. Для отладки используйте мониторинг в реальном времени (Online Mode в среде разработки) – он визуализирует состояние контактов и катушек цветом (зеленый = активен, серый = неактивен). Избегайте «плавающих» цепей (неподключенные контакты) и проверяйте корректность адресации: ошибка в одном символе (например, I0.1 вместо I1.0) приведет к неработоспособности программы. Для сложных условий применяйте таймеры (TON, TOF) и счетчики (CTU, CTD), настраивая их параметры в отдельных блоках.
Работа с дискретными и аналоговыми входами/выходами на практике
Дискретные входы ПЛК обрабатывают сигналы с двумя состояниями: 0 (0–5 В или разомкнутая цепь) и 1 (24 В или замкнутая цепь). Для подключения кнопок, концевых выключателей или реле используйте модули с гальванической развязкой, например, Siemens SM 1221 (8 дискретных входов, 24 В DC). Перед программированием проверьте полярность сигнала: неправильное подключение приведёт к ложным срабатываниям. В коде используйте битовые операции для обработки состояний – например, I0.0 для чтения первого входа. Для фильтрации дребезга контактов добавьте задержку в 20–50 мс с помощью таймера TON.
Аналоговые входы требуют настройки диапазона измерений. Стандартные модули, такие как Phoenix Contact AXL F AI4 U, поддерживают сигналы 0–10 В, 4–20 мА или ±10 В. При подключении датчиков температуры (например, Pt100) используйте преобразователь токового сигнала в напряжение с сопротивлением 250 Ом для диапазона 4–20 мА. В программе масштабируйте сырые значения с помощью функции SCALE (в TIA Portal) или NORM_X (в CODESYS), где X_min и X_max – границы физического сигнала, а Y_min и Y_max – диапазон выходных данных (например, 0–32767 для 16-битного АЦП).
Для дискретных выходов выбирайте модули с соответствующей нагрузочной способностью. Например, Omron G7TC (релейный выход) подходит для управления нагрузками до 2 А при 250 В AC, а Siemens SM 1222 (транзисторный выход, 0,5 А) – для маломощных устройств. При программировании избегайте прямого управления выходами из нескольких мест: используйте промежуточные биты памяти (M) или функциональные блоки. Для защиты от короткого замыкания добавьте в схему предохранители или автоматические выключатели на 1–2 А.
Аналоговые выходы настраиваются аналогично входам, но с обратным преобразованием. Например, для управления частотным преобразователем с входом 0–10 В используйте модуль Weidmüller UR20-FBC-2AO. В коде применяйте функцию UNSCALE (TIA Portal) или SCALE_X (CODESYS), где входные значения (0–100%) преобразуются в физический сигнал. Для проверки работы подключите мультиметр в режиме измерения напряжения или тока и сравните показания с заданными в программе. При несоответствии проверьте калибровку модуля и целостность проводки.
При отладке используйте встроенные инструменты ПЛК. В TIA Portal мониторьте переменные в таблице Watch, а в CODESYS – через Online Change. Для аналоговых сигналов визуализируйте тренды с помощью Trend View или записывайте данные в буфер памяти. При работе с высокочастотными сигналами (например, энкодеры) используйте специализированные модули с аппаратной обработкой, такие как Beckhoff EL5101, чтобы избежать потери импульсов из-за задержек цикла ПЛК.
Отладка и тестирование программы на симуляторе и реальном устройстве

При переходе на реальное устройство проверяйте соответствие физических входов/выходов адресам в программе. Используйте таблицу для сопоставления:
| Адрес в программе | Физический вход/выход | Тип сигнала | Тестовое значение |
|---|---|---|---|
| %IX0.0 | Кнопка «Пуск» (DI1) | Дискретный (24В) | ON (1) при нажатии |
| %QW4 | Аналоговый выход (AO1) | 4–20 мА | 12 мА (50% диапазона) |
| %MD10 | – (внутренняя переменная) | REAL | 3.14 (проверка точности) |
Примеры типовых задач: управление двигателем, датчиками и таймерами

Для управления асинхронным двигателем через ПЛК используйте функциональный блок FB_MotorControl (стандарт IEC 61131-3). Задайте параметры: номинальное напряжение (например, 380 В), частоту (50 Гц), направление вращения через дискретные выходы Q0.0 (вперёд) и Q0.1 (назад). Подключите тепловое реле к входу I0.2 для аварийного отключения при перегрузке. В логике программы реализуйте задержку 2 секунды между сменой направления вращения с помощью таймера TON, чтобы избежать бросков тока. Для плавного пуска используйте ШИМ-сигнал на аналоговом выходе AO0 с частотой 1 кГц и скважностью 0–100%.
Датчики подключайте с учётом их типа: индуктивные (металл) – к дискретным входам I0.3–I0.5 с подтяжкой к +24 В, аналоговые (0–10 В или 4–20 мА) – к входам AI0–AI2. Для фильтрации помех применяйте скользящее среднее: считайте 5 последовательных значений с датчика температуры PT100, отбрасывайте минимальное и максимальное, усредняйте оставшиеся. При срабатывании концевого выключателя (I0.6) останавливайте привод через блок R_TRIG, чтобы исключить ложные срабатывания от дребезга контактов. Для датчиков уровня используйте гистерезис: включайте насос при уровне ниже 20% (AI1 < 2.0 В) и выключайте при 80% (AI1 > 8.0 В).
Таймеры в ПЛК работают в трёх режимах: TON (задержка включения), TOF (задержка выключения), RTC (реальное время). Для циклического процесса, например, полива, настройте таймер TON с предустановкой 300 секунд: по истечении времени активируйте выход Q0.3 (клапан) и сбросьте таймер. При использовании RTC синхронизируйте время с сервером NTP через протокол SNTP каждые 24 часа. Для точного дозирования реагентов применяйте импульсный таймер TP с длительностью 500 мс: при каждом срабатывании датчика расхода (I0.7) открывайте дозатор на заданное время, затем закрывайте.