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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 27

Thema: Mit Zeiten "S5T#0MS" rechnen

  1. #11
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @kpeter

    +I kannst du weglassen, bzw. du mußt was ändern.
    Eigenartigerweise ist nach der Multiplikation der Akku2 = 0, obwohl in der Hilfe von Step7 folgendes steht:

    Bei CPUs mit zwei Akkus bleibt der Inhalt von AKKU 2 unverändert.

    Bei CPUs mit vier Akkus werden die Inhalte von AKKU 3 in AKKU 2, und von AKKU 4 in AKKU 3 kopiert. Der Inhalt von AKKU 4 bleibt unverändert.
    Ich hab eine 314C-2DP im Simulator laufen lassen, da ist das so und widerspricht eigentlich der Aussage in der Hilfedatei.
    Deshalb kommen auch nicht ms sondern ms/10 heraus.

    Um das zu ändern, muß man folgendes schreiben:

    Code:
          L     4
          L     #Zeitwert
          UW    W#16#3000
          SRD   12
          *I    
          L     4
          +I    
          L     #Zeitwert
          UW    W#16#FFF
          SLD   
          BTD   
          T     #Zeit_ms
    Hat jemand dafür eine plausible Erklärung?

    @eNDe

    Ist schon tricky, geht der Code bei dir so, mit welcher CPU hast du das getestet?
    Geändert von Ralle (16.02.2007 um 10:20 Uhr)
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  2. #12
    Registriert seit
    20.10.2004
    Beiträge
    650
    Danke
    5
    Erhielt 26 Danke für 26 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Ich hab eine 314C-2DP im Simulator laufen lassen, da ist das so und widerspricht eigentlich der Aussage in der Hilfedatei.
    Deshalb kommen auch nicht ms sondern ms/10 heraus.
    hast du es im plc sim simuliert oder in der cpu

  3. #13
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Mit S7-PCLSIM, das im Simatic-Manager integriert ist (bei der Prof.-Version). Ich werde das am WE mal in einer 317PN probieren, interessiert mich doch mal.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  4. #14
    Registriert seit
    20.10.2004
    Beiträge
    650
    Danke
    5
    Erhielt 26 Danke für 26 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Mit S7-PCLSIM, das im Simatic-Manager integriert ist (bei der Prof.-Version). Ich werde das am WE mal in einer 317PN probieren, interessiert mich doch mal.
    Ich glaub der simulator hat einen schuss

  5. #15
    Registriert seit
    02.02.2006
    Ort
    Hessen
    Beiträge
    429
    Danke
    16
    Erhielt 28 Danke für 22 Beiträge

    Standard

    Hallo,

    ich habs ausprobiert mit einer 318: Der Befehl SLD ohne Parameter holt sich selbigen von irgendwoher, anscheinend von "L 4". Das ist genau die Art von Code, der meine Kollegen zur Verzweiflung treibt: Wort- und Doppelwortbefehle durcheinander, mit und ohne Parameter und das ohne Doku mitten in der Nacht...
    NACHTRAG: nicht zu Hause nachmachen, Code ergibt BCD-Wandlungsfehler (OB121)!
    Geändert von Werner54 (16.02.2007 um 11:52 Uhr)
    mfG Werner
    Hoch lebe die Suchfunktion!
    Zitieren Zitieren Verstümmelter Befehl SLD  

  6. #16
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    @Werner54

    In Prinzip hast du recht, ist aber ein interessantes Beispiel.
    SLD ist aber nicht verstümmelt!
    Code:
          L     4
          +I    
          L     #Zeitwert
          UW    W#16#FFF
          SLD
    nach L4 +I steht das Ergebnis im Akku 1
    nach L #Zeitwert UW W#16#FFF
    steht dieses Ergebnis in Akku 1; das, was vorher in Akku 1 stand, steht nun in Akku 2

    SLD ohne Parameter ohlt sich die Anzahl für das Schieben aus:
    SLD (Schiebe links Doppelwort) schiebt den gesamten Inhalt von AKKU 1 bitweise nach links. In die Bitstellen, die durch das Schieben frei werden, werden Nullen geschrieben. Das zuletzt geschobene Bit wird in das Statusbit A1 geladen. Die Anzahl an Bitstellen, um die geschoben werden soll, wird entweder von dem Operanden <Anzahl> oder von einem Wert in AKKU2-L-L angegeben.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  7. #17
    Registriert seit
    02.02.2006
    Ort
    Hessen
    Beiträge
    429
    Danke
    16
    Erhielt 28 Danke für 22 Beiträge

    Standard

    @Ralle,

    das kommt davon, weil ich so oft KOP-lesbaren Code schreibe. Dabei kann das mit dem Wert in AKKU2-L-L nicht passieren.
    mfG Werner
    Hoch lebe die Suchfunktion!
    Zitieren Zitieren AWL-Code  

  8. #18
    Registriert seit
    29.01.2007
    Ort
    Sandkrug
    Beiträge
    147
    Danke
    7
    Erhielt 36 Danke für 25 Beiträge

    Standard

    Hallo nochmal,
    beim FC10 können nochmals 2 Befehle eingespart werden. Wahrscheinlich bester Code:
    Code:
    L #Zeitwert
    UW W#16#3000
    SRD 10
    L #Zeitwert
    UW W#16#0FFF
    SLD
    SLD 4
    BTD
    T #Zeit_ms
    1. Natürlich soll ein Code auch für die Nachtschichtler verständlich sein. Wo aber liegen hier die Grenzen?
    2. Ich entwickle und teste meine Programme mit WinSPS-S7, Version 3.57. Die Fa. mhj-Software arbeitet meines Wissens eng mit Siemens zusammen. Habe bisher noch keinen Fehler hinsichtlich der "offiziellen" Siemens-Befehlsliste feststellen können.
    3. Der Befehl SLD (ohne Parameter) holt sich seinen Parameter aus Akku 2. Wenn man in meinen Programmvorschlägen genau die Inhalte der Akkus 1 und 2 verfolgt, kommt man eigentlich dahinter was passiert.
    4. Schiebt man eine BCD-Zahl um 4 Stellen nach links, bedeutet das Multiplikation mit 10. Schiebt man dagegen eine pos. INT-Zahl um 1 Stelle nach links, bedeutet das Multiplikation mit 2.
    5. Bevor ein Ladebefehl ausgeführt wird, wird der Inhalt von Akku1 (alle 32 Bit) unverändert nach Akku2 kopiert. "Alter" Inhalt von Akku2 geht dabei verloren.
    6. Arithmetikbefehle verknüpfen immer Akku2 mit Akku1. Ergebnis wird in Akku1 geschrieben, Inhalt von Akku2 wird dabei nicht verändert.
    7. Nichts für Ungut, aber ich denke mal, dass solche Codebeispiele gut zum Üben taugen. Wer nicht will, kann es ja lassen.
    Gruß eNDe

  9. #19
    Registriert seit
    28.06.2006
    Ort
    Königreich Neuseeland
    Beiträge
    2.027
    Danke
    133
    Erhielt 96 Danke für 76 Beiträge

    Standard

    Zitat Zitat von eNDe Beitrag anzeigen
    6. Arithmetikbefehle verknüpfen immer Akku2 mit Akku1. Ergebnis wird in Akku1 geschrieben, Inhalt von Akku2 wird dabei nicht verändert.
    Leider muss ich dich erneut auf einen Fehler in deinen Ausführungen hinweisen.

    Wie auch Ralle schon erwähnte gilt:

    Bei CPUs mit zwei Akkus bleibt der Inhalt von AKKU 2 unverändert.

    Bei CPUs mit vier Akkus werden die Inhalte von AKKU 3 in AKKU 2, und von AKKU 4 in AKKU 3 kopiert. Der Inhalt von AKKU 4 bleibt unverändert.


    Alle 400er und die 318 haben 4 Akkus.

    Bei diesen CPUen wird also der Inhalt von Akku 2 bei arithmetischen Operationen mit dem Inhalt von Akku 3 überschrieben.

    Habe ich eben ausprobiert, dass ist so.

  10. #20
    Registriert seit
    29.01.2007
    Ort
    Sandkrug
    Beiträge
    147
    Danke
    7
    Erhielt 36 Danke für 25 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    was UG schreibt, wird wahrscheinlich stimmen. Eine Befehlsliste für CPU's mit 4 Akkus habe ich leider nicht. Also muss ich der Vollständigkeit wegen schreiben, dass der Code nur für die 2-Akku-Varianten der CPU's gilt, wobei ich hier davon ausgehe, dass diese dann alle nach den gleichen Befehlslisten arbeiten.
    mfG eNDe

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 16.03.2012, 18:20
  2. "Index Pulse", "Home Switch" und "Position Limit Switch"
    Von senmeis im Forum Antriebstechnik
    Antworten: 3
    Letzter Beitrag: 07.03.2011, 11:21
  3. Problem bei Rechnen mit "REAL" Werten
    Von SPS n00b im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 10.02.2010, 10:21
  4. Antworten: 2
    Letzter Beitrag: 14.12.2007, 15:09
  5. Antworten: 4
    Letzter Beitrag: 29.11.2006, 08:59

Lesezeichen

Berechtigungen

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