Моя команда решила использовать ПЛК для управления производственным процессом, который требует простого ввода-вывода в реальном времени для внешних устройств с минимальной обработкой. Тем не менее, мы ожидаем, что точные выходные данные, необходимые для разных прогонов, будут различаться (фактически, данный прогон очень редко будет повторяться), и у оператора не будет опыта программирования ПЛК / программного обеспечения.
Хотя я не могу раскрыть фактический продукт, лучшая аналогия была бы в том, что мы разрабатываем промышленный производитель смузи с ПЛК, который точно контролирует открытие и закрытие различных клапанов в режиме реального времени. Оператор будет использовать наше программное обеспечение для разработки индивидуальной последовательности добавления различных реагентов и включения / выключения соответствующей тяжелой техники (например, промышленного миксера).
Вот проблема: наш текущий подход заключается в написании собственного компилятора, который переводит инструкции, которые дает оператор (открытый клапан A на 10 мс, открытый клапан B на 20 мс), в релейную логику и машинный код ПЛК. Затем мы напрямую загружаем нашу скомпилированную программу в ПЛК через последовательный порт. Все это должно быть автоматизировано, так что оператору нужно всего лишь нажать кнопку после выполнения его последовательности шагов.
Однако, несмотря на мои исследования, я не нашел ни одного поставщика ПЛК, который бы: 1) имел компилятор с API или публиковал достаточно информации об их машинном коде ПЛК, чтобы можно было написать компилятор, 2) поддерживает прямую загрузку программ в ПЛК без использования программного обеспечения производителя (CX-программер, студия Atmel и т. д.).
Я склонен полагать, что мы, возможно, принимаем неправильный подход или, по крайней мере, не знаем, какой продукт искать. Ввод / вывод достаточно прост, чтобы не оправдать создание нашей собственной платы, но функциональность, которую мы ищем, а именно взаимодействие ПЛК с программным обеспечением высокого уровня для ПК, кажется, недоступна.
В идеале мы хотели бы загрузить всю программу в ПЛК одновременно, а не посылать инструкции по одному. Выполнение всех инструкций на ПЛК (или любом другом устройстве, которое мы используем) должно выполняться в режиме реального времени.
Существуют ли коммерчески доступные ПЛК, поддерживающие компиляцию и загрузку машинного кода, чтобы весь процесс можно было автоматизировать с помощью более крупной программы? Есть ли другой способ загрузить программу реального времени в ПЛК, написанную с помощью программного обеспечения для ПК, написанного на языке высокого уровня?