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

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 33

Thema: Arbeiten mit Array

  1. #11
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.227
    Danke
    534
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Code:
     L     "DB_Betriebsdaten".Daten_Aktuell.Datum     // L     DB100.DBW   10
     L     "DB_Betriebsdaten".Daten_Aktuell.Zeit      // L     DB100.DBD   12
     L     "DB_Betriebsdaten".Daten_Aktuell.BSTD1     // L     DB100.DBD   16
    Datentypen wie z.Bsp. String oder Date_and_Time (zusammengestzte Datentypen) kann man nicht komplett mit Ladebefehlen umkopieren. Man kann sie als IN/OUT/INOUT an FC/FB antragen. Man kann sie Byte-/Word-/Doppelwortweise oder mit dem SFC20 (Blk_Move) umkopieren.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  2. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    slma (06.07.2007)

  3. #12
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    mehr lade und transferbefehle gibt es nicht.
    mehr als ein dword kannst du nicht direkt tranferieren/adressieren.

    für 'datenblöcke' die mehr als 4byte haben nimmst du entweder die sfc20 oder nimmst einfach mehrere einzeltransfers.

    z.b. date_and_time das sind 6byte.
    entweder mit sfc20 und angabe der anfangsadresse
    q: P#DB1.DBX 0.0 BYTE 6
    z: P#DB2.DBX 10.0 BYTE 6
    oder so
    l db1.dbd0
    t db2.dbd10
    l db1.dbw4
    t db2.dbw14

    nochmal zu verständnis.
    ein udt enthält nur die struktur wie dein db später aussehen wird.

    edit: warum bin ich heute eigentlich so langsam mit dem schreiben ???
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  4. Folgender Benutzer sagt Danke zu volker für den nützlichen Beitrag:

    slma (06.07.2007)

  5. #13
    slma ist offline Benutzer
    Themenstarter
    Registriert seit
    04.07.2007
    Beiträge
    82
    Danke
    20
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von volker Beitrag anzeigen
    mehr lade und transferbefehle gibt es nicht.
    mehr als ein dword kannst du nicht direkt tranferieren/adressieren.

    für 'datenblöcke' die mehr als 4byte haben nimmst du entweder die sfc20 oder nimmst einfach mehrere einzeltransfers.

    z.b. date_and_time das sind 6byte.
    entweder mit sfc20 und angabe der anfangsadresse
    q: P#DB1.DBX 0.0 BYTE 6
    z: P#DB2.DBX 10.0 BYTE 6
    oder so
    l db1.dbd0
    t db2.dbd10
    l db1.dbw4
    t db2.dbw14

    nochmal zu verständnis.
    ein udt enthält nur die struktur wie dein db später aussehen wird.

    edit: warum bin ich heute eigentlich so langsam mit dem schreiben ???
    ok danke vielmals!

    Dann ist mir noch unklar wie ich in Kalles Beispielprogramm auf die Variable Zeit zugreifen, z.B. mit einem Ladebefehl??
    Könnte mir da jemand den AWL-Code posten mit der richtigen Adresse (wie in seinem Programm vorgegeben) ??

    Noch eine letzte frage:
    Wenn ich eine Variable im DB als BOOL definiere, kann ich auf dieses einzelne Bit zugreifen? Wenn ja, wie sieht da der Ladebefehl aus (mit Beispielwerten) ?

    mfg
    Geändert von slma (06.07.2007 um 07:53 Uhr)

  6. #14
    Registriert seit
    25.08.2006
    Beiträge
    247
    Danke
    36
    Erhielt 64 Danke für 58 Beiträge

    Standard

    U DB100.DBX20.3 <-- Datenbaustein 100, Datenwort 20, Bit 3
    = M 100.0

    Pylades

  7. #15
    slma ist offline Benutzer
    Themenstarter
    Registriert seit
    04.07.2007
    Beiträge
    82
    Danke
    20
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von pylades Beitrag anzeigen
    U DB100.DBX20.3 <-- Datenbaustein 100, Datenwort 20, Bit 3
    = M 100.0

    Pylades
    OK das ist schonmal hilfreich...
    bezieht sich aber leider nicht auf das Bsp. von Kalle wo die Werte im DB100 "Ringpuffer" Array sind, dieses Array ist verbunden mit UDT1 und aus diesem UDT möchte ich ein Bit/Byte/Word/Dword laden.

    wie sieht dann die Adressierung aus??

    mfg

  8. #16
    Registriert seit
    25.08.2006
    Beiträge
    247
    Danke
    36
    Erhielt 64 Danke für 58 Beiträge

    Standard

    Zitat Zitat von slma Beitrag anzeigen
    OK das ist schonmal hilfreich...
    bezieht sich aber leider nicht auf das Bsp. von Kalle wo die Werte im DB100 "Ringpuffer" Array sind, dieses Array ist verbunden mit UDT1 und aus diesem UDT möchte ich ein Bit/Byte/Word/Dword laden.

    wie sieht dann die Adressierung aus??

    mfg
    Aus einem UDT kann man nichts laden, weil der UTD nur die Struktur vorgibt:

    TYPE UDT 100
    VERSION : 1.0


    STRUCT
    Datum : DATE ;
    Zeit : TIME ;
    BSTD1 : DINT ;
    BSTD2 : DINT ;
    BSTD3 : DINT ;
    GesZ : DINT ;
    END_STRUCT ;
    END_TYPE
    Und hier:

    L "DB_Betriebsdaten".Daten_Aktuell.Datum // L DB100.DBW 10
    L "DB_Betriebsdaten".Daten_Aktuell.Zeit // L DB100.DBD 12
    L "DB_Betriebsdaten".Daten_Aktuell.BSTD1 // L DB100.DBD 16
    hat Ralle schon geschrieben wie auf Word und DWord zugegriffen wird.
    Bit und Byte sind in der Struktur nicht enthalten.

    Pylades

  9. Folgender Benutzer sagt Danke zu pylades für den nützlichen Beitrag:

    slma (06.07.2007)

  10. #17
    slma ist offline Benutzer
    Themenstarter
    Registriert seit
    04.07.2007
    Beiträge
    82
    Danke
    20
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von pylades Beitrag anzeigen
    Aus einem UDT kann man nichts laden, weil der UTD nur die Struktur vorgibt:

    Und hier:

    hat Ralle schon geschrieben wie auf Word und DWord zugegriffen wird.
    Bit und Byte sind in der Struktur nicht enthalten.

    Pylades
    he das ist sehr gut! DANKE!!! hat mir wirklich geholfen!

    Aber eine Frage habe ich trotzdem noch...Ich möchte die daten_aktuell sagen wir in das Ringpuffer-Array schreiben. Wie führe ich diese Anweisung durch? Wie muss das Array definiert sein? als ARRAY OF UDT oder nur ARRAY ? die größe bei mir wäre [1..40]...
    Muss ich hier beachten dass daten_aktuell 6 Einträge hat oder muss ich dazu keine Angabe machen?

    Wäre toll wenn ihr mir noch einmal helfen könntet!!!

  11. #18
    Registriert seit
    25.08.2006
    Beiträge
    247
    Danke
    36
    Erhielt 64 Danke für 58 Beiträge

    Standard

    Hier mal ein Beispiel mit Bit,Byte,Word,DWord als AWL-Quelle

    Pylades
    Angehängte Dateien Angehängte Dateien

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

    slma (06.07.2007)

  13. #19
    Registriert seit
    25.08.2006
    Beiträge
    247
    Danke
    36
    Erhielt 64 Danke für 58 Beiträge

    Standard

    Daten_Aktuell und Ringpuffer haben ja die gleiche Struktur, deshalb
    als ARRAY OF UDT 100 deklarieren. Um die Anzahl der Einträge brauchst Du Dir dann keinen Kopf mehr machen.

    Das eintragen der aktuellen Daten in den Ringpuffer würde ich mit dem SFC 20 (Blk_Move) machen. Siehe --> http://www.sps-forum.de/showthread.php?t=12923

    Pylades
    Geändert von pylades (06.07.2007 um 09:19 Uhr)

  14. Folgender Benutzer sagt Danke zu pylades für den nützlichen Beitrag:

    slma (06.07.2007)

  15. #20
    slma ist offline Benutzer
    Themenstarter
    Registriert seit
    04.07.2007
    Beiträge
    82
    Danke
    20
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke, jetzt ist mir das auch klar!

    vorerst keine weiteren fragen

    Danke nochmal!

Ähnliche Themen

  1. Antworten: 18
    Letzter Beitrag: 21.12.2016, 17:03
  2. Arbeiten mit Protool
    Von jas im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 08.09.2006, 14:52
  3. Arbeiten mit Adressregister
    Von psum im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 17.03.2006, 13:45
  4. Bool-Array in Byte-Array
    Von Techniker im Forum Sonstige Steuerungen
    Antworten: 10
    Letzter Beitrag: 13.01.2006, 19:12
  5. arbeiten mit FC 105 ?
    Von olitheis im Forum Simatic
    Antworten: 45
    Letzter Beitrag: 30.07.2005, 11:48

Lesezeichen

Berechtigungen

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