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