Mein Team hat beschlossen, eine SPS zur Steuerung eines industriellen Prozesses zu verwenden, der eine einfache Echtzeit-E / A für externe Geräte mit minimaler Verarbeitung erfordert. Wir erwarten jedoch, dass die genauen Ausgaben zwischen den Läufen variieren (tatsächlich wird ein bestimmter Lauf sehr selten wiederholt), und der Bediener verfügt über keine Erfahrung in der SPS- / Softwareprogrammierung.
Obwohl ich das tatsächliche Produkt nicht offenlegen kann, wäre die beste Analogie, dass wir einen industriellen Smoothie-Hersteller entwerfen, bei dem die SPS das Öffnen und Schließen verschiedener Ventile in Echtzeit genau steuert. Der Bediener verwendet unsere Software, um eine benutzerdefinierte Abfolge von Zugaben verschiedener Reagenzien und das Ein- und Ausschalten relevanter schwerer Maschinen (z. B. eines Industriemischers) zu entwerfen.
Hier ist die Herausforderung: Unser aktueller Ansatz besteht darin, einen eigenen Compiler zu schreiben, der die Anweisungen des Bedieners (Ventil A für 10 ms öffnen, Ventil B für 20 ms öffnen) in Kontaktplanlogik und SPS-Maschinencode übersetzt. Wir würden dann unser selbst kompiliertes Programm direkt über die serielle Schnittstelle in die SPS herunterladen. All dies müsste automatisiert werden, damit der Bediener erst auf eine Schaltfläche klicken muss, nachdem er seine Schrittfolge festgelegt hat.
Trotz meiner Recherchen habe ich jedoch keinen einzigen SPS-Anbieter gefunden, der beide 1) einen Compiler mit API hat oder genügend Informationen über seinen SPS-Maschinencode veröffentlicht, um einen Compiler schreiben zu können, 2) das direkte Herunterladen von Programmen in die SPS unterstützt ohne Verwendung der Programmiersoftware des Herstellers (CX-Programmierer, Atmel Studio usw.).
Ich bin zu der Überzeugung gelangt, dass wir möglicherweise den falschen Ansatz verfolgen oder zumindest nicht wissen, nach welchem Produkt wir suchen sollen. Die E / A ist einfach genug, um den Aufbau eines eigenen Boards nicht zu rechtfertigen, aber die gesuchte Funktionalität, nämlich die SPS-Interaktion mit PC-Software auf hoher Ebene, scheint nicht verfügbar zu sein.
Im Idealfall möchten wir das gesamte Programm auf einmal in die SPS herunterladen und keine Anweisungen einzeln senden. Die Ausführung aller Anweisungen auf der SPS (oder dem Gerät, das wir letztendlich verwenden) muss in Echtzeit erfolgen.
Gibt es im Handel erhältliche SPS, die das Kompilieren und Herunterladen von Maschinencode unterstützen, sodass der gesamte Prozess durch ein größeres Programm automatisiert werden kann? Gibt es eine andere Möglichkeit, ein Echtzeitprogramm auf eine SPS herunterzuladen, die von einer PC-Software in einer Hochsprache geschrieben wurde?
quelle
Antworten:
Sie können hierfür definitiv eine SPS verwenden. Außer, Sie möchten den SPS-Code nicht für jedes "Smoothie-Rezept" ändern.
Sie sollten eine SPS-Anwendung schreiben, die Rezepte aus beliebigen Quellen wie SD-Karten, Netzwerkspeicher, internen Speicher oder sogar QR-Codes liest, wenn Sie Lust haben.
Oft hat PLC ist bereits eine Funktion für diese , wo ein Rezept einen Satz von Parametern ist , dass Sie (und bearbeiten mit dem HMI) laden können.
Was auch immer Sie verwenden möchten, erfinden Sie keine eigene SPS . Es ist wahrscheinlich nicht die Zeit wert. Und denken Sie nicht, dass die Software oder das zusätzliche Modul teuer ist, Sie können es nicht für diesen Preis schreiben.
quelle
Ich gehe davon aus, dass dies eine ziemlich einfache Aufgabe für eine minimale SPS ist und nicht für fortschrittliche industrielle SPS
Ich gehe auch davon aus, dass dies industriell sinnvoll ist, dh dass das Rezept vom Kunden in 10 Jahren geändert werden kann. Auch, dass seine Nützlichkeit überleben sollte, wenn Sie Ihr Geschäft aufgeben oder auf neue Produkte umsteigen.
Wie Sie sagen, benötigen viele Systeme eine spezielle Software zum Herunterladen und / oder Kompilieren. Langfristig werden Ihre Kunden feststellen, dass Windows 11,12,13 die Software nicht mehr ausführt. Um dies zu vermeiden, soll das Programm einfach ASCII sein und über eine serielle Schnittstelle gesendet werden. Dies ist seit ungefähr 50 Jahren so und zeigt keine Anzeichen eines Verschwindens.
Forth kann auf dem Ziel "kompiliert" werden, sodass der Kunde nur ASCII von einem Terminal an das Ziel senden muss. Es wird niemals überholt sein.
Teil des Forth-Ethos ist, dass Sie domänenspezifische Grundelemente ("AddBanana", "Blend", "Pour") schreiben, die Ihre Kunden als eine bestimmte Sprache für das Produkt behandeln. Während Forth von Computern als geheimnisvoll angesehen wird, ist es für Endbenutzer konzeptionell sehr einfach zu verwenden - dies wäre ein gültiges Programm.
10 grams Thickener 500 grams Banana 15 seconds Hi Blend 50 grams Blueberry 5 seconds slow Blend Pour 5 seconds wait CleanCycle
Als Beispiel könnten Sie eine kleine Arduino-basierte SPS verwenden und FlashForth laden. Es gibt viele andere Möglichkeiten, z. B. MPEForth und eine ARM-Cortex-basierte SPS
Ihre Software ist jetzt ein beliebiger Editor und ein Programm zum Senden von Serien. Hierfür gibt es Standardwerkzeuge, und lange nachdem Sie gegangen sind, kann der Kunde dafür sorgen, dass es von Grund auf funktioniert, da es so einfach ist.
Ein Fehler bei Ihrer gesamten Idee ist, dass der Kunde das Produkt programmiert und es natürlich durch falsches Handeln auffüllen kann - unabhängig davon, welchen Ansatz Sie wählen.
Da es sich nur um ASCII-Dateien handelt, ist es für Sie recht einfach, eine ausgefallene Shell für den Kunden zu erstellen, aber das Produkt funktioniert auch ohne diese.
quelle
Leg dich nicht mit Arduino usw. für eine industrielle Anwendung an. SPSen sind auf Zuverlässigkeit, Robustheit, Standards und langfristige Unterstützung ausgelegt. Das Unternehmen, für das ich arbeite, betreibt seit 1987 mindestens eine Texas Instruments PLC und mehrere andere aus den frühen neunziger Jahren. Ersatzteile sind weiterhin aus industriellen Quellen bei eBay usw. erhältlich.
Verwenden Sie eine SPS und ein Industrie-HMI mit genügend Leistung, um das zu tun, was Sie benötigen. Ich habe kürzlich einen Mixer-Job abgeschlossen, bei dem wir Rezeptflexibilität mit automatisierten und manuellen Schritten wollten. Die Sequenz wird gesteuert, indem ein Array durchlaufen wird, das über das HMI programmiert wird.
Wir haben das System mit einer Reihe von zwanzig Schritten entworfen, die auf absehbare Zeit ausreichen, aber bei Bedarf problemlos erweitert werden können. Für alle Einstellungen sind in der HMI-Anwendung Min- und Max-Werte festgelegt.
Dadurch ist das System sehr flexibel und bearbeitbar. Wir haben ein robustes System mit einer SPS und einem HMI, die von einer Vielzahl von Unternehmen bekannt und unterstützt werden.
quelle
Sie haben kein Budget für Entwicklungshardware und -software oder für die Stückkosten der bereitgestellten Hardware angegeben, aber wenn Sie es sich leisten können, könnte Ihre Anforderung mit der CompactRIO- Hardware von National Instruments und der LabVIEW-Echtzeitsoftware sicherlich erfüllt werden .
Es stehen eine Reihe von E / A-Modulen zur Verfügung, die in das Controller-Gehäuse eingesteckt werden. Wenn Ihr Design festgelegt ist und Sie die Kosten pro Einheit senken möchten, stehen Controller und E / A als einzelne Karten zur Integration in Ihre Hardware zur Verfügung . Sie würden Software in LabVIEW Real-Time schreiben, um sie auf dem Controller auszuführen und die Prozesssteuerung auszuführen. Dies könnte auch einer webbasierten Benutzeroberfläche zum Bearbeiten der Prozessschritte dienen oder mit einem in LabVIEW oder einer anderen Sprache geschriebenen Benutzeroberflächenprogramm kommunizieren , läuft auf einem Host-PC. Ich habe nur begrenzte Erfahrung mit SPS, aber ich denke, es ist fair zu sagen, dass diese Lösung um eine Größenordnung leistungsfähiger und flexibler wäre, wenn auch wahrscheinlich zu höheren Kosten.
Beachten Sie, dass der cRIO-Controller zwar mit einem integrierten FPGA ausgestattet ist, Sie das LabVIEW-FPGA-Modul jedoch nur kaufen müssen, wenn Sie tatsächlich FPGA-Code schreiben müssen. Es klingt so, als ob Echtzeit für Ihre Bedürfnisse in Ordnung sein sollte.
quelle
Mein Vorschlag ist, einen Blick auf LabVIEW zu werfen. Ich denke, es würde die in Ihrem Beitrag aufgeführten Bedürfnisse befriedigen. Vermeiden Sie es, Ihren Compiler zu schreiben. Das ist viel mehr Arbeit als Sie tun müssen. Es sind viele kommerzielle SPS, die in die Rechnung passen würden. Ich denke, NI ist eine der einfacheren, mit denen man arbeiten kann. Zum Herunterladen von Benutzerprogrammen müssen Sie eine Anwendung erstellen, um dies zu erreichen.
http://www.ni.com/en-us/shop/labview.html
NI verfügt über eine breite Palette von Modulen, darunter AtoD, digitale Ausgänge, analoge Ausgänge, CAN-Schnittstelle usw. Die Software ist sehr nützlich, um gut aussehende Benutzeroberflächen zu erstellen. Der Nachteil ist, dass das nicht billig ist. If unterscheidet sich auch stark von der textbasierten Programmierung. Einige Schulungen wären erforderlich.
quelle