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

Ergebnis 1 bis 7 von 7

Thema: S7-1200 DB aufschlagen

  1. #1
    Registriert seit
    18.05.2011
    Beiträge
    7
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich komme aus der Riege "S7-300" und tippe eigentlich alles in AWL. Quäle mich derzeit jedoch gezwungenermaßen in FUP mit der Erstellung eines FB's für eine S7-1212C herum.
    Ich habe schon hier im Forum und bei Siemens gesucht, jedoch nicht wirklich etwas gefunden, das mir weiterhilft.

    Meine Frage: Wie kann ich der 1200 eine solche Anweisung beibringen:

    "#Pointer 2" ist ein DINT (TEMP), "#Schmier" ein INT (TEMP)


    AUF #SpeicherDB
    L DBW [#Pointer2]
    T #Schmier



    Es fängt bei mir leider schon bei der Deklaration der Schnittstelle an. Die 1200 mag "IN" in dieser Form ja nicht verstehen:
    Name // Datentyp
    SpeicherDB // Block_DB

    Ich freue mich auf eine Antwort.

    LG Björn
    Zitieren Zitieren S7-1200 DB aufschlagen  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Bei der 1200er kann man doch endlich in FUP auf Arrays mittels variablen Index (z.B. #ArrarVariable[#index] ) zugreifen. Eigentlich sollten damit 95% der üblichen AWL Pointer-Schmierereien überflüssig werden. Man muss die Daten nur vorher passend strukturieren.
    Auf was für Daten soll den mit dem Pointer / Block_DB zugegriffen werden?

  3. #3
    kornman10 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    18.05.2011
    Beiträge
    7
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Thomas,
    im Grunde ist es ein FB, der bisher auf einer 314-2DP gelaufen ist. Der FB bildet über einen Zeitraum X aus zyklisch erfassten Aktualwerten einen Mittelwert. Der FB ist zwar nicht besonders elegant geschrieben, aber er funzt (Sorry).
    Auf der 314 bekomme ich aber nun gewaltig Speicherplatzprobleme und da kam mir in den Sinn, dass eine (über einen 343-1Lean) angebundene 1212C dieser Aufgabe doch gewachsen sein sollte und die 300er etwas entspannt.
    Hier ist mal der ursprüngliche FB:

    Schnittstelle:
    IN
    WertEingabe // INT Der Aktualwert von einem skalierten Analogeingang im Bereich 0...20000
    Fuellen // Bool Hier steht ein Taktmerker dran
    SpeicherDB // Block_DB hier halt der GlobalDB "DB26" (siehe unten)

    OUT
    Mittelwert // INT <= mehr will ich ja gar nicht haben!

    STAT
    Flanke // BOOL

    TEMP
    Pointer1 // DINT
    Pointer2 // DINT
    Groesse_ges // INT
    Schmier // INT
    Mittelwertrech // DINT
    Schmier2 // DINT




    AWL

    L 1000
    T #Groesse_ges

    UN #Fuellen
    R #Flanke

    U #Fuellen
    UN #Flanke
    SPB ein
    BEA
    ein: S #Flanke
    L L#0
    T #Mittelwert
    T #Mittelwertrech

    L #WertEingabe
    AUF #SpeicherDB
    T DBW 0

    loop: L #Groesse_ges
    SLW 3
    T #Pointer1

    L #Groesse_ges
    L 2
    -I
    SLW 3
    T #Pointer2


    AUF #SpeicherDB
    L DBW [#Pointer2]
    T #Schmier


    AUF #SpeicherDB
    L #Schmier
    T DBW [#Pointer1]


    L #Groesse_ges
    L 2
    -I
    T #Groesse_ges

    L #Schmier
    ITD
    L #Mittelwertrech
    +D
    T #Mittelwertrech

    L #Groesse_ges
    L 2
    >=I
    SPB loop


    L #Mittelwertrech
    L L#500
    /D
    T #Mittelwert


    ________________________________________

    Der Global DB "SpeicherDB" hat den Aufbau

    +0.0 ARRAYMITTEL // ARRAY[0..1002]
    *2.0 INT
    =2006.0 END_STRUCT
    ________________________________________

    Wie schon gesagt, man hätte das alles "schöner" lösen können, aber in AWL tippt sich alles so leicht runter und weil es damals so geklappt hat, war ich ja zufrieden.

    Gruß Björn


    Geändert von kornman10 (16.08.2012 um 22:55 Uhr) Grund: Sprünge hervorgehoben :-)

  4. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Warum machst du nicht einfach eine Funktion mit dem Parameter "data : array[0..1002] of int"?

    Mit dem neuen FUP lässt sich das dann doch elegant lösen. Wenn du das TIA Portal hast, kannst du das noch einfacher in SCL schreiben, dann wirds ein 4-Zeiler.

  5. #5
    kornman10 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    18.05.2011
    Beiträge
    7
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Wenn du das TIA Portal hast, kannst du das noch einfacher in SCL schreiben, dann wirds ein 4-Zeiler.
    Schön zu wissen (dass du das sagst).
    Ja hab TIA V11 SP2.

    Ich hatte mit SCL bisher so gut wie nix am Hut... (wie gesagt: eingefleischter AWL-er)
    Als ich damals das erste mal mit TIA zu tun hatte, war die erste Frage, die ich mir gestellt habe: "Wie oft muss ich hier auf Speichern klicken, bei dieser Stabilität..."
    Aber ich denke (früher oder später) muss ich doch da noch dran.

    Nun ja, diese Mini-Software hier ist zeitnah (Samstag) zu realisieren. Muss dann wohl erst mal weiter basteln.
    Trotzdem Danke.

    Gruß Björn

  6. #6
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Tja was willst du machen, ich bin auch kein TIA Fan. AWL ist nunmal nicht da bei einer 1200er.
    Ist aber auch kein wirklicher Mangel, da 1. das TIA-FUP leistungsfähiger ist als das von Step7, und 2. hat man SCL immer dabei.

  7. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    kornman10 (16.08.2012)

  8. #7
    kornman10 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    18.05.2011
    Beiträge
    7
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Dass die TIA FUP/KOP Editoren leistungsfähiger sind, als die von Step7 5.5 steht ausser Frage. Aber mal ehrlich, wenn ich keine Buchstaben suchen muss, gesunde Finger habe UND! weiss was ich will, bin ich doch in AWL eigentlich immer schneller und auf jeden Fall IMMER flexibler, bevor ich auf alle Beinchen der Verknüpfungen geklickt habe und diese beschriftet habe, sei es KOP oder FUP.
    Unsere Azubis fragen mich auch immer, warum ich nicht in FUP oder KOP programmiere. Die meiner Meinung nach richtigste Antwort ist: Du fährst Roller, ich fahre Auto. Irgendwann, reicht dir der Roller auch nicht mehr oder ist dir zu umständlich! Dann tust du was und fährst Auto!

    Gruß Björn

    P.S.: Ich werde mich wohl an den "Autoführerschein mit Anhänger" (SCL) geben müssen. Sonst strecken die Azubis mir bald die Zunge raus!

Ähnliche Themen

  1. Antworten: 12
    Letzter Beitrag: 15.02.2012, 10:59
  2. Datenaustausch zwischen S7-1200 und S7-1200
    Von baschan im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 09.12.2011, 00:27
  3. S7 1200
    Von redscorpion im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 30.08.2011, 15:57
  4. Antworten: 31
    Letzter Beitrag: 29.10.2010, 09:06
  5. s7-1200
    Von holschin im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 21.06.2010, 11:55

Lesezeichen

Berechtigungen

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