Czy są dostępne na rynku sterowniki PLC, które mogą kompilować / pobierać programy za pośrednictwem interfejsu API?

9

Mój zespół zdecydował się użyć sterownika PLC do sterowania procesem przemysłowym, który wymaga prostych operacji we / wy w czasie rzeczywistym do urządzeń zewnętrznych przy minimalnym przetwarzaniu. Oczekujemy jednak, że dokładne dane wyjściowe będą się różnić w zależności od serii (w rzeczywistości dana seria będzie bardzo rzadko powtarzana), a operator nie będzie miał doświadczenia w programowaniu PLC / oprogramowania.

Chociaż nie mogę ujawnić rzeczywistego produktu, najlepszą analogią byłoby to, że projektujemy przemysłowy producent koktajli, przy czym PLC kontroluje dokładnie otwieranie i zamykanie różnych zaworów w czasie rzeczywistym. Operator użyje naszego oprogramowania do zaprojektowania niestandardowej sekwencji dodawania różnych odczynników oraz włączania / wyłączania odpowiednich ciężkich maszyn (np. Mieszalnika przemysłowego).

Oto wyzwanie: naszym obecnym podejściem jest napisanie własnego kompilatora, który tłumaczy instrukcje podane przez operatora (otwarty zawór A na 10 ms, otwarty zawór B na 20 ms) na logikę drabinkową i kod maszynowy PLC. Następnie pobieralibyśmy bezpośrednio nasz samodzielnie skompilowany program do sterownika PLC przez port szeregowy. Wszystko to musiałoby zostać zautomatyzowane, aby operator musiał tylko kliknąć przycisk po wymyśleniu sekwencji kroków.

Jednak pomimo moich badań nie znalazłem ani jednego dostawcy PLC, który 1) ma kompilator z API lub publikuje wystarczającą ilość informacji o kodzie maszynowym PLC, aby umożliwić napisanie kompilatora, 2) obsługuje bezpośrednie pobieranie programów do PLC bez użycia oprogramowania programistycznego dostawcy (programator CX, studio Atmel itp.).

Jestem przekonany, że przyjmujemy niewłaściwe podejście, a przynajmniej nie wiem, jakiego produktu szukać. We / wy jest wystarczająco proste, aby nie uzasadniać budowy własnej płyty, ale funkcjonalność, której szukamy, a mianowicie interakcja PLC z oprogramowaniem na wysokim poziomie, wydaje się być niedostępna.

Idealnie byłoby, gdybyśmy chcieli pobrać cały program do PLC na raz i nie wysyłali instrukcji pojedynczo. Wykonanie wszystkich instrukcji na PLC (lub jakimkolwiek innym urządzeniu, z którego ostatecznie skorzystamy) musi odbywać się w czasie rzeczywistym.

Czy są dostępne na rynku sterowniki PLC, które obsługują kompilowanie i pobieranie kodu maszynowego, tak że cały proces może zostać zautomatyzowany przez większy program? Czy istnieje inny sposób pobrania programu czasu rzeczywistego na sterownik PLC napisany przez oprogramowanie komputerowe napisane w języku wysokiego poziomu?

Dragonsheep
źródło
A co z używaniem systemu operacyjnego i pozwoleniem użytkownikowi na edycję kodu programu za pomocą niestandardowego interfejsu GUI i jego kompilację, na przykład za pomocą GCC, a następnie pobranie skompilowanego programu na „PLC”.
Eggi
Czy możesz zasugerować materiały lub samouczki przedstawiające programowanie i zasady RTOS? Najbardziej znam się na programowaniu bez RT i tradycyjnej logice drabinkowej, więc chociaż jestem bardzo zainteresowany tym rozwiązaniem, nie jestem do końca pewien, od czego zacząć.
Dragonsheep
@ Co to jest interfejs API? Jeśli jest to „interfejs aplikacji”, to w jaki sposób możesz go skompilować / pobrać?
Dmitrij Grigoryev
1
@Dragonsheep Better zignoruj ​​ten pomysł. Istnieje zbyt wiele aspektów, które nie są dowodami branżowymi, jak stwierdził Henry Cun. 1.: Jak zmienić kod przed kompilacją? Umieścić go gdzieś w postaci czystego tekstu? Po drugie: wsparcie na przestrzeni dziesięcioleci w systemie operacyjnym
Eggi

Odpowiedzi:

11

Możesz do tego zdecydowanie użyć sterownika PLC. Z wyjątkiem tego, że nie chcesz zmieniać kodu PLC dla każdego „przepisu na smoothie”.
Powinieneś napisać aplikację PLC, która odczytuje przepisy z dowolnego źródła, takiego jak karty SD, pamięć sieciowa, pamięć wewnętrzna, a nawet kody QR, jeśli masz ochotę.

PLC często już posiadają funkcję do tego , w którym recepta jest zestaw parametrów można załadować (i edytować z HMI).

IO w czasie rzeczywistym do urządzeń zewnętrznych przy minimalnym przetwarzaniu

