Существуют ли коммерчески доступные ПЛК, которые могут компилировать / загружать программы через API?

9

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

Хотя я не могу раскрыть фактический продукт, лучшая аналогия была бы в том, что мы разрабатываем промышленный производитель смузи с ПЛК, который точно контролирует открытие и закрытие различных клапанов в режиме реального времени. Оператор будет использовать наше программное обеспечение для разработки индивидуальной последовательности добавления различных реагентов и включения / выключения соответствующей тяжелой техники (например, промышленного миксера).

Вот проблема: наш текущий подход заключается в написании собственного компилятора, который переводит инструкции, которые дает оператор (открытый клапан A на 10 мс, открытый клапан B на 20 мс), в релейную логику и машинный код ПЛК. Затем мы напрямую загружаем нашу скомпилированную программу в ПЛК через последовательный порт. Все это должно быть автоматизировано, так что оператору нужно всего лишь нажать кнопку после выполнения его последовательности шагов.

Однако, несмотря на мои исследования, я не нашел ни одного поставщика ПЛК, который бы: 1) имел компилятор с API или публиковал достаточно информации об их машинном коде ПЛК, чтобы можно было написать компилятор, 2) поддерживает прямую загрузку программ в ПЛК без использования программного обеспечения производителя (CX-программер, студия Atmel и т. д.).

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

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

Существуют ли коммерчески доступные ПЛК, поддерживающие компиляцию и загрузку машинного кода, чтобы весь процесс можно было автоматизировать с помощью более крупной программы? Есть ли другой способ загрузить программу реального времени в ПЛК, написанную с помощью программного обеспечения для ПК, написанного на языке высокого уровня?

Dragonsheep
источник
Как насчет использования ОС и позволить пользователю редактировать код вашей программы через пользовательский графический интерфейс и скомпилировать его, например, с помощью GCC, а затем загрузить скомпилированную программу в ваш «ПЛК».
Eggi
Не могли бы вы предложить материалы или учебные пособия, которые знакомят с программированием и принципами RTOS? Я наиболее знаком с разработкой не-RT встроенных программ и традиционной лестничной логикой, поэтому, хотя я очень заинтересован в этом решении, я не совсем уверен, с чего начать.
Dragonsheep
@ Что такое API? Если это «интерфейс прикладной программы», то как вы компилируете / скачиваете через него?
Дмитрий Григорьев
1
@Dragonsheep Лучше игнорировать эту идею. Как сказал Генри Кун, существует слишком много аспектов, которые не являются доказательством отрасли. 1-й: Как вы измените код перед компиляцией? Положите это где-нибудь открытым текстом? 2-е: поддержка на протяжении десятилетий с ОС
Eggi

Ответы:

11

Вы можете определенно использовать ПЛК для этого. За исключением того, что вы не хотите изменять код ПЛК для каждого «рецепта смузи».
Вы должны написать приложение для ПЛК, которое считывает рецепты из любого источника, например, с SD-карт, сетевого хранилища, внутреннего хранилища или даже QR-кодов, если вы хотите.

Часто ПЛК уже имеет функцию для этого , где рецепт представляет собой набор параметров, которые вы можете загрузить (и отредактировать с помощью ЧМИ).

ввод-вывод в реальном времени на внешние устройства с минимальной обработкой

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

Jeroen3
источник
5

Я предполагаю, что это довольно простая задача для минимального ПЛК, а не что-то с использованием передовых промышленных ПЛК

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

Многие системы, как вы говорите, требуют специального программного обеспечения для загрузки и / или компиляции. В долгосрочной перспективе ваши клиенты обнаружат, что Windows 11,12,13 больше не будет запускать программное обеспечение. Чтобы избежать этого, вы хотите, чтобы программа была простой ascii, отправленной через какой-либо последовательный порт. Это продолжается уже около 50 лет и не показывает никаких признаков исчезновения.

Forth может быть «скомпилирован» на цели, поэтому клиенту нужно только отправить ascii на него с терминала. Это никогда не будет устаревшим.

Часть концепции Forth заключается в том, что вы пишете специфичные для домена примитивы («AddBanana», «Blend», «Pour»), которые ваши клиенты рассматривают как специфический язык для продукта. Хотя компьютерные люди считают Forth тайным делом, концептуально он очень прост в использовании для конечных пользователей - это будет действительная программа.

10 grams Thickener 500 grams Banana 15 seconds Hi Blend 50 grams Blueberry 5 seconds slow Blend Pour 5 seconds wait CleanCycle

В качестве примера вы можете использовать небольшой ПЛК на основе Arduino и загрузить FlashForth. Есть много других вариантов, например, MPEForth и ПЛК на основе ARM-коры.

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

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

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

