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

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

Thema: Auf Datentypen eines Datenbaustein zugreifen

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

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich möchte gerne aus einem Datenbaustein mit einem FB oder einem SCL Code auf die Datentypen in einem DB zugreifen, ist das möglich.
    Zitieren Zitieren Auf Datentypen eines Datenbaustein zugreifen  

  2. #2
    Registriert seit
    12.03.2011
    Ort
    Erzgebirge
    Beiträge
    247
    Danke
    77
    Erhielt 29 Danke für 27 Beiträge

    Standard

    Es gibt eigentlich fast keine Einschränkungen. Du kannst aus jedem Programmbaustein auf jeden Datenbaustein zugreifen.

    z.b.

    U DB100.DBX5.3

    L DB50.DBD0

    Man sollte aber nicht aus einem Programmbaustein auf einen Instanzdatenbaustein zugreifen, der nicht zu diesem gehört. Das geht auch - ist aber gemein.

    oder meinst du etwas anderes?

    Datentypen sind fest deffiniert oder du deffinierst selbst welche in einem UDT.

    Gruß
    Holger

  3. #3
    sprang-y ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    29.04.2013
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Nein das habe ich nicht gemeint. Für die Aufrufe muss ich muss ich den Datentyp wissen.

    L DB100.DBX3.3

    Ich möcht eine Struktur an den FB anparametrieren und dann aus dieser die Datentypen auslesen.
    Also erster Daten Typ wäre dann ein DINT , zweiter Daten Typ ein String usw. (Beispiel unten)
    TYPE "ArtikeldatenStruct"
    VERSION : 0.1

    STRUCT
    Fertigungsauftrag : STRUCT
    diMaterialNr : DINT ; //Fauf Materialnr. (z.B. 00094981)
    sBezeichnung : STRING [30 ]; //Fauf Bezeichnung (z.B. FAZ II 10/10)
    Komponenten : STRUCT
    diClipMatNr : DINT ;
    END_STRUCT ;
    END_STRUCT ;
    END_STRUCT ;
    END_TYPE

    ist etwas schwer zu umschreiben hoffe man versteht das jetzt einigermaßen.

  4. #4
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von sprang-y Beitrag anzeigen
    Ich möcht eine Struktur an den FB anparametrieren und dann aus dieser die Datentypen auslesen.
    Also erster Daten Typ wäre dann ein DINT , zweiter Daten Typ ein String usw.
    Nein, du kannst nicht unterschiedliche Datentypen von einem Struct automatisch erkennen.
    Einzige Möglichkeit die ich sehe
    Du beginnst jeden neuen Datentyp mit einer Kennung zb:
    Neue Kennung beginnt:
    Int -999 nächstes Datenwort Int mit von dir definierten Kennung:
    1 = Bool
    2 = Byte
    3 = Int
    ...
    Dann erst beginnt der eigentliche Struct
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  5. #5
    Registriert seit
    15.12.2007
    Beiträge
    712
    Danke
    84
    Erhielt 105 Danke für 94 Beiträge

    Standard

    Was ist denn der Hintergrund der Frage?
    Hätte noch nie einen Fall gehabt wo ich sowas mal hätte brauchen können / haben müssen.

  6. Folgender Benutzer sagt Danke zu Astralavista für den nützlichen Beitrag:

    ducati (06.03.2014)

  7. #6
    Registriert seit
    09.08.2006
    Beiträge
    3.626
    Danke
    911
    Erhielt 656 Danke für 542 Beiträge

    Standard

    Zitat Zitat von Astralavista Beitrag anzeigen
    Was ist denn der Hintergrund der Frage?
    Hätte noch nie einen Fall gehabt wo ich sowas mal hätte brauchen können / haben müssen.
    Jo, wenn ich irgendwelche Daten in der SPS verarbeiten will, muss ich auch wissen, was das für Daten sind, bzw. welche Daten und Formate in dem Struct drinstecken... wenn Du nicht weisst, ob das nen BOOL, BYTE, WORD, DWORD, ist kannst Du Garnichts auslesen. Das mit der Kennung macht ja nur Sinn, um evtl. bei gleicher Länge zwischen DWORD, DINT, REAL zu unterscheiden.

    oder hab ich auch was falsch verstanden?

    gruß.

  8. #7
    sprang-y ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    29.04.2013
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ich habe zwei definierte Strukturen einmal eine in einer SQL Datenbank die ich mit dem SQL4Automation Tool abfrage und Daten in eine S7 Steurung erhalte. Die selbe Stuktur habe ich im DB in meiner S7.

    QuellDaten (SQL) EmpfangsDaten (S7)

    Jetzt bekomme ich die Daten von dem SQL4Automation Tool allerdins als Nullterminierte Byte Srings. Diese muss ich nun mit einem Variablen Progamm, an das ich lediglich die Struktur meines DB´s übergeben will jeweils in den Richtigen Datentyp wandeln und dann in das Richtige Fach des DB´s schieben.

    Somit muss ich bei einer Änderung nur die beiden Strukturen anpassen und der Rest erledigt der FB.

  9. #8
    Registriert seit
    09.08.2006
    Beiträge
    3.626
    Danke
    911
    Erhielt 656 Danke für 542 Beiträge

    Standard

    Zitat Zitat von sprang-y Beitrag anzeigen
    Somit muss ich bei einer Änderung nur die beiden Strukturen anpassen und der Rest erledigt der FB.
    Irgendjemand hatte hier schonmal so ne komische Idee... Selbst wenn man das irgendwie hinkriegen würde, sehe ich das "komische Programmierweise" an.

    Vielleicht helfen Die UDTs. Wenn Du das clever anstellst, musst Du bei Änderungen nur an einer Stelle, im UDT, ändern.

    Gruß.

  10. #9
    Registriert seit
    06.10.2003
    Beiträge
    3.408
    Danke
    449
    Erhielt 504 Danke für 407 Beiträge

    Standard

    Was sind denn "Nullterminierte Byte Srings"? Einfach nur Bytes, jedoch schon im richtgen Format, oder ASCI-Zeichen, die du entsprechend in REAL, INT usw. wandeln musst?

    Wenn ersteres zutrifft, und du den ganzen Empfang in deinen DB kopierst, dann hast du doch schon deine Datentypen.
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  11. #10
    sprang-y ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    29.04.2013
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Das werde ich auch machen ich rufe ein UDT in einem FB auf in dem UDT codiere ich byteweise die Struktur meines Empfansfaches.

    B#16#01 -> Bool
    B#16#02 -> Byte
    B#16#03 -> Char
    .....

Ähnliche Themen

  1. Auf mehrere Elemente eines ARRAY per FC zugreifen
    Von bentrup9405 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 13.04.2013, 17:26
  2. SCL: Auf Bits eines Word zugreifen.
    Von Aksels im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 28.10.2011, 17:10
  3. Antworten: 4
    Letzter Beitrag: 28.08.2007, 11:02
  4. Inhalt eines Datenbaustein auf 0 vergleichen
    Von norman im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 07.03.2007, 21:24
  5. Zugreifen auf 4 Bit eines Eingangsworts
    Von Anonymous im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 16.01.2006, 10:28

Lesezeichen

Berechtigungen

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