Seit ein paar Tagen versuche ich, die libnodave als Kommunikationsbibliothek zu verwenden, um mit einem S7-1200-PLC von Siemens (CPU 1214C) zu kommunizieren. Mit der libnodave-Bibliothek werden einige Dinge bereitgestellt. Die Delphi-Anwendung funktioniert, die Windows-Exe funktioniert.
Auf dem Vmware läuft Linux und die vorkompilierte Binärdatei von testISO_TCP funktioniert. Sieht so aus, als ob ich es verwenden kann, oder?
daveInterface * di;
daveConnection * dc;
_daveOSserialType fds;
ds.rfd=openSocket(102, "192.168.0.1");
fds.wfd=fds.rfd;
if (fds.rfd>0) {
di =daveNewInterface(fds,"IF1",0, daveProtoISOTCP, daveSpeed187k);
daveSetTimeout(di,5000000);
dc =daveNewConnection(di,0,0,1); // fügen Sie hier Ihr Rack und Slot ein
if (0==daveConnectPLC(dc))
{
printf("Verbunden..\n");
}
}
Aber wenn ich den Quellcode 1:1 in meine IDE (Eclipse) kopiere, erhalte ich folgende Fehlermeldung:
IF1-Fehler in daveConnectPLC() Schritt 1. Wiederholen...IF1-Fehler in daveConnectPLC() Schritt 1. Wiederholen...IF1-Fehler in daveConnectPLC() Schritt 1. Wiederholen...Konnte keine Verbindung zum PLC herstellen. Stellen Sie sicher, dass Sie die Option -2 mit einem CP243 verwenden, aber nicht mit CPs 343 oder 443.
Es scheint, dass ein Fehler beim Verbinden mit dem PLC auftritt. Die folgende Funktion erzeugt diesen Fehler:
DaveConnectPLC(dc)
Beachten Sie, dass Rack und Slot unverändert sind, wenn Sie es mit der ausgeführten Binärdatei in Linux vergleichen!
Kann mir jemand helfen, es auf der Eclipse-IDE zum Laufen zu bringen? Es ist ziemlich seltsam, dass alle ausführbaren/ausführbaren Dateien funktionieren, aber wenn ich es direkt aus der IDE ausführen möchte, funktioniert es nicht.
Vielen Dank im Voraus.