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

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 32

Thema: Wie kann man das Programm vereinfachen?

  1. #11
    Registriert seit
    09.08.2006
    Beiträge
    3.627
    Danke
    912
    Erhielt 656 Danke für 542 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Heibo Beitrag anzeigen
    Die Belegung der Schalter ist von mir festgelegt
    hast Du die Wahrheitstabelle erstellt? Dann wäre sie falsch. weil sie nicht zu der Aufgabenstellung:

    Die Schalter haben die Wertigkeiten 1, 2 und 4.
    passt.

    Gruß.

    PS: ich würd auch noch die weiteren Stellungen 0 und 7 definieren.
    Geändert von ducati (17.02.2014 um 10:29 Uhr)

  2. #12
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.181
    Danke
    923
    Erhielt 3.288 Danke für 2.657 Beiträge

    Standard

    Mann, der TE soll KURZFRISTIG eine Großanzeige für die Weltmeisterschaften der Würfelspieler entwickeln und hat jetzt keinen anderen Schalter...

    Geht es bei dieser Hausaufgabe denn nicht eigentlich mehr ums Erkennen und Anwenden des Auswerte-Prinzips der Schalttabelle als um eine korrekte Codierung des Drehschalters?

    Wenn er sein Programm so aufbaut wie von mir in #6 vorgeschlagen, dann kann er mit wenig Aufwand das Programm an sonstwelche Codierungen anpassen.

    Ich mache mal seine Tabelle etwas übersichtlicher:
    Code:
    E |S4 S2 S1 | a b c d e f g
    --+---------+--------------
    1 | 1  1  1 | 0 0 0 1 0 0 0
    2 | 1  1  0 | 1 0 0 0 0 0 1 
    3 | 1  0  1 | 0 0 1 1 1 0 0 
    4 | 1  0  0 | 1 0 1 0 1 0 1
    5 | 0  1  1 | 1 0 1 1 1 0 1
    6 | 0  1  0 | 1 1 1 0 1 1 1
    
    
     -------
    | a---e |
    | b-d-f |
    | c---g |
     -------
    Übrigens steht immer noch die Frage: für welche SPS in welcher Programmiersprache wird die Lösung gewünscht?
    Ich empfehle KOP oder FUP für diese Aufgabe.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #13
    Heibo ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    12.02.2014
    Beiträge
    16
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von Heibo Beitrag anzeigen
    Also wenn S1 S2 S4 eingeschaltet sind dann soll das eine Würfel mit einem Auge darstellen. S1 low und S2,S4 high ist dass ein Zwei auf dem Würfel usw.
    Wichtig die Tabelle habe ich angelegt. Das kann man so machen wie man das möchte.

  4. #14
    Heibo ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    12.02.2014
    Beiträge
    16
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    In FUP aber ich habe die Tabelle selber gemacht. Aber jetzt wo ihr das mit der Wertigkeit angesprochen habt glaube ich, dass ich das Falsch gemacht habe.

    Hier mal meine Tabelle

    E |S4 S2 S1 | a b c d e f g
    --+---------+--------------
    1 | 0 0 1 | 0 0 0 1 0 0 0
    2 | 0 1 0 | 1 0 0 0 0 0 1
    3 | 0 1 1 | 0 0 1 1 1 0 0
    4 | 1 0 0 | 1 0 1 0 1 0 1
    5 | 1 0 1 | 1 0 1 1 1 0 1
    6 | 1 1 0 | 1 1 1 0 1 1 1

    Ich denke so ist es besser. Ich habe nicht daran gedacht, dass die Schalter eine Wertigkeit haben.

  5. Folgender Benutzer sagt Danke zu Heibo für den nützlichen Beitrag:

    ducati (17.02.2014)

  6. #15
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Zuerst einmal solltest Du für die 3 die gleichen Ecken benutzen, wie für die zwei, dann lässt sich schon viel vereinfachen.
    Gruß
    Michael

  7. Folgende 2 Benutzer sagen Danke zu M-Ott für den nützlichen Beitrag:

    ducati (17.02.2014),hucki (17.02.2014)

  8. #16
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Das gibt 13 Zeilen AWL.
    Gruß
    Michael

  9. #17
    Registriert seit
    09.08.2006
    Beiträge
    3.627
    Danke
    912
    Erhielt 656 Danke für 542 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Geht es bei dieser Hausaufgabe denn nicht eigentlich mehr ums Erkennen und Anwenden des Auswerte-Prinzips der Schalttabelle als um eine korrekte Codierung des Drehschalters?
    Also wenn ich damals in Steuerungstechnik aus der Aufgabenstellung die falsche Wahrheitstabelle entwickelt hätte, hätte ich garantiert keine 1 mehr gekrigt

    Und heute besteht mindestens die Hälfte meiner Arbeit darin, aus teilweise unvollständigen und widersprüchlichen Angaben, herauszufinden, was das Programm überhaupt sinnvollerweise machen soll.

    Also von daher ist das schon praxisbezogen, auf der Wahrheitstabelle rumzuhacken

    Gruß.

    PS: und sinnvollerweise macht man dass, bevor man anfängt zu programmieren
    Geändert von ducati (17.02.2014 um 15:10 Uhr)

  10. #18
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.181
    Danke
    923
    Erhielt 3.288 Danke für 2.657 Beiträge

    Standard

    Zitat Zitat von ducati Beitrag anzeigen
    Also von daher ist das schon praxisbezogen, auf der Wahrheitstabelle rumzuhacken

    Gruß.

    PS: und sinnvollerweise macht man dass, bevor man anfängt zu programmieren
    OK, ich hatte zuerst angenommen, die Wahrheitstabelle wäre in der Aufgabenstellung vorgegeben.
    Jetzt sehe ich, daß der TE die selber erstellt - dann natürlich sollte man schon drauf achten, daß sie "logisch" aufgebaut ist:
    - alle 3 Schalter aus (=0) --> alles dunkel
    - S1, S2, S4 nach Wertigkeit geschaltet 1..6 --> Würfelbilder 1..6
    - alle 3 Schalter ein (=7) --> Lampentest, alle 7 Lampen ein


    Zitat Zitat von M-Ott Beitrag anzeigen
    Zuerst einmal solltest Du für die 3 die gleichen Ecken benutzen, wie für die zwei, dann lässt sich schon viel vereinfachen.
    Ich komm grad nicht drauf, bei welchem Programmalgorithmus man "viel" vereinfachen könnte wenn die 2 die gleichen Ecken benutzt wie die 3 (spart Karnaugh tatsächlich so viel?), doch ich finde es für die Großanzeige sogar sehr vorteilhaft, wenn die 2 deutlich anders aussieht als die 3 (dann könnte man sogar noch Zahlen unterscheiden, wenn 1 (Eck-)Lampe kaputt wäre).


    Zitat Zitat von M-Ott Beitrag anzeigen
    Das gibt 13 Zeilen AWL.
    Da bin ich aber neugierig, wie Du auf 13 Zeilen kommst - das geht doch bestimmt nicht mehr symbolisch, irgendeine tricky Abkürzung ist da bestimmt drinnen, oder? Gib doch mal einen Tip in welche Richtung ...

    Wenn unsymbolische Tricks erlaubt sind, dann brauche ich nur 7 oder 10 AWL-Operationen für den Encoder und da ist es egal wie die 2 aussieht.
    Code:
          L     #IN                         //Eingangsbyte: 0=dunkel / 1..6=Würfel / 7=Lampentest
          UW    W#16#7                      //IN auf 0..7 begrenzen / Bits ausblenden
          SLD   3                           //0..7 --> P#0.0 .. P#7.0
          LAR1  
          AUF   "DB123"                     //DB mit der Encodier-Tabelle ab DBB0
          L     DBB [AR1,P#0.0]             //(P#0.0: ggf den Tabellenanfang anpassen)
          T     #OUT                        //Ausgangsbyte: .0=a .1=b .. .6=g
    Oder ohne vorbereitete Encodertabelle:
    Code:
    //Encoder-Tabelle in TEMP erstellen
          L     DW#16#0008411C              //Lampenmuster 0..3
          T     LD     0
          L     DW#16#555D777F              //Lampenmuster 4..7
          T     LD     4
    
    //Bitmuster Tabelle[#IN] auslesen
          L     #IN                         //Eingangsbyte: 0=dunkel / 1..6=Würfel / 7=Lampentest
          UW    W#16#7                      //IN auf 0..7 begrenzen / Bits ausblenden
          SLD   3                           //0..7 --> P#0.0 .. P#7.0
          LAR1  
          L     LB [AR1,P#0.0]              // entpricht L Tabelle[#IN]
          T     #OUT                        //.0=a .1=b .. .6=g
    Da der TE aber gerne FUP möchte, sollte man das Programm nur mit sauberen symbolischen Bitverknüpfungen ausführen, ggf. läßt die Wahrheitstabelle noch einiges minimieren.
    Ohne Nachdenken würde ich wie in #6 gezeigt zuerst zeilenweise die Schalter S1/S2/S4 zu 6 (oder 7) Zwischenwerten (E1..E6) decodieren und dann spaltenweise die Ausgangs-Ver"oder"ung machen. Macht ca. 13 oder 14 Netzwerke oder 3 weniger, wenn man die Zuweisungen für a+g, b+f und c+e jeweils in einem Netzwerk zusammenfasst.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  11. #19
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 918 Danke für 740 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Zitat Zitat von M-Ott Beitrag anzeigen
    Zuerst einmal solltest Du für die 3 die gleichen Ecken benutzen, wie für die zwei, dann lässt sich schon viel vereinfachen.
    Ich komm grad nicht drauf, bei welchem Programmalgorithmus man "viel" vereinfachen könnte wenn die 2 die gleichen Ecken benutzt wie die 3 (spart Karnaugh tatsächlich so viel?), ...
    Gerade für FUP/KOP würde das die Sache sehr vereinfachen:

    Das Auge in der Mitte (d) leuchtet immer, wenn die Wertigkeit 1 betätigt ist.
    Die Augen Links Unten (c) und Rechts Oben (e) leuchten, wenn die Wertigkeiten 2 oder 4 betätigt sind.
    Die Augen Links Oben (a) und Rechts Unten (g) leuchten, wenn die Wertigkeit 4 betätigt ist.
    Die Augen Links Mitte (b) und Rechts Mitte (f) leuchten, wenn die Wertigkeiten 2 und 4 betätigt sind.

    Macht doch 4 schöne FUP- bzw. KOP-Netzwerke.


    PS:
    Zitat Zitat von PN/DP Beitrag anzeigen
    Zitat Zitat von M-Ott Beitrag anzeigen
    Das gibt 13 Zeilen AWL.
    Da bin ich aber neugierig, wie Du auf 13 Zeilen kommst - das geht doch bestimmt nicht mehr symbolisch, irgendeine tricky Abkürzung ist da bestimmt drinnen, oder? Gib doch mal einen Tip in welche Richtung ...
    Nein, alles blitzsaubere UND- bzw. ODER- sowie die Zuweisungszeilen in 4 Netzwerken. Nichts anderes. Nicht mal Klammern oder NOPs für's FUP/KOP sind nötig.
    .....[Ende PS]


    Bei Unterscheidung der Anzeige-Richtung zw. 2 und 3 wird's bei reiner Logik dann etwas mehr.
    PPS: Werden dann 4 UND-/ODER-Zeilen mehr. Aber immer noch absolut wartungsfreundlich!.....[[Ende PPS]


    Aber letzendlich hängt es auch davon ab, was überhaupt mit der Aufgabe trainiert werden soll:
    - Das Erkennen von Logiken
    - Das Benutzen von Vergleichern und Übertragen von Bytewerten
    - In AWL das Benutzen von Sprunglisten
    ?
    Geändert von hucki (18.02.2014 um 00:35 Uhr) Grund: PS

  12. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    PN/DP (18.02.2014)

  13. #20
    Registriert seit
    15.04.2011
    Beiträge
    1.122
    Danke
    229
    Erhielt 208 Danke für 176 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von hucki Beitrag anzeigen
    Gerade für FUP/KOP würde das die Sache sehr vereinfachen:

    Das Auge in der Mitte (d) leuchtet immer, wenn die Wertigkeit 1 betätigt ist.
    ?
    Du meinst bestimmt, wenn die Wertigkeit Ungerade ist (sprich 1 oder 3 oder 5).
    Gruß
    190B

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 06.10.2013, 03:12
  2. Broadcast-wie kann man das programmieren/nutzen
    Von Holger Levetzow im Forum Feldbusse
    Antworten: 1
    Letzter Beitrag: 26.05.2010, 11:10
  3. Broadcast-wie kann man das machen/nutzen
    Von Holger Levetzow im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 25.05.2010, 14:00
  4. Man kann das Geldsparen auch übertreiben.
    Von vollmi im Forum Stammtisch
    Antworten: 13
    Letzter Beitrag: 19.08.2008, 19:38
  5. Kann man das so lösen?
    Von plc_tippser im Forum Stammtisch
    Antworten: 7
    Letzter Beitrag: 01.08.2006, 09:46

Stichworte

Lesezeichen

Berechtigungen

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