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

Seite 5 von 7 ErsteErste ... 34567 LetzteLetzte
Ergebnis 41 bis 50 von 69

Thema: wie gehe ich da ran?

  1. #41
    Registriert seit
    15.02.2011
    Ort
    Stromness, Scotland, UK
    Beiträge
    339
    Danke
    25
    Erhielt 34 Danke für 33 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von xinix Beitrag anzeigen
    Ich frage einen Zustand ( START oder BETRIEB ) zweier Tanks, je nach den Füllständen meiner Teichanlage ab.
    Ich denke, es geht weder um Kunden, noch um Anwälte, sondern um einen Heimwerker, der niemandem etwas verkaufen will. (Hoffe ich zumindest sehr!!)

    Die eindeutige Speicherung der Betriebsart in einer einzelnen Variablen wäre da besser.
    Nur zu meinem Verständnis, meinst du damit indirekt auch gerade die Verwendung einer CASE Struktur?

    Code:
    CASE iBetriebsart OF
    0: (* Init *)
    10: (* aus *)
    20: (* Normalbetrieb *)
    30: (* Niveau absenken oder sonst was *)
    END_CASE

  2. #42
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    757
    Danke
    27
    Erhielt 166 Danke für 144 Beiträge

    Standard

    CASE OF bietet sich für so etwas meistens an. Ich würde allerdings die Werte für die Betriebsarten als Konstanten oder als Enumeration deklarieren. Die Wahrscheinlichkeit, dass durch Flüchtigkeitsfehler undefinierte Werte zustandekommen, wird damit geringer.
    Ausserdem sollte die CASE-Anweisung einen ELSE-Zweig enthalten, mit dem die Anlage in einen definierten Zustand gebracht bzw. dort gehalten wird. Im einfachsten Fall kann dort die selbe Aktion oder der selbe FB wie bei "Aus" aufgerufen werden. Ein, zumindest in der Entwicklumgsumgebung, sichtbarer Hinweis darauf, dass dieser Aufruf irregulär zustandegekommen ist, kann dabei aber nicht schaden.

  3. #43
    Registriert seit
    04.09.2009
    Ort
    Mainz
    Beiträge
    15
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von bike Beitrag anzeigen
    Ich hoffe, dass du kein Programmierer bist.
    Mal eben quick and dirty ein Programm basteln und dann verschwinden.
    Der Lackierte ist der Kunde.
    Naja also wir kennen uns ja alle nicht - und ich sowieso niemanden, wo ich doch recht neu in diesem Forum bin. Auch musst Du was mich betrifft nichts hoffen oder Dich bangen.

    Grundsätzlich stimme ich Dir ja schon zu: ein kleiner Hack kann viel ausrichten und man sollte schon probieren, es "richtig"(tm) zu machen. Mein Elfenbeinturm bezog sich jedenfalls darauf, jedes noch so kleine Problemlösung auseinanderzupflücken - ohne den Kontext u.a. im Auge zu halten. Natürlich MUSS ein großes Projekt sauber geplant sein und die Architekturvorgaben müssen eingehalten werden. Auch andere Konventionen etc. spielen dann eine große Rolle.
    Aber machen wir uns nix vor: Für ein kleines Ding, dass nebenher gelöst werden muss - damit es läuft und man keinen Doktortitel (ob mit oder ohne KGT sei mal dahingestellt) dafür braucht, da reicht auch der kleine Hack.
    Und als Anstoss für jemanden, der sowieso neu in der Materie erst recht.

    Jedenfalls ist das meine Meinung.

    Und nach als Randbemerkung: ich habe interessante Einblicke in die Auto-Steuerungstechnik bzw. die Entwicklung derselben bei Audi erhalten. Und danach wunderte ich mich doch sehr, dass überhaupt ein Audi je am Ziel ankommt! Ich sag nur "Produkt reift beim Kunden." Und das gilt nicht nur für Audi! Die Elektronikprobleme des Alfas eines Bekannten sind in meinem Bekanntenkreis schon legendär!


    Insofern: die Realität (=deadline) holt doch auch den ausgebufftesten Programmierer ein! Wissen wir doch alle. Also wieso soviel Wind wegen einem kleinen Hack, der doch nur als Startschuss dienen sollte? Und eben als einfache Lösung?

    Liebe Grüße
    ahds

  4. #44
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    757
    Danke
    27
    Erhielt 166 Danke für 144 Beiträge

    Standard

    Zitat Zitat von ahds
    Für ein kleines Ding, dass nebenher gelöst werden muss - damit es läuft und man keinen Doktortitel (ob mit oder ohne KGT sei mal dahingestellt) dafür braucht, da reicht auch der kleine Hack.
    Warum sollte man privat weniger hohe Ansprüche an sich selbst stellen als beruflich? Gerade da geht es doch an den eigenen Geldbeutel, wenn man etwas in Grund und Boden fährt.

    Zitat Zitat von ahds
    Und als Anstoss für jemanden, der sowieso neu in der Materie erst recht.
    Der Anstoss gibt oft auch eine Richtung vor, und die sollte schon stimmen.

  5. #45
    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 ahds Beitrag anzeigen
    ... wo ich doch recht neu in diesem Forum bin. ....ahds
    immerhin schon seit 2009.

    kommt dein NICK eigentlich daher?: http://de.wikipedia.org/wiki/Aufmerk...tsst%C3%B6rung

    [duck .. und .. wech]

    Frank
    Grüße Frank

  6. #46
    Registriert seit
    03.04.2008
    Beiträge
    6.206
    Danke
    237
    Erhielt 818 Danke für 692 Beiträge

    Standard

    Zitat Zitat von ahds Beitrag anzeigen
    Naja also wir kennen uns ja alle nicht - und ich sowieso niemanden, wo ich doch recht neu in diesem Forum bin. Auch musst Du was mich betrifft nichts hoffen oder Dich bangen.
    Meine Bedenken hatten eigentlich nichts direkt mit dir zu tun.
    Ich dachte eher an die betroffenen Kunden.


    Zitat Zitat von ahds Beitrag anzeigen
    Aber machen wir uns nix vor: Für ein kleines Ding, dass nebenher gelöst werden muss - damit es läuft und man keinen Doktortitel (ob mit oder ohne KGT sei mal dahingestellt) dafür braucht, da reicht auch der kleine Hack.
    Und als Anstoss für jemanden, der sowieso neu in der Materie erst recht.

    Jedenfalls ist das meine Meinung.
    Wenn du gelesen hast, möchte hier nicht jemand einen "Hack" mal eben machen, sondern das Programmieren lernen. Und da ist genug Zeit um es gleich und richtig zu machen.


    Zitat Zitat von ahds Beitrag anzeigen
    Und nach als Randbemerkung: ich habe interessante Einblicke in die Auto-Steuerungstechnik bzw. die Entwicklung derselben bei Audi erhalten.

    Insofern: die Realität (=deadline) holt doch auch den ausgebufftesten Programmierer ein! Wissen wir doch alle. Also wieso soviel Wind wegen einem kleinen Hack, der doch nur als Startschuss dienen sollte? Und eben als einfache Lösung?
    Wenn es andere falsch machen, muss ich es auch falsch machen?
    Nur wenn die Messlatte hoch liegt und man die überqueren muss, kommt Qualität heraus.


    bike

  7. #47
    Registriert seit
    04.09.2009
    Ort
    Mainz
    Beiträge
    15
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von IBFS Beitrag anzeigen
    kommt dein NICK eigentlich daher?: http://de.wikipedia.org/wiki/Aufmerk...tsst%C3%B6rung

    [duck .. und .. wech]

    Frank
    Harhar, hat da auch schon jemand den Witz bemerkt!

    Ich hab damals halt mit ADS von Beckhoff "rumspielen" müssen und fand A"h"DS dann für meine Situation ganz passend.

    Grüße,
    ahds

  8. #48
    Registriert seit
    04.09.2009
    Ort
    Mainz
    Beiträge
    15
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von bike Beitrag anzeigen
    Wenn es andere falsch machen, muss ich es auch falsch machen?
    Im Grunde stimme ich Dir doch durchweg zu.

    Ich habe nur meine persönliche Situation gesehen und mich an meine eigenen Erfahrungen eben mit Elfenbeinturm-Anspruchsdenken in unserem Betrieb (von mir und anderen) nochmal vor Augen gehalten - und an die Konsequenzen gedacht. Und so kam mein Kommentar zustande.

    Insofern bitte nichts für ungut und
    liebe Grüße,
    ahds

    PS: Ich finde aber Diskussionen über SPS-Programmieren bzw. über Programmorganisation usw. grundsätzlich schon sehr interessant - eben weil ich "neu" in dieser Domäne bin.

  9. #49
    xinix ist offline Benutzer
    Themenstarter
    Registriert seit
    29.01.2010
    Beiträge
    46
    Danke
    11
    Erhielt 1 Danke für 1 Beitrag

    Beitrag

    Also ich hatte die letzten tage keine Zeit in Forum zu gehen und habe eben noch mal aufholend nachgelesen....

    Wenn ich das alles richtig verstanden haben, geht es zusammenfassend darum:

    Das Programm sieht keine Aktionen auf nicht berücksichtigte und ungeklährte Zustände vor. Diese könne man zwar einbauen aber dafür wären die IF THEN ELSE dann zu unübersichtlich?

    Scheinbar geht es auch primär um den Startschuss - oder?

    Ist das so richtig?

    Mal abgesehen davon, dass ich mir den eventuell in Frage kommenden (nicht berücksichtigten) Zuständen selbst bewusst werden muss, was wäre denn da eine gute alternaive von der Programmierung her?

    Die beschriebene CASE ?

    Darf ich mich in der CASE neben den festen Werter eigenlich auch solches beziehen?

    CASE iBetriebsart OF
    T1<100 AND T2<100: (* Init *)
    usw...

    END_CASE
    oder muss ich diese "Nenner vorher setzen und diese dann gezielt abfragen?

    Dazu erst einmal Danke!

    Zum Schuss noch mal eins... Dante hat mich bei der Übermittlund darauf hin gewiesen, das auf Grund fehlender Informationen Schutzmechanissmen nicht berücksichtigt wurde. z.B. Pumpentrockenlauf usw. Das ganze ging wie anfangs gesagt auch erst einmal nur um das Verständnis. Im gesamten hat mir der gesamte Beitrag dann schlussendlich viel gelehrt.

    Gruß aus Hamburg...

  10. #50
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    757
    Danke
    27
    Erhielt 166 Danke für 144 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von xinix Beitrag anzeigen
    Darf ich mich in der CASE neben den festen Werter eigenlich auch solches beziehen?

    CASE iBetriebsart OF
    T1<100 AND T2<100: (* Init *)
    usw...

    END_CASE
    Nein, als CASE-Selektoren können nur konstante Werte dienen. Also z. B. so
    Code:
    CASE iBetriebsart OF
       0: (*Aus*)
       1: (*Init*)
       2: (*Betrieb*)
    END_CASE;
    oder besser so
    Code:
    VAR CONSTANT
    BaAus:BYTE:=0;
    BaInit:BYTE:=1;
    BaBetrieb:BYTE:=2;
    END_VAR
    
    CASE iBetriebsart OF
       BAAus:
       BAInit:
       BABetrieb:
    END_CASE;
    Vor der CASE-Anweisung musst Du einen der Werte an iBetrieb zuweisen, und zwar so, dass iBetrieb auf jeden Fall =BAAus wird, wenn weder die Bedingung für BAInit noch die für BABetrieb gegeben ist.

    Und noch etwas zum Startschuss. Ich gebe zu, dass ich das Programm zunächst nur kurz überflogen habe. Und als dann der Begriff "Schmiedehammer" eingeworfen wurde, habe ich gedacht, dass es vorrangig um den verschwenderischen Einsatz von IF THEN ELSE ginge.
    Mittlerweile habe ich mir das Programm etwas genauer angeschaut und kann den teilweise scharfen Ton der Kritik schon verstehen.
    Nimm z. B. dies hier
    IF nTank_1<100 AND nTank_2<100 AND F_TRIG_Filterung.Q=FALSE AND bBetrieb=FALSE THEN bInit=TRUE;
    Wozu dient das "AND F_TRIG_Filterung.Q=False"? Doch wohl dazu, einen zweiten Init-Anlauf zu verhindern. Aber wieso funktioniert das? F_TRIG_Filterung.Q ist doch der Ausgang eines Flankenerkennungs-FB's, der eigentlich nur für einen Zyklus True sein sollte. Weisst Du es? Und wenn ja, hältst Du es für eine saubere Lösung?
    Geändert von StructuredTrash (24.03.2011 um 19:21 Uhr) Grund: END_VAR vergessen. Kleiner Rückfall in alte Pascal-Zeiten.

Ähnliche Themen

  1. S7 V5.4 gehe zu verwendungsstelle...
    Von Tom100 im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 05.01.2018, 11:36
  2. S7xudiax Fehler bei gehe zu
    Von Gigamail im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 18.10.2010, 21:17
  3. Ab September gehe ich Studieren
    Von godi im Forum Stammtisch
    Antworten: 10
    Letzter Beitrag: 05.07.2009, 00:30
  4. Antworten: 16
    Letzter Beitrag: 21.06.2008, 12:44
  5. Wie gehe ich am besten vor bei S7?
    Von Gruwe im Forum Programmierstrategien
    Antworten: 2
    Letzter Beitrag: 10.02.2006, 15:22

Lesezeichen

Berechtigungen

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