обучение по программированию плк siemens simatic s7 300 simatic s7 400

Программирование ПЛК Siemens на Simatic Step7

Добрый день, хабровчане! Полазив по Хабру, мною было обнаружено всего несколько топиков, в котором упоминалось бы словосочетание «Simatic Step 7». Хочу поделиться с Вами небольшой частью информации, накопленной мною за все время работы с программируемыми логическими контроллерами, и показать, что из себя представляют ПЛК, оболочка и что мне приходилось на них строить.

Данный пост содержит общую ознакомительную информацию о программировании ПЛК Siemens.

Введение

Устроилась я в эту фирму еще на 5м курсе института. К слову, образование мое к программированию относится весьма косвенно и было это больше увлечением. Познания мои на тот момент ограничивались курсом Delphi и весьма базовым Ассемблером. Компания занималась (да и занимается) проектированием, строительством и обслуживанием грузоподъемных машин, таких как погрузчики, портальные, козловые, мостовые и прочие краны. К ГП машинам мое образование имело еще меньше отношения. Поэтому я решила попробовать. 🙂

Программируемые логические контроллеры Siemens

ПЛК фирмы Siemens — это промышленные контроллеры и используются для автоматизации технологических процессов. У нас, в частности, использовались для автоматизации работы грузоподъемных машин.

Simatic включает в себя несколько линеек ПЛК — Simatic S5 и Simatic S7. В свою очередь линейка Simatic S7 содержит семейства S7-200, S7-300, S7-400 и S7-1200.

Чаще всего мы использовали ПЛК семейств S7-300 и S7-400, для которых компанией Siemens было разработано собственное программное обеспечение Simatic Step 7.

Кроме этого, к ПЛК через сеть Profibus подключалось большое количество ведомых устройств, таких как частотные преобразователи, приводы, абсолютные/инкрементные энкодеры и пр.

Вся работа ГП машины по максимуму автоматизировалась и крановщику нужно применять минимум усилий для управления оной.

Что из себя представляет Simatic Step 7?

Главной утилитой является Step 7 — Simatic Manager, которая позволяет производить конфигурацию ПЛК и сетей (утилиты HWConfig и NetPro).

В процессе конфигурации определяется состав оборудования, способы подключения, используемые сети, адреса, выбираются настройки для используемых модулей. Готовая конфигурация загружается в ПЛК, что так же является настройкой оборудования.

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

ПЛК выполняет команды в порядке, определяемом программой, сверху вниз, затем начинает сначала.
С помощью редактора STL всегда можно посмотреть или отредактировать программы, созданные на LAD или FBD, обратное не всегда возможно.

Я работала с самого начала в STL, пробовала LAD, мне показался слишком непонятным и многие вещи таки не удавалась так просто в нем сделать, как в STL. Плюс еще в том, что при загрузке программы в ПЛК, она компилируется в STL и, соответственно, при выкачке ее из ПЛК на программатор она так же представлена в STL.

Вместо заключения

Программирование ПЛК занятие увлекательное, особенно когда это не стенд, а реальное оборудование.
Моя работа заключалась в создании программы на ПЛК для управления всей ГП машины либо отдельных ее частей, а так же загрузке программного обеспечения непосредственно в оборудование и его отладке.
Случалось разное, но работать с железом было очень интересно, хоть и не легко иногда.
А строили мы вот такие ГП машины:

Источник

Программирование ПЛК для начинающих: миксер на Siemens S7-300 и STEP 7

В этом уроке мы узнаем, как написать программу ПЛК, используя Siemens S7-300 и программное обеспечение «STEP 7».

У нас есть два насоса, которые используются для перекачки двух отдельных жидкостей в резервуар. Внутри резервуара внизу и вверху установлены два датчика уровня.

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

Когда уровень жидкости падает до уровня нижнего датчика уровня, контакт замыкается и посылает сигнал 24 В постоянного тока на вход ПЛК.

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

Насосы продолжают наполнять резервуар до тех пор, пока уровень не достигнет максимума на датичке верхнего уровня. Если это произойдет, разомкнутые контакты (NO) в переключателе закроются (NC), и еще один сигнал 24 В постоянного тока будет отправлен на вход ПЛК, информируя нас о том, что резервуар полон. После отправки этого сигнала необходимо сначала выключить насосы, чтобы жидкость не попала в резервуар, а затем этот смеситель должен быть включен.

Мы хотим, чтобы миксер проработал семь секунд и смешал жидкости, которые были закачаны в резервуар. Через семь секунд смеситель должен автоматически выключиться, а сливной клапан должен открыться. При открытом клапане жидкость будет сливаться из резервуара и перемещаться в другое место на предприятии по переработке.

Когда уровень жидкости в резервуаре падает до минимально установленного уровня нижнего переключателя, контакты переключателя снова замыкаются, начиная повторение цикла.

Желаем приятного просмотра.

Любите умные гаджеты и DIY? Станьте специалистом в сфере Internet of Things и создайте сеть умных гаджетов!

Записывайтесь в онлайн-университет от GeekBrains:

Изучить C, механизмы отладки и программирования микроконтроллеров;

Получить опыт работы с реальными проектами, в команде и самостоятельно;

Получить удостоверение и сертификат, подтверждающие полученные знания.

Starter box для первых экспериментов в подарок!

После прохождения курса в вашем портфолио будет: метостанция с функцией часов и встроенной игрой, распределенная сеть устройств, устройства регулирования температуры (ПИД-регулятор), устройство контроля влажности воздуха, система умного полива растений, устройство контроля протечки воды.

Вы получите диплом о профессиональной переподготовке и электронный сертификат, которые можно добавить в портфолио и показать работодателю.

Источник

Как и обещал, программирование промышленных контроллеров Siemens

Siemens занимает 37 процентов мирового рынка автоматизации. Сегодня существует контроллеры 300, 400, 1200, 1500 серии. 300 и 400 серии проверенные, устаревшие, надежные, контроллеры. Уже несколько лет, представители Siemens утверждают что эти серии перестанут выпускать- однако, они выпускаются и еще долго будут выпускаться(мое мнение)

Сегодня будем разбирать программирование 300 и 400 серий. Выглядят оно как на картинке сверху. Заранее оговорюсь, 300 и 400 серии программируются в среде Simatic Step 7, а 1200 и 1500 программируются в TIAPortal.(По пожеланию, кому интересно, могу сделать пост по TIA)

Непосредственно к самому программированию. Для начала нужно сконфигурировать Hardware. Что это такое? Допустим Вам требуется что то автоматизировать, и в зависимости от поставленных задач, выбираете контроллер под определенные задачи из определенной серии. У нас в примере выбран S7 315 2-DP. Иначе говоря мы говорим среде что мы будем писать программу для вот именно такого контроллера к которому по ProfiBus’у подключена децентрализованная периферия(кому нужно, могу подробно сделать отдельный пост). На картинке выше показано что у нас 315 2-DP и к нему подключено 5 корзин и в выделенной корзине, установлены модули 3 Analog Input, 2 Digital Output, 1 Analog Output, 1 CP 341(для подключения к какому устройству по RS485)

На второй картинке в папке Bloks находятся куча блоков. Существуют основные блоки OB, FB, FC, DB, DT, VT которые вы можете создать.

Даже не знаю как проще обьяснить(привет из лиги лени). Оооооочень грубо говоря, в ОВ1 построчно будет обрабатываться ваша программа. Существует ОВ1,ОВ10-17, ОВ20-23, ОВ30-38, ОВ40-47, ОВ55-57, ОВ60(Если кому надо, напишу отдельно подробно)

FB(функциональный блок)-для удобства, вы можете написать программу в функциональном блоке и вызвать его в OB1. Попробую проще обьяснить- у Вас стоит задача управления 4 одинаковыми насосами. Чтоб 4 раза не писать программу управления для каждого, просто пишите программу управления в функциональном блоке и 4 раза вызываете в OB1 и привязываете соответствующие входы и выходы.

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

На картинке мой OB1, как вы видите, я вызываю функциональные блоки- привязываю входные ножки и указываю DB. Это сделано на языке программирования FBD(об этом позже)

Так выглядит мой функциональный блок- язык FBD

Наконец-то добрались к языкам программирования. STL, FBD, LAD- их 3

STL- это язык программирования Список операторов. Мне кажется этот язык больше похож на Ассамблер.

LAD- язык программирования для «электриков», релейные схемы(графический язык)

FBD- язык программирования для «электронщиков» блочные схемы(графический язык)

Тоже самое, только в LAD

