Forum: Mikrocontroller und Digitale Elektronik Arduino auf LOGO hören lassen


von ManuM (Gast)


Lesenswert?

Hallo,

leider hat mein letzter Versuch, mit einer LOGO 6 ein PWM-Signal für 
einen Motor auszugeben, nicht wirklich funktioniert. Der PWM-Baustein 
geht zwar bis 100 Hz, aber in der Praxis bei meinem größeren Programm 
hat sich die LOGO selbst bei 10 Hz noch verschluckt. Das Analogmodul mit 
zwei Ausgängen 1..10V an eine externe Schaltung hat zwar grundsätzlich 
funktioniert, aber da ich aber weitere digitale Ein-/Ausgänge benötige 
und der Platz begrenzt ist, muss ich mir anderweitig behelfen.

Nun kam ich auf die Idee, ob es nicht möglich wäre, einen Arduino an den 
LOGO-Modulbus anzuschließen und ihn das übernehmen zu lassen? D. h. er 
würde einen virtuellen analogen Ausgang der LOGO abhören, um an seinem 
entsprechenden Ausgang ein PWM-Signal auszugeben.

Leider finden sich im Netz Arduino-Beispiele fast ausschließlich für 
Ethernet (das die LOGO 6 nicht hat) und eine Library für die 
LOGO-Programmierschnittstelle (die ich wegen der Steckerposition aber 
nicht nutzen kann).

Immerhin fand ich aber hier einen interessanten Artikel für den 
LOGO-Modulbus:
https://www.mikrocontroller.net/articles/Siemens_Logo

Allerdings habe ich den Arduino erst vor ein paar Tagen kennengelernt 
und beim Versuch, den Beispielcode für Arduino umzusetzen, tue ich mich 
schwer. Vor allem mit Interrupts habe ich noch keine Erfahrung, aber vor 
einiger Zeit habe ich mal Delphi gelernt, also die Grundstrukturen sind 
alle klar.

Soweit ich das bis hierhin sehe, entspricht main() --> loop() und init() 
--> setup() sowie sei() --> interrupts(), allerdings habe ich bei 
letzterem nur Beispiele gesehen, die mit den Befehlen die Interrupts 
kurz anhalten und wieder fortsetzen. In OUTPUT_PORT dürften gemäß dem 
Artikel wohl die Informationen zu den Ausgängen stehen (kann ich mir ja 
für's erste auf dem seriellen Monitor anschauen), und INPUT_PORT muss ja 
was zu tun haben mit den Pins des Arduino, an die ich die drei 
Datenleitungen der LOGO anschließe. Läuft wohl bei Arduino über die 
Funktionen in der SPI.h, zum Beispiel gäbe es da ja 
SPI.attachInterrupt() und die Pins scheinen auf 11-13 festgelegt zu 
sein. Vermutlich geht das beim Arduino eh noch etwas simpler als in dem 
Beispiel.

Lange Rede, kurzer Sinn: Hat jemand Tipps für mich, wie ich den Code 
weiter umsetzen/portieren kann? Mit den Anpassungen frisst die Arduino 
IDE das Beispiel zwar, aber funktionieren – d. h. allein nur empfangen 
und testweise ausgeben – wird das so sicherlich noch nicht (kann die 
LOGO leider nicht ausbauen, um es hier am PC zu testen).

Und noch hardwareseitig: Kann ich direkt verbinden, oder muss ich 
galvanisch trennen? Arduino und LOGO haben gleiches Massepotential.

Lieben Dank und Grüße

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.