Einbindung von externen Daten in TwinCAT 3

Paddi299

Level-1
Beiträge
21
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

für mein Projekt brauche ich die Möglichkeit externe Daten in meinen Programmcode einzuarbeiten. Dies soll auf zwei Ebenen geschehen. Zuerst möchte ich die wahrscheinlich einfachere Methode wählen und Daten innerhalb der Projektmappe zwischen den verschiedenen SPS-Projekten teilen. Der Screenshot sollte das verdeutlichen. Unter SPS gibt es ja für jeden Eintrag einen eigenen Ordner mit globalen Variablen. Daraus schließe ich, dass ich von mir genutzte Variablen auf eine bestimmte Art exportieren oder zur Nutzung für andere Programmteile freigeben muss.

Leider bringe ich noch kaum Erfahrung mit SPS Programmierung mit. Wenn es also irgendwelche Grundlagen gibt, die hierfür unbedingt verstanden werden müssen, wäre ich um Hinweise darauf ebenfalls froh.

In einem weiteren Schritt geht es darum Daten von außerhalb der Projektmappe einzubinden. Es gibt ein Hausnetzwerk und es wird viel mit OPC UA gearbeitet. Diese Daten würde ich auch gerne anzapfen um sie in meinem Code zu verwenden.

Meine Fragen beziehen sich also auf die generelle Methodik das anzugehen, welche Art von Schnittstelle hier notwendig ist etc.
Falls das zwei komplett verschiedene Vorgehensweisen sind, wäre es wohl sinnvoll sich in diesem Thread erstmal auf den ersten Schritt innerhlab der Projektmappe zu beziehen.

Vielen Dank für jeden Tipp
Screenshot 2021-02-11 083711.jpg
 
für mein Projekt brauche ich die Möglichkeit externe Daten in meinen Programmcode einzuarbeiten. Dies soll auf zwei Ebenen geschehen. Zuerst möchte ich die wahrscheinlich einfachere Methode wählen und Daten innerhalb der Projektmappe zwischen den verschiedenen SPS-Projekten teilen. Der Screenshot sollte das verdeutlichen. Unter SPS gibt es ja für jeden Eintrag einen eigenen Ordner mit globalen Variablen. Daraus schließe ich, dass ich von mir genutzte Variablen auf eine bestimmte Art exportieren oder zur Nutzung für andere Programmteile freigeben muss.
Die Ordner sind ein kann, man kann sie nutzen, muss es aber nicht und man kann auch seine eigene Ordnerstruktur anlegen. Bezüglich Deiner Vermutung was die globalen Variablen angeht liegst Du falsch. Eigentlich heißt es in Kurzform GVL was für "Globale Variablen Liste" steht. Dies sind Listen mit Variablen die von allen POEs innerhalb eines SPS-Knotens genutzt werden können (und von ein paar anderen Elementen, z.B. der VISU, auch) und hier beginnt Dein Problem, denn das geht nicht über SPS-Knoten hinweg. Dafür könntest Du z.B. Netzwerkvariablen nutzen, da sich Deine SPS-Knoten aber die Hardware teilen weiß ich nicht, ob das so geht, weil die SPS ja Sender und Empfänger in einem ist. Die andere Möglichkeit wäre OPC UA, hier bietet TC3 entsprechende Bibliotheken.
Bei der Gelegenheit, warum möchtest Du in einer Projektmappe mehrere SPS-Knoten haben?
Leider bringe ich noch kaum Erfahrung mit SPS Programmierung mit. Wenn es also irgendwelche Grundlagen gibt, die hierfür unbedingt verstanden werden müssen, wäre ich um Hinweise darauf ebenfalls froh.
Da würde ich Dir das Infosys von Beckhoff empfehlen, was Du Dir am besten auch als offline Variante installieren solltest. Und das eine oder andere Beispielprojekt.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie Oliver schon sagte gibt es keine SPS-übergreifende Daten.
Du kannst aber natürlich Daten zwischen SPSen austauschen. Dafür gibt es die verschiedensten Mechanismen je nach Anforderung (Als EA-Daten zwischen zwei SPSen sodass sie jeden Zyklus ausgetauscht werden oder aber per expliziten Read und/oder Write (ADS oder OPC-UA oder ...).


Ich persönlich würde einen identischen Ansatz wählen für Inter-SPS und dann OPC-UA und zwar in der Form von RPC-Methoden. Die kann man sowohl aus OPC-UA (solange es dein Client unterstützt) als auch aus der SPS heraus antriggern.

So ich dich aber verstehe hast du ein 1 zu n Verknüpfung als auch n zu 1. Wie sieht aber dein Interlock-aus wenn mehrere Quellen auf eine Senke schreiben??
Ach ja: TwinCAT schreibt/liest per eine ADS-Befehl "atomisch", d.h. konsistent auch wenn du eine Struktur hast.

Guga
 
Zurück
Oben