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

Seite 3 von 7 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 65

Thema: RANT: Konstrukte bei denen man sich manchmal fragt

  1. #21
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.485
    Danke
    1.141
    Erhielt 1.243 Danke für 974 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von vollmi Beitrag anzeigen
    Ich will nicht auf meinen True und Falsemerker verzichten.
    Von den hab ich mich neulich getrennt.
    Stehen jetzt in einem Global-DB oder werden ggf. im Baustein als statische Varaible deklariert.

    Gruß
    Dieter

  2. #22
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Zitat Zitat von vollmi Beitrag anzeigen
    Ich will nicht auf meinen True und Falsemerker verzichten.
    Stell dir vor, du hast 6 Modi, wie eine Maschine gefahren werden kann. Du brauchst für jeden Modus einen Merker. Und da jeder Modus auch überall Auswirkungen hat, biste dann jedesmal dabei so etwas zu fabrizieren:

    Code:
    IF m1 AND NOT m2 AND NOT m3 AND NOT m4 AND NOT m5 AND NOT m6 THEN
    .....
    END_IF;
    In der Praxis wird die Abfrage der meisten Merker dann aus Bequemlichkeit unterlassen, was eine nette Quelle für Fehler ist:

    Code:
    IF m1 AND NOT m3 AND NOT m4 THEN
    .....
    END_IF;

    Das ist in keiner Sprache vernünftig auszudrücken. Richtig nett wird es denn, wenn du einen der Merker zurücksetzen willst. Nach meiner Erfahrung, wird dass dann überall gemacht und dann nach den verschiedensten Regeln.

    Ich mache das so

    1. Modus festlegen
    Code:
    Manuell = 0
    Manuell mit Joystick = 1
    Auto Vorwärts = 2
    Auto Rückwärt = 3
    Auto Ausgleich = 4
    Auto Ausgleich mit Joystick = 5
    2. Dann kann ich einfach eine Variable oder Merker vom Typ Integer festlegen und brauche mir um das Rücksetzen keine Sorgen zu machen, denn es gibt nur eine Stelle an der ich den Modus ändere

    Code:
    CASE Modus OF
      0: 
           IF  Geschwindigkeit<1.0 THEN
               Modus = NeuerModus;
      END_IF;
      1: 
     IF  Geschwindigkeit<1.0 THEN
      Modus = NeuerModus;
     END_IF;
    und so weiter
    
    END_CASE


    3. An Stellen wo es etwas in Abhängigkeit vom Modus zu machen gibt sieht das dann so aus:

    Code:
    CASE Modus OF
     0: 
        mach was
     1: 
      mach was
     2: 
    
    END_IF;
    oder so aus

    Code:
    IF Modus = 0 THEN
    ...
    ELSE
    ...
    END_IF;
    4. Wenn man etwas nachdenkt, ist das Verfahren mit dem Joystick nur ein Untermodus. Wenn ich dann die Hauptmodi mit 10 multipliziere, dann sieht das so aus

    Manuell = 0
    Manuell mit Joystick = 1
    Auto = 10
    Auto Vorwärts = 11
    Auto Rückwärt = 12
    Auto Ausgleich = 20
    Auto Ausgleich mit Joystick = 21

    5. In FB wie einem Regler interessiert mich der Joystick nicht, ebenso nicht, ob es Rückwärts oder Vorwärts geht. Da sieht es denn so aus:

    Code:
    CASE modus/10 OF
      0:  (* Manuell *)
         .....
      1: (* Auto *)
       ....
      2: (* Auto Ausgleich *)
        ... 
    END_CASE;
    Mach das mal mit Merkern
    Geändert von drfunfrock (21.10.2013 um 08:04 Uhr)

  3. Folgender Benutzer sagt Danke zu drfunfrock für den nützlichen Beitrag:

    Draco Malfoy (25.06.2014)

  4. #23
    Registriert seit
    09.08.2006
    Beiträge
    3.629
    Danke
    912
    Erhielt 656 Danke für 542 Beiträge

    Standard

    In CFC hab ich noch nie nen true oder false Merker benötigt, da konfiguriert man an den Bausteineingängen direkt den InstanzDB bzw. erzeugt CFC beim Übersetzen selbst die entsprechende Verschaltung mit 0 oder 1...

    Aber irgendwie kommt CFC ja nicht aus seinem Schattendasein heraus bzw. bei TIA hört man davon Garnichts...

    Gruß.

  5. #24
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Es hängt wohl damit zusammen, das FUP und Leiterdiagramme immer noch so populär sind.

    Ich selbst, mag grafische Programmiersprachen weniger, weil ich Texte beliebig kopieren kann und ich auch nicht mehr Übersicht habe. Wobei du hast recht, es würde sich lohnen, mal sich CFC anzuschauen.

    Und ich muss derzeit mit CX-Programmer von Omron arbeiten. Da gibt es CFC gar nicht. CX-Programmer ist eine grosse Zumutung, weil Omron es fertigbringt, die Regional-Einstellungen für Komma und Punkt etc. in die Umgebung mit einzubinden, so dass ich dann statt 3.14 diese Zahl mit 3,14 schreiben muss. Dummerweise ändert sich der Aufruf von Parameter nicht, so das

    RXD_SCU(buffer, 1,1,2,3);

    als

    RXD_SCU(buffer, (1,1), (2,3))

    gelesen wird. So muss ich dann den Aufruf als

    RXD_SCU(buffer, (1),(1),(2),(3));

    schreiben. Somit sind solche Projekte auch nicht portabel.

  6. #25
    Registriert seit
    09.08.2006
    Beiträge
    3.629
    Danke
    912
    Erhielt 656 Danke für 542 Beiträge

    Standard

    Zitat Zitat von drfunfrock Beitrag anzeigen
    Ich selbst, mag grafische Programmiersprachen weniger, weil ich Texte beliebig kopieren kann und ich auch nicht mehr Übersicht habe. Wobei du hast recht, es würde sich lohnen, mal sich CFC anzuschauen.
    Man schreibt ja nicht alles in CFC. Die Bausteine erstellt man weiterhin in SCL oder AWL... Nur die Verschaltung, Parametrierung und das "Drumherum" mach ich in CFC.
    Bei der IBN geht das Beobachten der Instanz bzw. Änderungen viel schneller und einfacher...
    Man muss sich auch nicht mehr um die ganzen IDBs kümmern, macht CFC alles selber...

    Gruß.

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

    Friedrich-Alexander (07.10.2014)

  8. #26
    Avatar von vollmi
    vollmi ist gerade online Erfahrener Benutzer
    Themenstarter
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.620
    Danke
    777
    Erhielt 647 Danke für 493 Beiträge

    Standard

    Zitat Zitat von drfunfrock Beitrag anzeigen
    Stell dir vor, du hast 6 Modi, wie eine Maschine gefahren werden kann. Du brauchst für jeden Modus einen Merker. Und da jeder Modus auch überall Auswirkungen hat, biste dann jedesmal dabei so etwas zu fabrizieren:
    Meine True/False Merker nutze ich eigentlich als Konstante um eine Schnittstelle voll zu beschalten oder einen Baustein im Fup aus dem Ablauf zu nehmen etc.
    Das hat in dem sinn nichts mit meiner Steuerung ansich zu tun.

    Da nutze ich eigentlich genau das Konzept wie du es beschreibst Nur gibts bei mir keine 0 im Modus. 0 ist für mich immer Ungültig. Damit will ich vermeiden dass ein Objekt irgend einen scheiss macht wenn jemand einen DB löscht oder ein Initialwert nicht gesetzt ist.

    Auch für die Übertragung nehme ich das her. Ein Befehl hat immer einen Wert über 0. Wenn der Wert über null ist, wird das Telegramm gespeichert, gesendet und der Befehl wieder auf 0 zurückgesetzt.

    mfG René

  9. #27
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Ich würde Omron zu dem Übelsten küren, was man sich nur denken kann. Die haben einfach alles den Regionaleinstellungen unterworfen. Der gesamte Kode ist nicht mehr portabel, weil man Zahlen mit Komma schreiben muss, während in den USA natürlich der Punkt gilt. Das hat Konsequenzen. Funktionen und FB mit Komma als Parameterseparator funktionieren nur, wenn man die Zahlen dann in Klammern setzt. Die nächste Überraschung kam dann, als ich mit dem SCADA-System "Supervisor" CSV-Dateien geschrieben hatte, um ein Interface zu anderer Software zu haben und dann auch die Feldtrenner von der Locale gesteuert wurden. Im Prinzip sind alle Konvertierungen nach String von der Locale beeinflusst. Wer es richtig macht, setzt einfach die Locale für PC auf US-Standart fest. Die haben doch einen Schuss weg.

    Das ist das Schlimmste was mir bisher begegnet ist.

  10. #28
    Registriert seit
    20.06.2007
    Ort
    NRW
    Beiträge
    106
    Danke
    2
    Erhielt 14 Danke für 14 Beiträge

    Standard

    Der Omron Kontaktplan ist einer der Besten, den ich je gesehen habe.

  11. #29
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard

    Zitat Zitat von bugatti66 Beitrag anzeigen
    Der Omron Kontaktplan ist einer der Besten, den ich je gesehen habe.
    Und was sagst du zu der Meinung von drfunfrock? In diesem Kontext hat dein Satz keinen rechten Sinn.
    Grüße Frank

  12. #30
    Registriert seit
    20.06.2007
    Ort
    NRW
    Beiträge
    106
    Danke
    2
    Erhielt 14 Danke für 14 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Das Punkt und Komma-Problem ist doch ein Problem von Microsoft.
    Wenn ich meine Reisekosten auf einem deutschen PC mache und sie dann nach England schicke, kann der Kollege die ja auch nicht öffnen ohne an seinem PC etwas umzustellen, wenn sie in csv-Format verschickt wird.

Ähnliche Themen

  1. Strukturen Vergleichen in denen Arrays vorkommen
    Von SteffenD im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 31.07.2013, 09:18
  2. WCf 2008 SP2 HF3 hängt sich manchmal auf
    Von Günni1977 im Forum HMI
    Antworten: 3
    Letzter Beitrag: 26.11.2010, 09:14
  3. CX hängt sich manchmal auf bei "Route hinzufügen"
    Von karlheinzsps im Forum CODESYS und IEC61131
    Antworten: 17
    Letzter Beitrag: 03.03.2010, 13:15
  4. blutender Anfänger fragt .....
    Von Martha72 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 16.07.2009, 11:46
  5. Warum man sich OPC sparen sollte...
    Von seeba im Forum Stammtisch
    Antworten: 8
    Letzter Beitrag: 19.06.2006, 10:58

Lesezeichen

Berechtigungen

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