LibNodave mit Routing usw...

Zuviel Werbung?
-> Hier kostenlos registrieren
GEEEEEEEESCHAAAAAAAAFT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Der Ansatz war schon richtig, fds.rdf darf oder muss ggf sogar = 0 sein!
Ich hatte nur noch das "fds.wfd = fds.rfd" mit deaktiviert, als ich grade eben die Schleife auskommentiert habe.

Es muss also einfach un knapp heissen:

fds.rfd = libnodave.openS7online(S7Online_Accesspoint, CInt(hWnd))
fds.wfd = fds.rfd

... und schon gehts, der Reconnect funzt und die S7Online Adapterparameter sind nach dem Disconnect wieder editierbar.

Vielen Dank vor allem an Jochen Kühner, dessen Wrapper mit Logfunktion hier Licht ins Dunkel gebracht hat.

Viele Grüsse,

bool

Dann haben wir nun endlich dieses problem gelöst... ;-)
 
aktuellste libnodave.net.dll ??

Hallo zusammen.

Hab dasselbe Problem gehabt, welches dann schliesslich in diesem Thread gelöst wurde.
Doch es scheint, dass ich noch eine falsche/alte DLL benutzte.
=> Entwickle in vb.net 2008
=> benutze libnodave.net.dll vom 12.07.2009.

Hier gibts aber den Parameter zur Handle-Angabe noch nicht:

fds.rfd = libnodave.openS7online("S7ONLINE", me.handle)

Wo krieg ich die aktuellste DLL her?

Besten Dank für eure Hilfe
 
absolut Adresse aus symbolischer Adresse ???

Seit einigen Wochen suche ich eine Lösung für folgendes problem:
ich entwickle ein kleines hilfe tool in VB.NET zum schnell-anzeigen von aktuellen steuerungswerten aufgrund von der symbolischen adresse.

Der sps code in unserer firma wird in SCL (step7) geschrieben d.h.wir benutzen symbolische adressierung mit strukturen: z.b.:
MEIN_DB.BEREICH1.VALUE
Gibt es eine möglichkeit, um aus diesem string-Ausdruck die zugehörige absolut adresse zu ermitteln? auf die selbe weise wie es die Variablentabelle tut? Eine funktion, die mir die abs. adresse aufgrund der symb. zurückgibt?

Mittels dieser abs. adresse möchte ich dann über OPC den wert aus der sps lesen und anzeigen...

vielen dank für eure hilfe.
 
Umwandlungsfunktion Simbolisch => Absolut Adresse

Hallo Jochen.

Hab deine Lib(s) bereits heruntergeladen und eine paar Bsp angeschaut - doch leider noch nichts gefunden, was mich weiterbringt.

Hab auch noch das Bsp unter http://s7net.codeplex.com/ angeschaut.
Thema: http://www.sps-forum.de/showthread.php?t=40006
Hier muss aber der Struct von der SPS Welt auch auf Seite Applikation nachgebildet werden, was für meinen Anwendungsbereich zu wenig dynamisch ist.

Suche eine einfache Umwandlungsfunktion von einem STRING (mehrfach verschalteteter struct)
SymbolDB_X.[struct_1].[struct_2].[struct_3]
zur zugehörigen absolut Adresse
DBxxx.DBx yy

Also sowas:
SymbolDB_1000.Modul1.Temp4.Value => DB3826.DBW22

Der Benutzer soll später nicht browsen müssen (Projectfiles.SelectProjectPart.SelectTAG o.ä.), sondern aus einem String den ich vom SCL Code her einlese soll direkt die abs. Adresse und dann der akt. Wert ermittelt werden.

Hat Deine Lib bereits eine ähnliche Funktion?

Besten Dank für die Hilfe und Denkanstösse....

*vde*
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Suche eine einfache Umwandlungsfunktion von einem STRING (mehrfach verschalteteter struct)
SymbolDB_X.[struct_1].[struct_2].[struct_3]
zur zugehörigen absolut Adresse
DBxxx.DBx yy

