Forum: Mikrocontroller und Digitale Elektronik Vergleich EsPiFF-PLC mit Pixtend, Industruino und Arduino Octa


von Espiff (espiff)


Angehängte Dateien:

Lesenswert?

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
Noch kein Account? Hier anmelden.