Seite 1 von 1

SPS (Speicher Programmierbare Steuerung ) mit Mega-IO

Verfasst: 15 Okt 2025, 10:56
von asp
megaio.png
megaio.png (69.75 KiB) 21282 mal betrachtet
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:

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>
Beispiel Relais einschalten:

Code: Alles auswählen

megaio 0 rwrite 1 on
schaltet das Relay1 auf dem Megabord 0 (es können bis 4 Boards aufeinander gesteckt werden)

Mega-IO-Board testen:

Code: Alles auswählen

megaio 0 test
Es werden alle Funktionen von der Platine getestet (Relais, Digital Analog Converter, Analog Digital Converter, Open Kollektor)

Pinbelegung:
megaio-40pol.png
megaio-40pol.png (151.15 KiB) 21109 mal betrachtet
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 1

Code: Alles auswählen

megaio 0 ioread 2 # lesen auf Eingang 2, es sollte eine 0 gelesen werden

Code: Alles auswählen

megaio 0 iodwrite 1 0 # schreiben eine Log1 auf den Ausgang 1

Code: Alles auswählen

megaio 0 ioread 2 # lesen auf Eingang 2, es sollte jetzt eine 1 gelesen werden
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:

Code: Alles auswählen

megaio 0 awrite 2000 # den Wert 2000 auf den DAC ausgeben

Code: Alles auswählen

megaio 0 aread 7 # und den Wert auf ADC7 einlesen (sollte in etwa 2000 sein)
Optokopplereingänge und Openkollektorausgänge:
opto.png
opto.png (5.85 KiB) 20995 mal betrachtet
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:

Code: Alles auswählen

megaio 0 ocwrite 1 0 # OC1 auf Low

Code: Alles auswählen

megaio 0 optread 1 # und beim Optkoppler OPTO1 zurücklesen, sollte 0 sein

Code: Alles auswählen

megaio 0 ocwrite 1 1 # jetzt setzen wir OC1 auf High

Code: Alles auswählen

megaio 0 optread 1 # und sollten am  OPTO1 jetzt 1 zurücklesen
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.