Hallo SPS Interessierte, wir haben einen Vergleich unserer EsPiFF-PLC mit 2 Vertretern aus dem Arduino-SPS Lager(Industruino, Opta), sowie einen Vertreter aus dem Raspberry Pi Lager (Pixtend) durchgeführt, und insbesondere auf die erzielbare Zykluszeit geachtet.Der gesamt Artikel ist (in englisch) auf der EsPiFF github Seite https://github.com/MDCservice/EsPiFF/tree/main/examples/EsPiFF-PLC. Die EsPiFF-PLC kostet deutlich weniger als die Konkurrenten, ist komplett Open Source, bietet mit 4 analogen Ausgängen (sowohl 0-10V, also auch 4 - 20mA) mehr analog Ausgänge als die Konkurrenz, und ist vor allem deutlich schneller bei analogen oder digitalen Schleifen. Das bezieht sich auf Industruino und Pixtend, da es für den Arduino Opta noch keine Erfahrung gibt. Interessant finde ich, wie langsam Industruino als auch Pixtend bei Regelschleifen sind. Beispiel analoge Regelschleife: Für einen hydraulischen Prüfstand musste ich vor ein paar Jahren eine Steuerung bauen, die Hydraulikschläuche auf bis zu 1400 bar testet. Ein Transducer mit 4 - 20mA Ausgang lieferte den hydraulischen Druck am Testprobanden, mit einem 4 - 20mA Steuersignal wurde der Druck eingestellt, und eine PID Regelung regelte die Pumpe. Die Reaktionszeit auf einen Schlauchbruch sollte 1ms sein. Nebenbei musste das Ergebnis auch noch protokolliert werden, also Ethernet. Eine typische Aufgabe für eine PLC. Wenn wir nun für diese Aufgabe die PLC-Probanden anschauen, fällt folgendes auf: Der Industruino hat einen sehr langsamen analog Eingang: 18 bit bei 3,75 Sps, bis zu 240 Sps mit nur mehr 12 bit. Und nur nacheinander auslesbar. Bei der Pixtend habe ich keine max. Sampling time gefunden, das Handbuch spricht aber von einem Analogfilter mit einer "Cut-off frequency of 275 Hz". Also vielleicht 100 Sps beim ADC? Aus einem 10 bit ADC bleiben so 8-9 bit Netto übrig, nicht berauschend. Aber es wird noch schlimmer: Aus dem Handbuch: "Wir empfehlen für Pixtend stets 100 ms Zykluszeit zu verwenden. Hinweis zur Zykluszeit: Wenn keine DHT11/22 Sensoren an PiXtend angeschlossen und verwendet werden, so kann die Zykluszeit (Buszyklus) bis auf 25 ms reduziert werden". Also max. 40x pro Sekunde nachregeln? Ohne Codesys, sollten bis 800 Zyklen möglich sein, hatte ich mal gelesen. Dann hat die Pixtend auch keinen 4 - 20mA Ausgang, keine galv. Trennung der analog Ein- und Ausgänge, und open source ist sie auch nicht. Die EsPiFF-PLC hat galv. isolierte analoge Ein- und Ausgänge, und die können bis zu 1000 mal die Sekunde gesampled werden, bei 16 bit ADCs. Wie die Pixtend auch, hat die EsPiFF-PLC einen eigenen IO Prozessor, RP2040 mit bis zu 16 MB RAM/16 MB Flash, 2x125 MHz Cortex M0+, vs. ATMeag324A mit 2kB RAM, 32kB Flash 1x20MHz AVR. Ein großer Unterschied vom EspiFF-PLC zur Pixtend: Der RP2040 ist frei programmierbar, mit dem Pico SDK, der Ardunino IDE, oder in uPython. Durch den Dual-Core kann ein Kern sich dem Algorithmus widmen, während der 2. Kern die Kommunikation mit dem Netzwerk-Prozessor (ESP32) unterhält, z.B. mit Firmata. Der Industruino ist im Prinzip nicht schlecht, hat aber nur einen Kern, wenig RAM, wenig Flash, und wenn der eine Kern sich um das Netzwerk kümmert, steht der Regel-Algorithmus. Dazu ist er teuer, für die gebotene Leistung, und die langsamen ADCs limitieren weiter. Da der Industruino keine interne DC/DC Wandler hat, muss man 3 externe Netzteile anschließen, wenn man galv. Trennung möchte. In uPython programmieren scheidet auch aus. Der brandneue Arduino Opta hat gar keine analogen Ausgänge, weshalb er für die oben skizzierte Anwendung nicht in Frage kommt. Warum Arduino in den Opta 4 Relais, aber keine analogen Ausgänge eingebaut hat, ist unverständlich. Relais auf die Din Rail Schiene gibt es in allen erdenklichen Konfigurationen, und die können problemlos mit einem digitalen Ausgang gesteuert werden. Wer ein (oder mehrere) Relais für eine EsPiFF-PLC braucht, sucht sich das passende aus, und verbindet es mit einem digitalen Ausgang der EsPiFF-PLC. Und dass die neue Arduino-IDE mit den IEC Sprachen nicht mehr Open Source ist, und dass man für die Runtime Lizenz bezahlen muss, wird auch nicht jeder mögen. Gut, die Pixtend ist auch nicht open source. Fazit: die EsPiFF-PLC kann analoge Regelschleifen mit 4 analogen Eingängen, die zur gleichen Zeit mit bis zu 1000 mal pro Sekunde gesampled werden, mit 4 analogen Ausgägngen, die zur gleichen Zeit mit bis zu 1000 mal pro Sekunde gesetzt werden, berechnen. Die Pixtend kann dies nur 10-40 mal pro Sekunde, der Industruino max. 240 mal pro Sekunde. Die analogen Eingänge vom Industruino werden nacheinader gelesen, mehr Eingänge lesen verlangsamt das Ganz entsprechend. Die EsPiFF-PLC liest immer alle ADCs gleichzeitig, wodurch der Geschwindigkeitsvorteil nochmal anwächst. Bei digitalen Regelschleifen ist der Geschwindigkeitsunterschied nochmal deutlich größer: Die analogen Eingänge sind Tiefpass-gefiltert, und limitieren so die Bandbreite. Die digitalen Eingänge der EsPiFF-PLC gehen bis 50 kHz, die Ausgänge bis 6 kHz. Die angehängte Grafik zeigt, um wie viel schneller die EsPiFF-PLC gegenüber Industruino und Pixtend ist. PS: 3D Gehäuse und Schaltpläne für den analogen und digitalen Header werden in Kürze hochgeladen, sobald wir die technischen Specs überprüft haben.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.