Чи є у продажу доступні PLC, які можуть компілювати / завантажувати програми через API?


9

Моя команда вирішила використовувати ПЛК для управління промисловим процесом, який вимагає простого введення-виводу в режимі реального часу для зовнішніх пристроїв з мінімальною обробкою. Однак ми очікуємо, що точні виходи, необхідні для варіювання між запусками (насправді, даний випуск буде дуже рідко коли-небудь повторюватися), і оператор не матиме жодного досвіду програмування PLC / програмного забезпечення.

Хоча я не можу розкрити фактичний продукт, найкращою аналогією було б те, що ми розробляємо промисловий виробник коктейлів, PLC точно контролює відкриття та закриття різних клапанів у режимі реального часу. Оператор використовуватиме наше програмне забезпечення для розробки спеціальної послідовності добавок різних реагентів та включення / вимкнення відповідної важкої техніки (наприклад, промислового змішувача).

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

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

Мене примушують вважати, що ми можемо використовувати неправильний підхід або, принаймні, не знаю, на який продукт звернути увагу. Введення / виведення є досить простим, щоб не виправдати побудову нашої власної плати, але функціональність, яку ми шукаємо, а саме взаємодія PLC з програмним забезпеченням високого рівня, здається, недоступна.

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

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


А як щодо використання ОС та дозволити користувачеві редагувати ваш програмний код через користувальницький графічний інтерфейс та скапіювати його, наприклад, з GCC, а потім завантажувати скомпільовану програму на свій "PLC".
Eggi

Чи можете ви запропонувати матеріали чи навчальні посібники, які впроваджують програмування та принципи RTOS? Я найбільше знайомий з вбудованою розробкою, що не використовується RT, і традиційною логікою сходів, тому, хоча я дуже зацікавлений у цьому рішенні, я не зовсім впевнений, з чого почати.
Dragonsheep

@ Що таке API? Якщо це "інтерфейс програми", то як ви компілюєте / завантажуєте через нього?
Дмитро Григор’єв

1
@Dragonsheep Краще ігноруйте цю ідею. Є занадто багато аспектів, які не є галузевими доказами, як заявив Генрі Кун. 1-е: Як змінити код перед компіляцією? Помістіть його десь у зрозумілому тексті? 2-е: підтримка протягом десятиліть з ОС
Eggi

Відповіді:


11

Ви можете визначено використовувати PLC для цього. Крім того, ви не хочете змінювати код PLC для кожного "рецепту" коктейлю ".
Вам слід написати програму PLC, яка читає рецепти з будь-якого джерела, наприклад, SD карт, мережевого сховища, внутрішнього сховища чи навіть QR-кодів, якщо ви відчуваєте фантазію.

Найчастіше для цього є функція PLC , де рецепт - це набір параметрів, які ви можете завантажити (і редагувати за допомогою HMI).

IO в режимі реального часу для зовнішніх пристроїв з мінімальною обробкою

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


5

Я припускаю, що це досить просте завдання для мінімального PLC, а не те, що використовує передові промислові PLC

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

У багатьох системах для завантаження та / або компіляції, як ви кажете, потрібен якийсь спеціальний програмний продукт. Зрештою, ваші клієнти виявлять, що Windows 11,12,13 більше не запускає програмне забезпечення. Щоб цього уникнути, ви хочете, щоб програма була простою, передається через якийсь послідовний порт. Це триває вже близько 50 років, і немає ознак зникнення.

Forth здатний "скластися" на ціль, тому клієнту залишається лише відправити ascii до нього з терміналу. Це ніколи не застаріє.

