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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 23

Thema: schönes Programmieren - was passt in einen Zyklus?

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    So hier die Quelle mit FB und dem DB.
    Ganz fertig ist's noch nicht, werde noch die schleifen mit LOOP machen, aber sonst glaube (hoffe) ich passt's.

    Jetzt bin ich aber schon gespannt wie niederschmetternd das Resultat wird .
    Angehängte Dateien Angehängte Dateien

  2. #12
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.191
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Ich habe mir Dein Programm nicht angesehen, doch es gibt auch die Möglichkeit, am Ende des Jahres statt Werte kopieren einfach den Aufzeichnungs-DB zu wechseln.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

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

    Standard

    Nochmals, in diesem Fall ist die Zeit eh kein Problem!
    Es geht mir eher grundlegend um die Programmierung, ich bin ja nur ein Gelegenheitsbastler, habe eigentlich mehr mit Fehlersuche als mit dem schreiben von Programmen zu tun und schreibe nur ab und zu ein paar Ergänzungen. Und will es hald so gut als möglich machen.

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

    Standard

    @PN/DP
    Stimmt, ist ein ganz anderer Ansatz.
    Ich kopiere die Werte sowieso nur innerhalb des DB um, könnte somit auch einfach die Adresse jedes 2te Jahr mit einem Offset berechnen.

  5. #15
    Registriert seit
    18.09.2004
    Ort
    Münsterland/NRW
    Beiträge
    4.718
    Danke
    729
    Erhielt 1.158 Danke für 969 Beiträge

    Standard

    Zitat Zitat von LittleJack86 Beitrag anzeigen
    Nochmals, in diesem Fall ist die Zeit eh kein Problem!
    ....
    Falls die Zeit kein Problem ist, mache es doch so wie PN/DP und schone deine Ressourcen
    Zitat Zitat von LittleJack86 Beitrag anzeigen
    Also NEIN, eigentlich ist es kein Problem.
    Dennoch versuche ich alles eher Ressourcen schonend zu programmieren.
    (Bekomme ich eh manchmal Kopfschmerzen davon , mache mir schon immer sehr viele Gedanken über den Code) ....

  6. #16
    Registriert seit
    09.04.2008
    Beiträge
    42
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    hast du dir das Programm auch angesehen?
    Würde mich schon sehr interessieren wie die Meinung dazu ist

  7. #17
    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

    beim überfliegen sind mir folgende stellen als unschön aufgefallen

    Code:
    *
    //Monat gestern
          L     LB     9                    //Monatsbyte aus dem Datum von gestern
          BTI                               //BCD-Wert in Integer wandeln
          T     #Monat_b                    //Wert im temporären Variablenbereich speichern
    
    //Tag gestern
          L     LB    10                    //Tagesbyte aus dem Datum von gestern
          BTI                               //BCD-Wert in Integer wandeln
          T     #Tag_b
    Code:
    *
          L     DBB    0                    //Erstes Byte im Format Date_And_Time ist das Jahr im HEX-Format
          L     LB     0                    //Aktuelles Jahr
          ==I   
          SPB   M010                        //Datenbaustein gültig und aktuell
    Code:
    *
    //Date_And_Time in DB schreiben
          L     LD     0
          T     DBD    0
          L     LD     4
          T     DBD    4
    ebenso: ist es notwendig für jeden wert die uhrzeit a) extra zu holen und b) auch noch zu zerlegen? ... gibt doch nur unhübsche verschiebungen in den Milisekunden...

    wenn du schon hardcodiert auf irgendwelche zellen in einem datenbaustein zugreifst, dann mach es doch qualifiziert und symbolisch... bsp. hier

    Code:
    *
          L     DBW 3032                    //Datum des max.Wertes
          T     #MaxDat                     //in Ausgangsvariable schreiben
          L     DBD 3034                    //Maximalwer
          T     #MaxValue                   //in Ausgangsvariable schreiben
    der gesamteindruck: ambitioniert aber im wesentlichen gestückelt. es läßt sich kein einheitlicher fluß erkennen ... pluspunkte gibt es für die kommentierung, die in den meisten teilen vorbildlich bis übermotiviert durchgeführt wurde.
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

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

    Standard

    @vierlagig
    erstmal DANKE für's anschauen.

    Könntest du die störenden Punkte genauer beschreiben?
    Also wegen dem dauernden lesen und zerlegen der Dat-Time Werte, ist auf jeden Fall ein guter Einwand.
    Aber wie besser machen?
    Das Datum und die Uhrzeit brauche ich aber schon alleine wegen den Statuswerten, das Zerlegen der Uhrzeit könnte ich natürlich abhängig von ??? ...z.B. nur der Stunde machen?

    Was meinst du bei den ersten drei Codes welche du eingefügt hast? ...wegen symbolisch Adressieren?

  9. #19
    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

    ja, wegen symbolisch adressieren.
    zugriff auf L, LB, LW und LD ist alles andere als schön.

    mir fallen spontan drei vier möglichkeiten ein, wie man das mit dem zeit zerlegen und speichern lösen könnte

    vom globalen db über eingebettete funktionen die nur einmal im zyklus ausgeführt werden aber trotzdem immer einen wert zurückgeben ... da gibt es ein paar zwischenstufen auch mit multiinstanzen und multiinstanzen und UC ... die frage sollte ja "nur" als denkanstoß dienen
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Morgen!

    ...na gut, bezüglich symbolischer Adr. ist ja kein Problem, aber wie ich z.B. LB anders löse um aus dem D&T-Format die Bytes heraus zu heben
    Und ja, eigentlich habe ich am Beginn des Themas etwas anderes erwartet, bin aber sehr interessiert wie ich es denn besser machen könnte, ich will ja was lernen!
    Wie gesagt symbolisch ist kein Problem, aber dann fällt mir leider nichts mehr ein. Und wenn du dir die Zeit nimmst und mir etwas beibringst wäre ich auf jeden fall dankbar darüber

    Lg
    Florian

Ähnliche Themen

  1. Zuweisung einen Zyklus lang aktiv?
    Von anne im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 30.06.2011, 10:15
  2. Antworten: 5
    Letzter Beitrag: 18.08.2009, 14:11
  3. Impuls für einen Zyklus alle 15min
    Von webinspirit im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 13.05.2009, 19:16
  4. Antworten: 71
    Letzter Beitrag: 06.04.2008, 16:18
  5. Eingangsflankenwechsel für nur einen Zyklus
    Von mark11 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 24.09.2007, 23:28

Lesezeichen

Berechtigungen

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