Программирование ПЛК для электрической тали (S7-1200: LAD и SCL)

Программирование ПЛК для управления электрической талью (практика S7-1200) В статье рассматривается программирование контроллера Siemens S7-1200 (CPU 1212C DC/DC/DC) в среде TIA Portal V17 с использованием смешанного программирования на LAD (релейно-контактная логика) и SCL (структурированный текст). Реализованы логика управления подъёмом/опусканием/передвижением тали, защита от перегрузки, концевые выключатели, аварийная блокировка, переключение режимов управления (радиопульт/кнопочный пост), самодиагностика неисправностей. Полная программа включает 4 блока FC, 1 блок DB и главный цикл OB1 — готова к непосредственному импорту в реальный проект.

Традиционное управление электрическими талями долгие годы строилось на связке «кулачковый контроллер + реле + контактор»: электрическая схема насчитывала десятки промежуточных реле и реле времени, что крайне затрудняло поиск неисправностей и исключало интеграцию в информационные системы предприятия. С развитием концепции «Индустрия 4.0» всё больше заводов требуют подключения подъёмного оборудования к системам MES/SCADA для мониторинга состояния, сбора данных о работе и раннего предупреждения отказов. Замена релейной логики на ПЛК — закономерный шаг эволюции. В статье, основанной на реальном проекте, реализованном компанией Келуде Тяжёлая Промышленность для завода автомобильных запчастей (централизованное управление 68 электрическими талями), подробно описан весь процесс разработки программы ПЛК: таблица распределения входов/выходов, логика на LAD, код обработки ошибок на SCL, структура экранов HMI и этапы загрузки и отладки программы.

Схема архитектуры программы ПЛК S7-1200 для управления электрической талью

Аппаратная конфигурация и распределение входов/выходов

Выбор оборудования

ОборудованиеМодельКоличествоПримечание
PLC CPUS7-1200 1212C DC/DC/DC16ES7 212-1AE40-0XB0,8DI/6DO
Дискретный сигналМодуль РасширенияSM 1223 DI 8×24VDC / DO 8×24VDC16ES7 223-1BH32-0XB0
Аналоговый сигналМодуль РасширенияSM 1231 AI 4×13bit16ES7 231-4HD32-0XB0,4~20mA
HMI Сенсорный ЭкранKTP400 Basic PN16AV6 647-0AD11-3AX0,4.3дюйм
Промежуточное РелеRIM 24VDC 2CO6PLC DOКонтакторГальваническая развязка катушки
Импульсный Блок ПитанияEDR-120-241AC220VDC24V 5A

1.2 Таблица распределения входов/выходов (I/O)

АдресОбозначениеФункцияТипОписание
%I0.0SB1_UPКнопка «Вверх»DIВверх с пульта,Нормально разомкнутый (НР)
%I0.1SB2_DNКнопка «Вниз»DIПульт управленияОпускание,Нормально разомкнутый (НР)
%I0.2SB3_LTКнопка «Влево»DIВлево с пульта,Нормально разомкнутый (НР)
%I0.3SB4_RTКнопка «Вправо»DIВправо с пульта,Нормально разомкнутый (НР)
%I0.4SQ1_ULВерхний концевой выключательDIПутевой выключатель,Нормально замкнутый (НЗ)
%I0.5SQ2_DLНижний концевой выключателььDIПутевой выключатель,Нормально замкнутый (НЗ)
%I0.6SB0_ESTКнопка Аварийной ОстановкиDIНормально замкнутый контакт,0=Срабатывание
%I0.7FR_OLТепловое релеDIТепловое реле,Нормально замкнутый (НЗ)
%I1.0OL1_OVLDСигнал перегрузкиDIОграничитель перегрузкиВыход,Нормально разомкнутый (НР)
%I1.1RC_SELДистанционное управление/Переключение режима управления (пульт)DI0=Пульт управления 1=Дистанционное управление
Аналоговый вход:датчик перегрузки(4~20mA0~20t)
АдресОбозначениеФункцияТипОписание
%Q0.0KM1_UPВверх с пультаКонтакторDOУправление главной цепью подъемаКонтактор
%Q0.1KM2_DNКонтактор опусканияDOУправление главной цепью опусканияпью подъемаКонтактор
%Q0.2KM3_LTКонтактор движения влевоDOУправление главной цепью движения влевоКонтактор
%Q0.3KM4_RTКонтактор движения вправоDOУправление главной цепью движения вправоКонтактор
%Q0.4KA1_ALMАварийная сигнализацияDOЗвуковой и световой сигнализатор
%Q0.5KA2_RUNиндикатор работыDOЗеленый индикатор работы

