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

Results 1 to 8 of 8

Thread: Datenbaustein Wert hinzufügen, Hilfe beim Programmieren

  1. #1
    Join Date
    07.09.2020
    Location
    Düsseldorf
    Posts
    8
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Lächeln


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich bin noch nicht recht fortgeschritten was das Thema Simatic angeht, doch muss ich eine kleine Programmänderung vornehmen. Ich hoffe ihr könnt mir da helfen oder einen Ansatz geben.

    Ist-Zustand:
    Es handelt sich um einen Kappenaufrichter, dieser wird mit einem FU beschaltet. Die Kappen werden auf ein Band gegeben, welches zwei Abfragung hat, Band-voll, Band-leer, sobald das Band voll ist Stop der Motor vom Kappenaufrichter. Die Geschwindigkeit des Motors kann über die HMI bestimmt werden.

    Soll-Zustand:
    Es soll eine dritte Abfrage in die Mitte des Bandes gesetzt werden, damit wenn das Band Halbvoll ist der Motor in einer langsameren Geschwindigkeit läuft, diese Geschwindigkeit soll sich auch über das HMI ändern lassen.

    Variablen:
    E61.6 Band halbvoll
    E61.2 Band voll
    E61.3 Band leer
    DB17.DBW146 Der Wert für ein leeres Band
    DB17.DBW176 Der Wert für ein halb volles Band

    Über mögliche Umsetzungstipps oder Hilfen in jeglicher Art würde ich mich sehr freuen. Ich habe noch zwei Bilder
    dazugefügt die vielleicht etwas helfen.
    Attached Images Attached Images
    Reply With Quote Reply With Quote Answered: Datenbaustein Wert hinzufügen, Hilfe beim Programmieren  

  2. "
    Quote Originally Posted by alphafiro View Post
    In dem ich eine Einschaltverzögerung benutze, oder klappt das nicht ?
    Na klar klappt das, und den Rest machst du mit Move Befehlen wie jetzt auch.
    Musst dir einfach nur überlegen wann du welchen Wert in dein
    Und im HMI musst du eben ein Eingabefeld erstellen für deinen 2. Wert.

    Was mir aufgefallen ist: Die Schriftgrößen passen überhaupt nicht, du muss auf einem PG IMMER die Skalierung der windows Schriftgröße auf 100% stellen sonst zerschießt du dir damit die Schriftgröße im Flexible!

    Und das sieht ziemlich fürchterlich aus wenn du das so aufs Panel lädst.

    Noch etwas ist mir aufgefallen:
    Im Programm wird auf ein DBD 280 gerundet und von DBW 282 dann auf den Ausgang geschrieben...Also ein Teil vom DBD 280.
    Und vorher wird auch der maximale Ausgangswert begrenzt...

    Also so würde ich das nie programmieren!

    Dafür gibts fix fertige Skalierungsbausteine von Siemens. Scale und Unscale heissen die.
    Findest du in der standard library

    Aber am einfachsten ist es natürlich alles so zu lassen und nur den Wert im NW50 je nach gewünschter Geschwindigkeit zu ändern."


  3. #2
    Join Date
    09.07.2007
    Location
    Leckwitz
    Posts
    80
    Danke
    47
    Erhielt 2 Danke für 2 Beiträge

    Default

    hier mal ein Beispiel in AWL:
    Code:
    // vor deinem NW50
          L     S5T#10S                     // Verzögerungszeit
          U     E     61.3
          U     E     61.6
          SE    T      1                    // Timer einschaltverzögert
    
          L     DB17.DBW  146
          T     #temp_MW                    // diese Variable in der Deklaration als temporäre Variable anlegen
    
          U     T      1                    // Timer ist TRUE (Zeit abgelaufen)
          SPBN  weit                        // springe nicht
          L     DB17.DBW  176               // übernehme anderen Wert
          T     #temp_MW                    // in die temporäre Variable
    weit: NOP   0
    
    
    //im NW 50 dann 
          L     #temp_MW
          ITD   
          DTR   
          L     4.252000e+001
          *R    
          RND   
          T     DB7.DBD  280

  4. #3
    Join Date
    13.11.2014
    Location
    Paderborn
    Posts
    218
    Danke
    16
    Erhielt 17 Danke für 16 Beiträge

    Default

    Hi,

    ist eine einfach If Answeisung:


    Wenn Betrieb freigegeben immer Startgeschwindigkeit: DB16.DBW146
    Wenn (E61.6 Band halbvoll) -> Dann DB17.DBW176 Der Wert für ein halb volles Band
    Wenn (E61.3 Band leer) -> Dann DB17.DBW146 Der Wert für ein leeres Band
    Wenn (E61.2 Band voll) -> Stopp


    Versuch das mal so in der Logik zu programmieren.

  5. #4
    Join Date
    01.08.2013
    Location
    63571
    Posts
    626
    Danke
    54
    Erhielt 83 Danke für 78 Beiträge

    Default

    Wie willst du denn erkennen dass das Band halbvoll ist?
    Sobald eine Kappe durch den Sensor fährt, auch wenn es die erste ist, würde der Sensor sofort auf halbe Geschwindigkeit schalten lassen
    Nur dass man etwas schon immer so gemacht hat heißt nicht dass es richtig ist, man kann eine Sache auch ein Leben lang falsch machen.

  6. #5
    alphafiro is offline Neuer Benutzer
    Themenstarter
    Join Date
    07.09.2020
    Location
    Düsseldorf
    Posts
    8
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Default

    In dem ich eine Einschaltverzögerung benutze, oder klappt das nicht ?

  7. #6
    Join Date
    19.07.2006
    Posts
    512
    Danke
    182
    Erhielt 51 Danke für 42 Beiträge

    Default

    Quote Originally Posted by alphafiro View Post
    In dem ich eine Einschaltverzögerung benutze, oder klappt das nicht ?
    Na klar klappt das, und den Rest machst du mit Move Befehlen wie jetzt auch.
    Musst dir einfach nur überlegen wann du welchen Wert in dein
    Und im HMI musst du eben ein Eingabefeld erstellen für deinen 2. Wert.

    Was mir aufgefallen ist: Die Schriftgrößen passen überhaupt nicht, du muss auf einem PG IMMER die Skalierung der windows Schriftgröße auf 100% stellen sonst zerschießt du dir damit die Schriftgröße im Flexible!

    Und das sieht ziemlich fürchterlich aus wenn du das so aufs Panel lädst.

    Noch etwas ist mir aufgefallen:
    Im Programm wird auf ein DBD 280 gerundet und von DBW 282 dann auf den Ausgang geschrieben...Also ein Teil vom DBD 280.
    Und vorher wird auch der maximale Ausgangswert begrenzt...

    Also so würde ich das nie programmieren!

    Dafür gibts fix fertige Skalierungsbausteine von Siemens. Scale und Unscale heissen die.
    Findest du in der standard library

    Aber am einfachsten ist es natürlich alles so zu lassen und nur den Wert im NW50 je nach gewünschter Geschwindigkeit zu ändern.

  8. Folgender Benutzer sagt Danke zu Betriebselektriker28 für den nützlichen Beitrag:

    alphafiro (22.09.2020)

  9. #7
    alphafiro is offline Neuer Benutzer
    Themenstarter
    Join Date
    07.09.2020
    Location
    Düsseldorf
    Posts
    8
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Default

    Danke für die zahlreichen und hilfreichen Bemerkungen, ich hab mal einen kleinen Lösungsansatz vielleicht könnt ihr den überprüfen ob der so richtig ist. Das würde mich sehr freuen.
    Unbenannt.jpg

  10. #8
    Join Date
    19.07.2006
    Posts
    512
    Danke
    182
    Erhielt 51 Danke für 42 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Du überschreibst dir damit mit der neuen Geschwindigkeit die alte...und woher nimmst du dann wieder die Hohe Geschwindigkeit? Nachdem du sie überschrieben hast?
    Wird so nicht funktioneren. Bzw nur einmal



    Ein kleiner Tip:
    Du brauchst eine Dritte Variable, in die schreibst du dann abwechselnd deine zwei Vorgabewerte!
    Die Vorgabewerte darfst du natürlich nicht überschreiben.

    Und diese neue Dritte Variable verwendest du im 1. Netzwerk von deinem Eröffnungspost statt dem DBW146.
    Kann eine Temp Variable sein, oder ein Merkerwort, oder auch ein Wort in einem Datenbaustein. Sei kreativ.
    Last edited by Betriebselektriker28; 23.09.2020 at 22:58.

  11. Folgender Benutzer sagt Danke zu Betriebselektriker28 für den nützlichen Beitrag:

    alphafiro (24.09.2020)

Similar Threads

  1. TIA S7-1200: Hilfe beim Programmieren
    By myfergy133 in forum Simatic
    Replies: 4
    Last Post: 02.11.2014, 12:53
  2. Replies: 9
    Last Post: 24.09.2013, 18:09
  3. Hilfe beim Datenbaustein erzeugen
    By Hans.S in forum Simatic
    Replies: 8
    Last Post: 03.01.2010, 12:53
  4. Hilfe beim programmieren
    By Shierasse in forum CODESYS und IEC61131
    Replies: 4
    Last Post: 14.12.2009, 07:46
  5. Brauche Hilfe beim programmieren
    By spiderman696 in forum Programmierstrategien
    Replies: 13
    Last Post: 20.02.2007, 20:32

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •