Siemens PLC программирование лучшие практики

Мой вопрос довольно прост. Есть ли какое-нибудь полезное место для обучения работе с ПЛК Siemens?

4 ответа

Полное раскрытие:

  1. Я работал инженером-программистом в Rockwell Automation, работая с их ПЛК A|B
  2. Вам, вероятно, не понравится мой ответ

Проще говоря, программирование ПЛК независимо от того, используете ли вы лестничную логику, структурный текст, список инструкций, последовательную блок-схему, FBD или непрерывную блок-схему, не то же самое, что программное обеспечение для программирования на таких языках, как C++, Java, JavaScript и т. Д...

Проще говоря, нет ни одного набора "лучших практик", который бы подходил для каждого варианта использования. Причина этого в том, что в отличие от вашей стандартной разработки программного обеспечения, вы можете применять принципы, подобные принципам SOLID, чтобы всегда было легче читать, поддерживать и расширять ваш код. Программы ПЛК связаны с очень реальным физическим процессом и физическим механизмом. Зачастую в отрасли обнаруживается, что каждый завод / производитель / объект устанавливает свой собственный набор лучших практик с учетом потребностей и процессов своего оборудования.

Чтобы привести пример:

Сценарий 1: Логика, используемая для запуска процесса дистилляции для небольшой местной пивоварни, может включать подпрограммы или даже цикл. Они могут разрешить 5 или менее предупреждений в своем коде и разрешить использование нескольких неиспользуемых тегов. Это совершенно нормально, потому что они делают пиво, процесс не критичен, плохая партия никого не убьет, и у них есть только 2 насоса, которые используют логику для перебора. Так что, если есть проблема, требующая устранения проблемы, логика в подпрограммах или цикле не будет слишком большой головной болью.

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

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

И не теряйте ни одно из этих ограничений при программировании вашего ПЛК:

  • Программирование ПЛК - программирование очень низкого уровня
  • размер памяти имеет значение, каждый байт должен быть важен
  • логика должна быть краткой и как можно более короткой: иногда нужно быть хорошим в математике!
  • машина, на которой вы работаете, опасна и может спровоцировать повреждение продукта, оборудования или человека
  • машина, над которой вы работаете, стоит дорого и рассчитана на годы

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

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

И более того: не забывайте первое правило промышленной автоматизации: если оно работает правильно, не трогайте его!

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

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

Что касается некоторых практик:

  • Если вы модифицируете существующий код. Всегда используйте существующий стиль, существующие функции и блоки.
  • Не используйте шаблоны программирования из обычного мира ИТ в коде с низким ПЛК. Или используйте с осторожностью. Причиной этого является то, что ваш код, вероятно, должен жить годами и быть отлаживаемым. Шаблоны обычно добавляют слои сложности, сложность приводит к более сложной отладке. В мире автоматизации обычно лучше отлаживать то, что ближе к оборудованию.
  • Если вы начинаете делать проект, где у вас есть десятки или сотни датчиков / двигателей / исполнительных механизмов, начните использовать блоки многократного использования.
  • Все лучшие практики изучаются на местах, к сожалению, нет другого пути. Я знаю, что это иногда ловушка22. Нужна работа, чтобы получить опыт, нужен опыт, чтобы получить работу. Я вошел в мир автоматизации, а затем и в мир ИТ точно так же: найди работу и младшего специалиста, работника по техобслуживанию или младшего ИТ-разработчика, собери опыт, через год-два ты будешь на среднем уровне.
  • Udemy - там есть несколько курсов, хотя я сам не пробовал их.
  • Я посмотрел много полезных видео на YouTube.
  • http://www.plcdev.com/siemens_simatic_step_7_programmers_handbook - довольно старая, но может быть полезной.
  • Форумы Siemens, официальные руководства, руководства. Там много информации, качество иногда меняется, но в основном хорошее.

Кстати, хорошая вещь о Siemens в том, что вы часто можете искать вещи, просто выполняя поиск в Интернете. Это не относится к некоторым другим ПЛК...

Удачи!

Другие вопросы по тегам