libnodave und SoftPLC

bike

Level-1
Beiträge
6.464
Reaktionspunkte
795
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

die Idee mit einer freien Bibliotek finde genial und freue mich, dass es so etwas gibt.
Wenn möglich würde/werde ich helfen diese weiter zu entwickeln.

Jetzt zu meinem Problem:
Wie kann ich aus einer SoftPLC Daten für eine Visualiserung auslesen.
Mit IBHNet und Adresse 127.0.0.1 geht nicht.
Mit S7Online kann ich die PLC starten und stoppen, wenn ich versuche daten zu schreiben kommt ein Fehler -128, beim lesen kommt die Meldung keine Verbindung.

Kann mir jeman einen Tipp geben wo ich ansetzen kann?
Gibt es irgendwo eine Beschreibung der Fehlernummern?

Das Ziel diese Projektes soll sein eine Visualisierung unabhängig von der Hardware zu entwickeln.
Als Entwicklungsumgebung nutze ich zur Zeit Delphi, Lazarus ist für die Weiterentwicklung vorgesehen.

Danke für Tiipps und Hinweise


Bike
 
Zuletzt bearbeitet:
Welche SoftPLC? Siemens geht nicht über normale Schnittstellen. Die haben eine propietäre Schnittstelle zu s7online. Die SoftSPS von IBH geht auch über TCP/IP. Sie kann einen CPx43 emulieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die PLC ist eine 416 von IBH.
Leider geht die Emulation über CPx43 nicht.
Ich habe den Treiber integriert in SoftPLC.
Ich habe sowohl mit der IP 127.0.0.1 als auch mit fester IP es versucht.

Das Versuchsprogramm von Delphi sagt "keine Verbindung"
Steuern kann ich die PLC, nur Daten kann ich nicht schreiben/lesen


bike
 
Die PLC ist eine 416 von IBH.
Leider geht die Emulation über CPx43 nicht.
Ich habe den Treiber integriert in SoftPLC.
Ich habe sowohl mit der IP 127.0.0.1 als auch mit fester IP es versucht.
Das Versuchsprogramm von Delphi sagt "keine Verbindung"
Steuern kann ich die PLC, nur Daten kann ich nicht schreiben/lesen
bike
1. Verwende bitte testISO_TCP.exe. Zu Delphi-Programmen (deine eigenen oder die mitgelieferte Komponente) kann ich wenig sagen.
2. Was heißt " Steuern kann ich die PLC"?
Mittels libnodave?
Wenn ja, aber "nur Daten kann ich nicht schreiben/lesen": Die Daten müssen auch da sein (Datenbausteine muß man erst anlegen). Deshalb lesen meine Testprogramme immer auch Merker von niedrigen Adressen, die sind ja immer da.
3. Eventuell meinst du mit "Steuern kann ich die PLC", und, mittels libnodave mal als bejaht angenommen, gar nicht die CPU? Wenn Rack/Slot nicht die CPU sondern den CP ansprechen, kommt auch eine Verbindung zustande.
4. Was meinst du mit "steuern"? In Siemens Step7 bezeichnet "steuern" das Schreiben von Werten vom PG aus...oder meinst du start/run umschalten?
Ob man einen CP start/run umschalten kann, habe ich gerade nicht im Kopf. Daten zum schreiben/lesen hat er nicht.
 
Ich kenne die SoftSPS von IBH nicht, aber mit der von Deltalogic hatte ich das mal getestet, und sowohl libnodave als auch die Delphi-Demoapplikation liefen auf Anhieb und problemlos. Die Kommunikation lief über den emulierten CP auf die eingestelle IP-Adresse, und das richtige Protokoll ist in dem Fall ISo_Over_TCP.

Gruß Axel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo und guten Morgen,

Danke für die schnelle Antworten.:-D
Ich habe das kompilierte Delphi Beispiel verwendet. Da erscheint die Meldung keine Verbindung

2. Was heißt " Steuern kann ich die PLC"?
Mittels libnodave?
Ja, mit libnodave. Ich kann die PLC in Stop und run setzen.

3. Eventuell meinst du mit "Steuern kann ich die PLC", und, mittels libnodave mal als bejaht angenommen, gar nicht die CPU? Wenn Rack/Slot nicht die CPU sondern den CP ansprechen, kommt auch eine Verbindung zustande.

Ich kann doch bei einer SoftPLC keine Slot ansprechen, sondern nur die Steuerung.