Частина Forth ethos полягає в тому, що ви пишете примітивні специфічні для домену ("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

Як приклад ви можете використовувати невеликий PLC на базі Arduino та завантажити FlashForth Є багато інших варіантів, наприклад MPEForth та PLC на основі ARM -кортексу

Тепер у вашому програмному забезпеченні є будь-який редактор і якась програма для надсилання серійних програм. Для цього є стандартні інструменти, і задовго після того, як ви підете, замовник може змусити його працювати з нуля, як це так просто.

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

Оскільки це просто файли ascii, вам досить просто зробити фантазійну оболонку для замовника, але продукт все одно буде працювати без нього.


Дякую за відповідь! Щось подібне до Controllino, яке ви запропонували, саме те, що ми шукаємо! Мінімалістичний PLC, де ми маємо прямий контроль над програмним забезпеченням і можемо завантажувати програми через серійні програми. Якщо ви говорите, що у нас є "багато інших варіантів", якими релевантними пошуковими термінами / які інші продукти ви пропонуєте? Моя команда найбільше знайома з важкою галуззю, тому нам не вистачало ідей, переглянувши звичайні каталоги Siemens / Mitsubishi / Omron і не знайшовши того, що ми шукали.
Dragonsheep

@Dragonsheep: радимо почекати день-два, перш ніж приймати відповідь. Це спонукає інших писати, і ви отримаєте більше відповідей та різних точок зору.
Транзистор

Якщо це цікавий підхід до вас, і ви є людьми, які платять гроші за інструменти, експертизу та підтримку, то, можливо, ви захочете поговорити зі Стівеном Пельком у MPEForth. Він робить такі речі комерційно. З іншого боку, якщо ви люди з програмним забезпеченням, що не вживають пиво, то шукайте модулі на базі ардуїно або PLC та FlashForth.
Генрі Крін

1
Я також погодився би з відповідями @Transistor та Jeroen: Якщо те, що вам потрібно, це промисловий PLC, то вони - те, що вам потрібно. (і випадкові модулі Arduino PLC недостатньо надійні, щоб бути фабричними контролерами, більше внутрішнім доброякісним контролером). Я схильний не погоджуватися з типом "отримати щось із ОС та використовувати рішення GCC", як, ймовірно, ведучи до гіршого з усіх можливих світів.
Генрі Крін

Це дійсно промислове додаток, яке ми сподіваємося продати клієнту. Ми сподіваємось на 20-річну надійність, яку продемонстрували великі промислові виробники (Mitsubishi та ін.) Зі своєю продукцією, тому є певне занепокоєння щодо відвідування одного з цих нових постачальників обладнання з відкритим кодом. У той же час, програмне забезпечення мудрого, відкритого коду, здається, дає нам контроль, який ми шукаємо. Стівен, здається, хороша людина, до якої можна звернутися. Дякую за ведучий.
Dragonsheep

2

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

Використовуйте PLC та промисловий HMI з достатньою потужністю, щоб робити те, що вам потрібно. Нещодавно я завершив роботу із змішувачем, де ми бажали гнучкості рецептів з автоматизованими та ручними кроками. Послідовність контролюється шляхом переходу через масив, який запрограмований через HMI.

  • Номер кроку наприклад, "5".
  • Опис наприклад, "Автоматичне зважування банана", "Вишні вручну", "Вискоблювання вниз".
  • Швидкість перемішування (RPM). наприклад '25'.
  • Час перемішування. наприклад, "120".
  • Необхідний висік в кінці кроку? (Y / N), наприклад, "Y".
  • Тепло потрібно? (Так / Ні), наприклад, "N".
  • Температура (° C). наприклад, "0".

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

Це залишає систему дуже гнучкою та зручною для редагування. Ми маємо надійну систему з PLC та HMI, знайомою та підтримуваною будь-якою з величезної кількості компаній.


Дякую за відповідь. Конкретне застосування у нас є для автоматизованої біохімії, тому, маючи сотні реагентів і, можливо, сотні кроків, що беруть участь у процесі автоматизації, я вважаю, що будь-яке програмування пристроїв HMI було б безнадійно складним.
Dragonsheep

1

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

Контролер CompactRIO - це надійний, надійний, високоефективний, вбудований контролер промислового рівня з сертифікатами стандартних галузей.

Доступний цілий ряд модулів вводу / виводу, які підключаються до корпусу контролера, або якщо ваша конструкція виправлена ​​і ви хочете знизити вартість за одиницю, контролери та введення / виведення доступні як окремі плати для інтеграції з вашим обладнанням . Ви б написали програмне забезпечення в режимі реального часу LabVIEW для запуску на контролері та здійснення контролю за процесом, і це також може слугувати веб-інтерфейсом для редагування етапів процесу або може спілкуватися з програмою інтерфейсу, написаною на LabVIEW або іншою мовою , працює на хост-ПК. У мене обмежений досвід роботи з PLC, але я думаю, що справедливо сказати, що це рішення було б на порядок більш потужним та гнучким, хоча, ймовірно, і за більші витрати.

Зверніть увагу, що хоча контролер cRIO поставляється з вбудованою FPGA, вам не потрібно купувати модуль LabVIEW FPGA, якщо вам насправді не потрібно написати код FPGA; це звучить так, ніби в реальному часі має бути нормально для ваших потреб.


0

Моя пропозиція - поглянути на LabVIEW. Я думаю, це задовольнило б потреби, зазначені у вашій посаді. Уникайте написання компілятора. Це набагато більше роботи, ніж вам потрібно зробити. Вони є багатьма комерційними PLC, які відповідали б законопроекту. Я думаю, що Н.І. - одна з найпростіших з ними працювати. Щодо завантаження програм користувача, для цього потрібно створити додаток.

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

NI має широкий спектр модулів, включаючи AtoD, цифрові виходи, аналогові виходи, CAN-інтерфейс тощо. Програмне забезпечення дуже корисне для створення приємних інтерфейсів користувача. Мінус у тому, що це недешево. Якщо також дуже відрізняється від текстового програмування. Буде потрібно певне навчання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.