Also sowas:
SymbolDB_1000.Modul1.Temp4.Value => DB3826.DBW22

So direkt nicht, aber das kannst du damit auf jeden Fall realisieren!

Vielleicht komme Ich morgen dazu dir ein bisschen Beispielcode zu posten!

Aber der Nutzer braucht dazu auf jeden Fall auch das Projektfile, das ist dir klar, oder? Da auf der SPS die Symbolischen Namen nicht gespeichert werden!
 
Code:
Dim searchValue As String
        Dim db As String

        Dim tag As PLCTag
        Dim prj As Step7ProjectV5
        Dim fld As Projectfolders.Step7V5.BlocksOfflineFolder
        Dim blk As S7DataBlock

        searchValue = "SymbolDB_1000.Modul1.Temp4.Value"
        db = searchValue.Split(".")(0)
        searchValue = searchValue.Substring(db.Length + 1)
        prj = New Step7ProjectV5("C:\\Offenau_.s7p", False)

        
        fld = prj.BlocksOfflineFolders(1)

        For Each projectBlockInfo As S7ProjectBlockInfo In fld.readPlcBlocksList()
            If Not projectBlockInfo.SymbolTabelEntry Is Nothing And projectBlockInfo.SymbolTabelEntry.Symbol = db Then
                blk = fld.GetBlock(projectBlockInfo)
            End If
        Next

        If Not blk Is Nothing Then
            For Each s7DataRow As S7DataRow In s7DataRow.GetChildrowsAsList(blk.GetArrayExpandedStructure())
                If s7DataRow.StructuredName = searchValue Then
                    tag = s7DataRow.PlcTag
                End If
            Next
        End If

so ungefähr könnte gehen... ist aber ohne größeres fehlerhandling, etc...

fld = prj.BlocksOfflineFolders(1) musst du natürlich anpassen, oder alle Folder durchlaufen.

Du musst aber die neuste Version meiner Lib nutzen, da die prj.BlocksOfflineFolders Auflistung leider in den alten Versionen nicht gefüllt wurde!

Mfg.
 
Dll ?

Hallo Jochen.

Hört sich vielversprechend an, genial !!!
Habe Code in mein Projekt genommen und getestet - scheitere an Zeile:

fld = prj.BlocksOfflineFolders(1) prj.BlocksOfflineFolders.Count = 0

was offensichtlich mit der nicht-aktuellen DLL zu tun hat.
Kannst du mir noch die DotNetSiemensPLCToolBoxLibrary.dll posten? Hab sie im ZIP File nicht gefunden...

MERCI, Serge
 
Verbindungsabbau-Problem

Hallo Jochen.

Besten Dank für deine Code Hilfe, hab meine Funktion "GetAbsAdressFromSymbolic" zum Laufen gebracht! GENIAL!!!

Hab mittlerweile auch das VisualStudio C# installiert, bin aber eher ein VB Mensch - entwickle auch weiterhin in VB.NET.

Bin aber immer noch am Reconnect-Problem dran.
Ich baue Verbindung auf,
lese Werte,
baue Verbindung ab:

PLCConnect(4, 0, 2)
PLCReadItem(Area.DataBlocks, s1, s2, s3, s4)
PLCDisconnect()


Nach einem Verbindung-Abbau mittels PLCDisconnect() bleibt meine Verbindung trotzdem noch bestehen, wird irgendwie nicht sauber abgebaut.
Jeden falls kann ich immer noch mittels PLCReadItem() Werte lesen ???

Hier noch die 2 Methoden:

Code:
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Private[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Function[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] PLCConnect([/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]ByVal[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] MPIAddress [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]As[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]String[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2], [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Optional[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]ByVal[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] PLCRack [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]As[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Integer[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = 0, [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Optional[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]ByVal[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] PLCSlot [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]As[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Integer[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = 2) [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]As[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Boolean[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] ConnectionOpened [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]As[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Boolean[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] initSuccess [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]As[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Integer[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = 0[/SIZE]
[SIZE=2]fds.rfd = libnodave.openS7online([/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"S7ONLINE"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2])[/SIZE]
[SIZE=2]fds.wfd = fds.rfd[/SIZE]
[SIZE=2]di = [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]New[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] libnodave.daveInterface(fds, [/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"IF1"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2], 0, libnodave.daveProtoS7online, libnodave.daveSpeed187k)[/SIZE]
[SIZE=2]di.setTimeout(1000)[/SIZE]
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] j [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]As[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Integer[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]For[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] j = 0 [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]To[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] 2[/SIZE]
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] (0 = di.initAdapter) [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Then[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2]initSuccess = 1[/SIZE]
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Exit[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]For[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Else[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2]di.disconnectAdapter()[/SIZE]
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]End[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Next[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] initSuccess <> 1 [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Then[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2]ListBox1.Items.Add([/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"Couldn't connect to Adapter!"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2])[/SIZE]
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Exit[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Function[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]End[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2]dc = [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]New[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] libnodave.daveConnection(di, MPIAddress, PLCRack, PLCSlot)[/SIZE]
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] ErrorCode [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]As[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Integer[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = dc.connectPLC()[/SIZE]
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] ErrorCode = 0 [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Then[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2]ListBox1.Items.Add([/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"Connection opened."[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2])[/SIZE]
[SIZE=2]ConnectionOpened = [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]True[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Else[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2]ListBox1.Items.Add([/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"Error opening connection. Check rack & slot."[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] & [/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]" = "[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] & libnodave.daveStrerror(ErrorCode))[/SIZE]
[SIZE=2]ConnectionOpened = [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]False[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]End[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Return[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] ConnectionOpened[/SIZE]
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]End[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Function[/COLOR][/SIZE][/COLOR][/SIZE]


Code:
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Private[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Sub[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] PLCDisconnect()[/SIZE]
[SIZE=2][COLOR=#008000][SIZE=2][COLOR=#008000]'' Verbindung abbauen[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] RetCode [/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]As[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Long[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2]RetCode = dc.disconnectPLC()[/SIZE]
[SIZE=2]RetCode = di.disconnectAdapter()[/SIZE]
[SIZE=2]RetCode = libnodave.closePort(fds.rfd)[/SIZE]
[SIZE=2]RetCode = ListBox1.Items.Add([/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"Disconnected."[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2])[/SIZE]

Und nochwas: Solange ich eine VarTab offen hab und mit dieser online bin, kann ich KEINE Verbindung mehr mit meiner Applikation aufbauen. Erst wenn die VarTab schliesse, kann ich wieder (einmalig) eine Verbindung aufbauen.
Andersrum funktionierts folgendermassen: Kann eine erste Verbindung mit meiner App aufbauen und anschliessend auch VarTab starten + online gehen ??????


Hab folgende Verweise:
DotNetSiemensPLCToolBoxLibrary.dll
ICSharpCode.SharpZipLib.dll
libnodave.net.dll
libnodave.dll ist im \bin\debug\ Ordner vorhanden...

Ist da eine Problem beim Verbindung-Abbau ??? :-(
Eine Idee?
 
Zuletzt bearbeitet:
Wenn du schon meine lib benutzt, warum nutzt du dann nicht auch gleich die Online funktionen der lib? Da kannst du z.b. Direkt das Plctag objekt aus dem datenbaustein von der steuerung lesen lassen und musst dich nicht um den ganzen verbindungs auf/abbbau kümmern!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Problem beim Verbindungsaufbau

Hallo Jochen.

Würde gerne die DotNetSiemensPLCToolBoxLibrary benutzten, wenn ich Verbindung auch aufbauen könnte. Kämpfe noch mit Einstellungen- kann Fehler nicht finden...

Benutzte einen Siemens Adapter "CP5511/CP5512".
Mittels libnodave kann ich eine "S7Online"-Verbindung aufbauen - siehe PLCConnect(MPI=4, Rack=0, Slot=2) im vorherigen Eintrag. Jedoch mit Reconnect Problemen.

Wenn ich jedoch das ganze mit deiner DotNetSiemensPLCToolBoxLibrary versuche, und deinen "Connection Editor" benutzte, kommt keine Verbindung zustande:

Hab folgende Einstellungen im "Connection Editor":
- Protocoll: UseStep7dll
- Zugangspunkt: S7Online
- CPU-Rack: 0
- CPU-Slot: 2
- CPU-MPI: 4

Beim "Verbindung testen" kommt immer die msg "Error: S7Online: Gerät bereits/noch nicht geöffnet" bzw. bei "Verbindung 1 herstellen" kommt Msg "Verbindung zu 'SPS1' konnte nicht hergestellt werden!"

Eine Idee???
Besten Dank.
 
Hallo Jochen.

Würde gerne die DotNetSiemensPLCToolBoxLibrary benutzten, wenn ich Verbindung auch aufbauen könnte. Kämpfe noch mit Einstellungen- kann Fehler nicht finden...

Benutzte einen Siemens Adapter "CP5511/CP5512".
Mittels libnodave kann ich eine "S7Online"-Verbindung aufbauen - siehe PLCConnect(MPI=4, Rack=0, Slot=2) im vorherigen Eintrag. Jedoch mit Reconnect Problemen.

Wenn ich jedoch das ganze mit deiner DotNetSiemensPLCToolBoxLibrary versuche, und deinen "Connection Editor" benutzte, kommt keine Verbindung zustande:

Hab folgende Einstellungen im "Connection Editor":
- Protocoll: UseStep7dll
- Zugangspunkt: S7Online
- CPU-Rack: 0
- CPU-Slot: 2
- CPU-MPI: 4

Beim "Verbindung testen" kommt immer die msg "Error: S7Online: Gerät bereits/noch nicht geöffnet" bzw. bei "Verbindung 1 herstellen" kommt Msg "Verbindung zu 'SPS1' konnte nicht hergestellt werden!"

Eine Idee???
Besten Dank.

Im Moment absolut keine. Ich hab aber Zuhause noch eine CP5511 Karte, werds in den nächsten Tag mal damit probieren und mich dann nochmals melden!
 
Hallo Jochen.

Hab Fehler gefunden: falsche Slot Angabe!
Warum ich aber mittels libnodave trotzdem einen Wert lesen konnte, ist mir nicht klar ?? Jedenfalls funzt die Verbindung mittels "PLCConnect()" jetzt...
Danke trotzdem.

Bin noch an der Funktion "GetAbsAdressFromSymbolic" dran - melde mich evt. nochmals diesbezüglich.

Gruss Sersch
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die Info, so brauch Ich meinen alten CP5511 nicht rauskramen!

Wenn du meine Lib dann auch für die Verbindung verwendest, brauchst du mit GetAbsAdressFromSymbolic ja nicht die Adresse auslesen, sondern nimmst direkt das PLCTag Objekt von der s7DataRow und liest dies mit "ReadValue" oder bei mehreren Tags auf einmal "ReadValues" des "PLCConnection" Objektes ein
 
Hab Fehler gefunden: falsche Slot Angabe!
Warum ich aber mittels libnodave trotzdem einen Wert lesen konnte, ist mir nicht klar ?? Jedenfalls funzt die Verbindung mittels "PLCConnect()" jetzt...
Danke trotzdem.

Soweit Ich es noch in Erinnerung habe, wird in der orginalen LibNoDave bei S7Online Rack/Slot gar nicht berücksichtigt, das hab Ich glaub mal eingebaut! Deshalb hat's bei dir Funktioniert (mit der orginalen)
 
Zurück
Oben