Ich werde den Hinweis als Protokoll ISo_Over_TCP zu verwenden noch weiter austesten.
Im debugmodus, werde ich dann mehr Informationen bekommen.
Die Ergebnisse werde ich dann hier reinstellen.

Danke

Danke

bike
 
Hallo und guten Morgen,

also ich habe jetzt so weiter getestet und festgestellt, dass die SoftPLC nicht den richtigen Status zurückgibt. Das heisst z.B. die Angabe der Zykluszeit stimmt nicht. Dies ist aber auch bei dem Simatic Manger so, also kein Fehler der Bibliothek, sondern eher eine Eigenheit der SoftPLC.
Das Schreiben und lesen von einzelnen Merkern und DB funktioniert mit ISOoverIP.
Auch kann mit dem Delphi Beispiel aus der PLC gelesen und geschrieben werden, obschon angezeigt wird: keine Verbindung.

Ein Danke die Entwickler dieser Bibliotekt.



bike
 
NoDaveRead

haloo,,
ich habe auch die Schwierigkeiten, um Datei von SPS mit Libnodave auszulesen.
dafür, hab ich ein Gelesenen-programm geschrieben, aber das Ergebnis war nicht ganz richtig.
hat jemand vllt. eine IDEE um das Problemm zu lösen?

wayan
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ganz klar ersichtlich, der Fehler steckt in Zeile 42.

Und unbedingt ein Handtuch einpacken ... :ROFLMAO: :ROFLMAO: :ROFLMAO:


Gruß Axel

PS: Anders ausgedrückt: Mehr Infos, sonst können wir nicht helfen ! :rolleyes:
 
Wenn Du auf die Soft SPS von IBH zugreifen wills, so nimm doch einfach die Mitgeliferte PLC32.dll.

Code:
{ =========================================================================== }
{                        P L C 3 2 . P A S                                    }
{                                                                             }
{  Name        : PLC32.PAS                                                    }
{  Autor       : Thomas Seip, IBH softec GmbH                                 }
{                Daniel Trautmann, IBH softec GmbH                            }
{  Erstellt    : 29.01.1998                                                   }
{  Version     : 2.06                                                         }
{  Datum       : 24.05.2006                                                   }
{                                                                             }
{  Aenderungen : Datum        Kommentar                                       }
{                                                                             }
{                                                                             }
{  Beschreibung                                                               }
{  ------------                                                               }
{                                                                             }
{  DLL-Schnittstelle zur S5-Realtime-SPS S5-PLC43  (NT) und S5-PLC45  (NT).   }
{  DLL-Schnittstelle zur S7-Realtime-SPS S7-PLC315 (NT) und S7-PLC416 (NT).   }
{                                                                             }
{  Erzeugt mit Borland Delphi 4.0 (32-Bit)                                    }
{                                                                             }
{ =========================================================================== }



{ *************************************************************************** }
{                       Funktionen zur Datenuebertragung                      }
{ *************************************************************************** }

{  R e a d V a l:
   Liest einen Wert von der SPS.
   Parameter:  typ:      'E' = Eingang
                         'A' = Ausgang
                         'M' = Merker
                         'S' = S-Merker (nur S5 !)
                         'Z' = Zaehler     nur 16-Bit-Zugriff
                         'T' = Zeit        nur 16-Bit-Zugriff
                         '?' = Absolut  (nur S5 !)
                         'D' = Datenwort oder Datendoppelwort (abhaengig von size)
                               auf Wortadresse (S5 Kompatibel) 
                         'R' = Datenbyte rechts   (nur S5 !)
                         'L' = Datenbyte links    (nur S5 !)
                         'B' = Datenbit,-byte,-wort,-doppelwort (abhaengig von size)
                               auf Byteadresse (S7 Kompatibel, nur S7 !)
                         'P' = P_Parameter (nur S7 ab Version 3 !)
               nr:       Adresse
               DBNr:     Datenbaustein Nummer, (S5: wenn DX, dann DBNr>255), nur 'D', 'L', 'R', 'B'
               size:     Anzahl der Bits:  0..7 = Bit Nr 0..7, nur 'E', 'A', 'M', 'S', 'D', 'B'
                                           8    = 1 Byte
                                           16   = 1 Wort
                                           32   = 1 Doppelwort
               val:      Gelesener Wert.

               Rückgabe: 0, wenn Fehler.
}

Wenn Du hilfe brauchst, melde Dich. Bin ab Montag wieder ON (Hoffentlich :D)
 
Zurück
Oben