Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 21

Thema: mit libnodave auf symbolische Adressen in einer S7-1200 zugreifen

  1. #1
    Registriert seit
    06.12.2013
    Beiträge
    17
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    eine Frage an die Experten in diesem Forum

    Gibt es eine Möglichlichkeit mit libnodave auf symbolisch adressierte Bereich in einer S7-1200er- Steuerung zuzugreifen?
    Ich habe gerade das Problem Daten aus der o.g. Steuerung in einer dotnet- Anwendung anzeigen zu müssen.
    Ich habe es schon mit libnodave probiert, allerdings ist mir nicht klar welche Argumente ich übergeben müsste?
    Falls es mit libnodave nicht funktioniert, kennt jemand eine Library die für eine symbolische Adressierung eingesetzt werden kann? Sie darf für diese Funktionaliät ruhig ein paar Euro kosten!

    Dank Euch für die Antworten

    yogi
    Zitieren Zitieren mit libnodave auf symbolische Adressen in einer S7-1200 zugreifen  

  2. #2
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Libnodave kann es nicht. Das kann meines Wissens bis jetzt nur AG-Link von Deltalogic.
    Alternativ kannst du in der SPS einen Datenbaustein anlegen, bei dem du den "optimierten Datenzugriff" abwählst und diesen zum Datenaustausch nutzen.

  3. Folgender Benutzer sagt Danke zu Zottel für den nützlichen Beitrag:

    yogi (07.12.2013)

  4. #3
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Hi,
    zum jetzigen Zeitpunkt funktioniert es mit libnodave nicht, du kannst nur auf nicht-optimierte DBs zugreifen.

    Prinzipiell lässt sich das aber relativ einfach um die Funktionen erweitern. Ich hab bei mir zu Hause eine libnodave Version mit der ich auch symbolische Variablen aus einer S7-1200 lesen kann. Das meiste bringt libnodave dafür sogar schon mit, das sind vlt. 50 Zeilen extra Programmcode.

    Der Hauptnachteil ist aber dass du für diese Adressierungsart Informationen aus dem TIA-Portal Projekt benötigst, die das Programm dir nicht freiwillig zur Verfügung stellt.
    Jochen Kühners connection library kann aber teilweise TIA-Projekte einlesen, sodass man an die Informationen herankommt.
    Man weiß aber noch nicht zu 100% wann sich diese Zahlenwerte die für den Zugriff notwendig sind nach einer Programmänderung in der 1200er ändern. Bei der Absolutadressierung kann man das sofort sehen wenn sich etwas verschiebt, bzw. der Programmierer hat die volle Kontrolle. Dei der symbolischen Adressierung musst du theoretisch die generierten Zahlen vergleichen und mit deiner eigenen Visu jedes mal abgleichen.

    Das Problem hat man aber auch bei der integrierten TIA Visu, der sagt dir auch nicht ob sich da etwas geändert hat. Du merkst es nur wenn du über die bisherigen Zahlen keinen Zugriff mehr bekommst.

  5. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    yogi (07.12.2013)

  6. #4
    yogi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    06.12.2013
    Beiträge
    17
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Erst mal Danke für Eure Antworten. So habe ich es auch vermutet.
    Leider habe ich keinen Einfluss auf die Programmierung der SPS, in meinem Fall sind die Daten symbolisch addressiert.

    @Thomas_v2.1 wäre es möglich, dass Du die Programmerweiterung zur Verfügung stellst, sodass ich es einmal ausprobieren könnte? Das wäre echt toll.

    Warum wir aber TIA bräuchten habe ich nicht ganz verstanden
    Ich hätte es mir so vorgestellt, dass ich mit Libnodave o.ä. beim abfragen oder schreiben anstatt z.B. Merker1DBB1 den symbolischen Namen wie "Eingang_Notaus5" übergeben könnte. Oder ist da schon meine Theorie falsch.

    Ich weiss: Fragen über Fragen......

    Gruß yogi

  7. #5
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Ich hab in meinen fork der libnodave auch das lesen der symbolischen variablen eingebaut, aber mangels 1200er Cpu noch nie getestet!!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  8. #6
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von Jochen Kühner Beitrag anzeigen
    Ich hab in meinen fork der libnodave auch das lesen der symbolischen variablen eingebaut, aber mangels 1200er Cpu noch nie getestet!!
    Hi Jochen,
    die Anfrage könnte passen, aber libnodave könnte mit der Antwort nichts anfangen weil nicht alle möglichen Size-Type Angaben ausgewertet werden.
    Wenn du eine Integer-Variable symbolisch aus einer 1200 liest, kommt als Size-Type 5 zurück womit libnodave momentan nichts anfangen kann. Um die Länge auf die Anzahl in Bytes zu normieren, müssen die fehlenden Werte noch ergänzt werden. Die Normierung ist auch noch mehrfach im Code von libnodave vorhanden, man muss ein paar mehr Stellen anfassen.

  9. #7
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Es fehlen in libnodave nur zwei Size-type Angaben, 5 und 7. Zumindest in der Funktion daveExecReadRequest:
    Code:
    		if (q[1]==4) {
    		    len>>=3;	/* len is in bits, adjust */
    		} else if (q[1]==5) {			/* Fehlenden Size-Type INTEGER ergänzt */
    		    len>>=3;	/* len is in bits, adjust */
    		} else if (q[1]==7) {			/* Fehlenden Size-Type REAL ergänzt */
    		    /* len is already in bytes, ok */
    		} else if (q[1]==9) {
    		    /* len is already in bytes, ok */
    		} else if (q[1]==3) {
    		    /* len is in bits, but there is a byte per result bit, ok */
    		} else {
    		    if (daveDebug & daveDebugPDU)
    			LOG2("fixme: what to do with data type %d?\n",q[1]);
    		}
    Etwas unpraktisch bei der symbolischen Adressierung ist, dass es Symbole gibt deren Daten nicht in einer PDU übertragen werden können. Z.B. ein 254 Zeichen String bei einer PDU von 240 Bytes.
    Dazu wird dann dem Symbol etwas hinzugefügt, nämlich die Startadresse und die Länge der Daten im Symbol. Um einen 254 Zeichen-String zu lesen, werden dann in PDU 1 ab Adresse 0 die ersten 222 Bytes gelesen, und in PDU 2 dann ab 222 die restlichen 34 Bytes.

    Eigentlich kann man das nur sinnvoll in eine Kommunikationsbibliothek integrieren wenn folgende Informationen vorliegen:
    - Datenbereich (E, A, M, ...) bzw. DB und DB-Nummer
    - LID (bzw. Sub-LIDs bei verschachtelten Strukturen) aus dem TIA Projekt
    - Symbol CRC aus dem TIA Projekt (um sich diese selber zu errechnen muss man das TIA-Portal disassemblieren, ist eigentlich nicht erlaubt)
    - Datentyp

  10. #8
    yogi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    06.12.2013
    Beiträge
    17
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Shit, das sieht schlecht aus. Scheint ja ohne die TIA-Daten nicht zu funktionieren.
    Aglink kann lt. Werbung nur die Symboliktabelle aus 300er/400er-Steuerungen auslesen.7

    Ich habe nun im Forum so einige Einträge gelesen, dass es Ansatzpunkte gibt mit libnodave auf symbolische Daten in 1200er/1500er-SPS zuzugereifen, allerdings keine Test-SPS zur Verfügung steht.

    Ich könnte bis Ende Januar eine 1200er und eine 1500er-SPS zur Verfügung stellen. Wenn jemand Interesse hätte, könnte ich diese ins Privatnetzwerk einbinden und einen Zugriff per VPN ermöglichen. So könnte zwar keine Performance getestet werden, aber zumindest der generelle Zugriff.
    Hat jemand Interesse, oder ist das unnötig?

    Gruß yogi.

  11. #9
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Die technische Seite ist nicht das Problem. Ich habs mit einer 1200er am Laufen. Ob das bei der 1500er auch so funktioniert weiß ich nicht, hatte so eine noch nicht in Händen, bzw. konnte noch nicht sehen wie dort die Daten ausgetauscht werden. Hier im Forum gabs mal ein Logfile, da sah das wieder komplett anders aus, aber ich weiß nicht ob das eine Visu oder eine Variablentabelle war.

    Es wäre interessanter wenn du uns einen Anwalt zur Verfügung stellen könntest um die rechtliche Seite definitiv abzuklären

  12. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    yogi (10.12.2013)

  13. #10
    yogi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    06.12.2013
    Beiträge
    17
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Es wäre interessanter wenn du uns einen Anwalt zur Verfügung stellen könntest um die rechtliche Seite definitiv abzuklären
    Ja, den habe ich leider auch nicht, ich bin mir auch nicht im Klaren, wie weit man da gehen darf. Wenn man für den Zugriff TIA auslesen muss, dann wird es wohl zu kompliziert.
    Schade, aber wenn es so ist, dann ist es so. Vielleicht bringt da die Zukunft ja noch was Neues.


    Auf jeden Fall Danke für die Antworten!

    Gruß yogi

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 28.02.2012, 17:57
  2. Antworten: 6
    Letzter Beitrag: 12.04.2011, 10:33
  3. Antworten: 10
    Letzter Beitrag: 26.10.2010, 11:24
  4. Antworten: 0
    Letzter Beitrag: 06.07.2007, 10:26
  5. Antworten: 10
    Letzter Beitrag: 28.09.2004, 08:36

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •