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

Ergebnis 1 bis 9 von 9

Thema: DB Array Any Pointer

  1. #1
    Registriert seit
    14.09.2014
    Beiträge
    42
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi Leute!!

    Bin noch ganz frisch in dem Geschäft, deshalb kenn ich mich noch nicht so aus!!

    Mein Problem:

    Ich will einen Any Pointer Basteln der in einem DB (Array) einen Wert ausließt und in einen anderen DB reischreibt.

    Weiter wird hierfür über das HMI eine Abfragezahl angegeben welche die Array zahl ist.

    Anschließend werden die Daten am HMI angezeigt. (Dies macht mir keine Sorgen)

    Kann mir da wer helfen??

    MFG
    Stefan

    Step7 v5.5 SP4
    Simatic 400
    Geändert von heiling36 (02.10.2014 um 12:37 Uhr)
    Zitieren Zitieren DB Array Any Pointer  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.402 Danke für 2.001 Beiträge

    Standard

    Hallo,
    dafür brauchst du erstmal noch keinen ANY-Pointer (jedenfalls lese ich das aus der Beschreibung so nicht heraus) sondern "nur" das Wissen um die indirekte Adressierung. In dem Link findest du eine gute Beschreibung dazu. Lies dich doch da erstmal ein ...

    Gruß
    Larry

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

    heiling36 (02.10.2014)

  4. #3
    Registriert seit
    14.09.2014
    Beiträge
    42
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke, den Link hab ich vorher schon mal durchgelesen, hab ihn auf meiner Suche schon mal gefunden.

    Tja mein Chef sagt ich muss es mit einem Any Pointer machen, als er dies gestern sagte war das das erstemal das ich den Begriff Any Pointer überhaupt hörte!!

  5. #4
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von heiling36 Beitrag anzeigen
    Tja mein Chef sagt ich muss es mit einem Any Pointer machen, als er dies gestern sagte war das das erstemal das ich den Begriff Any Pointer überhaupt hörte!!
    und natürlich will man ungern schlauer sein als der chef ... aber vielleicht bastelst du dir eine lösung mit "indirekter adressierung" zurecht und fragst dann deinen chef, ob er das mit ANY Pointern meinte - wenn er ja sagt, darfst du weiterhin gern schlauer sein, wenn nein und er weiterhin auf ANY besteht übrigens auch...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  6. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.402 Danke für 2.001 Beiträge

    Standard

    Tja ... wenn dien Chef das so sagt dann mußt du es ggf. auch so machen.
    Dann mußt du dir den ANY-Pointer auf deine Quell-Variable und den auf deine Ziel-Variable zusammenbauen und dann mit Blockmove (SFC20) den Inhalt des Einen auf den Anderen übertragen ... ist ein bißchen "mit Kanonen auf Spatzen schiessen ..." ... aber es ist ja vielleicht auch einen Art Lerneffekt daran gekoppelt ...

    Was hast du denn schon selber dazu geproggt ...?
    Was verstehst du beim ANY-Pointer konkret nicht ?

    Gruß
    Larry

  7. #6
    Registriert seit
    14.09.2014
    Beiträge
    42
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Naja ich hab mal begonnen die AR und den geöffnete DB No auf ne Temp Variable zu speichern, um dann zum schluss diese Daten wieder einzuspeichern.

    Hab mir aus Foren und Simatic Hilfe mal was gebastelt (siehe Anhang)

    Im Grunde is es so das ich 2 Pointer angelegt habe, der eine ließt die Daten aus und überspielt sie auf den anderen, die Variablen sind derzeit noch alles IN Variablen, sprich kann sie von aussen dann Beschreiben. Aber wie gehts nun weiter???

    Aja und natürlich is ein lerneffekt damit verknüpft, hat er auch so gesagt!!

    Interresant wäre auch zu wissen warum diese Adressierung W#16#1002 , was bewirkt die?? hab auch schon in nem Pointer gesehen der war mit DW#16#7FFFF adressiert???????
    Angehängte Grafiken Angehängte Grafiken
    Geändert von heiling36 (02.10.2014 um 13:24 Uhr)

  8. #7
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    W#16#1002 ist die mir bekannte Kennung für einen ANY-Pointer.

    In deinem Programm beschreibst Du 2x hintereinander das Doppelwort 6, einmal mit der DB-Kennung und einmal mit der Anfangsadresse.
    Die must Du vorher verodern.
    Das Grauen lauert in der Zwischenablage !!

  9. #8
    Registriert seit
    14.09.2014
    Beiträge
    42
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Aja stimmt, hab die DB-Kennung mal rausgenommen, brauch ich glaub ich nicht.

    Komm ja mit nem Pointer in den FB rein, dieser Zeigt auf den Anfang des ersten Arrays.
    So nun frag ich mich wie ich weiter tun soll, hab inzwischen wiedermal einiges verändert am Prog!
    Mal zur Grundinfo, 1 Array is 26 Byte lang, das es auszulesen gilt. Das erste mir wichtige startet bei 44.0!
    Spiele jetzt das ganze mal 1 mal durch da ich insgesamt das ganze 3 mal brauche, sich aber nur die adressen ändern.

    Jetzt mal eine Frage, ich habe eine IN Variable als Any deklariert, hier liegt ein Pointer drauf mit der Startadresse meines ersten wichtigen arrays (sprich 44.0)
    Kann ich jetzt diese Variable direkt nutzen, auf einen anderen Pointer kopieren, und diesen dann ausgeben??
    Sprich ich versuche die IN Variable ins AR1 zu laden, hab den Datentyp Wort deklariert, und 13 Wiederholungen eingestellt, bedeutet 26 Byte oder??
    Danach hab ich die Startadresse ausgerechnet über anforderungsnummer mal 26, da ich jetzt mal davon ausgehe das die adresse 0.0 in wahrheit die adresse 44.0 im DB ist!? Ist das korrekt soweit??

    MeinenAnfang sieht man in der Anlage.

    Bin jetzt die 3. Woche in dem Job, deshalb bin ich mir fast sicher das ich irgendwas übersehe!!
    Angehängte Grafiken Angehängte Grafiken

  10. #9
    Registriert seit
    14.09.2014
    Beiträge
    42
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi Leute!!
    Problem gelöst, hab einfach zu kompliziert gedacht!! Der Pointer is eigentlich gar ned so kompliziert wie er aussieht, aber für alle die Anfangs genauso Planlos sind wie ich will ich mal meine Lösung hier reinstellen. Zunächst zur Grundinfo, hab alles in nen Multiinstanz FB geschrieben, an der Stelle wo dieser FB aufgerufen wird hab ich einen Pointer an die IN Variable gelegt, In Variable mit Name iRefPosTyp1 und Typ Any!!

    Im FB steht dann der Code im Anhang, und schon funktioniert die Geschicht.

    Aja bei der Out Variable steht ebenfalls ein Pointer der anzeigt wo im gewünschten DB der Datensatz beginnt!!

    Hoffe ich konnte vielleicht auch mal wen helfen
    Angehängte Grafiken Angehängte Grafiken

Ähnliche Themen

  1. Step 7 Dynamisches Array, Pointer
    Von gout im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 19.09.2013, 09:47
  2. Step 7 Pointer Array
    Von hoelle1985 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 04.07.2013, 17:45
  3. Pointer auf Array - Dereferenzierung
    Von ksc im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 20.12.2011, 10:19
  4. Array in DB schreiben(any-pointer)
    Von Limette im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 28.10.2011, 22:17
  5. Pointer auf Array
    Von Limette im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 27.10.2011, 12:32

Lesezeichen

Berechtigungen

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