Step 7 S7-313C Frage zu Interrupt im OB40

Zuviel Werbung?
-> Hier kostenlos registrieren
Das MW6 wird im OB1 nur einmal verwendet, wenn es auf 0 gesetzt wird. Die anderen Zugriffe erfolgen im Hauptprogramm in mehreren Funktionsbausteinen, da mit dem MW6 eine Schrittkette umgesetzt wurde.
Das Bit L8.7 bedeutet, dass der Vergleicher angesprochen hat. Nur kommt dieses Bit wenn der Drehgeber sich dreht und der Vergleicher eigentlich nicht ansprechen darf, da der Wert ja schließlich nicht mehr 0 ist. Ich muss mal nachlesen, was es mit dem Vergleicher auf sich hat.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn im OB1 an mehreren Stellen der Wert vom MW6 gebraucht wird, da müsste im OB1 das MW6 auf ein für den ganzen OB1-Durchlauf konsistentes "Prozessabbild" des MW6 umkopiert werden.
Das MW6 wird im OB1 nur einmal verwendet, wenn es auf 0 gesetzt wird. Die anderen Zugriffe erfolgen im Hauptprogramm in mehreren Funktionsbausteinen, da mit dem MW6 eine Schrittkette umgesetzt wurde.
Die "mehreren Funktionsbausteine" werden aber in der OB1-Task/Ablaufebene aufgerufen? (also in Bausteinen die im OB1 aufgerufen werden, oder in Bausteinen die von Bausteinen aufgerufen werden, welche im OB1 aufgerufen werden...)
Mit "im OB1" meinte ich nicht, daß die Zugriffe direkt im OB1 sein müssen, sondern in der OB1-Ablaufebene, also im OB1 und dessen unterlagerten Bausteinen, also da wo der OB1 in der Aufrufhierarchie ganz oben steht.

Wann genau wird das MW6 auf 0 gesetzt?

Der Code ist ziemlich unspektakulär.
Wenn das Bit L8.7 kommt, wird in das MW6 eine 60 geschrieben.
Wird im OB40 bei der Abfrage des L8.7 vor der Zuweisung an MW6 auch #OB_40_MDL_ADDR auf die in HW Konfig beim CPU-Submodul "Zählen" projektierte E-Adresse verglichen (Step7 classic Standard: 768)? Vielleicht zeigst Du uns doch besser den gesamten unspektakulären OB40-Code?
Ist das MW6 ein Schrittketten-Merker? Ist die 60 in MW6 womöglich direkt eine Schrittnummer??

Harald
 
Hallo zusammen...

ich möchte mich schonmal für eure Hilfe bedanken, durch euch wusste ich wo ich nach schauen soll. Ich bin gerade bei dem Kunden und habe festgestellt, dass das Bit L8.7 fälschlicher Weise von der Steuerung gesetzt wird. Normalerweise sollte es nur HIGH sein, im Vergleicher IST = SOLLWERT ist. Ich bin mit dem Kanal vom Encoder von 1 auf 2 gewechselt und siehe da, das Bit wird nicht mehr gesetzt. Es traten dann aber andere Fehler im Kanal 0 auf. Jetzt ist eine neue CPU verbaut und alles läuft so wie es soll.

Intern in der Steuerung muss irgendwas falsch interpretiert worden sein.
 
Ich bin mit dem Kanal vom Encoder von 1 auf 2 gewechselt und siehe da, das Bit wird nicht mehr gesetzt. Es traten dann aber andere Fehler im Kanal 0 auf. Jetzt ist eine neue CPU verbaut und alles läuft so wie es soll.
Irgendwie habe ich das Gefühl, daß es gereicht hätte, die HW Konfig bzw. die Systemdatenbausteine nochmal neu in die CPU zu laden. (Vielleicht hätte sogar Urlöschen gereicht?)

Falls Ihr die alte CPU entsorgen wollt, ich hätte Interesse an der "halb" kaputten CPU (für Ausbildungszwecke).

Harald
 
Zurück
Oben