ich fürchte, ich scheitere im Moment an meiner eigenen Unfähigkeit und der Tatsache, dass ich mit Codesys und SPS im allgemeinen noch nicht viele Erfahrungen sammeln konnte.
Zur Zeit versuche ich in Codesys V3.5 SP7 auf meinem RasPi2 (Codesys Control for Raspberry Pi 3.5.7.10 ist auf dem Pi drauf und das Package 2.2.0.2 auf dem Rechner) ein Programm zur Überwachung und Steuerung der Ein- und Ausgänge von 5 MCP23017 Portexpandern zu realisieren (Port A alles Eingänge, Port B alles Ausgänge).
Dazu habe ich mir die Bibliothek und die Gerätebeschreibung für den MCP23017 aus dem englisch sprachigen Codesys-Forum geholt und installiert und folgenden Gerätebaum erstellt
Im Programm habe ich dann für jeden MCP einen FUP-Baustein mit folgenden Angaben eingefügt
Geforderte Variablen, die ich mir trotz hier im Forum gefundener Hinweise nicht erklären konnte, habe ich einfach so definiert, wie es für mich einen Sinn ergeben hat
An der Stelle hatte ich gehofft, dass es schon genügt um sich die Änderungen der Eingänge anzeigen lassen zu können. Also bin ich online gegangen (keinerlei ausgegebene Fehler oder Meldungen) und habe an verschiedene Eingänge Spannung angelegt. Jedoch gab es keinerlei Änderung bei den Eingangsvariablen.
Deswegen würde ich jetzt gerne wissen, ob ich den Baustein einfach nicht richtig verstanden habe oder ob ich versäumt habe, etwas grundlegendes zu tun.
Eine Sache ist mir nur aufgefallen:
Wenn ich online bin und das Programm läuft, dann werden mir meine eingestellten Werte in Codesys korrekt angezeigt. Logge ich mich aber direkt auf dem Raspi ein und überprüfe im Terminal, wie es um die MCPs steht, sehe ich etwas anderes.
Lediglich der Baustein mit der Adresse 0x20 (bzw. 16#20) hat Werte aus Codesys übernommen. Jedoch nicht die Werte, die ich am Baustein angegeben habe, sondern die Werte, die in der Bibliothek des MCP23017 als Standardwerte angegeben sind.
Die übrigen Bausteine weisen sogar nur die Werte auf, die sie standardmäßig nach einem Power-On-Reset aufweisen. Es wurden also gar keine Werte übergeben.
Deswegen hatte ich auch versucht, die Bibliothek zu bearbeiten. Allerdings habe ich keine Möglichkeit gefunden, dies zu tun (Feature-Sets gibt es in Codesys V3.5 SP7 ja scheinbar nicht mehr).
Muss ich die Bibliothek überhaupt bearbeiten oder ist das gar nicht nötig? Falls es nötig ist, wie mache ich das?
Im Prinzip möchte ich es einfach nur schaffen, die Eingänge auszulesen und in Abhängigkeit vom Eingangsbild entsprechende Ausgänge zu schalten. Das restliche Programm an sich wird recht simpel, da ich wahrscheinlich nur AND- bzw. OR-Bausteine brauchen werde.
Ich entschuldige mich für den Roman und hoffe auf eure Hilfe.
Vielen Dank im Voraus und schöne Grüße
Vanuatu
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
du solltest nicht zusätzlich Instanzen anlegen von den FB's die du im Gerätebaum angelegt hast.
Diese Instanzen werden von CODESYS implizit (Global) angelegt.
D.h also in deinem Projekt das "gelb markierte" rauslöschen und dann auf beim Aufruf in deinem den Namen aus dem Gerätebaum verwenden.
Grüße
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Vielen Dank für die Hilfe. Jetzt funktioniert es, wie gedacht.
Daran sieht man meine Unerfahrenheit, dass ich unbeabsichtigt und unbemerkt Instanzen der FBs eingefügt habe.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Guten Tag zusammen,
ich fürchte, ich scheitere im Moment an meiner eigenen Unfähigkeit und der Tatsache, dass ich mit Codesys und SPS im allgemeinen noch nicht viele Erfahrungen sammeln konnte.
Zur Zeit versuche ich in Codesys V3.5 SP7 auf meinem RasPi2 (Codesys Control for Raspberry Pi 3.5.7.10 ist auf dem Pi drauf und das Package 2.2.0.2 auf dem Rechner) ein Programm zur Überwachung und Steuerung der Ein- und Ausgänge von 5 MCP23017 Portexpandern zu realisieren (Port A alles Eingänge, Port B alles Ausgänge).
Dazu habe ich mir die Bibliothek und die Gerätebeschreibung für den MCP23017 aus dem englisch sprachigen Codesys-Forum geholt und installiert und folgenden Gerätebaum erstellt
Im Programm habe ich dann für jeden MCP einen FUP-Baustein mit folgenden Angaben eingefügt
Geforderte Variablen, die ich mir trotz hier im Forum gefundener Hinweise nicht erklären konnte, habe ich einfach so definiert, wie es für mich einen Sinn ergeben hat
An der Stelle hatte ich gehofft, dass es schon genügt um sich die Änderungen der Eingänge anzeigen lassen zu können. Also bin ich online gegangen (keinerlei ausgegebene Fehler oder Meldungen) und habe an verschiedene Eingänge Spannung angelegt. Jedoch gab es keinerlei Änderung bei den Eingangsvariablen.
Deswegen würde ich jetzt gerne wissen, ob ich den Baustein einfach nicht richtig verstanden habe oder ob ich versäumt habe, etwas grundlegendes zu tun.
Eine Sache ist mir nur aufgefallen:
Wenn ich online bin und das Programm läuft, dann werden mir meine eingestellten Werte in Codesys korrekt angezeigt. Logge ich mich aber direkt auf dem Raspi ein und überprüfe im Terminal, wie es um die MCPs steht, sehe ich etwas anderes.
Lediglich der Baustein mit der Adresse 0x20 (bzw. 16#20) hat Werte aus Codesys übernommen. Jedoch nicht die Werte, die ich am Baustein angegeben habe, sondern die Werte, die in der Bibliothek des MCP23017 als Standardwerte angegeben sind.
Die übrigen Bausteine weisen sogar nur die Werte auf, die sie standardmäßig nach einem Power-On-Reset aufweisen. Es wurden also gar keine Werte übergeben.
Deswegen hatte ich auch versucht, die Bibliothek zu bearbeiten. Allerdings habe ich keine Möglichkeit gefunden, dies zu tun (Feature-Sets gibt es in Codesys V3.5 SP7 ja scheinbar nicht mehr).
Muss ich die Bibliothek überhaupt bearbeiten oder ist das gar nicht nötig? Falls es nötig ist, wie mache ich das?
Im Prinzip möchte ich es einfach nur schaffen, die Eingänge auszulesen und in Abhängigkeit vom Eingangsbild entsprechende Ausgänge zu schalten. Das restliche Programm an sich wird recht simpel, da ich wahrscheinlich nur AND- bzw. OR-Bausteine brauchen werde.
Ich entschuldige mich für den Roman und hoffe auf eure Hilfe.
Vielen Dank im Voraus und schöne Grüße
Vanuatu
Hallo Vanuatu,
du solltest nicht zusätzlich Instanzen anlegen von den FB's die du im Gerätebaum angelegt hast.
Diese Instanzen werden von CODESYS implizit (Global) angelegt.
D.h also in deinem Projekt das "gelb markierte" rauslöschen und dann auf beim Aufruf in deinem den Namen aus dem Gerätebaum verwenden.
Grüße
Edwin
Vielen Dank für die Hilfe. Jetzt funktioniert es, wie gedacht.
Daran sieht man meine Unerfahrenheit, dass ich unbeabsichtigt und unbemerkt Instanzen der FBs eingefügt habe.