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

Ergebnis 1 bis 6 von 6

Thema: Variable Zugriff finden

  1. #1
    Registriert seit
    28.03.2014
    Ort
    Schweiz
    Beiträge
    112
    Danke
    34
    Erhielt 15 Danke für 12 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Zusammen

    In einem nicht von mir gschriebenen Programm möchte ich gerne ein paar Optimierungen übernehmen. Das Problem ist, dass ich bei einer Variable nicht herausfinde, von wo sie beschrieben wird. Anzeigen der Referenzposition ergibt keine Treffer, ebenfalls überprüfte ich alle FBs und FCs welchen den DB aufrufen (die jeweiligen Bausteine fand ich über die Bausteinkonsistenz), ohne Erfolg.
    Anschliessend kopierte ich das ganze Projekte und löschte im kopierten Projekt die Variable und ging den Fehlermeldungen nach, wieder ohne neuen Erkentnisse.
    Ich vermute, dass die Variable via indirekte Adressierung beschrieben wird.
    Hat jemand von Euch noch eine Idee, wie ich den Zugriff herausfinden kann?

    Verwendet wird ein CPU319-3 DP/PN und STEP7 V5.5 + SP2

    EDIT: Via OP wird die Variable wird nicht via OP beschrieben.

    Vielen Dank
    Manseluk
    Geändert von manseluk (26.01.2015 um 08:27 Uhr)
    Zitieren Zitieren Variable Zugriff finden  

  2. #2
    Registriert seit
    01.10.2012
    Beiträge
    203
    Danke
    12
    Erhielt 56 Danke für 36 Beiträge

    Standard

    Das kann mehrere Ursachen haben, kommt die Variable von einer Schnittstelle ( DP/DP Koppler, OPC o.ä.) dann wirst du nur Lesezugriff finden. Wird der Spaß irgendwo indirekt bearbeitet mußt du suchen, am besten nicht nach der Variable sondern nach Bedingungen die da sein müssen um die Stelle zu bearbeiten. Da kommt man meist sehr schnell in die Nähe.
    Es gibt auch Programmierer, die lesen alle Eingänge indirekt und schreiben sie in DBs, zum Schluß wird das dann wieder indirekt auf Ausgänge geschrieben...
    Nüchtern betrachtet war es besoffen besser.

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

    manseluk (26.01.2015)

  4. #3
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Naja ... wenn der Zugriff über einen Pointer erfolgt dann ist es schwierig. Du mußt dann in deinem Programm nach der indirekten Adressierung suchen und schauen, ob es passen könnte.
    Dazu gibt es m.E. keine automatisierte Programm-Unterstüzung ...

    Gruß
    Larry

  5. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    manseluk (26.01.2015)

  6. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.797
    Danke
    144
    Erhielt 1.707 Danke für 1.239 Beiträge

    Standard

    Wenn es ein Datenbaustein ist, kannst du das Programm in Plcsim testen. Dann löschst du den Datenbaustein (oder verkürzt ihn) und alle Fehler-OBs aus der SPS, sodass diese in Stop geht wenn darauf zugegriffen wird. Über die Fehlerstacks kannst du dann nachvollziehen von wo aus die Zugriffe erfolgten.

  7. #5
    Registriert seit
    16.07.2013
    Ort
    Emden
    Beiträge
    63
    Danke
    15
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Eine Möglichkeit, sowas aufzustöbern ist auch, alle Aufrufe der SFC20 Blockmove zu prüfen.(Rechtsklick auf irgendeine Variable -> Gehe zu Verwendungsstelle -> nach SFC20 suchen) Evtl. findest du dort einen Zeiger, der auf deinen Variablenbereich passt.

  8. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ist der DB vielleicht ein Instanz-DB? Dann suche in dem zugehörigen FB.

    Indirekte Zugriffe: suche nach "AUF"-Operationen und nach "["
    Hilfreich ist es, eine AWL-Quelle mit "Operanden (x) Absolut" über viele/alle Programmbausteine (OB, FB, FC) zu generieren und darin zu suchen.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  9. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    manseluk (26.01.2015)

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 16.04.2014, 19:08
  2. TP Vorlagen finden
    Von Servernexus im Forum HMI
    Antworten: 4
    Letzter Beitrag: 19.02.2011, 15:05
  3. Pointer finden..
    Von troeps im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 21.10.2010, 15:33
  4. Aufruf eines DB`s finden
    Von Spud im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 18.08.2008, 12:03
  5. DB Variabel aufrufen
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 10.02.2006, 15:04

Lesezeichen

Berechtigungen

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