S7-1500 und libnodave oder AGLink?

LowLevelMahn

Well-known member
Beiträge
766
Punkte Reaktionen
90
Zuviel Werbung?
->Hier kostenlos registrieren
Hat einer von den 1500er Beta-Tester schon mal probiert ob libnodave oder AGLink irgendwie mit der Neuen kommunizieren können - oder wurde das Protokoll schon wieder verändert?
 
Zuletzt bearbeitet:

SiemensUser

Active member
Beiträge
35
Punkte Reaktionen
0
Hi,
ich hab's mal probiert. Mit LibNoDave (Testlibrary) kann ich zwar eine Verbindung zur 1500er aufbauen, aber wenn ich z.B. einen Merker lesen will, erscheint die Meldung "Error: context is not supported. Step7 says:Function not implemented or error in telgram."
Scheinbar habe die noch nicht alles in Ihrer Firmware implementiert. ;)

Gibt es noch einen anderen Weg, Merker aus der S7-1500 zu lesen?

Gruß
Gerd
 

Zottel

Well-known member
Beiträge
2.299
Punkte Reaktionen
277
Zuviel Werbung?
->Hier kostenlos registrieren
Ich kenne das TIA-Portal noch nicht, aber so wie ich den Diskussionen hier entnahm, wird in der Regel nur noch symbolisch adressiert.
Fragen:
1) existieren Merker überhaupt noch?
2) existieren sie in einem vorher festgelegten Umfang (wie S7-300/400), oder werden sie erst angelegt, wenn Programm oder Compiler welche benutzen? (DBs der 300/400 müssen ja auch erst irgendwie angelegt werden)
3) kann man absolute Adressen vergeben?
4) gibt es (optional?) eine Liste der Variablen und zugeordneter Adressen (wie MAP-File eines Compilers/Linkers)?

Wenn 1 nein, kann man keine Merker lesen. Versucht es doch mal mit Eingängen.
Sonst versucht es mal mit absoluten Adressen.
Immer hilfreich wäre auch die Ausgabe von testXXX mit der Option -d
 

Jochen Kühner

Well-known member
Beiträge
4.154
Punkte Reaktionen
474
So wie Thomas_V2.1 hier beschriben hat : #65 werden die Merker wohl Symbolisch angesprochen. Ob diese auch noch absolut gehen? Kein Plan. Ich hab in meine ToolBox mal support eingebaut, damit dieser CRC Code ermittelt wird, dafür braucht man aber eine TIA installation (obs mit V12 geht, noch nicht probiert) und man muss ein paar zeilen code auskomentieren (da damit TIA DLLs genutzt werden)

DBs kannst du ja aber wenn es absolut adressierte sind, so auslesen wie früher...
 

Jochen Kühner

Well-known member
Beiträge
4.154
Punkte Reaktionen
474
Zuviel Werbung?
->Hier kostenlos registrieren
Das heißt, dass man in´m SPS-Programm einen absolut adressierten Schnittstellen-DB anlegen kann, den eine Libnodave oder AG-Link-Anwendung wie bisher lesen und schreiben kann?

Bei der 1200er wars so, und so sollts auch bei der 1500er sein!
Wenn wir demnächst unsre 1500er im Gschäft bekommen, werd ich auf jeden Fall mal probieren auch support für die neue Varaiblenaddressierung einzubauen....

Was mich aber Stören würde, wäre, wenn Merker wirklich nur noch Symbolisch gehn, dann kannn man da das lesen nicht mehr optimieren!
 

Lars Weiß

Well-known member
Beiträge
1.196
Punkte Reaktionen
234
Ich frage mich was aus z.B. OPC-Servern werden sollwenn große Datenmengen aus DBs gelesen werden müssen. Vielleicht gibts ja die Möglichkeit einen DB komplett auszulesen.
 

Jochen Kühner

Well-known member
Beiträge
4.154
Punkte Reaktionen
474
Zuviel Werbung?
->Hier kostenlos registrieren
Lesen von S7 1200/1500...

Ich hab in meine Toolbox (http://siemensplctoolboxlib.codeplex.com) mal Lesesupport für die Symbolisch adressierten Variablen eingebaut. Kanns aber nicht testen, da Ich keine 1200er oder 1500er habe. Habs mit dem neusten s7comm Plugin für Wireshark geprüft, sah gut aus: http://www.sps-forum.de/showthread.php/28292-Wireshark-Plugin-für-S7-Protokoll/

Lesen geht dann so:
Code:
 [COLOR=blue]var[/COLOR] tag = [COLOR=blue]new[/COLOR] [COLOR=#2b91af]PLCTag[/COLOR]();
 tag.TagDataType = [COLOR=#2b91af]TagDataType[/COLOR].Word;
 tag.SymbolicAccessKey = [COLOR=#a31515]"8a0e000124134d054000000a"[/COLOR];
 myConn.ReadValue(tag);
 
Zuletzt bearbeitet:

SiemensUser

Active member
Beiträge
35
Punkte Reaktionen
0
also:
Es gibt auch bei der 1500er noch "richtige" Merker.
Ich kann nach wie vor in der Beobachtungstabelle den %MW100 lesen, obwohl dieses Wort gar nicht im Projekt (und in der Variablenliste) vorkommt.

Trotzdem erscheint beim Lesen mit LibNoDave der Fehler "Error: context is not supported. Step7 says:Function not implemented or error in telgram."
Diesen Fehler gibt es übrigens auch, wenn ich eine Adresse aus einem "richtigen" (nicht symbolischen) DB lese.
Es können also mit LibNoDave z.Zt. keine Daten aus der S7-1500 gelesen werden.

Inzwischen habe ich auch eine OPC-SW getestet, die mit AGLink Daten aus Siemens-Steuerungen ausliest. Auch hiermit geht's nicht. Mit der 1200er gibt es keine Probleme.

Gruß
Gerd
 

Mediator

Well-known member
Beiträge
188
Punkte Reaktionen
36
Klingt als ob diese Funktion gesperrt ist. In den CPU - Eigenschaften / Schutz gibt es eine Checkbox zum Freigeben.
 

Jochen Kühner

Well-known member
Beiträge
4.154
Punkte Reaktionen
474
Zuviel Werbung?
->Hier kostenlos registrieren
Kann denn jemand mal das lesen von Symbolischen Varibalen über meine neue Funktion probieren? Ich hab im Moment noch keine 1500er (und auch keine 1200er) würd aber gern wissen obs funzt!
 

Jochen Kühner

Well-known member
Beiträge
4.154
Punkte Reaktionen
474
also:
Es gibt auch bei der 1500er noch "richtige" Merker.
Ich kann nach wie vor in der Beobachtungstabelle den %MW100 lesen, obwohl dieses Wort gar nicht im Projekt (und in der Variablenliste) vorkommt.

Trotzdem erscheint beim Lesen mit LibNoDave der Fehler "Error: context is not supported. Step7 says:Function not implemented or error in telgram."
Diesen Fehler gibt es übrigens auch, wenn ich eine Adresse aus einem "richtigen" (nicht symbolischen) DB lese.
Es können also mit LibNoDave z.Zt. keine Daten aus der S7-1500 gelesen werden.

Inzwischen habe ich auch eine OPC-SW getestet, die mit AGLink Daten aus Siemens-Steuerungen ausliest. Auch hiermit geht's nicht. Mit der 1200er gibt es keine Probleme.

Gruß
Gerd

Kannst du von einem solchen Lesevorgang mal eine Wiresharkaufzeichnung posten?
 

SiemensUser

Active member
Beiträge
35
Punkte Reaktionen
0
Lesen von S7 1200/1500...

Ich hab in meine Toolbox (http://siemensplctoolboxlib.codeplex.com) mal Lesesupport für die Symbolisch adressierten Variablen eingebaut. Kanns aber nicht testen, da Ich keine 1200er oder 1500er habe. Habs mit dem neusten s7comm Plugin für Wireshark geprüft, sah gut aus: http://www.sps-forum.de/showthread.php/28292-Wireshark-Plugin-für-S7-Protokoll/

Lesen geht dann so:
Code:
 [COLOR=blue]var[/COLOR] tag = [COLOR=blue]new[/COLOR] [COLOR=#2b91af]PLCTag[/COLOR]();
 tag.TagDataType = [COLOR=#2b91af]TagDataType[/COLOR].Word;
 tag.SymbolicAccessKey = [COLOR=#a31515]"8a0e000124134d054000000a"[/COLOR];
 myConn.ReadValue(tag);

Ich habs mal mit den symbolischen adressierten Variablen versucht. Hier gibt's den gleichen Fehler, wie beim normalen Lesen.
Hier die entsprechende Wireshark-Datei: Anhang anzeigen WireShark S71500 - SymbolRead.zip

Übrigens: In libnodave.net.cs hast Du in Zeile 1457 noch einen Fehler:
Statt
[DllImport("libnodave_jfkmod.dll", EntryPoint = "daveAddVarToReadRequest")]
sollte hier sicher
[DllImport("libnodave_jfkmod.dll", EntryPoint = "daveAddSymbolVarToReadRequest")]
stehen.

Gruß
Gerd
 

Jochen Kühner

Well-known member
Beiträge
4.154
Punkte Reaktionen
474
Zuviel Werbung?
->Hier kostenlos registrieren
Ich habs mal mit den symbolischen adressierten Variablen versucht. Hier gibt's den gleichen Fehler, wie beim normalen Lesen.
Hier die entsprechende Wireshark-Datei: Anhang anzeigen 20206

Übrigens: In libnodave.net.cs hast Du in Zeile 1457 noch einen Fehler:
Statt
[DllImport("libnodave_jfkmod.dll", EntryPoint = "daveAddVarToReadRequest")]
sollte hier sicher
[DllImport("libnodave_jfkmod.dll", EntryPoint = "daveAddSymbolVarToReadRequest")]
stehen.

Gruß
Gerd


Oh danke, hab Ich gefixt.

So wie das ausschaut scheint die Kommunikation zur 1500er ja ganz anderst zu sein. Zumindest beginnen die Telegramme nach dem ISO Teil nicht mit 0x32 sondern 0x72, und 4 Bytes später kommt 0x32!

Mal schaun ob die daten nach 0x32 was mit den alten Telegrammen zu tun haben...
 

Mediator

Well-known member
Beiträge
188
Punkte Reaktionen
36
@SiemensUser: hast du denn schon überprüft, ob diese Funktion in den CPU Eigenschaften/Schutz freigegeben ist? Wenn nicht, dann wird der Zugriff nicht funktionieren, andernfalls schon!
 

Thomas_v2.1

Well-known member
Beiträge
8.139
Punkte Reaktionen
2.461
Ich habe mit TestLibrary aus der DotNetSiemensPLCToolBoxLibrary eine Wireshark-Aufzeichnung gemacht:
1. Verbindung aufgebaut
2. MW3 gelesen (mit Fehler)
3. Verbindung abgebaut

Hi,
kannst du mal eine kleine Visualisierung anlegen, und damit ein Merkerwort oder auch eine andere Variable aus der 1500 lesen?
Eine Variablentabelle nutzt auch schon bei der S7-300/400 die PG-Dienste und nicht die Variablendienste.
 
Oben