2. Программирование на языке релейно-контактных схем (LAD)

2.1 Структура главного организационного блока OB1

OB1 — главный циклический организационный блок, время цикла сканирования по умолчанию — 10 мс. В порядке выполнения вызываются следующие функциональные блоки (FC):

Порядок вызоваFCБлокФункцияЯзык программирования
1FC100_Safetyпредохранительная блокировка(Аварийный стоп/Верхний концевой выключатель/Тепловое реле/Перегрузка)LAD
2FC200_HoistCtrlПодъёмЛогика управления(Вверх с пульта/Опускание/Блокировка)LAD
3FC300_TravelCtrlЛогика управления работой(Влево с пульта/Вправо с пульта/Блокировка)LAD
4FC400_FaultDiagДиагностика Неисправностейи сигнализация(SCL)SCL

2.2 Предохранительная блокировка FC100 (LAD-диаграмма)

 // FC100: логика предохранительной блокировки // последовательное соединение всех условий безопасности——запрет работы при невыполнении любого условия "SB0_EST" "SQ1_UL" "SQ2_DL" "FR_OL" "SafetyOK" ----|/|-------------|/|-------------|/|-------------|/|------------------------( ) // блокировка по перегрузке:при перегрузке разрешено только опускание "OL1_OVLD" "SB2_DN" ----| |------------| |-----------------------------------------------------------( "Overload_DN_Only" ) // сброс сигнала перегрузки(ручное подтверждение) "Overload_DN_Only" "SB1_UP" "Overload_Latch" ----| |-------------------| |----------------------------------------------------( ) 

2.3 Управление подъёмом FC200 (LAD-диаграмма)

 // FC200: логика управления подъемом // подъем:SafetyOK + верхний конечный выключатель не сработал + отсутствие перегрузки + опускание не выполняется + кнопка подъема // Опускание:SafetyOK + нижний конечный выключатель не сработал + подъем не выполняется + кнопка опускания(при перегрузке разрешено только опускание) "SafetyOK" "SQ1_UL" "Overload_Latch" "KM2_DN" "SB1_UP" "KM1_UP" ----| |-------------| |-------------|/|----------------|/|-----------| |----------( ) | | "KM1_UP" | ----| |----------------------------------------------------------------------------+ "SafetyOK" "SQ2_DL" "KM1_UP" "SB2_DN" "KM2_DN" ----| |-------------| |-------------------------------|/|-----------| |----------( ) | | "KM2_DN" | ----| |----------------------------------------------------------------------------+ // электрическая блокировка:KM1иKM2категорически запрещен одновременный выход "KM1_UP" "KM2_DN" "Interlock_OK" ----| |-----------| |--------------( ) // для обнаружения неисправностей,в нормальном состоянии не должен проводить 

2.4 Защита от частых пусков — таймер задержки

 // защита от частых пусков:задержка после каждой остановки500msразрешение повторного пуска // предотвращение частых срабатываний контактора за короткий промежуток времени(дребезг контактов/электрическая дуга) "KM1_UP" ----|/|----------------------------------------------------------------------------- "KM2_DN" TON_Start_Delay ----|/|----------------[TON: #Temp_StartDelay ] PT= T#500MS Q= "Start_Allowed" // включение в главную цепь управления "Start_Allowed" "SB1_UP" "KM1_UP" // подъем ----| |----------------| |-----------( ) 

Диагностика неисправностей на SCL

