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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Pointer auf Instanzdbdaten...

  1. #1
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.746
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,


    Ich habe einen fc zur kommunikation mit einer siwarexbaugruppe geschrieben.

    diesen möchte ich nun durch einen fb erstezen.

    nun bruache ich aber am sfc59 einen pointer auf einen 5 byte großen datenbereich.
    diesen hatte ich vorher so gemacht:
    P#DB4.DBX34.0 BYTE 5

    nun, wie kann ich diesen pointer auf meinen instanz db zeigen lassen??
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren Pointer auf Instanzdbdaten...  

  2. #2
    Registriert seit
    30.08.2003
    Beiträge
    2.196
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    Hallo,

    ich würde sagen du deklarierst eine Variable ANY. Mit L DINO bekommst du die Nr des aktuellen Instanz-DB. Den Pointer auf den Datenbereich kriegst du mit L P##Daten. Dann die Daten für den ANY zusammenstellen und müsste gehen... Vielleicht gehts aber auch schon wenn du P#DIX34.0 BYTE 5 ranschreibst. Ich würde versuchen alles symbolisch zu machen.


    MfG
    André Räppel
    Zitieren Zitieren Pointer  

  3. #3
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.746
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    alles symbolisch geht leider nicht, da ich halt einen 5 byte großen datensatz aus der siwarex lesen muss!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren alles symbolisch...  

  4. #4
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.746
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    p#dix34.0 byte 5 kann man eingeben, denke das das dann auch funktioniert!

    danke...
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren danke...  

  5. #5
    Registriert seit
    27.08.2004
    Ort
    Bei Bremen
    Beiträge
    648
    Danke
    11
    Erhielt 12 Danke für 10 Beiträge

    Standard

    Stimmt wird funktionieren.

    Das Problem hatte ich vor kurzen auch und mir ist auch nur diese Lösung eingefallen.

    Nicht sehr schön aber funktioniert . . . .
    Gruß
    Heinz

  6. #6
    Registriert seit
    21.09.2004
    Beiträge
    92
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo, ich habe im Moment das gleiche Problem wie oben beschrieben:

    beim Aufruf des sfc 82 möchte er einen ANY-Parameter:
    Code:
          CALL  "CREA_DBL"
           REQ      :=
           LOW_LIMIT:=
           UP_LIMIT :=
           COUNT    :=
           ATTRIB   :=
           SRCBLK   :=p#dix34.0 byte 5
           RET_VAL  :=
           BUSY     :=
           DB_NUM   :=
    dieser wird auch angenommen, jedoch bekomme ich einen Fehler bei ret_val!

    wenn ich ganz normal P#db100.dbx 32.0 byte 5 schreibe macht er das was ich will!

    Was kann ich tun?

    Vielen dank
    MFG Küffel

  7. #7
    Registriert seit
    23.11.2004
    Beiträge
    347
    Danke
    2
    Erhielt 28 Danke für 28 Beiträge

    Standard

    Warum schreibst Du statt
    p#dix34.0 byte 5 nicht
    p#dBx34.0 byte 5 ?

    Gruß
    raika

  8. #8
    Registriert seit
    06.10.2003
    Beiträge
    3.414
    Danke
    451
    Erhielt 506 Danke für 408 Beiträge

    Standard

    Hallo Jochen,

    in Instanz-DBs direkt reinschreiben ist irgendwie nicht so schön. Warum legst du diese Daten nicht in einem globalen DB ab? Und einen Pointer auf diese Daten als Parameter an deinen FB.


    Gruss, Onkel

  9. #9
    Registriert seit
    21.09.2004
    Beiträge
    92
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Raika,

    ich schreibe DIX weil ich in den Instanz-DB dieses FB's schreiben will!
    Es macht aber keinen Unterschied, ich kann auch zuerst den DB noch mal öffnen und mit DBX arbeiten. Der fehler bleibt der gleiche!

    @Onkel

    Ich glaube Jochens Problem war abgeschlossen, ich habe diesen Beitrag über die Suche gefunden und wollte das Problem noch mal aufgreifen.

  10. #10
    Registriert seit
    28.04.2004
    Beiträge
    33
    Danke
    4
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich lege die Struktur der Siwarex-Datensätze im statischen Bereich des Instanz-DB im jeweiligen Datenformat an.
    z.B.

    Für Datensätze 31/32:
    ActDatas.Brutto (INT)
    ActDatas.Status (BYTE)
    ActDatas.UpdateCounter (BYTE)
    ActDatas.Digits (WORD)
    ActDatas.AsyncErr (WORD)
    ActDatas.SyncErr (WORD)

    Im SFC59 schreibst Du nur noch RECORD:=#ActDatas

Ähnliche Themen

  1. Pointer und Co
    Von mkd im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 31.07.2008, 14:30
  2. SCL: Pointer
    Von dinner4one im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 06.07.2008, 18:07
  3. Pointer in SCL ?
    Von AndreK im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 27.04.2008, 21:24
  4. DB und Pointer
    Von PhilippL im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 12.09.2007, 07:02
  5. VKE und Pointer im FC...
    Von halorenzen im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 23.07.2004, 13:16

Lesezeichen

Berechtigungen

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