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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: Großes WORD selber machen

  1. #11
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.622
    Danke
    377
    Erhielt 799 Danke für 642 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von wonderfulworld Beitrag anzeigen
    Das Array hat halt den Nachteil, dass es nicht so schön zum Debuggen ist. Deshalb sind wir eigentlich schon Fans vom WORD : )
    ??
    Das musst Du tiefer erklären.
    Jesper M. Pedersen

  2. #12
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Ich denke er meint, dass man es in der Online Ansicht aufklappen und scrollen muss ........

  3. #13
    wonderfulworld ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.08.2007
    Beiträge
    112
    Danke
    13
    Erhielt 10 Danke für 8 Beiträge

    Standard

    Genau, dass hab ich gemeint. Das macht echt einen Unterschied. Beim Word sehe ich auf einen Blick was Sache ist. Beim Array darf ich aufklappen. Das Beschreiben von einer ganzen Spur als schlecht oder gut, ist auch ganz einfach Gutmeldung := 65 535 und fertig. Beim Array muss ich dass entweder über eine Schleife machen (beim Monitoring auch wieder nicht sehr schön), oder jedes einzelne Element des Arrays beschreiben. Also, dass sind jetzt mal die Vorteil vom Word, die mir einfallen.

    Gruß wonderfullworld
    Geändert von wonderfulworld (24.06.2014 um 19:03 Uhr)
    Solls was Rechtes sein, oder darfs auch was von Siemens sein?

  4. #14
    wonderfulworld ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.08.2007
    Beiträge
    112
    Danke
    13
    Erhielt 10 Danke für 8 Beiträge

    Standard

    Achso ein weiterer Vorteil ist noch, dass es ressourcenschonender ist. Ein Word verbraucht deutlich weniger Speicher, als ein Array of BOOL. Bei dem jeder Eintrag ins Schieberegister mindestens ein BOOL (sprich 32 Bit, soweit ich das jetzt weiß) kostet.
    Solls was Rechtes sein, oder darfs auch was von Siemens sein?

  5. #15
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.177
    Danke
    922
    Erhielt 3.288 Danke für 2.657 Beiträge

    Standard

    Zitat Zitat von wonderfulworld Beitrag anzeigen
    Das Beschreiben von einer ganzen Spur als schlecht oder gut, ist auch ganz einfach Gutmeldung := 65 535 und fertig. Beim Array muss ich dass entweder über eine Schleife machen (beim Monitoring auch wieder nicht sehr schön), oder jedes einzelne Element des Arrays beschreiben.
    Tja, man muß sich entscheiden, ob man unsauberen quick'n'dirty-Code oder saubere Hochsprache schreiben will. Quick'n'dirty geht meistens nur für eine ganz begrenzte Aufgabe und ist später kaum noch wartbar und erweiterbar.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. #16
    Registriert seit
    26.04.2010
    Beiträge
    292
    Danke
    31
    Erhielt 51 Danke für 50 Beiträge

    Standard

    Hi!

    Also ich sehe da jetzt das konkrete Problem nicht ganz.
    Du kannst doch einen FC oder FB schreiben, der einfach mehrere deiner "Standard-Word-Schiebefunktionen" aneinander kettet.
    (Wenn das letzte Bit "true" ist und ein Takt kommt, wird das folgende Schieberegister mit "true" gefüllt - eigentlich ganz simpel)
    Oder alternativ intern die anderen Vorschläge (Array of Bool) nutzen (mein Favorit, da siehe folgende Variante).

    Für die Diagnose könntest du dann von diesem FC/FB einen String (101010111001001010101010...) ausgeben lassen.
    Das geht dann in der Regel bis zu 254 Zeichen. (Sollte ja erstmal reichen *g*)
    Für die Variante mit geketteten Schiebefuntionen kannst du für die "Gutmeldung" einen Parameter an "IN" vorsehen, mit dem intern alle Teil-Schieberegister mit "65535" beschrieben werden.
    Für die Variante mit dem "Array of Bool" nutzt du einen Schleife für das Setzen der "Gutmeldung".

    1. Vorteil: Du kannst den FC/FB so schreiben, dass er deine bisher verwendeten Schieberegister ersetzt.
    2. Vorteil: Die Visualisierung kann den Diagnose-String ganz einfach in einem Textfeld(Ausgabe) darstellen.

    Das Handling mit intern verwendetem Array ist natürlich für die Ausgabe des Diagnose-String deutlich eleganter, daher würde ich die "Schieberegister-Kacke" verwerfen...


    Gruß,

    Ottmar
    Geändert von Ottmar (24.06.2014 um 21:52 Uhr)

  7. #17
    wonderfulworld ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.08.2007
    Beiträge
    112
    Danke
    13
    Erhielt 10 Danke für 8 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Tja, man muß sich entscheiden, ob man unsauberen quick'n'dirty-Code oder saubere Hochsprache schreiben will. Quick'n'dirty geht meistens nur für eine ganz begrenzte Aufgabe und ist später kaum noch wartbar und erweiterbar.

    Harald
    Nein, ich würde nicht sagen, dass das einunsauberen quick'n'dirty-Code ist. Natürlich ist das akademisch korrekter und am Schreibtisch auch viel schöner, wenn man ein Array of BOOL nimmt. Aber wenn man bedenkt wie kurz die Programmerstellung (wenige Wochen) bei uns im Haus ist und wie lange die Inbetriebnahmezeiten (mehrere Monate bis sehr wenige Jahre), dann versucht man doch alles so zu programmieren, dass es für den Inbetriebnehmer leichter wird, auch wenn es manchmal auf Kosten der Wartbarkeit und Erweiterbarkeit geht. Kennt ihr dieses Dilema nicht? Ich verzichte aus diesem Grund auch häufig auf Schleifen und mache umständlich einen furchtbaren Code, bei dem x-mal hintereinander immer dasselbe macht, weil ich es dann nachher an der Maschine leichter habe. (Bei Dingen, die während der Inbetriebnahme selten angefasst werden, mach ich das natürlich nicht so. )

    Zitat Zitat von Ottmar Beitrag anzeigen
    Hi!

    Also ich sehe da jetzt das konkrete Problem nicht ganz.
    Du kannst doch einen FC oder FB schreiben, der einfach mehrere deiner "Standard-Word-Schiebefunktionen" aneinander kettet.
    (Wenn das letzte Bit "true" ist und ein Takt kommt, wird das folgende Schieberegister mit "true" gefüllt - eigentlich ganz simpel)
    Oder alternativ intern die anderen Vorschläge (Array of Bool) nutzen (mein Favorit, da siehe folgende Variante).

    Für die Diagnose könntest du dann von diesem FC/FB einen String (101010111001001010101010...) ausgeben lassen.
    Das geht dann in der Regel bis zu 254 Zeichen. (Sollte ja erstmal reichen *g*)
    Für die Variante mit geketteten Schiebefuntionen kannst du für die "Gutmeldung" einen Parameter an "IN" vorsehen, mit dem intern alle Teil-Schieberegister mit "65535" beschrieben werden.
    Für die Variante mit dem "Array of Bool" nutzt du einen Schleife für das Setzen der "Gutmeldung".

    1. Vorteil: Du kannst den FC/FB so schreiben, dass er deine bisher verwendeten Schieberegister ersetzt.
    2. Vorteil: Die Visualisierung kann den Diagnose-String ganz einfach in einem Textfeld(Ausgabe) darstellen.

    Das Handling mit intern verwendetem Array ist natürlich für die Ausgabe des Diagnose-String deutlich eleganter, daher würde ich die "Schieberegister-Kacke" verwerfen...


    Gruß,

    Ottmar

    Hi Ottmar,

    vielen Dank für die alternativen Lösungsvorschläge. Du hast natürlich recht, da gibt es kein Problem Alternativen zu finden. Mir ging es aber eigentlich darum, ob es eine Möglichkeit gibt, so weiter zu machen wie bisher. Deshalb hatte ich auch am Anfang garnicht erklärt warum ich so ein großes Word brauche. Ich wollte einfach nur wissen ob man irgendwie noch ein größeres Word selbermachen kann. Was ja soweit ich das jetzt verstanden habe nicht geht. Damit müssen wir wahrscheinlich was neues machen und da kann man auch gerne deine Variante in Betracht ziehen.

    Vielen Dank nochmal für eure Beteiligung

    wonderfulworld
    Solls was Rechtes sein, oder darfs auch was von Siemens sein?

  8. #18
    Registriert seit
    30.08.2005
    Beiträge
    280
    Danke
    41
    Erhielt 96 Danke für 66 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo wonderfulword,

    du hast dir die Antwort zwar schon selber gegeben aber ich kann es nochmal offiziell verkünden:
    es geht nicht.
    Das scheitert schon daran, dass es keine Möglichkeit gibt, Literalwerte > 2^64 zu verwenden, und man kann auch keine
    Operatoren überladen. Also du kannst auf einem selbstdefinierten Datentyp kein + oder SHL oder so definieren.

    Also ohne Änderung gehts nicht. Du musst halt schauen dass du möglichst systematisch die bisherigen Operatoren
    durch Funktionen (besser noch: Methoden eines Funktionsblocks) ersetzt.

    Ich bin im übrigen ganz auf deiner Seite: nichts spricht gegen ein Bitfeld! Das ist viel schneller und verbraucht kaum Speicher.
    Wichtige Eigenschaften, und wenn es der Inbetriebnehmer besser interpretieren kann, das ist doch auch ein Kriterium.
    Dass sich irgendwann die Anforderungen an ein Programm soweit ändern, dass man ein Rework braucht, das passiert doch jeden Tag!
    Bernhard Werner
    3S-Smart Software Solutions (CODESYS)

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

    wonderfulworld (25.06.2014)

Ähnliche Themen

  1. Einen String in ein großes Array of Byte eintragen.
    Von Ralle im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 03.02.2015, 10:16
  2. Antworten: 0
    Letzter Beitrag: 13.05.2014, 14:01
  3. Antworten: 0
    Letzter Beitrag: 30.01.2013, 18:14
  4. Antworten: 0
    Letzter Beitrag: 09.10.2012, 16:29
  5. Großes Problem mit Mitsubishi SC-09 Adapter
    Von revelation19 im Forum Sonstige Steuerungen
    Antworten: 6
    Letzter Beitrag: 05.01.2012, 13:42

Lesezeichen

Berechtigungen

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