S7 200 - SM0.0 + Status haben komisches verhalten

MeTh

Level-2
Beiträge
69
Reaktionspunkte
11
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

habe ein komisches Verhalten mit einer

S7 200 CPU 215 REL 01.02
mit MicroWin 4.0 SP5.

Ich habe folgenden Code vorgefunden:
Code:
LD SM0.0
= M3.0

In der Statustabelle habe ich gesehen, dass M3.0 immer "False" ist.
Der Baustein in dem der Code steht wird im "Main" aufgerufen und somit auch abgearbeitet.

Wenn ich mir das ganze im Status anschauen möchte, bekomme ich eine
Messagebox:

"Der Ausführungsstatus wird nicht unterstützt.
Es wird der Zyklusendestatus eingeschaltet."

Ich bekomme dann einen Wert an M3.0 angezeigt --> "False". :confused:

Habe überprüft, ob der M 3.0 noch mal irgendwo gesetzt oder über
MB/MW/MW/... angesprochen wird --> wird er nicht.

Habe die CPU schon durch eine andere getauscht und das Programm
eigespielt --> selbe Reaktion.

1. Hat jemand eine Idee, warum der SM0.0, der ja eigentlich immer "True"
ist nicht den M3.0 nicht auf "True" setzt?
2. Hat jemand eine Idee, warum der Status nicht Funktioniert?

Vielen Dank für euer mitüberlegen.

LG MeTh.
 
Hallo!


Wird er sicher aufgerufen? Nicht etwa bedingt?
Was schreibt der "Main" in dem NW wo du es aufrust?

(will nur sicher gehen)
Wenn du im Main nur hast CALL SBR_0:SBR0 und dann in FUP übersetzt, schreibt er "Nicht zulässig" Du musst vorher zb LD SM0.0 haben

viel Erfolg
 

Anhänge

  • main.jpg
    main.jpg
    122,2 KB · Aufrufe: 35
  • sbr.jpg
    sbr.jpg
    120,4 KB · Aufrufe: 27
Zuletzt bearbeitet:
Bist du ganz sicher daß der m3.0 nicht woanders im programm zurückgesetzt wird?
schon mal in den querverweisen nachgesehen?
vlt ja auch adressüberschneidungen durch byte,word oder dword zugriff auf diesen bereich?
 
Hallo,

hab die Querverweisliste durchgeschaut und hab auch auf die entsprechenden Verweise geschaut. Da ist nur eine Anweisung.

LG MeTh.
 

Anhänge

  • querverweis.JPG
    querverweis.JPG
    82,6 KB · Aufrufe: 22
  • Verwendete Bits.JPG
    Verwendete Bits.JPG
    73,5 KB · Aufrufe: 16
Hallo,

hab ich auch schon angeschaut.
In der Doku von MicroWin steht (zumindest inhaltlich :)):

b = Bitverwendung
B = Byteverwendung
W = Wortverwendung
D = Doppelwortverwendung

--> also nur zufriff als Bit.
 

Anhänge

  • Verwendete Bytes.JPG
    Verwendete Bytes.JPG
    59,8 KB · Aufrufe: 19
nimm doch probehalber mal ein anderes bit aus einem garantiert nicht benutzten bereich.
oder überspringe mal den rest deines programms.
oder hast du ein td200 älteren baujahrs angeschlossen (TD200 V2.1 oder älter)?
wenn ja welchen merkerbereich belegen die F-Tasten?
oder schreib doch mal ein prog wo nur deine beiden zeilen
Code:
LD SM0.0
= M3.0
drin stehen
und schau mal was passiert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich glaub ich komm dann klar...

Hallo,

ist tatsächlich ein älteres TD 200 dran aber mit dem Merkerbyte 5 :confused:

Hab den Versuch gemacht, hab nur SM0.0 = M3.0 --> diesmal hat es Funktioniert, auch wenn ich nur einen Status in AWL bekommen hab
(nur - bin ja froh drüber :ROFLMAO:).

Hab dann das alte Programm noch mal eingespielt und in die Querverweisliste geschaut und ein komplett anderes Bild bekommen:
(siehe Anhang)

Der Hammer schlecht hin --> Ich dachte eigentlich auf die Querverweisliste könnte man sich verlassen
(hatte zuvor 100% alles übersetzt, geht ja auch nicht anders).

Naja, euch schon mal vielen Dank für's mitdenken. Mit dem AWL-Status
und der Info, dass der Merker 2x gesetzt wird komm ich denke ich klar.

LG MeTh.
 

Anhänge

  • querverweis_2.JPG
    querverweis_2.JPG
    65,5 KB · Aufrufe: 24
Zurück
Oben