📚 БАЗОВЫЙ КУРС ПО ЯЗЫКУ ST ДЛЯ ПЛК
Символическая цена! Базовое учебное пособие (50к+ символов PDF, 40 стр.) — от основ до готовых проектов.
Что внутри: Синтаксис ST по IEC 61131-3, типы данных (BOOL/INT/REAL), операторы, циклы IF/FOR/WHILE, функции/блоки, таймеры/счётчики, конечные автоматы, работа с IO (%I/%Q/%IW), отладка, оптимизация.
Практика: Управление светофором, конвейерная линия, резервуар + полные коды PROGRAM с комментариями.
Идеально для новичков КИПиА — с нуля до промышленного кода!
Символическая цена! Базовое учебное пособие (50к+ символов PDF, 40 стр.) — от основ до готовых проектов.
Что внутри: Синтаксис ST по IEC 61131-3, типы данных (BOOL/INT/REAL), операторы, циклы IF/FOR/WHILE, функции/блоки, таймеры/счётчики, конечные автоматы, работа с IO (%I/%Q/%IW), отладка, оптимизация.
Практика: Управление светофором, конвейерная линия, резервуар + полные коды PROGRAM с комментариями.
Идеально для новичков КИПиА — с нуля до промышленного кода!
👍1🔥1👏1
МАССИВЫ И СТРУКТУРЫ В ST ДЛЯ ПЛК
Символическая цена! (50k+ символов PDF - переход от “каши из переменных” к промышленному коду!)
Проблема: 20 датчиков = 20 переменных Temp_01…Temp_20. Цикл проверки = 500 строк кода. Добавили линию - переписывай всё заново!
Решение: Один массив + 5 строк цикла. Массив станций + вложенные структуры = код масштабируется с 2 до 200 линий БЕЗ переписывания.
Реальный кейс: 10 станций розлива бутылок. Каждая со своими настройками дозировки, PID, историей ошибок. Весь контроль — 30 строк кода вместо 500!
Символическая цена! (50k+ символов PDF - переход от “каши из переменных” к промышленному коду!)
Проблема: 20 датчиков = 20 переменных Temp_01…Temp_20. Цикл проверки = 500 строк кода. Добавили линию - переписывай всё заново!
Решение: Один массив + 5 строк цикла. Массив станций + вложенные структуры = код масштабируется с 2 до 200 линий БЕЗ переписывания.
Реальный кейс: 10 станций розлива бутылок. Каждая со своими настройками дозировки, PID, историей ошибок. Весь контроль — 30 строк кода вместо 500!
👍1🔥1👏1
⚙ УПРАВЛЕНИЕ ДВИГАТЕЛЯМИ НА ПЛК
Практическое руководство по одной из самых частых задач в автоматизации - управлению электродвигателями на языке Structured Text (ST).
Это не просто "включить/выключить", а полный разбор того, как делать это правильно, безопасно и профессионально.
Что внутри (30+ страниц):
✅ Архитектура системы
✅ Три стратегии пуска: прямой, мягкий стартер, с контролем тока
✅ Фильтрование шумных датчиков
✅ 8 типичных ошибок с решениями (КЗ при реверсе, зависание, дребезжание)
✅ Full State Machine (STOPPED → STARTING → RUNNING → ERROR)
✅ Реальные примеры.
📥 Скачивайте и изучайте!
Практическое руководство по одной из самых частых задач в автоматизации - управлению электродвигателями на языке Structured Text (ST).
Это не просто "включить/выключить", а полный разбор того, как делать это правильно, безопасно и профессионально.
Что внутри (30+ страниц):
✅ Архитектура системы
✅ Три стратегии пуска: прямой, мягкий стартер, с контролем тока
✅ Фильтрование шумных датчиков
✅ 8 типичных ошибок с решениями (КЗ при реверсе, зависание, дребезжание)
✅ Full State Machine (STOPPED → STARTING → RUNNING → ERROR)
✅ Реальные примеры.
📥 Скачивайте и изучайте!
👍1🥰1👏1
📘 IO Config Guide: практическое руководство
Руководство по “подводным камням” входов/выходов ПЛК
По символической цене. На живых примерах показывается, почему IO — это не “подключили провода и забыли”, а полноценный слой архитектуры между железом и программой. Разбираются типичные грабли: неверные адреса (I0 вместо I0.0), рассинхрон между клеммой и логическим адресом, перепутанная полярность NC/NO и инвертированные E‑stop, ошибки с типами данных на аналоговых входах, смешивание 0–10 V и 4–20 mA, отсутствие дебаунсинга и фильтрации, кривое масштабирование и калибровка, выход за допустимые диапазоны. Код на языке ST.
Руководство по “подводным камням” входов/выходов ПЛК
По символической цене. На живых примерах показывается, почему IO — это не “подключили провода и забыли”, а полноценный слой архитектуры между железом и программой. Разбираются типичные грабли: неверные адреса (I0 вместо I0.0), рассинхрон между клеммой и логическим адресом, перепутанная полярность NC/NO и инвертированные E‑stop, ошибки с типами данных на аналоговых входах, смешивание 0–10 V и 4–20 mA, отсутствие дебаунсинга и фильтрации, кривое масштабирование и калибровка, выход за допустимые диапазоны. Код на языке ST.
👍1🔥1🥰1
Обработка ошибок в CODESYS на языке ST
Учебное пособие по созданию надёжных ПЛК-программ без аварийных остановов на языке Structured Text (ST).
Рассматриваются ключевые runtime-ошибки: деление на ноль, переполнение типов данных, выход за границы массивов и таймауты связи.
Включает полный практический пример станции водоподготовки с 8 функциональными блоками — от чтения датчиков до главного цикла Main.
Учебное пособие по созданию надёжных ПЛК-программ без аварийных остановов на языке Structured Text (ST).
Рассматриваются ключевые runtime-ошибки: деление на ноль, переполнение типов данных, выход за границы массивов и таймауты связи.
Включает полный практический пример станции водоподготовки с 8 функциональными блоками — от чтения датчиков до главного цикла Main.
👍1🔥1👏1
📘 100 примеров программирования ПЛК на языке ST
100 примеров ST для ПЛК, которые хочется сразу запустить
Это не теория “про ST вообще”, а готовый набор из 100 рабочих примеров — от первых IF и таймеров до насосных станций, конвейеров и комплексных систем.
Примеры разбиты на 10 блоков: базовая логика, таймеры/счётчики, аналоговые сигналы, массивы и циклы, строки и форматирование, диагностика, собственные FB, а дальше уже реальные объекты — насосные станции и транспортные линии, вплоть до полноценных промышленных задач. Каждый пример — с полным кодом, объявлением переменных и комментариями на русском языке.
100 примеров ST для ПЛК, которые хочется сразу запустить
Это не теория “про ST вообще”, а готовый набор из 100 рабочих примеров — от первых IF и таймеров до насосных станций, конвейеров и комплексных систем.
Примеры разбиты на 10 блоков: базовая логика, таймеры/счётчики, аналоговые сигналы, массивы и циклы, строки и форматирование, диагностика, собственные FB, а дальше уже реальные объекты — насосные станции и транспортные линии, вплоть до полноценных промышленных задач. Каждый пример — с полным кодом, объявлением переменных и комментариями на русском языке.
👍1🔥1🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Присоединяйтесь к каналу "ПЛК и автоматизация" 🌟
Канал про углубленное изучение програмируемых логических контроллеров (ПЛК) и промышленной автоматизации.
Получите доступ к эксклюзивному образовательному контенту, подписавшись сегодня!
Канал про углубленное изучение програмируемых логических контроллеров (ПЛК) и промышленной автоматизации.
Получите доступ к эксклюзивному образовательному контенту, подписавшись сегодня!
🔥2❤1👏1
Ловите готовый шаблон для одной из самых частых задач в ST: включить механизм по кнопке без фиксации и автоматически выключить его через заданное время.
В чём ошибаются новички
Самая частая ошибка — попытка привязать вход таймера напрямую к кнопке (fbTimer(IN := xButtonStart...)). Кнопка без фиксации даёт лишь кратковременный импульс. Как только оператор её отпускает, таймер сбрасывается, так и не дойдя до заданного времени.
Вторая, более хитрая ошибка — использование условия IF xButtonStart THEN xRelayOut := TRUE; END_IF без детектора фронта. Если оператор задерживает кнопку нажатой дольше времени таймера, то после сброса реле оно тут же включится снова, потому что xButtonStart всё ещё TRUE. Защита от удержания не работает.
Правильная архитектура (Память + Фронт + TON)
Нам нужно «запомнить» факт нажатия, но только сам момент перехода кнопки из 0 в 1. Для этого ловим передний фронт сигнала.
// 1. Детектор фронта и включение
IF xButtonStart AND NOT xButtonStart_prev THEN
xRelayOut := TRUE; // включаем по фронту
END_IF;
// 2. Таймер считает время, пока выход активен
fbTimer(IN := xRelayOut, PT := T#5s);
// 3. Отключение по истечении времени
IF fbTimer.Q THEN
xRelayOut := FALSE;
END_IF;
// 4. Запоминаем состояние кнопки для следующего цикла ПЛК
xButtonStart_prev := xButtonStart;
Для упрощения кода рекомендую использовать стандартный блок R_TRIG. Он гарантированно есть в любой среде программирования стандарта МЭК 61131-3 и выполняет ровно ту же задачу по отлову фронта.
Почему этот шаблон надёжен
Разделение ответственности — чётко разнесены условия запуска (фронт кнопки), процесс ожидания (активен реле) и условие остановки (таймер).
Защита от удержания — даже если оператор держит кнопку нажатой 10 секунд, реле выключится через 5 секунд и не включится снова, пока кнопку не отпустят и не нажмут заново (потому что повторного фронта не будет).
Читаемость — код читается сверху вниз как простая инструкция, без запутанных вложенных условий и неявных сбросов.
Примечание. В данном алгоритме повторное нажатие кнопки во время отсчёта никак не повлияет на работу (реле уже включено, таймер не прервётся, новый фронт будет проигнорирован).
Хотите, разберём, как сделать таймер с перезапуском (Retrigger), чтобы каждое новое нажатие продлевало работу выхода ещё на 5 секунд?
В десятки раз больше полезной информации по программированию ПЛК мы размещаем в ВИП-канале в ТГ- "ПЛК и автоматизация" - https://t.me/tribute/app?startapp=sL0M
Промо-канал - https://t.me/plcmasters
В чём ошибаются новички
Самая частая ошибка — попытка привязать вход таймера напрямую к кнопке (fbTimer(IN := xButtonStart...)). Кнопка без фиксации даёт лишь кратковременный импульс. Как только оператор её отпускает, таймер сбрасывается, так и не дойдя до заданного времени.
Вторая, более хитрая ошибка — использование условия IF xButtonStart THEN xRelayOut := TRUE; END_IF без детектора фронта. Если оператор задерживает кнопку нажатой дольше времени таймера, то после сброса реле оно тут же включится снова, потому что xButtonStart всё ещё TRUE. Защита от удержания не работает.
Правильная архитектура (Память + Фронт + TON)
Нам нужно «запомнить» факт нажатия, но только сам момент перехода кнопки из 0 в 1. Для этого ловим передний фронт сигнала.
// 1. Детектор фронта и включение
IF xButtonStart AND NOT xButtonStart_prev THEN
xRelayOut := TRUE; // включаем по фронту
END_IF;
// 2. Таймер считает время, пока выход активен
fbTimer(IN := xRelayOut, PT := T#5s);
// 3. Отключение по истечении времени
IF fbTimer.Q THEN
xRelayOut := FALSE;
END_IF;
// 4. Запоминаем состояние кнопки для следующего цикла ПЛК
xButtonStart_prev := xButtonStart;
Для упрощения кода рекомендую использовать стандартный блок R_TRIG. Он гарантированно есть в любой среде программирования стандарта МЭК 61131-3 и выполняет ровно ту же задачу по отлову фронта.
Почему этот шаблон надёжен
Разделение ответственности — чётко разнесены условия запуска (фронт кнопки), процесс ожидания (активен реле) и условие остановки (таймер).
Защита от удержания — даже если оператор держит кнопку нажатой 10 секунд, реле выключится через 5 секунд и не включится снова, пока кнопку не отпустят и не нажмут заново (потому что повторного фронта не будет).
Читаемость — код читается сверху вниз как простая инструкция, без запутанных вложенных условий и неявных сбросов.
Примечание. В данном алгоритме повторное нажатие кнопки во время отсчёта никак не повлияет на работу (реле уже включено, таймер не прервётся, новый фронт будет проигнорирован).
Хотите, разберём, как сделать таймер с перезапуском (Retrigger), чтобы каждое новое нажатие продлевало работу выхода ещё на 5 секунд?
В десятки раз больше полезной информации по программированию ПЛК мы размещаем в ВИП-канале в ТГ- "ПЛК и автоматизация" - https://t.me/tribute/app?startapp=sL0M
Промо-канал - https://t.me/plcmasters
👍3❤1🔥1👏1
Основы языка ST для ПЛК: введение в Structured Text
В мире промышленной автоматики существует множество языков программирования, но когда речь идет о программировании контроллеров согласно международному стандарту IEC 61131-3, язык Structured Text (ST) занимает особое место. Этот язык представляет собой мост между классической процедурной логикой программирования и специфическими требованиями промышленной автоматизации.
Понимание основ Structured Text — это необходимый навык для любого инженера, занимающегося проектированием и разработкой систем управления производственными процессами.
Когда Международная электротехническая комиссия (IEC) разрабатывала стандарт 61131-3 для программирования ПЛК, перед разработчиками стояла серьезная задача: создать язык, который был бы одновременно мощным, понятным и безопасным для использования в критичных промышленных приложениях. Structured Text был создан как ответ на эту задачу.
ST обладает синтаксисом, похожим на языки высокого уровня, такие как Pascal или Python, что делает его легким в освоении для программистов с опытом работы в других областях информатики. Однако в отличие от универсальных языков программирования, ST специально оптимизирован для решения проблем, возникающих в контексте промышленной автоматики: работа с дискретными сигналами, управление временем выполнения, обработка аналоговых значений датчиков.
Подробно смотрите здесь:
https://electricalschool.info/automation/3294-osnovy-yazyka-st-dlya-plk.html
В мире промышленной автоматики существует множество языков программирования, но когда речь идет о программировании контроллеров согласно международному стандарту IEC 61131-3, язык Structured Text (ST) занимает особое место. Этот язык представляет собой мост между классической процедурной логикой программирования и специфическими требованиями промышленной автоматизации.
Понимание основ Structured Text — это необходимый навык для любого инженера, занимающегося проектированием и разработкой систем управления производственными процессами.
Когда Международная электротехническая комиссия (IEC) разрабатывала стандарт 61131-3 для программирования ПЛК, перед разработчиками стояла серьезная задача: создать язык, который был бы одновременно мощным, понятным и безопасным для использования в критичных промышленных приложениях. Structured Text был создан как ответ на эту задачу.
ST обладает синтаксисом, похожим на языки высокого уровня, такие как Pascal или Python, что делает его легким в освоении для программистов с опытом работы в других областях информатики. Однако в отличие от универсальных языков программирования, ST специально оптимизирован для решения проблем, возникающих в контексте промышленной автоматики: работа с дискретными сигналами, управление временем выполнения, обработка аналоговых значений датчиков.
Подробно смотрите здесь:
https://electricalschool.info/automation/3294-osnovy-yazyka-st-dlya-plk.html
👍1🔥1🥰1
Современные инструменты и технологии инженера по автоматизации
Инженер по автоматизации использует широкий спектр современных инструментов и технологий для создания эффективных систем управления производственными процессами.
В его арсенале — программируемые логические контроллеры (ПЛК), разнообразные датчики и исполнительные механизмы, а также программные решения для мониторинга и контроля, такие как SCADA-системы.
Важное значение имеют языки программирования и средства визуализации данных, которые позволяют оптимизировать работу оборудования и повысить надёжность процессов.
Кроме того, в современных автоматизированных системах всё чаще применяются роботизация и облачные технологии для сбора, анализа и обработки информации, что значительно расширяет возможности управления и повышает производительность предприятий.
Подробно об этом смотрите в статье "Топ-5 востребованных инструментов и технологий для инженера по автоматизации":
https://electricalschool.info/automation/3212-instrumenty-i-tehnologii-dlya-inzhenera-po-avtomatizacii.html
Курс переподготовки "Инженер по автоматизации":
https://electricalschool.info/automation-engineer.php
Инженер по автоматизации использует широкий спектр современных инструментов и технологий для создания эффективных систем управления производственными процессами.
В его арсенале — программируемые логические контроллеры (ПЛК), разнообразные датчики и исполнительные механизмы, а также программные решения для мониторинга и контроля, такие как SCADA-системы.
Важное значение имеют языки программирования и средства визуализации данных, которые позволяют оптимизировать работу оборудования и повысить надёжность процессов.
Кроме того, в современных автоматизированных системах всё чаще применяются роботизация и облачные технологии для сбора, анализа и обработки информации, что значительно расширяет возможности управления и повышает производительность предприятий.
Подробно об этом смотрите в статье "Топ-5 востребованных инструментов и технологий для инженера по автоматизации":
https://electricalschool.info/automation/3212-instrumenty-i-tehnologii-dlya-inzhenera-po-avtomatizacii.html
Курс переподготовки "Инженер по автоматизации":
https://electricalschool.info/automation-engineer.php
👍1🔥1👏1
Курс «Инженер по автоматизации» — кому он будет полезен?
Этот курс создан для тех, кто хочет построить карьеру в сфере промышленной автоматизации и работать с самыми современными технологиями. Он идеально подойдет:
- Начинающим специалистам, которые хотят освоить азы профессии инженера по автоматизации и получить качественную базу для практической работы.
- Тем, кто уже работает на производстве, но стремится получить новые навыки, освоить современные ПЛК и SCADA-системы и улучшить свои карьерные перспективы.
- Студентам технических специальностей, интересующимся цифровыми технологиями и промышленными сетями. Курс охватывает реальные задачи инженеров, дает возможность выполнить проекты и стажироваться в крупных компаниях.
Обучение строится на живых вебинарах с экспертами, практических заданиях и кейсах из реального бизнеса. Выпускники получают диплом, профессиональные навыки, а также поддержку в трудоустройстве. Для многих курс стал возможностью начать новую востребованную карьеру или значительно продвинуться в текущей сфере.
Узнать подробнее о курсе и оставить заявку:
https://electricalschool.info/automation-engineer.php
Этот курс создан для тех, кто хочет построить карьеру в сфере промышленной автоматизации и работать с самыми современными технологиями. Он идеально подойдет:
- Начинающим специалистам, которые хотят освоить азы профессии инженера по автоматизации и получить качественную базу для практической работы.
- Тем, кто уже работает на производстве, но стремится получить новые навыки, освоить современные ПЛК и SCADA-системы и улучшить свои карьерные перспективы.
- Студентам технических специальностей, интересующимся цифровыми технологиями и промышленными сетями. Курс охватывает реальные задачи инженеров, дает возможность выполнить проекты и стажироваться в крупных компаниях.
Обучение строится на живых вебинарах с экспертами, практических заданиях и кейсах из реального бизнеса. Выпускники получают диплом, профессиональные навыки, а также поддержку в трудоустройстве. Для многих курс стал возможностью начать новую востребованную карьеру или значительно продвинуться в текущей сфере.
Узнать подробнее о курсе и оставить заявку:
https://electricalschool.info/automation-engineer.php
👍1🔥1🥰1
💧 Вышел очень прикладной ST-гайд по станции водоочистки — от аналоговых сигналов и насосов до промывки фильтров, ПИД-дозирования реагентов и интеграции со SCADA
Главная ценность файла в том, что он показывает не абстрактную теорию, а почти готовую архитектуру промышленного проекта: структуры TAnalogSignal, TTank, TPump, TFilter, TPidDose, блоки масштабирования, логика сухого хода, аварийные сбросы и пошаговый автомат промывки фильтра.
Отдельный плюс — подробный скелет PROGRAM Main, где вся станция собирается в единую систему: от датчиков и насосов до статистики и тегов для SCADA.
Если коротко, это пособие для тех, кто хочет понять, как из разрозненных устройств сделать живую автоматизированную станцию водоочистки на языке ST. Очень полезно как для учебы, так и как база для реального проекта, который потом можно адаптировать под конкретный ПЛК и объект.
Получить этот файл подписавшись на ВИП-канал "ПЛК и автоматизация": https://t.me/tribute/app?startapp=sL0M
После подписки вы получите доступ к архиву со всеми ранее опубликованными материалами💥
😢 ПЛК и автоматизация (промо)
Главная ценность файла в том, что он показывает не абстрактную теорию, а почти готовую архитектуру промышленного проекта: структуры TAnalogSignal, TTank, TPump, TFilter, TPidDose, блоки масштабирования, логика сухого хода, аварийные сбросы и пошаговый автомат промывки фильтра.
Отдельный плюс — подробный скелет PROGRAM Main, где вся станция собирается в единую систему: от датчиков и насосов до статистики и тегов для SCADA.
Если коротко, это пособие для тех, кто хочет понять, как из разрозненных устройств сделать живую автоматизированную станцию водоочистки на языке ST. Очень полезно как для учебы, так и как база для реального проекта, который потом можно адаптировать под конкретный ПЛК и объект.
Получить этот файл подписавшись на ВИП-канал "ПЛК и автоматизация": https://t.me/tribute/app?startapp=sL0M
После подписки вы получите доступ к архиву со всеми ранее опубликованными материалами
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1👏1
📘 Вышел очень удобный сборник для практики ST — 50 коротких задач по Structured Text для начинающих.
Здесь не растянутая теория, а именно тренажёр: каждая задача — это маленький рабочий кейс с понятной постановкой, кодом и разбором. Внутри есть всё, что обычно нужно на старте: мигание, самоподхват, антидребезг, таймеры TON/TOF/TP, гистерезис, счётчики, массивы, приоритеты команд, конечные автоматы и простые ПИД-паттерны.
Файл особенно хорош тем, что показывает ST не как «синтаксис ради синтаксиса», а как язык для реальных задач ПЛК: насосы, двигатели, датчики, аварии и логика управления. Если нужен материал, чтобы быстро набить руку и перестать бояться ST, это отличный вариант.
Получить этот файл подписавшись на ВИП-канал "ПЛК и автоматизация": https://t.me/tribute/app?startapp=sL0M
После подписки вы получите доступ к архиву со всеми ранее опубликованными материалами💥
😢 ПЛК и автоматизация (промо)
Здесь не растянутая теория, а именно тренажёр: каждая задача — это маленький рабочий кейс с понятной постановкой, кодом и разбором. Внутри есть всё, что обычно нужно на старте: мигание, самоподхват, антидребезг, таймеры TON/TOF/TP, гистерезис, счётчики, массивы, приоритеты команд, конечные автоматы и простые ПИД-паттерны.
Файл особенно хорош тем, что показывает ST не как «синтаксис ради синтаксиса», а как язык для реальных задач ПЛК: насосы, двигатели, датчики, аварии и логика управления. Если нужен материал, чтобы быстро набить руку и перестать бояться ST, это отличный вариант.
Получить этот файл подписавшись на ВИП-канал "ПЛК и автоматизация": https://t.me/tribute/app?startapp=sL0M
После подписки вы получите доступ к архиву со всеми ранее опубликованными материалами
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🥰1👏1
Программирование микроконтроллеров — это классное хобби, которое может перерасти в успешную профессию. Программисты этой отрасли требуются во многих сферах, потому что микроконтроллеры окружают нас повсюду: телефоны, автомобили и даже роутеры.
Приглашаем вас на курс «Программист микроконтроллеров». Вы научитесь:
- Создавать электрические схемы и освоите самую популярную в мире программу для создания печатных плат Altium Designer
- Писать код на языке C — этот язык особенно популярен в разработке электронных устройств без сложных операционных систем
- Писать код для разных типов устройств
Курс состоит из видеоматериалов и практических заданий. В конце обучения вас ждёт итоговый проект — сквозное проектирование платы.
Первые 2 модуля программы бесплатно!
Получите скидку до 50%
Подробности по ссылке:
https://electricalschool.info/programmer-of-microcontrollers.php
Реклама. ЧУ ЧАСТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ОБРАЗОВАТЕЛЬНЫЕ ТЕХНОЛОГИИ СКИЛБОКС (КОРОБКА НАВЫКОВ), ИНН 9704088880, erid: 2VfnxwisD9b
Приглашаем вас на курс «Программист микроконтроллеров». Вы научитесь:
- Создавать электрические схемы и освоите самую популярную в мире программу для создания печатных плат Altium Designer
- Писать код на языке C — этот язык особенно популярен в разработке электронных устройств без сложных операционных систем
- Писать код для разных типов устройств
Курс состоит из видеоматериалов и практических заданий. В конце обучения вас ждёт итоговый проект — сквозное проектирование платы.
Первые 2 модуля программы бесплатно!
Получите скидку до 50%
Подробности по ссылке:
https://electricalschool.info/programmer-of-microcontrollers.php
Реклама. ЧУ ЧАСТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ОБРАЗОВАТЕЛЬНЫЕ ТЕХНОЛОГИИ СКИЛБОКС (КОРОБКА НАВЫКОВ), ИНН 9704088880, erid: 2VfnxwisD9b
👍1🥰1👏1
📘 Очень полезный гайд про то, как правильно структурировать проект ПЛК на ST, чтобы не утонуть в одном огромном Main
В нём заложена простая, но важная идея: PROGRAM должен быть диспетчером, FUNCTION_BLOCK — объектом с памятью, FUNCTION — чистым вычислителем, а глобальные данные лучше держать в аккуратных структурах, а не в россыпи переменных.
На примерах видно, как из этого собрать нормальную архитектуру: слой I/O, слой обработки сигналов, слой прикладной логики и отдельный слой для HMI/SCADA.
Файл не ограничивается теорией — он даёт конкретные шаблоны: FB_Pump, FB_AlarmManager, FB_IoInMapping, FB_IoOutMapping и пример PRG_Main, который вызывает подсистемы по порядку. Если коротко, это пособие про то, как писать ST-код так, чтобы его можно было потом без боли расширять, отлаживать и передавать другому инженеру.
Получить этот файл подписавшись на ВИП-канал "ПЛК и автоматизация": https://t.me/tribute/app?startapp=sL0M
После подписки вы получите доступ к архиву со всеми ранее опубликованными материалами💥
😢 ПЛК и автоматизация (промо)
В нём заложена простая, но важная идея: PROGRAM должен быть диспетчером, FUNCTION_BLOCK — объектом с памятью, FUNCTION — чистым вычислителем, а глобальные данные лучше держать в аккуратных структурах, а не в россыпи переменных.
На примерах видно, как из этого собрать нормальную архитектуру: слой I/O, слой обработки сигналов, слой прикладной логики и отдельный слой для HMI/SCADA.
Файл не ограничивается теорией — он даёт конкретные шаблоны: FB_Pump, FB_AlarmManager, FB_IoInMapping, FB_IoOutMapping и пример PRG_Main, который вызывает подсистемы по порядку. Если коротко, это пособие про то, как писать ST-код так, чтобы его можно было потом без боли расширять, отлаживать и передавать другому инженеру.
Получить этот файл подписавшись на ВИП-канал "ПЛК и автоматизация": https://t.me/tribute/app?startapp=sL0M
После подписки вы получите доступ к архиву со всеми ранее опубликованными материалами
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1🥰1
VIP-канал "ПЛК и автоматизация"
Внутри не «курс для новичков», а разбор реальных инженерных задач: двигатели, печи, парогенераторы, FSM и многое другое.
Но важное отличие в другом: мы учим не приёмам, а системному мышлению. Как спроектировать архитектуру проекта так, чтобы через год её было не страшно открывать. Как сделать так, чтобы второй, третий и десятый объект не превращались в копипаст‑ад из 1000 строк в Main.
Если вы уже читали открытые материалы и чувствуете, что «кусочки знания есть, но цельной картины нет» - в канале как раз про эту картину: от идеи до промышленного запуска, с учётом всех тех ошибок, которые обычно всплывают только на реальных объектах.
Подписаться на канал "ПЛК и автоматизация" можно здесь: https://t.me/tribute/app?startapp=sL0M
Внутри не «курс для новичков», а разбор реальных инженерных задач: двигатели, печи, парогенераторы, FSM и многое другое.
Но важное отличие в другом: мы учим не приёмам, а системному мышлению. Как спроектировать архитектуру проекта так, чтобы через год её было не страшно открывать. Как сделать так, чтобы второй, третий и десятый объект не превращались в копипаст‑ад из 1000 строк в Main.
Если вы уже читали открытые материалы и чувствуете, что «кусочки знания есть, но цельной картины нет» - в канале как раз про эту картину: от идеи до промышленного запуска, с учётом всех тех ошибок, которые обычно всплывают только на реальных объектах.
Подписаться на канал "ПЛК и автоматизация" можно здесь: https://t.me/tribute/app?startapp=sL0M
👍1🥰1👏1
⏱ Таймаут в ST: как не «завесить» ПЛК и дождаться сигнала (правильный подход)
Привет, коллеги! В проектах АСУ ТП часто возникает задача: дать команду механизму и ждать ответа от датчика, но не бесконечно, а строго ограниченное время. Например, открыли клапан и ждём концевик – если за 5 секунд сигнал не пришёл, фиксируем аварию.
❌ Типичная ошибка новичков
Пытаться сделать задержку через цикл WHILE Timer < 500 DO ... или использовать задержки вроде SLEEP(). Так делать категорически нельзя – ПЛК перестанет обслуживать остальные задачи, и программа «зависнет».
✅ Правильное решение
Использовать таймер TON, который работает асинхронно, не блокируя цикл сканирования контроллера.
👨💻 Код (CoDeSys, стандарт IEC 61131-3)
VAR
TimerTO : TON; // Экземпляр таймера
Command : BOOL; // Команда на механизм
Sensor : BOOL; // Сигнал от датчика (может быть коротким)
SensorEdge : R_TRIG; // Детектор фронта для фиксации импульса
TimeoutError : BOOL; // Флаг ошибки по таймауту
SignalOK : BOOL; // Флаг успешного срабатывания
Reset : BOOL; // Внешняя команда сброса флагов (например, с HMI)
END_VAR
// 1. Детектор фронта датчика (вызывается всегда безусловно)
SensorEdge(CLK := Sensor);
// 2. Запускаем таймер. Блокируем его, если уже есть ошибка или сигнал получен
TimerTO(IN := Command AND NOT TimeoutError AND NOT SignalOK, PT := T#5s);
// 3. Обработка состояний (конечный автомат)
IF Reset THEN
// Сброс по внешней команде
SignalOK := FALSE;
TimeoutError := FALSE;
Command := FALSE;
// Сам таймер сбросится автоматически в начале следующего цикла
ELSIF TimerTO.Q THEN
// Таймаут наступил – фиксируем ошибку, снимаем команду
TimeoutError := TRUE;
Command := FALSE;
SignalOK := FALSE;
ELSIF SensorEdge.Q AND Command AND NOT TimeoutError THEN
// Датчик сработал ДО таймаута и при активной команде – фиксируем успех
SignalOK := TRUE;
Command := FALSE;
END_IF
⚙️ Как это работает:
Запуск таймера: пока Command = TRUE и система не зафиксировала ошибку или успех, таймер отсчитывает 5 секунд.
Фиксация датчика: используется R_TRIG, чтобы поймать даже кратковременный импульс. Условие AND Command гарантирует, что мы игнорируем случайные срабатывания датчика в режиме простоя механизма.
Приоритет таймаута: если таймер истёк (TimerTO.Q = TRUE), немедленно устанавливается TimeoutError и сбрасывается команда. Ошибка остаётся активной до явного сброса.
Сброс состояния: предусмотрена внешняя переменная Reset. В ST не нужно принудительно вызывать блок таймера с IN := FALSE (двойной вызов блока — это ошибка архитектуры); достаточно обнулить логические условия на его входе, и он сбросится сам.
📌 Важные нюансы для надежного кода:
Таймер не блокирует программу – ПЛК продолжает штатно выполнять остальную логику.
Для коротких импульсов датчика обязательно используйте R_TRIG – иначе сигнал может попасть между циклами контроллера и потеряться.
Никогда не сбрасывайте ошибку таймаута при случайном сигнале датчика уже после возникновения аварии – это маскирует механическую проблему на линии. В коде выше ошибка сбрасывается только явно через Reset.
💾 Сохраните себе – этот шаблон не раз выручит на пусконаладке. И помните: хороший код – это прежде всего безопасный и предсказуемый код.
Другие примеры смотрите здесь:
https://t.me/tribute/app?startapp=sL0M
Привет, коллеги! В проектах АСУ ТП часто возникает задача: дать команду механизму и ждать ответа от датчика, но не бесконечно, а строго ограниченное время. Например, открыли клапан и ждём концевик – если за 5 секунд сигнал не пришёл, фиксируем аварию.
❌ Типичная ошибка новичков
Пытаться сделать задержку через цикл WHILE Timer < 500 DO ... или использовать задержки вроде SLEEP(). Так делать категорически нельзя – ПЛК перестанет обслуживать остальные задачи, и программа «зависнет».
✅ Правильное решение
Использовать таймер TON, который работает асинхронно, не блокируя цикл сканирования контроллера.
👨💻 Код (CoDeSys, стандарт IEC 61131-3)
VAR
TimerTO : TON; // Экземпляр таймера
Command : BOOL; // Команда на механизм
Sensor : BOOL; // Сигнал от датчика (может быть коротким)
SensorEdge : R_TRIG; // Детектор фронта для фиксации импульса
TimeoutError : BOOL; // Флаг ошибки по таймауту
SignalOK : BOOL; // Флаг успешного срабатывания
Reset : BOOL; // Внешняя команда сброса флагов (например, с HMI)
END_VAR
// 1. Детектор фронта датчика (вызывается всегда безусловно)
SensorEdge(CLK := Sensor);
// 2. Запускаем таймер. Блокируем его, если уже есть ошибка или сигнал получен
TimerTO(IN := Command AND NOT TimeoutError AND NOT SignalOK, PT := T#5s);
// 3. Обработка состояний (конечный автомат)
IF Reset THEN
// Сброс по внешней команде
SignalOK := FALSE;
TimeoutError := FALSE;
Command := FALSE;
// Сам таймер сбросится автоматически в начале следующего цикла
ELSIF TimerTO.Q THEN
// Таймаут наступил – фиксируем ошибку, снимаем команду
TimeoutError := TRUE;
Command := FALSE;
SignalOK := FALSE;
ELSIF SensorEdge.Q AND Command AND NOT TimeoutError THEN
// Датчик сработал ДО таймаута и при активной команде – фиксируем успех
SignalOK := TRUE;
Command := FALSE;
END_IF
⚙️ Как это работает:
Запуск таймера: пока Command = TRUE и система не зафиксировала ошибку или успех, таймер отсчитывает 5 секунд.
Фиксация датчика: используется R_TRIG, чтобы поймать даже кратковременный импульс. Условие AND Command гарантирует, что мы игнорируем случайные срабатывания датчика в режиме простоя механизма.
Приоритет таймаута: если таймер истёк (TimerTO.Q = TRUE), немедленно устанавливается TimeoutError и сбрасывается команда. Ошибка остаётся активной до явного сброса.
Сброс состояния: предусмотрена внешняя переменная Reset. В ST не нужно принудительно вызывать блок таймера с IN := FALSE (двойной вызов блока — это ошибка архитектуры); достаточно обнулить логические условия на его входе, и он сбросится сам.
📌 Важные нюансы для надежного кода:
Таймер не блокирует программу – ПЛК продолжает штатно выполнять остальную логику.
Для коротких импульсов датчика обязательно используйте R_TRIG – иначе сигнал может попасть между циклами контроллера и потеряться.
Никогда не сбрасывайте ошибку таймаута при случайном сигнале датчика уже после возникновения аварии – это маскирует механическую проблему на линии. В коде выше ошибка сбрасывается только явно через Reset.
💾 Сохраните себе – этот шаблон не раз выручит на пусконаладке. И помните: хороший код – это прежде всего безопасный и предсказуемый код.
Другие примеры смотрите здесь:
https://t.me/tribute/app?startapp=sL0M
Telegram
Tribute
This bot helps content creators receive financial support from their followers directly in the app.
👍2🔥1👏1
Обучение на инженера по автоматизации
Профессиональная переподготовка «Инженер по автоматизации» — это онлайн-курс, который поможет освоить востребованную инженерную профессию с нуля.
Вы научитесь проектировать и настраивать автоматизированные системы управления (АСУ ТП), программировать логические контроллеры (ПЛК) и работать с SCADA-системами, такими как AVEVA Edge и WinCC. В программе — изучение сетевых технологий, промышленных протоколов, основ промышленной безопасности и информационной защиты АСУ.
Курс рассчитан как на новичков, так и на инженеров, желающих повысить квалификацию и расширить компетенции в автоматизации технологических процессов.
Обучение проходит в удобном онлайн-формате с поддержкой кураторов, практическими проектами и реальными кейсами из промышленности. По окончании вы получите знания и навыки, необходимые для работы в энергетике, нефтегазовой, промышленной и других отраслях, где востребованы специалисты по автоматизации.
Этот курс — отличный выбор для тех, кто хочет быстро войти в перспективную сферу, повысить свой профессиональный уровень и построить карьеру инженера по автоматизации.
Подать заявку можно на сайте:
https://electricalschool.info/automation-engineer.php
Реклама. ООО «Нетология». ИНН 7726464125 ERID: 2bL9aMPo2e4BA5qnNG9pz4mR2f
Профессиональная переподготовка «Инженер по автоматизации» — это онлайн-курс, который поможет освоить востребованную инженерную профессию с нуля.
Вы научитесь проектировать и настраивать автоматизированные системы управления (АСУ ТП), программировать логические контроллеры (ПЛК) и работать с SCADA-системами, такими как AVEVA Edge и WinCC. В программе — изучение сетевых технологий, промышленных протоколов, основ промышленной безопасности и информационной защиты АСУ.
Курс рассчитан как на новичков, так и на инженеров, желающих повысить квалификацию и расширить компетенции в автоматизации технологических процессов.
Обучение проходит в удобном онлайн-формате с поддержкой кураторов, практическими проектами и реальными кейсами из промышленности. По окончании вы получите знания и навыки, необходимые для работы в энергетике, нефтегазовой, промышленной и других отраслях, где востребованы специалисты по автоматизации.
Этот курс — отличный выбор для тех, кто хочет быстро войти в перспективную сферу, повысить свой профессиональный уровень и построить карьеру инженера по автоматизации.
Подать заявку можно на сайте:
https://electricalschool.info/automation-engineer.php
Реклама. ООО «Нетология». ИНН 7726464125 ERID: 2bL9aMPo2e4BA5qnNG9pz4mR2f
👍1🔥1👏1
⚡ Что делать, если вы уперлись в потолок в должности инженера-электрика?
Карьерный потолок инженера-электрика — это точка перехода на управленческий уровень.
Чтение электрических схем, обслуживание пускорегулирующей аппаратуры, диагностика и локализация повреждений в кабельных линиях — это базовые компетенции специалиста.
Однако на определённом этапе профессионального развития рост дохода и зоны ответственности останавливается.
Причина проста: следующий уровень требует не только технической экспертизы, но и управленческих компетенций.
Главный энергетик — это руководитель энергослужбы, а не просто инженер.
Его задачи лежат в плоскости управления, экономики и ответственности:
- Формирование и защита годового бюджета энергослужбы
- Организация системы планово-предупредительных ремонтов (ППР) и технического обслуживания оборудования
- Взаимодействие с надзорными органами и обеспечение соблюдения требований охраны труда и промышленной безопасности
- Управление подрядными организациями и внутренними ресурсами
- Ответственность за надёжность энергоснабжения и эксплуатацию энергохозяйства предприятия
Это качественно другой уровень задач — и он требует системной подготовки.
Программа повышения квалификации «Главный энергетик» от Академии Эдюсон ориентирована на практику: выстраивание бизнес-процессов энергослужбы, работа с нормативно-технической документацией, управление эксплуатацией и ремонтом оборудования, формирование бюджета, работа с подрядчиками, а также принципы бережливого производства.
Без избыточной теории — только прикладные знания, применимые в реальной работе.
Изучить полную программу курса и начать обучение можно здесь:
https://electricalschool.info/cheif-power-engineer.php
Академия Эдюсон лицензирована Департаментом образования и науки г. Москвы, можно получить налоговый вычет 13%.
Реклама. ООО "Эдюсон" ИНН 7729779476 ERID: 2bL9aMPo2e4BA5qnNJQJbmAbri
Карьерный потолок инженера-электрика — это точка перехода на управленческий уровень.
Чтение электрических схем, обслуживание пускорегулирующей аппаратуры, диагностика и локализация повреждений в кабельных линиях — это базовые компетенции специалиста.
Однако на определённом этапе профессионального развития рост дохода и зоны ответственности останавливается.
Причина проста: следующий уровень требует не только технической экспертизы, но и управленческих компетенций.
Главный энергетик — это руководитель энергослужбы, а не просто инженер.
Его задачи лежат в плоскости управления, экономики и ответственности:
- Формирование и защита годового бюджета энергослужбы
- Организация системы планово-предупредительных ремонтов (ППР) и технического обслуживания оборудования
- Взаимодействие с надзорными органами и обеспечение соблюдения требований охраны труда и промышленной безопасности
- Управление подрядными организациями и внутренними ресурсами
- Ответственность за надёжность энергоснабжения и эксплуатацию энергохозяйства предприятия
Это качественно другой уровень задач — и он требует системной подготовки.
Программа повышения квалификации «Главный энергетик» от Академии Эдюсон ориентирована на практику: выстраивание бизнес-процессов энергослужбы, работа с нормативно-технической документацией, управление эксплуатацией и ремонтом оборудования, формирование бюджета, работа с подрядчиками, а также принципы бережливого производства.
Без избыточной теории — только прикладные знания, применимые в реальной работе.
Изучить полную программу курса и начать обучение можно здесь:
https://electricalschool.info/cheif-power-engineer.php
Академия Эдюсон лицензирована Департаментом образования и науки г. Москвы, можно получить налоговый вычет 13%.
Реклама. ООО "Эдюсон" ИНН 7729779476 ERID: 2bL9aMPo2e4BA5qnNJQJbmAbri
👍1🔥1👏1
1 ошибка в ST
Бывало ли у вас такое: вы загружаете программу в ПЛК, переводите его в режим RUN, и ваш конечный автомат внезапно начинает делать совсем не то, что нужно? Вместо спокойного ожидания команды он сразу запускает двигатели, открывает клапаны или уходит в аварию. Чаще всего причина кроется в одной банальной, но очень распространённой ошибке.
Ошибка: забытая инициализация
Главная причина такого непредсказуемого поведения — отсутствие начальной инициализации переменной состояния. В языке Structured Text (ST) конечные автоматы обычно реализуются через конструкцию CASE, которая опирается на целочисленную переменную (INT) или перечисление (ENUM). Если при объявлении этой переменной вы не задали ей конкретное стартовое значение, ПЛК автоматически присвоит ей ноль при запуске.
Если в вашей логике нулевое состояние отвечает за активный рабочий процесс, а не за безопасный режим ожидания, автомат немедленно перейдёт в эту фазу. В результате система пропускает важные этапы самодиагностики или ожидания, что может привести к поломке оборудования или созданию аварийной ситуации прямо на старте.
Как это выглядит в коде (проблема)
Вот пример кода, где возникает ошибка. Переменная iState не имеет начального значения, поэтому при запуске ПЛК она равна 0. Если в логике CASE состояние 0 — это активный процесс «Запуск двигателя», автомат сразу перейдёт туда.
// ОПАСНО: переменная iState не инициализирована!
// При старте ПЛК её значение = 0
VAR
iState : INT;
bStartButton : BOOL;
bStopButton : BOOL;
END_VAR
CASE iState OF
0: // Запуск двигателя — ОПАСНО! Автомат сразу сюда попадает
IF bStartButton THEN
StartMotor();
iState := 1; // Переход к работе
END_IF;
1: // Рабочий режим
RunProcess();
IF bStopButton THEN
iState := 0;
END_IF;
END_CASE;
Как исправить (решение)
Чтобы автомат всегда стартовал безопасно, задайте начальное значение вручную. В примере ниже iState сразу равна 10 (режим «Ожидание»), что исключает случайный старт в активную фазу.
// БЕЗОПАСНО: инициализация при объявлении
VAR
iState : INT := 10; // Явно задаём безопасное стартовое значение
bStartButton : BOOL;
bStopButton : BOOL;
END_VAR
CASE iState OF
10: // Ожидание (Idle) — безопасный старт
IF bStartButton THEN
iState := 0; // Переход к запуску только по кнопке
END_IF;
0: // Запуск двигателя
StartMotor();
iState := 1;
1: // Рабочий режим
RunProcess();
IF bStopButton THEN
iState := 10;
END_IF;
END_CASE;
Альтернативный способ: ENUM
Использование перечисления (ENUM) делает код ещё чище и надёжнее, так как неинициализированная переменная по умолчанию равна первому элементу списка. Если первым указать Idle, ошибка устраняется автоматически.
TYPE eStates : (
Idle, // 0 — безопасный старт (по умолчанию)
Starting, // 1
Running // 2
);
END_TYPE
VAR
eCurrentState : eStates; // По умолчанию = Idle
bStartButton : BOOL;
bStopButton : BOOL;
END_VAR
CASE eCurrentState OF
Idle:
IF bStartButton THEN
eCurrentState := Starting;
END_IF;
Starting:
StartMotor();
eCurrentState := Running;
Running:
RunProcess();
IF bStopButton THEN
eCurrentState := Idle;
END_IF;
END_CASE;
Внимательное отношение к стартовым значениям переменных избавит вас от множества проблем на пусконаладке и сделает код гораздо более предсказуемым. Всегда задавайте начальное состояние: при объявлении (:= ...), через First Scan-бит или с помощью ENUM.
Другие примеры смотрите здесь:
https://t.me/tribute/app?startapp=sL0M
Бывало ли у вас такое: вы загружаете программу в ПЛК, переводите его в режим RUN, и ваш конечный автомат внезапно начинает делать совсем не то, что нужно? Вместо спокойного ожидания команды он сразу запускает двигатели, открывает клапаны или уходит в аварию. Чаще всего причина кроется в одной банальной, но очень распространённой ошибке.
Ошибка: забытая инициализация
Главная причина такого непредсказуемого поведения — отсутствие начальной инициализации переменной состояния. В языке Structured Text (ST) конечные автоматы обычно реализуются через конструкцию CASE, которая опирается на целочисленную переменную (INT) или перечисление (ENUM). Если при объявлении этой переменной вы не задали ей конкретное стартовое значение, ПЛК автоматически присвоит ей ноль при запуске.
Если в вашей логике нулевое состояние отвечает за активный рабочий процесс, а не за безопасный режим ожидания, автомат немедленно перейдёт в эту фазу. В результате система пропускает важные этапы самодиагностики или ожидания, что может привести к поломке оборудования или созданию аварийной ситуации прямо на старте.
Как это выглядит в коде (проблема)
Вот пример кода, где возникает ошибка. Переменная iState не имеет начального значения, поэтому при запуске ПЛК она равна 0. Если в логике CASE состояние 0 — это активный процесс «Запуск двигателя», автомат сразу перейдёт туда.
// ОПАСНО: переменная iState не инициализирована!
// При старте ПЛК её значение = 0
VAR
iState : INT;
bStartButton : BOOL;
bStopButton : BOOL;
END_VAR
CASE iState OF
0: // Запуск двигателя — ОПАСНО! Автомат сразу сюда попадает
IF bStartButton THEN
StartMotor();
iState := 1; // Переход к работе
END_IF;
1: // Рабочий режим
RunProcess();
IF bStopButton THEN
iState := 0;
END_IF;
END_CASE;
Как исправить (решение)
Чтобы автомат всегда стартовал безопасно, задайте начальное значение вручную. В примере ниже iState сразу равна 10 (режим «Ожидание»), что исключает случайный старт в активную фазу.
// БЕЗОПАСНО: инициализация при объявлении
VAR
iState : INT := 10; // Явно задаём безопасное стартовое значение
bStartButton : BOOL;
bStopButton : BOOL;
END_VAR
CASE iState OF
10: // Ожидание (Idle) — безопасный старт
IF bStartButton THEN
iState := 0; // Переход к запуску только по кнопке
END_IF;
0: // Запуск двигателя
StartMotor();
iState := 1;
1: // Рабочий режим
RunProcess();
IF bStopButton THEN
iState := 10;
END_IF;
END_CASE;
Альтернативный способ: ENUM
Использование перечисления (ENUM) делает код ещё чище и надёжнее, так как неинициализированная переменная по умолчанию равна первому элементу списка. Если первым указать Idle, ошибка устраняется автоматически.
TYPE eStates : (
Idle, // 0 — безопасный старт (по умолчанию)
Starting, // 1
Running // 2
);
END_TYPE
VAR
eCurrentState : eStates; // По умолчанию = Idle
bStartButton : BOOL;
bStopButton : BOOL;
END_VAR
CASE eCurrentState OF
Idle:
IF bStartButton THEN
eCurrentState := Starting;
END_IF;
Starting:
StartMotor();
eCurrentState := Running;
Running:
RunProcess();
IF bStopButton THEN
eCurrentState := Idle;
END_IF;
END_CASE;
Внимательное отношение к стартовым значениям переменных избавит вас от множества проблем на пусконаладке и сделает код гораздо более предсказуемым. Всегда задавайте начальное состояние: при объявлении (:= ...), через First Scan-бит или с помощью ENUM.
Другие примеры смотрите здесь:
https://t.me/tribute/app?startapp=sL0M
Telegram
Tribute
This bot helps content creators receive financial support from their followers directly in the app.
❤1👍1🔥1🥰1
📌 Что нужно знать, чтобы стать инженером по автоматизации с нуля?
Смотрите на вакансии инженеров АСУ ТП и думаете: «С чего вообще начать?»
Кажется, что нужно иметь за плечами 5 лет сурового технического вуза. На деле фундамент профессии состоит из 4 понятных блоков. Забирайте чек-лист базовых навыков:
1. Основы физики и электротехники ⚡️
Вам не придется рассчитывать орбиты планет. Достаточно понимать, что такое ток, напряжение и сопротивление, как читать простые электрические схемы и как работают базовые датчики (температуры, давления, уровня жидкости) и реле.
2. Программируемые логические контроллеры (ПЛК) 🧠
Это промышленные микрокомпьютеры — «мозги» любого станка или конвейера. Важно освоить промышленные языки программирования стандарта IEC 61131-3. Самые популярные — LD (похож на электрические схемы) и ST (похож на классический язык Pascal).
3. SCADA-системы 🖥
Это тот самый красивый интерфейс на экране оператора. Вы должны уметь визуализировать процесс: нарисовать резервуар, привязать к нему датчик уровня воды, настроить тревожные уведомления (алармы) и графики.
4. Промышленные сети 🌐
Оборудование должно общаться между собой и передавать данные в диспетчерскую. Базовый минимум — понимание архитектуры сетей и самого народного протокола Modbus (а также основ Ethernet/IP).
🤯 Звучит сложно?
Если собирать информацию по крупицам из старых учебников и форумов — да, можно потратить годы.
Но освоить эту базу и выйти на уровень Junior можно всего за 1 год, если учиться системно. В Нетологии сейчас идет набор на курс «Инженер по автоматизации».
Там дают всю эту выжимку без лишней воды:
✅ Обучение с полного нуля
✅ Практика: от написания кода для ПЛК до настройки SCADA
✅ 4 готовых проекта в ваше портфолио
✅ Диплом о переподготовке и помощь с поиском работы
👉 Забирайте программу курса и скидку по этой ссылке:
https://electricalschool.info/automation-engineer.php
Пока одни боятся, что ИИ их заменит, другие осваивают профессию, где без человека всё просто встанет.
Реклама. ООО «Нетология». ИНН 7726464125 ERID: 2bL9aMPo2e4BA5qnNG9pz4mR2f
Смотрите на вакансии инженеров АСУ ТП и думаете: «С чего вообще начать?»
Кажется, что нужно иметь за плечами 5 лет сурового технического вуза. На деле фундамент профессии состоит из 4 понятных блоков. Забирайте чек-лист базовых навыков:
1. Основы физики и электротехники ⚡️
Вам не придется рассчитывать орбиты планет. Достаточно понимать, что такое ток, напряжение и сопротивление, как читать простые электрические схемы и как работают базовые датчики (температуры, давления, уровня жидкости) и реле.
2. Программируемые логические контроллеры (ПЛК) 🧠
Это промышленные микрокомпьютеры — «мозги» любого станка или конвейера. Важно освоить промышленные языки программирования стандарта IEC 61131-3. Самые популярные — LD (похож на электрические схемы) и ST (похож на классический язык Pascal).
3. SCADA-системы 🖥
Это тот самый красивый интерфейс на экране оператора. Вы должны уметь визуализировать процесс: нарисовать резервуар, привязать к нему датчик уровня воды, настроить тревожные уведомления (алармы) и графики.
4. Промышленные сети 🌐
Оборудование должно общаться между собой и передавать данные в диспетчерскую. Базовый минимум — понимание архитектуры сетей и самого народного протокола Modbus (а также основ Ethernet/IP).
🤯 Звучит сложно?
Если собирать информацию по крупицам из старых учебников и форумов — да, можно потратить годы.
Но освоить эту базу и выйти на уровень Junior можно всего за 1 год, если учиться системно. В Нетологии сейчас идет набор на курс «Инженер по автоматизации».
Там дают всю эту выжимку без лишней воды:
✅ Обучение с полного нуля
✅ Практика: от написания кода для ПЛК до настройки SCADA
✅ 4 готовых проекта в ваше портфолио
✅ Диплом о переподготовке и помощь с поиском работы
👉 Забирайте программу курса и скидку по этой ссылке:
https://electricalschool.info/automation-engineer.php
Пока одни боятся, что ИИ их заменит, другие осваивают профессию, где без человека всё просто встанет.
Реклама. ООО «Нетология». ИНН 7726464125 ERID: 2bL9aMPo2e4BA5qnNG9pz4mR2f
❤2🔥2👍1👏1