То же самое, на FBD

Выделим основные моменты:

2) Для удобства- нужно заполнить таблицу символов(блин,вспомнил в конце поста)

Смотрите, допустим у Вас 2 насоса, которыми нужно управлять. Вы создали 2 корзины в HW, поставили модуль Analog Input(допустим для контроля вибрации в подшипниках). Когда вы в HW ставите модуль- он автоматически прописывает адреса входов(3 картина). в моем примере 448. 463. И в папке S7 Program. в следующем фото

в этой папке есть таблица символов. Открываем его.

3) Выбираете удобный для Вас язык программирования и начинаете работать

Понимаю, что все ооочень поверхностно, ну как смог.

Хуясе ты сжал. Я в шоке. Ты бы ещё про винсс лад стл граф ват таблицы и прочее в этом посте рассказал и прочее. Надо же последовательно.

эй, харэ юных конкурентов учить, мне до пенсии ещё лет 20 надо доработать.

Хотим пошаговую инструкцию написания программы, но не так как в учебниках расписано. То есть если накатал 10 строчный текст, то пожалуйста разъясните зачем каждая команда нужна. Хотелось бы еще связку с HMI.

Можно было написать где они и как применяются!

О таблице символов сказано настолько вскользь, будто о ней и думать нечего. А по факту ты хрен какую написанную прогу без этой таблицы толком не прочитаешь. Потому как она (раньше, в всяком случае) нигде не резервируется автоматически.

Недавно вот стенд собрал

делай еще. даешь тиа портал.

Да, интересно. Предлагаю следующий пост посвятить книге Бергера и незалсуженно забытому вами тут SCL.

А форум есть какой-нибудь по этому делу?

Как заменить ионистор в 300С?

У нас все станки(фрезера, расточные, порталы и т.д.) на 300 и 400 контролерах, используется только STL.

Всем привет. Я хотел сконектить leuse dcr 248i и s7 1200 по profinet, но не могу найти подходящую инфу. Может кто посоветовать?

Предлагали как-то работу программистом АСУТП. Я заочковал и не пошел. Считаю, что не хватит квалификации, да и образования толкового нет.

скажите, а бош рексрот в европе пытается потеснить сименс. у нас есть продвижение их?

меня лично интересуют наборы логики для чпу фрезеров (запланировал литье 10шт).

но китайские наборы под нс студио или мак3 ограничивают.

может есть что то поинтереснее китая, но подешевле европы?

@Positive882, а можно ли считать программу с контроллера в читаемом виде(заливается я так понимаю они уже скомпилированные)? И при помощи каких инструментов это можно сделать?

А что за баг был в сименсовских плк, какая-то серия свежее 300 неправильно отрабатывала какой-то блок в программе, толи рulse_n, толи pulse_p, как они там правильно называются, кароч сработка по переднему или заднему фронту.

Такая компания, такие матерые плк и такая нелепая ошибка.

почему PIW а не IW?

Как инженер-электроник могу сказать, что непонятно ровным счётом ничего.

все равно если не знаешь ни одного языка програмирования, шансов освоить нет

Блять. выходной и тут сименсовсккая автоматизация. нуебанарот ((( но чувак, я тебя запомнил 😉

400е устаревшие?))))))нуну PCS7 нервно хихикает в сторонке:)

Мда. Беда в том, что я наверное хреново гуглил и так и не понял, зачем вообще нужны эти контроллеры.

Нет, видел статью на хабре, где одна девушка на них кранЫ подъёмные программировала. Да, звучит вроде круто. Но что же они из себя, по сути, представляют?

Нечто вроде надёжных, высоковольтных, высокоамперных, тепловибровлагозащищённых ардуин с кучей-кучей портов ввода-вывода, предназначенных для (не)дешёвого, старого оборудования вроде мощных трёхфазных моторов и ржавых ртутных светильников?

Ну хоть бы пару примеров, где и в чём оно лучше всего подходит.

*кстати, автозапуск своей гранты я как-то писал частично на JS (клиентская часть). Не скажу, что сильно понравилось, но выглядело занятно.

Ответ Илона Маска OOH

Текст новости от CNN: «2% состояния Илона Маска могут решить проблему с голодом в мире, сказал директор Программы ООН по нехватке продовольствия.»

