TIA S7-1500 Software Controller + Matlab Runtime

Krumnix

Level-3
Beiträge
1.457
Reaktionspunkte
190
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo.

Würde gerne auf einer Microbox mit einem Software Controller S71500 eine Matlab Runtime laufen lassen.

Da leider der C++ Code-Generator die in Matlab ausgearbeiteten Funktionen nicht übersetzten kann, können wir dies aktuell nur mit einer .exe und der Matlab Runtime umsetzen.

Wie kann ich nun aus Matlab Runtime auf Variablen der S7-1500SC zugreifen? Gibt es dort eine Schnittstelle (angelehnt an das ADS-Interface von Beckhoff z.B.)?

Danke für ein paar Tipps :)
 
Es scheint das Matlab kann OPC DA und/oder OPC UA client sein.
Simatic Net als OPC DA oder OPC UA server wäre ein Weg.
Ob der Software Controller auch ein "CPU interne" OPC UA server hat, wie die S7-1500 Hardware CPUs weis ich nicht. Aber das wäre eventuell auch ein Weg.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
OPC UA geht eigetlich ziemlich gut beim SoftwareController. Inzwischen kann man ja auch Methoden nutzen was für euch sehr Praktisch sein könnte.

Die Geschwindigkeit ist halt ggf. etwas eingeschränkt. Glaube 50ms ist kleinstrer Zyklus bei OPC UA
 
Gibt es da nichts, was LibNoDave oder so von Seiten Siemens erfüllt? ProDave wird ja nicht mehr unterstützt.
 
Wenn ich die Präsentationsfolien von Siemens richtig verstanden habe, wäre meiner Meinung vor allem für einen schnellen Datenaustausch der richtige Weg, die Aufrufe der Matlab-Funktionen in einer eigenen mittels des ODK erstellten dll zu kapseln, und die Funktionen in dieser dll direkt im SPS-Programm aufzurufen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, aber das funktioniert hier leider nicht. Wenn ich die Matlab-DLL erstellen will, kommen Fehler, dass die programmierten Befehle nicht umwandelbar sind.
Daher wird aktuell mit der Runtime EXE gearbeitet.
 
Und zur Kommunikation mit der Runtime gibt es von Matlab keine Api um mit dieser von einer anderen Anwendung zu kommunizieren?

Also:
S7-Programm <-> Eigene DLL mit Schnittstelle zum S7-Programm (ODK) und zu Matlab <-> Matlab Runtime
 
Gibt es da nichts, was LibNoDave oder so von Seiten Siemens erfüllt? ProDave wird ja nicht mehr unterstützt.

Du kannst in Matlab mit loadlibrary z.B. die libnodave.dll, Snap7 oder eine kommerzielle Bibliothek wie von Deltalogic laden und dann die Funktionen verwenden, mit einer älteren Matlab Version (2007 oder so) hatte ich das schon einmal verwendet. Solange der Software Controller noch Put/Get und nicht optimierte DBs, sowie Zugriff auf diese Schnittstelle vom eigenen Rechner aus zulässt wäre das auch ein Weg.

Für eine Real-Time Lösung die möglichst schnell reagieren soll, würde ich aber möglichst wenig Schnittstellen dazwischen haben. OPC würde ich da nur an letzter Stelle einsetzen, da du dort am wenigsten Kontrolle über das Reaktionsverhalten hast.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
S7-Programm <-> Eigene DLL mit Schnittstelle zum S7-Programm (ODK) und zu Matlab <-> Matlab Runtime

Ja, das wäre zwar möglich, stellt aber keine "offizielle" Lösung dar. Im Grunde das Gleiche wie Snap7 oder LibNoDave. Wäre halt schön, wenn Siemens eine DLL anbieten würde, die in Hochsprachen eingepflegt werden könnte und man darüber dann auf die Steuerung zugreifen könnte. So wie es halt LibNoDave kann, aber dann offiziell :)

Vielleicht nutze ich im ersten Schritt mal Snap7 und dann schauen wir mal weiter. Deltalogic ist zwar interessante, aber wenn man hier was kaufen "muss" dann sollte es halt von Siemens kommen oder garnicht :)
 
Zurück
Oben