Cokolwiek wybierzesz, nie twórz własnego PLC . Prawdopodobnie nie jest to warte czasu. I nie myśl, że oprogramowanie lub dodatkowy moduł są drogie, nie możesz tego napisać w tej cenie.

Jeroen3
źródło
5

Zakładam, że jest to dość proste zadanie dla minimalnej liczby komputerów, a nie czegoś używającego zaawansowanych przemysłowych sterowników PLC

Zakładam również, że jest to użyteczne z przemysłowego punktu widzenia, to znaczy, że przepis powinien być w stanie zmienić klient za 10 lat. Również jego przydatność powinna przetrwać po odejściu z biznesu lub przejściu na nowe produkty.

Wiele systemów będzie wymagało specjalnego oprogramowania do pobrania i / lub skompilowania, jak mówisz. W dłuższej perspektywie klienci stwierdzą, że system Windows 11,12,13 nie będzie już uruchamiał oprogramowania. Aby tego uniknąć, chcesz, aby program był zwykłym ascii, wysyłanym przez pewnego rodzaju port szeregowy. Trwa to od około 50 lat i nie wykazuje oznak zniknięcia.

Dalej można „skompilować” cel, więc klient musi tylko wysyłać do niego ascii z terminala. To nigdy nie będzie przestarzałe.

Część etosu Forth polega na tym, że piszesz prymitywy specyficzne dla domeny („AddBanana”, „Blend”, „Pour”), które Twoi klienci traktują jako specyficzny język produktu. Podczas gdy Forth jest uważany za tajemniczy przez informatyków, jest on koncepcyjnie bardzo łatwy w użyciu dla użytkowników końcowych - byłby to prawidłowy program.

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

Jako przykład możesz użyć małego PLC opartego na Arduino i załadować FlashForth Istnieje wiele innych opcji, np. MPEForth i PLC oparty na ARM

Twoje oprogramowanie jest teraz dowolnym edytorem i jakimś programem do wysyłania numeru seryjnego. Są do tego standardowe narzędzia i długo po twojej nieobecności klient może sprawić, że będzie działać od zera, ponieważ jest to takie proste.

Wadą całego pomysłu jest to, że klient programuje produkt i oczywiście może go przerobić, robiąc coś niewłaściwego - cokolwiek podejmiesz.

Ponieważ są to tylko pliki ascii, bardzo łatwo jest stworzyć fantazyjną powłokę dla klienta, ale produkt nadal będzie bez niej działał.

Henry Crun
źródło
Dziękuję za odpowiedź! Coś takiego jak Controllino, które zasugerowałeś, jest dokładnie tym, czego szukamy! Minimalistyczny sterownik PLC, w którym mamy bezpośrednią kontrolę nad oprogramowaniem i możemy pobierać programy przez port szeregowy. Kiedy mówisz, że mamy „wiele innych możliwości”, jakie byłyby wyszukiwane hasła / jakie inne produkty sugerujesz? Mój zespół najlepiej zna przemysł ciężki, więc zabrakło nam pomysłów po przejrzeniu zwykłych katalogów Siemens / Mitsubishi / Omron i nie znalezieniu tego, czego szukaliśmy.
Dragonsheep
@Dragonsheep: Zalecamy poczekanie jednego lub dwóch dni przed zaakceptowaniem odpowiedzi. To zachęca innych do pisania, a otrzymasz więcej odpowiedzi i różnych punktów widzenia.
Tranzystor
Jeśli jest to dla ciebie interesujące podejście, a jesteś ludźmi, którzy płacą za narzędzia, wiedzę i wsparcie, możesz porozmawiać ze Stephenem Pelcem w MPEForth. Robi takie rzeczy komercyjnie. Z drugiej strony, jeśli jesteście ludźmi z darmowego piwa, szukajcie modułów opartych na Arduino lub PLC i FlashForth.
Henry Crun,
1
Zgodziłbym się również z odpowiedziami @Transistor i Jeroen: Jeśli potrzebujesz przemysłowego PLC, to są to, czego potrzebujesz. (a losowe moduły Arduino plc nie są wystarczająco solidne, aby być kontrolerami fabrycznymi, a bardziej wewnętrznym kontrolerem). Nie zgadzam się z „zdobywaniem czegoś z systemem operacyjnym i korzystaniem z rozwiązań GCC”, ponieważ prawdopodobnie prowadzi to do najgorszego ze wszystkich możliwych światów.
Henry Crun,
Jest to rzeczywiście aplikacja przemysłowa, którą mamy nadzieję sprzedać klientowi. Mamy nadzieję na ponad 20-letnią niezawodność, którą wykazali duzi dostawcy przemysłowi (Mitsubishi itp.) Swoimi produktami, więc istnieje obawa związana z wyborem jednego z tych nowszych dostawców sprzętu typu open source. Jednocześnie, jeśli chodzi o oprogramowanie, oprogramowanie typu open source daje nam kontrolę, której szukamy. Stephen wydaje się być dobrą osobą, z którą można się skontaktować. Dzięki za prowadzenie.
Dragonsheep
2

