Моя команда решила использовать ПЛК для управления производственным процессом, который требует простого ввода-вывода в реальном времени для внешних устройств с минимальной обработкой. Тем не менее, мы ожидаем, что точные выходные данные, необходимые для разных прогонов, будут различаться (фактически, данный прогон очень редко будет повторяться), и у оператора не будет опыта программирования ПЛК / программного обеспечения.
Хотя я не могу раскрыть фактический продукт, лучшая аналогия была бы в том, что мы разрабатываем промышленный производитель смузи с ПЛК, который точно контролирует открытие и закрытие различных клапанов в режиме реального времени. Оператор будет использовать наше программное обеспечение для разработки индивидуальной последовательности добавления различных реагентов и включения / выключения соответствующей тяжелой техники (например, промышленного миксера).
Вот проблема: наш текущий подход заключается в написании собственного компилятора, который переводит инструкции, которые дает оператор (открытый клапан A на 10 мс, открытый клапан B на 20 мс), в релейную логику и машинный код ПЛК. Затем мы напрямую загружаем нашу скомпилированную программу в ПЛК через последовательный порт. Все это должно быть автоматизировано, так что оператору нужно всего лишь нажать кнопку после выполнения его последовательности шагов.
Однако, несмотря на мои исследования, я не нашел ни одного поставщика ПЛК, который бы: 1) имел компилятор с API или публиковал достаточно информации об их машинном коде ПЛК, чтобы можно было написать компилятор, 2) поддерживает прямую загрузку программ в ПЛК без использования программного обеспечения производителя (CX-программер, студия Atmel и т. д.).
Я склонен полагать, что мы, возможно, принимаем неправильный подход или, по крайней мере, не знаем, какой продукт искать. Ввод / вывод достаточно прост, чтобы не оправдать создание нашей собственной платы, но функциональность, которую мы ищем, а именно взаимодействие ПЛК с программным обеспечением высокого уровня для ПК, кажется, недоступна.
В идеале мы хотели бы загрузить всю программу в ПЛК одновременно, а не посылать инструкции по одному. Выполнение всех инструкций на ПЛК (или любом другом устройстве, которое мы используем) должно выполняться в режиме реального времени.
Существуют ли коммерчески доступные ПЛК, поддерживающие компиляцию и загрузку машинного кода, чтобы весь процесс можно было автоматизировать с помощью более крупной программы? Есть ли другой способ загрузить программу реального времени в ПЛК, написанную с помощью программного обеспечения для ПК, написанного на языке высокого уровня?
источник
Ответы:
Вы можете определенно использовать ПЛК для этого. За исключением того, что вы не хотите изменять код ПЛК для каждого «рецепта смузи».
Вы должны написать приложение для ПЛК, которое считывает рецепты из любого источника, например, с SD-карт, сетевого хранилища, внутреннего хранилища или даже QR-кодов, если вы хотите.
Часто ПЛК уже имеет функцию для этого , где рецепт представляет собой набор параметров, которые вы можете загрузить (и отредактировать с помощью ЧМИ).
Что бы вы ни выбрали, не изобретайте свой собственный ПЛК . Это, вероятно, не стоит времени. И не думайте, что программное обеспечение или дополнительный модуль стоит дорого, вы не можете написать его за эту цену.
источник
Я предполагаю, что это довольно простая задача для минимального ПЛК, а не что-то с использованием передовых промышленных ПЛК
Я также предполагаю, что это промышленно полезно, то есть, что рецепт может быть изменен клиентом через 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, для вас довольно легко создать модную оболочку для клиента, но продукт все равно будет работать без нее.
источник
Не связывайтесь с Arduino и т. Д. Для промышленного применения. ПЛК разработаны с учетом надежности, надежности, стандартов и долгосрочной поддержки. Компания, в которой я работаю, управляет по крайней мере одним Texas Instruments PLC с 1987 года и несколькими другими с начала 1990-х годов. Запчасти по-прежнему доступны из промышленных источников на eBay и т. Д.
Используйте ПЛК и промышленный HMI с достаточной мощностью, чтобы делать то, что вам нужно. Я недавно выполнил работу микшера, где мы хотели гибкости рецепта с автоматизированными и ручными шагами. Последовательность контролируется пошагово через массив, который программируется через HMI.
Мы разработали систему с массивом из двадцати шагов, что достаточно для обозримого будущего, но может быть легко расширено, если потребуется. Все настройки имеют минимальные и максимальные значения, установленные в приложении HMI.
Это оставляет систему очень гибкой и редактируемой. У нас есть надежная система с ПЛК и ЧМИ, знакомая и поддерживаемая огромным количеством компаний.
источник
Вы не указали бюджет для аппаратного и программного обеспечения для разработки или для стоимости развернутого аппаратного обеспечения за единицу, но если вы можете себе это позволить, ваши требования, безусловно, могут быть выполнены с использованием аппаратного обеспечения National Instruments CompactRIO и программного обеспечения LabVIEW Real-Time .
Доступен целый ряд модулей ввода / вывода, которые подключаются к шасси контроллера, или, если ваша конструкция является фиксированной и вы хотите снизить стоимость за единицу, контроллеры и устройства ввода / вывода доступны как отдельные платы для интеграции с вашим оборудованием. , Вы будете писать программное обеспечение в LabVIEW Real-Time для запуска на контроллере и осуществлять управление процессом, и это также может служить веб-интерфейсом для редактирования шагов процесса или может взаимодействовать с программой пользовательского интерфейса, написанной на LabVIEW или другом языке. работает на главном ПК. У меня ограниченный опыт работы с ПЛК, но я думаю, что было бы справедливо сказать, что это решение будет на порядок более мощным и гибким, хотя, вероятно, с более высокой стоимостью.
Обратите внимание, что хотя контроллер cRIO поставляется с встроенной FPGA, вам не нужно покупать модуль LabVIEW FPGA, если вам действительно не нужно писать код FPGA; Похоже, что в реальном времени должно быть хорошо для ваших нужд.
источник
Мое предложение - взглянуть на LabVIEW. Я думаю, что это удовлетворит потребности, перечисленные в вашем посте. Избегайте написания вашего компилятора. Это намного больше работы, чем нужно. Это много коммерческих ПЛК, которые бы отвечали всем требованиям. Я думаю, что с NI легче работать. Что касается загрузки пользовательских программ, вам необходимо создать приложение для этого.
http://www.ni.com/en-us/shop/labview.html
NI имеет широкий спектр модулей, включая AtoD, цифровые выходы, аналоговые выходы, интерфейс CAN и т. Д. Программное обеспечение очень полезно для создания привлекательных пользовательских интерфейсов. Недостатком является то, что это не дешево. Если также очень отличается от текстового программирования. Некоторое обучение будет необходимо.
источник