SPS (Speicher Programmierbare Steuerung ) mit Mega-IO
Verfasst: 15 Okt 2025, 10:56
Um dieses Board zu steuern, installiert man am Besten die Steuerungsklassen von Microsystems.
github.com/SequentMicrosystems/megaio-rpi
Nach der Instellation stehen folgende Boardbefehle zur Verfügung:
Beispiel Relais einschalten:
schaltet das Relay1 auf dem Megabord 0 (es können bis 4 Boards aufeinander gesteckt werden)
Mega-IO-Board testen:
Es werden alle Funktionen von der Platine getestet (Relais, Digital Analog Converter, Analog Digital Converter, Open Kollektor)
Pinbelegung: IO-Test:
Die Anschlüsse IO1..IO7 können sowohl aus Ausgang als auch als Eingang verwendet werden. Für unseren Test verbinden wir IO1 mit IO2 (27<->28) und geben folgende Befehle ein:
DAC und ADC Test:
Es gibt einen Digital Analog Converter Ausgang DAC1 und acht Analog Digital Converter Eingänge. Für unseren Test verbinden wir IDAC mit DAC7 (7<->11) und geben folgende Befehle ein:
Optokopplereingänge und Openkollektorausgänge:
Das Board hat auch noch acht galvanisch getrennte Eingänge OPTO1..OPTO7 und vier open Colektor Ausgänge OC1..OC4. Für unseren Test verbinden wir Opencollektor Ausgang OC1 mit Optokopplereingang OPTO1 (3<->33). Damit der Optokoppler OPTO1..4 funktionieren müssen wir VEXT1 noch mit 5V verbinden Brücke 2<->4 und geben folgende Befehle ein:
PS. Habe lange versucht das Board mit Micro Python (Thonny) und Arduino-IDE zu verwenden, habe aber nur die Relays und den DAC zum Laufen gebracht. Bei Fragen stehe ich gerne zur Verfügung.
github.com/SequentMicrosystems/megaio-rpi
Nach der Instellation stehen folgende Boardbefehle zur Verfügung:
Code: Alles auswählen
megaio -v
megaio -lt
megaio -lw <val>
megaio -lw <lednr> <val>
megaio -warranty
megaio -connector
megaio <id> board
megaio <id> rwrite <channel> <on/off>
megaio <id> rread <channel>
megaio <id> rread
megaio <id> aread <channel>
megaio <id> awrite <value>
megaio <id> optread <channel>
megaio <id> optread
megaio <id> ocread
megaio <id> ocwrite <ch> <on/off; 1/0>
megaio <id> ocwrite <val>
megaio <id> optirqset <channel> <rising/falling/change/none>
megaio <id> optitRead
megaio <id> iodwrite <channel> <in/out>
megaio <id> iodread <channel>
megaio <id> iodread
megaio <id> iowrite <channel> <on/off>
megaio <id> ioread <channel>
megaio <id> ioread
megaio <id> ioirqset <channel> <rising/falling/change/none>
megaio <id> ioitread
megaio <id> test
megaio <id> atest <chNr>
megaio <id> test-opto-oc <optoCh> <ocCh>
megaio <id> test-io <ch1> <ch2>
megaio <id> test-dac-adc <adcCh>
Code: Alles auswählen
megaio 0 rwrite 1 onMega-IO-Board testen:
Code: Alles auswählen
megaio 0 testPinbelegung: IO-Test:
Die Anschlüsse IO1..IO7 können sowohl aus Ausgang als auch als Eingang verwendet werden. Für unseren Test verbinden wir IO1 mit IO2 (27<->28) und geben folgende Befehle ein:
Code: Alles auswählen
megaio 0 iodwrite 1 0 # schreiben eine Log0 auf den Ausgang 1Code: Alles auswählen
megaio 0 ioread 2 # lesen auf Eingang 2, es sollte eine 0 gelesen werdenCode: Alles auswählen
megaio 0 iodwrite 1 0 # schreiben eine Log1 auf den Ausgang 1Code: Alles auswählen
megaio 0 ioread 2 # lesen auf Eingang 2, es sollte jetzt eine 1 gelesen werdenEs gibt einen Digital Analog Converter Ausgang DAC1 und acht Analog Digital Converter Eingänge. Für unseren Test verbinden wir IDAC mit DAC7 (7<->11) und geben folgende Befehle ein:
Code: Alles auswählen
megaio 0 awrite 2000 # den Wert 2000 auf den DAC ausgebenCode: Alles auswählen
megaio 0 aread 7 # und den Wert auf ADC7 einlesen (sollte in etwa 2000 sein)Code: Alles auswählen
megaio 0 ocwrite 1 0 # OC1 auf LowCode: Alles auswählen
megaio 0 optread 1 # und beim Optkoppler OPTO1 zurücklesen, sollte 0 seinCode: Alles auswählen
megaio 0 ocwrite 1 1 # jetzt setzen wir OC1 auf HighCode: Alles auswählen
megaio 0 optread 1 # und sollten am OPTO1 jetzt 1 zurücklesen