3.1 FC400_FaultDiag (структурированный текст SCL)

 // FC400: диагностика неисправностей и сигнализация // язык:SCL(структурированный текст) // функция:мониторинг состояния оборудования в реальном времени,Обнаружение13категории неисправностей типа,вывод кода неисправности наHMI FUNCTION FC400_FaultDiag : Void VAR_INPUT I_SafetyOK : Bool; // состояние предохранительной блокировки I_KM1_UP : Bool; // обратная связь контактора подъема I_KM2_DN : Bool; // обратная связь контактора опускания I_Overload_Latch : Bool; // блокировка по перегрузке I_OL1_OVLD : Bool; // сигнал датчика перегрузки I_RunHours : Real; // суммарное время работы(часы) END_VAR VAR_OUTPUT Q_FaultCode : Int; // вывод кода неисправности наHMI Q_FaultMsg : String[40]; // описание неисправности Q_Alarm_Output : Bool; // управление звуковым и световым сигнализатором Q_TotalRunHours : Real; // общее время работы END_VAR VAR vFaultCount : Int; // счетчик неисправностей vPrev_KM1 : Bool; // детектирование фронта сигнала контактора подъема vPrev_KM2 : Bool; // детектирование фронта сигнала контактора опускания vOverloadTimer : Time; // длительность перегрузки END_VAR // === список обнаружения неисправностей === Q_FaultCode := 0; // по умолчанию неисправностей нет Q_Alarm_Output := FALSE; vFaultCount := 0; // по умолчанию неисправностей нет1:нажата аварийная остановка IF I_SafetyOK = FALSE AND "SB0_EST" = FALSE THEN Q_FaultCode := 1; Q_FaultMsg := 'кнопка аварийной остановки нажата'; vFaultCount := vFaultCount + 1; END_IF; // по умолчанию неисправностей нет2:срабатывание верхнего конечного выключателя IF "SQ1_UL" = FALSE THEN Q_FaultCode := 2; Q_FaultMsg := 'срабатывание верхнего конечного выключателя(недостаточное расстояние от крюка до барабана)'; vFaultCount := vFaultCount + 1; END_IF; // по умолчанию неисправностей нет3:срабатывание нижнего конечного выключателя IF "SQ2_DL" = FALSE THEN Q_FaultCode := 3; Q_FaultMsg := 'срабатывание нижнего конечного выключателя(недостаточное количество каната на барабане3витков)'; vFaultCount := vFaultCount + 1; END_IF; // по умолчанию неисправностей нет4:перегрузка теплового реле IF "FR_OL" = FALSE THEN Q_FaultCode := 4; Q_FaultMsg := 'защита двигателя от перегрузки(срабатывание теплового реле)'; vFaultCount := vFaultCount + 1; END_IF; // по умолчанию неисправностей нет5:перегрузка IF I_Overload_Latch THEN Q_FaultCode := 5; Q_FaultMsg := 'срабатывание ограничителя перегрузки(нагрузка>110%)'; vFaultCount := vFaultCount + 1; END_IF; // по умолчанию неисправностей нет6:KM1/KM2одновременное срабатывание(залипание контактора) IF I_KM1_UP AND I_KM2_DN THEN Q_FaultCode := 6; Q_FaultMsg := 'критическая неисправность:одновременное срабатывание контакторов высокой и низкой скорости'; vFaultCount := vFaultCount + 1; END_IF; // по умолчанию неисправностей нет7:аномалия обратной связи контактора(несоответствие команды выхода и обратной связи) IF ("KM1_UP" = TRUE AND I_KM1_UP = FALSE) OR ("KM2_DN" = TRUE AND I_KM2_DN = FALSE) THEN Q_FaultCode := 7; Q_FaultMsg := 'аномальный отклик контактора(возможное заклинивание/перегорание катушки)'; vFaultCount := vFaultCount + 1; END_IF; // при наличии любой неисправности,управление выходом сигнализации IF vFaultCount > 0 THEN Q_Alarm_Output := TRUE; END_IF; // === накопление во время работы === Q_TotalRunHours := I_RunHours + (TIME_TO_REAL(TIME_NOW() - "Start_Time")) / 3600000.0; END_FUNCTION 

Мониторинг HMI и настройка связи

4.1 Таблица переменных HMI и структура экранов