Ответ Илона Маска: «Если WFP(Всемирная продовольственная программа) сможет описать в этой ветке в Твиттере, как именно 6 миллиардов долларов решат проблему голода в мире, то я прямо сейчас продам акции Тесла и сделаю это.»

«Но информация должна быть в открытом доступе, чтобы общественность точно видела, как и на что тратятся эти деньги.»

Я- подростковый психолог

Мужская солидарность

Из сети

Обидная история

Когда мне было лет 9, мой старший брат

переименовал контакт «мама» в моем телефоне на «президент». Как я удивился, осознав, кто мне звонит. Когда мне позвонили, я еле вымолвил «да, дядя президент, алё». Как же я потом разочаровался.

Заметки с моей работы

После Хэллоуина

Разрядил

Ответ военной прокуратуры на цыганскую свадьбу в Исаакии

Как и обещал всем подписавшимся, публикую ответ военной прокуратуры Санкт-Петербургского гарнизона о воинском позоре, случившимся в Исаакиевском соборе 01.10.2021 года.

Отойдя от такого фиаско, я написал в военную прокуратуру города и попросил проверить, правомерность такого деяния. Как никак, это регулярная армия, а не подразделение ряженных казаков. И вот что мне ответили:

Разумеется, я напишу в другую прокуратуру. Меня, как кадрового офицера из офицерской династии до глубины души возмутил такой блядский цирк с графьями. Хотя подождите! Судя по ответу военной прокуратуры Санкт-Петербургского гарнизона, приказ отправить подразделение из Преображенского полка, отдал командующий Западного Военного округа. Сейчас это генерал-полковник Журавлев А.А.

Вот фото этого офицера, в прошлом комсомольца и коммуниста, окончившего знаменитое Челябинское танковое училище в 1986 году.

Ну ка, погуглим, чем награжден? Оп па! Среди так называемых в офицерской среде «песочных» наград и уважаемых орденов, судя по данным рувикипедии, есть и орден Святителя Николая Чудотворца. https://ru.wikipedia.org/wiki/Журавлёв,_Александр_Александро.

Сей чудный орден, предоставляет потомственное дворянство. Следовательно генерал-полковник Журавлев А.А. еще и «дворянин». Один дворянин помог другому пафоснуть, дело то житейское.

З.Ы. Составляю запрос в военную прокуратуру Западного Военного округа. Поскольку мои знания в этой сфере начального уровня, прошу пикабушников, образованных в этой сфере, составить грамотный запрос. Тут и нарушения формы одежды и офицерские сабли у рядового состава и не предусмотренные Уставом команды.

Опять не готовы

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

Помогите мне пожалуйста

