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?
źródło
Odpowiedzi:
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).
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.
źródło
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ł.
źródło
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.
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.
źródło
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 .
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.
źródło
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.
źródło