HMIЭкранОтображаемое содержимоеПривязкаDBПеременная
Главный экранСостояние оборудования/ТекущийНагрузка/Время работыDB1.Status / DB1.Load / DB1.RunHours
Экран управленияВверх с пульта/Опускание/Влево с пульта/Виртуальная кнопка «Вправо»Используется при переключении ручного/автоматического режима
Экран неисправностейКод неисправности/Описание/Время возникновения/Кнопка сбросаDB1.FaultCode / DB1.FaultMsg
ПараметрЭкранУставка перегрузки/Сброс времени работы/Смена пароляDB1.Overload_Set / DB1.Password

4.2 Настройка связи PROFINET (конфигурация в TIA Portal)

 // сетевые параметры конфигурации устройства // 1. S7-1200 CPU 1212C // IP: 192.168.0.10 // маска подсети: 255.255.255.0 // PROFINETимя устройства: plc-hoist-01 // 2. KTP400 Basic HMI // IP: 192.168.0.20 // маска подсети: 255.255.255.0 // имя устройства: hmi-hoist-01 // 3. HMIконфигурация соединения(вHMIнастройка в конфигурации) // тип соединения типа: PROFINET (S7-1200) // HMIустройство: HMI_1 [192.168.0.20] // Контроллер: plc-hoist-01 [192.168.0.10] // точка доступа: S7ONLINE // подсеть: PN/IE_1 // 4. HMIпример соединения переменных(PLC tag HMI tag) // "DB1".FaultCode "FaultCode" (Int, период сбора данных500ms) // "DB1".Load_Current "CurrentLoad"(Real, период сбора данных200ms) // "DB1".Status_Running "IsRunning" (Bool, период сбора данных100ms) 

Загрузка программы и пусконаладка

5.1 Порядок загрузки

 // процесс загрузки(TIA Portal V17) // 1. компиляция всего проекта(Project Build Rebuild All) // обеспечить"0 errors, 0 warnings" // 2. выбор целевого устройства(Select target device) // онлайн-доступ обнаруженоPLC назначениеIP 192.168.0.10 // 3. загрузка конфигурации оборудования(Download HW config) // автоматический перезапускPLC(около15секунд) // 4. загрузка программного обеспечения(Download SW) // выбор"Download all blocks" перезапись существующей программы // 5. онлайн-мониторинг(Go online) // нажать"очки"значок для входа в режим онлайн-мониторинга // наблюдение за зелеными цепями на релейно-контактной схеме для проверки проводимости // 6. принудительное присвоение переменных(Force table)—— для наладки // возможность принудительного изменения без фактического нажатия кнопокDIмониторинг состояния оборудования в реальном времени // например, принудительно%I0.0=1имитация нажатия кнопки подъема // внимание:после завершения наладки обязательно сбросить все принудительные значения 

5.2 Контрольный список при пусконаладке

При нажатом аварийном стопе все выходы KM равны 0, выход аварийной сигнализации Q0.4 равен 1
После сброса аварийного стопа и при неактивном верхнем конечном выключателе нажатие SB1 включает KM1 — двигатель поднимает груз
Отпускание SB1 отключает KM1 — двигатель останавливается
При подъёме срабатывание верхнего конечного выключателя SQ1 немедленно отключает KM1
При включённом KM1 нажатие SB2 не должно включать KM2 (проверка блокировки)
При сигнале перегрузки подъём запрещён, доступно только опускание
При частых пусках с интервалом менее 500 мс второй пуск не выполняется (защита от частых пусков активна)
На экране неисправностей HMI отображаются корректный код неисправности и описание
Связь PROFINET без обрывов (на HMI нет всплывающих сообщений об ошибках)


Часто задаваемые вопросы

В: Насколько возрастёт стоимость при замене релейного управления на ПЛК?