Nie zadzieraj z Arduino itp. Do zastosowań przemysłowych. Sterowniki PLC zostały zaprojektowane z myślą o niezawodności, odporności, standardach i długoterminowym wsparciu. Firma, w której pracuję, prowadzi co najmniej jeden Texas Instruments PLC od 1987 roku i kilka innych od początku lat 90. Części zamienne są nadal dostępne ze źródeł przemysłowych w serwisie eBay itp.

Użyj PLC i przemysłowego interfejsu HMI o mocy wystarczającej do zrobienia tego, czego potrzebujesz. Niedawno ukończyłem zadanie miksera, w którym chcieliśmy elastyczności receptur z krokami automatycznymi i ręcznymi. Sekwencja jest kontrolowana przez przechodzenie przez tablicę programowaną przez HMI.

  • Numer kroku np. „5”.
  • Opis. np. „Automatyczne ważenie banana”, „Ręczne ładowanie wiśni”, „Zeskrobanie”.
  • Prędkość mieszania (RPM). np. „25”.
  • Czas mieszania. np. „120”.
  • Wymagane zeskrobywanie na końcu kroku? (T / N) np. „Y”.
  • Wymagane ciepło? (T / N) np. „N”.
  • Temperatura (° C). np. „0”.

Zaprojektowaliśmy system z zestawem dwudziestu kroków, co wystarcza w dającej się przewidzieć przyszłości, ale w razie potrzeby można go łatwo rozszerzyć. Wszystkie ustawienia mają wartości minimalne i maksymalne ustawione w aplikacji HMI.

Dzięki temu system jest bardzo elastyczny i można go edytować. Mamy solidny system ze sterownikiem PLC i interfejsem HMI znanym i obsługiwanym przez dowolną ogromną liczbę firm.

Tranzystor
źródło
Dziękuję za odpowiedź. Szczególne zastosowanie, jakie mamy, dotyczy automatycznej biochemii, więc przy setkach odczynników i potencjalnie setkach kroków zaangażowanych w proces, który automatyzujemy, w mojej obecnej opinii każde programowanie urządzeń HMI byłoby beznadziejnie skomplikowane.
Dragonsheep
1

Nie określiłeś budżetu na rozwój oprogramowania i oprogramowania ani na koszt jednostkowy wdrożonego sprzętu, ale jeśli możesz sobie na to pozwolić, twoje wymagania mogą być z pewnością spełnione przy użyciu sprzętu National Instruments CompactRIO i oprogramowania LabVIEW Real-Time .

Kontroler CompactRIO to wytrzymały, niezawodny, wysokiej jakości, wbudowany kontroler klasy przemysłowej z certyfikatem branżowym.

Dostępna jest gama modułów I / O, które podłącza się do obudowy kontrolera lub jeśli twój projekt jest stały i chcesz zmniejszyć koszt jednostkowy, kontrolery i I / O są dostępne jako pojedyncze płyty do zintegrowania ze sprzętem . Piszecie oprogramowanie w LabVIEW Real-Time do uruchamiania na kontrolerze i przeprowadzania kontroli procesu, a to może również służyć do internetowego interfejsu użytkownika do edycji kroków procesu lub może komunikować się z programem interfejsu użytkownika, napisanym w LabVIEW lub innym języku , działający na komputerze-hoście. Mam ograniczone doświadczenie ze sterownikami PLC, ale myślę, że można śmiało powiedzieć, że to rozwiązanie byłoby o rząd wielkości potężniejsze i bardziej elastyczne, choć prawdopodobnie przy wyższych cenach.

Zauważ, że chociaż kontroler cRIO jest wyposażony we wbudowany układ FPGA, nie musisz kupować modułu LabVIEW FPGA, chyba że rzeczywiście musisz napisać kod FPGA; brzmi to tak, jakby czas rzeczywisty był odpowiedni dla twoich potrzeb.

nekomatic
źródło
0

Moją propozycją jest spojrzenie na LabVIEW. Myślę, że zaspokoi potrzeby wymienione w Twoim poście. Unikaj pisania kompilatora. To o wiele więcej pracy niż potrzebujesz. Jest to wiele komercyjnych sterowników PLC, które pasowałyby do rachunku. Myślę, że NI jest jednym z łatwiejszych do pracy. Jeśli chodzi o pobieranie programów użytkownika, musisz stworzyć aplikację, aby to osiągnąć.

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

NI ma szeroką gamę modułów, w tym AtoD, wyjścia cyfrowe, wyjścia analogowe, interfejs CAN itp. Oprogramowanie jest bardzo przydatne do tworzenia ładnie wyglądających interfejsów użytkownika. Minusem jest to, że nie jest tanie. Jeśli różni się również bardzo od programowania tekstowego. Wymagane będzie pewne szkolenie.

użytkownik125718
źródło