Генри Крун
источник
Спасибо за ответ! Что-то вроде предложенного вами Controllino - именно то, что мы ищем! Минималистичный ПЛК, где мы имеем прямой контроль над программным обеспечением и можем загружать программы через последовательный порт. Когда вы говорите, что у нас «много других вариантов», какими будут соответствующие условия поиска / какие другие продукты вы предлагаете? Моя команда больше всего знакома с тяжелой промышленностью, поэтому у нас закончились идеи после того, как мы просмотрели обычные каталоги Siemens / Mitsubishi / Omron и не нашли того, что искали.
Dragonsheep
@Dragonsheep: мы рекомендуем вам подождать день или два, прежде чем принять ответ. Это побуждает других писать, и вы получите больше ответов и разные точки зрения.
Транзистор
Если это интересный подход для вас, и вы - люди, которые платят деньги за инструменты, опыт и поддержку, то вы можете поговорить со Стивеном Пелком в MPEForth. Он делает такие вещи коммерчески. С другой стороны, если вы любители свободного программного обеспечения, ищите модули на основе Arduino или PLC и FlashForth.
Генри Крун
1
Я бы также согласился с ответами @Transistor и Jeroen: если вам нужен промышленный ПЛК, то это то, что вам нужно. (и случайные модули Arduino plc недостаточно надежны, чтобы быть фабричными контроллерами, скорее, контроллером внутри доброкачественной коробки). Я склонен не соглашаться с решениями типа «получить что-то с ОС и использовать GCC», что, вероятно, ведет к худшему из возможных миров.
Генри Крун
Это действительно промышленное приложение, которое мы надеемся продать клиенту. Мы действительно надеемся на 20-летнюю надежность, которую крупные промышленные производители (Mitsubishi и т. Д.) Продемонстрировали с помощью своих продуктов, поэтому есть некоторая обеспокоенность по поводу обращения к одному из этих новых поставщиков оборудования с открытым исходным кодом. В то же время, программное обеспечение с открытым исходным кодом, кажется, дает нам контроль, который мы ищем. Стивен, кажется, хороший человек, к которому можно обратиться. Спасибо за лидерство.
Dragonsheep
2

Не связывайтесь с Arduino и т. Д. Для промышленного применения. ПЛК разработаны с учетом надежности, надежности, стандартов и долгосрочной поддержки. Компания, в которой я работаю, управляет по крайней мере одним Texas Instruments PLC с 1987 года и несколькими другими с начала 1990-х годов. Запчасти по-прежнему доступны из промышленных источников на eBay и т. Д.

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

  • Шаг номер. например, «5».
  • Описание. например, «Автоматическое взвешивание банана», «Вишня с ручной загрузкой», «Вычистить».
  • Скорость смешивания (об / мин). например, «25».
  • Смешайте время (с). например, «120».
  • Требуется очистка в конце шага? (Y / N), например, «Y».
  • Требуется тепло? (Y / N), например, «N».
  • Температура (° С). например, «0».

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

Это оставляет систему очень гибкой и редактируемой. У нас есть надежная система с ПЛК и ЧМИ, знакомая и поддерживаемая огромным количеством компаний.

транзистор
источник
Спасибо за ответ. Конкретное применение, которое мы имеем, предназначено для автоматизированной биохимии, поэтому, поскольку в процессе, который мы автоматизируем, участвуют сотни реагентов и, возможно, сотни этапов, я считаю, что любой вид программирования устройства HMI будет безнадежно сложным.
Dragonsheep
1

Вы не указали бюджет для аппаратного и программного обеспечения для разработки или для стоимости развернутого аппаратного обеспечения за единицу, но если вы можете себе это позволить, ваши требования, безусловно, могут быть выполнены с использованием аппаратного обеспечения National Instruments CompactRIO и программного обеспечения LabVIEW Real-Time .

Контроллер CompactRIO - это надежный, надежный, высокопроизводительный встроенный контроллер промышленного класса с сертификацией отраслевого стандарта.

Доступен целый ряд модулей ввода / вывода, которые подключаются к шасси контроллера, или, если ваша конструкция является фиксированной и вы хотите снизить стоимость за единицу, контроллеры и устройства ввода / вывода доступны как отдельные платы для интеграции с вашим оборудованием. , Вы будете писать программное обеспечение в LabVIEW Real-Time для запуска на контроллере и осуществлять управление процессом, и это также может служить веб-интерфейсом для редактирования шагов процесса или может взаимодействовать с программой пользовательского интерфейса, написанной на LabVIEW или другом языке. работает на главном ПК. У меня ограниченный опыт работы с ПЛК, но я думаю, что было бы справедливо сказать, что это решение будет на порядок более мощным и гибким, хотя, вероятно, с более высокой стоимостью.

Обратите внимание, что хотя контроллер cRIO поставляется с встроенной FPGA, вам не нужно покупать модуль LabVIEW FPGA, если вам действительно не нужно писать код FPGA; Похоже, что в реальном времени должно быть хорошо для ваших нужд.

nekomatic
источник
0

Мое предложение - взглянуть на LabVIEW. Я думаю, что это удовлетворит потребности, перечисленные в вашем посте. Избегайте написания вашего компилятора. Это намного больше работы, чем нужно. Это много коммерческих ПЛК, которые бы отвечали всем требованиям. Я думаю, что с NI легче работать. Что касается загрузки пользовательских программ, вам необходимо создать приложение для этого.

http://www.ni.com/en-us/shop/labview.html

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

user125718
источник