О: При переводе одной электрической тали с релейного управления на ПЛК стоимость аппаратной части увеличивается примерно на 1500–2500 юаней (CPU S7-1200 — около 800 юаней + модуль расширения — около 600 юаней + HMI — около 1200 юаней + вспомогательные материалы — около 300 юаней). Однако при централизованном управлении несколькими талями удельные затраты значительно снижаются — в проекте с 68 талями удорожание на одну таль составило всего около 350 юаней. Кроме того, решение на ПЛК сокращает время поиска неисправностей на 40%, обеспечивает удалённый мониторинг и плановое техобслуживание, что делает долгосрочные эксплуатационные расходы и потери от простоев значительно ниже, чем при релейной схеме.

В: Можно ли написать программу для электрической тали только на LAD, не владея SCL?

О: Да, вполне. Все блоки FC100/FC200/FC300 в этой статье написаны на LAD, и только FC400 (диагностика неисправностей) — на SCL. Диагностику неисправностей также можно реализовать на LAD с использованием слова состояния и команд сравнения, однако SCL более лаконичен при обработке строк и математических операциях. Для чисто инженерных задач стиль LAD ближе к электрической схеме и понятнее электромонтажникам, поэтому рекомендуется основную логику писать на LAD, а вспомогательные функции — на SCL.

В: Как выбрать между решением на ПЛК и решением с преобразователем частоты?

О: ПЛК-решение предназначено для логического управления (вкл/выкл), а преобразователь частоты — для регулирования скорости. Это не взаимоисключающие варианты. Наиболее отработанная схема для электрической тали — комбинация «ПЛК + преобразователь частоты»: ПЛК отвечает за логику (аварийный стоп, конечные выключатели, блокировки, сигнализация), а преобразователь частоты — за управление двигателем (плавный пуск, регулирование скорости, торможение). Для талей грузоподъёмностью свыше 5 т рекомендуется устанавливать преобразователь частоты для точного позиционирования на малой скорости; для талей до 5 т с однотипными операциями вполне достаточно схемы ПЛК + контактор.

В: Что лучше выбрать — S7-1200 или S7-200 SMART?

О: S7-200 SMART дешевле (CPU — около 500 юаней) и подходит для автономного управления до 10 талей. S7-1200 поддерживает PROFINET (промышленный Ethernet реального времени) и подходит для объединения нескольких талей в сеть с подключением к MES/SCADA-системе. Рекомендации: для одиночных талей или небольших партий — S7-200 SMART (экономичный вариант); для централизованного мониторинга нескольких талей — S7-1200 (сетевое взаимодействие); при необходимости связи с преобразователем частоты по PROFINET — только S7-1200. Логика программирования на обеих платформах идентична, затраты на перенос программы минимальны.

Рекомендуемые стандарты

JB/T 10220-2014 «Тормоза для электрических талей»
JB/T 10218-2014 «Двигатели с коническим ротором для электрических талей»
JB/T 10219-2014 «Редукторы для электрических талей»

Козловой кран Kelude: обзор, характеристики и применение

Козловые краны являются неотъемлемой частью современного промышленного производства и строительства. Они обеспечивают эффективное перемещение тяжелых грузов на открытых площадках, в цехах и на складах. В этой статье мы подробно рассмотрим козловые краны производства компании «Келуде» (Kelude), их ключевые особенности, технические параметры и сферы применения, а также ответим на часто задаваемые вопросы.

В: Каковы сроки поставки козлового крана?
О: Стандартные сроки изготовления составляют от 45 до 90 дней в зависимости от сложности и загруженности производства. Для кранов со стандартными характеристиками сроки могут быть короче.

В: Какие условия необходимы для монтажа крана?
О: Для монтажа необходима подготовленная площадка с уложенными подкрановыми путями, соответствующими проекту. Также требуется наличие источника питания необходимой мощности. Наши специалисты могут провести шеф-монтаж и пусконаладочные работы.

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

В: Какой режим работы подходит для нашего производства?
О: Режим работы (А3-А7) выбирается в зависимости от интенсивности использования крана. Для легких и средних условий эксплуатации подходят режимы А3-А5, для тяжелых и очень тяжелых — А6-А7. Наши инженеры помогут вам подобрать оптимальную конфигурацию.

Похожие статьи

contact

contact us

phone:
+86 13903802779

mail:3915269@qq.com

Working hours: Monday to Friday

Wechat
Wechat
SHARE
TOP