600007 г. Владимир, ул. 16 лет Октября, д. 68А, литер "Ф", этаж 2, помещение 12
+7 (4922) 53-10-31
info@skb-proton.ru

Почему язык списка инструкций (IL) для ПЛК выходит из моды?

Преобразователи частоты

Международный стандарт IEC 61131-3 определяет языки программирования для программируемых контроллеров (они же программируемые логические контроллеры, или ПЛК), включая схема лестницы (LD), структурированный текст (ST), функциональный блок (FB), список инструкций (IL), и последовательная функциональная диаграмма (SFC). Из них список инструкций и структурированный текст считаются текстовыми языками, что означает, что они используют текст, цифры и знаки препинания — подобно естественному языку, — в то время как другие считаются графическими, использующими символы и визуальные взаимосвязи для указания инструкций. МЭК представила этот стандартный набор языков для ПЛК, чтобы предоставить программистам набор языков, которые могут работать практически с любым приложением, сохраняя при этом независимость от поставщика программного обеспечения.

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

Список инструкций был одним из первых языков программирования ПЛК, наряду с лестничной логикой. Язык списка команд считается языком низкого уровня, что означает, что он очень близок к машинному коду — двоичному языку, который непосредственно выполняется центральным процессором компьютера. При использовании языка списка инструкций каждая инструкция или машинная команда помещается в новую строку. (Этот метод размещения команд в сложенных строках иногда называют “логическим решателем на основе стека”, аналогичным тому, который используется в Логика RPN на некоторых калькуляторах.) Инструкции состоят из операторов, операндов и модификаторов, использующих мнемонику для операторов (например, “A” для “и” или “MOV” для “переместить”).

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

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

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

С этой целью выпуск 3.0 технического отчета IEC TR 61131-8 (ноябрь 2017), Измерение и управление промышленными процессами – Программируемые контроллеры — Часть 8: Руководство по применению и внедрению языков программирования, отмечает, что в стандарте IEC 61131-1:2013 язык списка инструкций обозначен как осуждаемый (не рекомендуется использовать) для следующего выпуска стандарта. Заявленная комитетом причина такого отказа указывает на то, что “язык, подобный ассемблеру, не является актуальным в современных средах разработки”.

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

Автор изображения: RealPars