Стыдно просить о помощи да и писать красивые тексты я особо не умею. В семье тяжёлое финансовое положение и ещё и ипотека. На работе в родном городе срезали сильно зарплату и я решил поехать вахтами на работу. Я раньше работал вахтами и не ожидал что сейчас очень много кидалова.
вроде читаешь вакансии всё красиво и хорошо а по факту кидалово. Вот устроился на фирму приехал в Нижний Новгород выхожу на объект а там люди ещё зарплату за сентябрь не получали. А некоторые и за август.
При устройстве на работу я специально уточнял что у меня ипотека и я не могу с задержками получать зарплату. Но мне просто врали в глаза.
Поэтому я прошу вас о помощи может кто-нибудь помочь с работой на вахте
я сварщик 5 разряда режу газом и варю немного аргоном ( накса у меня нет) (последнее место работы водоканал сварщик 2 года)
а так буду делать всё что потребуется и поеду куда угодномне 32 года я не бухаю не имею проблем со здоровьем. Я отблагодарю чем смогу просто я боюсь что мой семейный бюджет не переживёт ещё одного кидалова.Помогите мне пожалуйста. ((((

Почему все обязаны гордиться полетом Юлии Пересильд на МКС

Только вместо этого мне дают повторение полета Белки со Стрелкой. И у собак, и у Юли с ее оператором задачи были одинаковые: не обоcpaться и лаять, если что-то пойдет не так. И тех, и других возили в космос умные дяди. Но вот только Белка со Стрелкой были первыми и рисковали: их предшественники Чайка с Лисичкой погибли в результате падения и взрыва ракеты. А Юля летала по отработанной сотни раз схеме на надежнейшей ракете и была даже не пятисотой.

Источник

Укрощение строптивого или Reverse Engineering французского паллетайзера на Simatic S7-300

Как возникла задача и общее её описание

Однажды обратился ко мне директор местного производства одного всемирного производителя напитков. Так случилось, что он в течение года добивался от штатных экспертов выполнения ряда задач, но профессионалы с опытом убеждали менеджера, что выполнение данных задач невозможно в принципе. В целом задача была предельно понятна: поменять шаблон укладки кейсов в паллетайзере, чтобы повысить прочность «конструкции».

Внезапно: Исходников программного обеспечения и электрической документации нет уже лет 5.

Одним рядом заходят ориентированные кейсы с продукцией и фиксируются оптическим дачиком

Каждый из кейсов на входе может быть повёрнут на 90° лопаткой разворачивателя

Каждый из кейсов может быть остановлен ограничителем: всего ограничителей 6шт. в различных положениях.

После формирования ряда срабатывает толкатель, который сдвигает этот ряд на площадку формирования слоя

Повторяем набор необходимых рядов до момента, пока не сформируется слой

Cлой сдвигается толкателем на «лифт», переносящий его на паллет

Повторяем формирование слоёв в заданном количестве. Слой может быть чётным и нечётным, с разной раскладкой.

Упрощенная схема работы паллетайзера, вид сверху

В сухом остатке:

Паллет, состоящий из 4-5 слоев

Слой, состоящий из 3-4 рядов

Ряд, состоящий из 1-6 кейсов, каждый из которых может быть повёрнут или остановлен ограничителем

Соответственно, предположил, что где то в коде ПЛК должен быть счётчик кейсов, регистр сдвига и «шаблон укладки»(та самая матрица), которые мне предстояло найти.

Ищем волшебный «шаблон»

Я прекрасно отдаю себе отчёт в том, что данную задачу смогут выполнить многие из читающих, но для конечных пользователей это оказалось действительно чудом, которое они ждали год и платили людям за это зарплату(вполне хорошую по меркам региона)

На момент начала работ я знаю следующее:

Системой управляет ПЛК SImatic S7-300

По машине раскидано 6 Profibus-DP модулей распределённого ввода-вывода IM151 разных конфигураций а также 13 частотников Danfoss работающих в той же шине.

На большинстве кабелей сохранилась маркировка, что позволяет мне отследить куда они идут

Есть backup программы ПЛК(разумеется без комментариев, алиасов и тд)

Машина постоянно в работе, поэтому её нельзя остановить и поиграться с датчиками и исполнительными устройствами

Существует 7 рецептов формирования паллет под разные продукты(выбираются с экрана)

Сначала я допустил, что ограничители мы не используем(отключили) и ориентировался только на разворот кейсов. Повторюсь, я предположил, что есть некая «матрица»(читай: блок данных в энергонезависимой памяти)в которой хранятся нули и единицы, управляющие лопаткой, разворачивающей кейсы. С этой лопатки поиск и начнём.

Быстрая пробежка по маркировке от соленоида лопатки по кабелям привела меня к одной из планок IM151, с выхода которой данная лопатка и активировалась, а конкретно с выхода №0 модуля дискретных выходов 1595U0(см. фото ниже). Данный модуль имеет настроенный сетевой адрес #55, настроенный DIP-переключателями.

Собственно, кабель соленоида и модуль

Определив физическое соединение, мы идём в HW Config и ищем адрес нашего выхода, который и станет отправной точкой для разбора кода.

Там мы видим, что это выход Q15.0. С этим огромным успехом мы идём в таблицу ссылок Reference Data, где и смотрим по каким же условиям срабатывает данный выход.

Первые условия были весьма простые, включаем Q15.0 если активно M185.0, а M185.0 включаем если активно M59.6:

И тут мы попадаем на активацию метки M59.6. На первый взгляд это несколько запутанно, но всё на самом деле довольно просто

Активация метки M59.6

Смотрим Network 3. Метка 59.6 активируется в тот момент, когда слово данных DB2.DBW80 достигает значения 240

DB2.DBW80 записывается в Network 1 и происходит это по правилам условного перехода:

Если активно M59.2 и не активно M59.6, то в каждом такте увеличиваем значение DB2.DBW80 на значение MW500

Иначе, если активно M59.6, то пишем в DB2.DBW80 значение 0(сбрасываем)

Если M59.6 неактивно И М59.2 активно в течение 240мс(суть таймер TON по 2-м условиям), включаем M59.6

Последним неизвестным остаётся М59.2, которая активируется в Network 2. Поскольку здесь условий несколько, то я поступил весьма просто: посмотрел в онлайн, какие метки горят постоянно, а какая мигает при прохождении нового кейса и увидел, что за срабатывание лопатки отвечает M70.3

Таблица ссылок для М70.3

Но это не значит, что в программе ошибка, а значит только лишь что данная метка записывается в составе целого слова, нажимаем на данную метку в таблице ссылок ПКМ и выбираем Cross-References for Address и видим это самое слово

Слово данных MW69, включающее в себя метку М70.3

Проваливаемся по адресу записи этого слова и находим то самое, что тешит моё самолюбие что и предполагалось. Функцию сдвига, счётчик и ссылку на «шаблон».

А теперь по порядку:

В качестве счётчика прошедших кейсов используется C6, значение которого мы пишем в MW150 и, сдвинув на 4 бита влево переписываем в MD150.

Пример: имея в счетчике C6 значение 0005h, мы сдвигаем его на 4 бита и получаем 0050h, что соответствует указателю +5.0 на double word

Ну, и, в конце концов, мы загружаем значение double word c текущим указателем, соответствующим счётчику MW150 в word слова MW69 и MW70, откуда в конце концов и активируется так нужный нам бит M70.3

Как формируется матрица укладки

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

Матрица шаблона укладки в памяти ПЛК и реальная раскладка кейсов в машине

Собственно, слово +0.0 мы не учитываем, потому что счётчик при первом прохождении кейса уже >0. Разбираем шаблон сравнивая с реальной укладкой и обращаем внимание на следующие закономерности:

Разворачивается кейс битом 3 младшего слова данных(M70.3)

Конец каждого ряда обозначается битом 0 младшего слова данных(M70.0)

Конец каждого слоя обозначается битом 1 младшего слова данных(M70.1)

Конец всего шаблона обозначается битом 5 младшего слова данных(M70.5)

Комбинируя данные биты мы получаем нужные слова для записи в шаблон, например:

В общем и целом, задача была решена и теперь я точно знал как изменить шаблон укладки, но потом пришел заказчик.

Мы подумали, и у нас тут маленькие изменения.

Чисто технически, они ничего не меняли, но необходимый шаблон выглядел так:

Новый тимплейт укладки кейсов

Самые внимательные читатели однозначно заметили тот факт, что в ряде #2 обоих слоёв всего 3 кейса и между ними пространство, которое должно быть выдержано для того, чтобы туда вошел кейс #2(11).

И тут я возвращаюсь к своему сферическому коню в вакууме, который способен искажать пространственно-временной континуум работать без ограничителей. Ведь как вы помните:

Сначала я допустил, что ограничители мы не используем(отключили) и ориентировался только на разворот кейсов.

В принципе, есть полная ясность о том, как это работает, осталось только найти где это записано. Как говорится, у нас был какой-то план и мы его придерживались. Ищем матрицу, которая отвечает за работу ограничителей.

Я опущу все повторяемые действия с обратным поиском от физических выходов к меткам, и лишь скажу, что за работу ограничителей на выходах Q15.1-Q15.7 отвечают биты слова MW68, по аналогии с тем как работает лопатка разворота. Ну и записан шаблон для срабатывания ограничителей в том же DB, начиная с указателя +200.0 и далее.

Шаблон срабатывания ограничителей

Здесь логика оказалась куда проще:

Я определился с тем что в новой раскладке мне необходимо выставлять ограничитель 3 перед кейсом 6 в нечетном слое и ограничитель 5 перед кейсом 8 в чётном.

Итоги

Составлено две матрицы следующего содержания:

Новый шаблон укладки, включая ограничители

И программа заменена прямо в процессе работы после окончания предыдущего паллета:

Результат укладки паллета

В результате изменений, конструкция стала устойчивой, а паллет стал формироваться быстрее и ровнее. Линия стала работать на 4% продуктивнее, что для такого производства хорошее изменение.

Буду рад услышать ваши комментарии, истории разбора чужих программ или конструктивную критику.

Источник

Читайте также:  что находится в черном ящике в мекке
Образовательный портал