-> Hier kostenlos registrieren
Hallo,
ich deklariere den Rückwärtszählwert zweier Zähler in einem FB als Word. Im OB 1 rufe ich dann den FB auf und definiere als Zählwert den DB1.DBW 0 und DBW 2. Im Programmablauf holt sich das Programm dann auch artig erst den DBW 0, zählt diesen runter und holt danach den DBW 2. Dort geht die CPU dann aber sofort auf Stop. Diagnose ist ein Programmierfehler, lasse ich mir den Baustein anzeigen, ist es mein 2. Zähler. Sage ich im OB 1 nun das anstatt des DBW 2 ein fester Wert geholt werden soll (W#16#12) dann läuft das Programm durch. Auch das bilden eines Merkerwordes hat nix gebracht. Beide Zähler sind von dem Aufbau gleich, nur der 2. tut es nicht Warum ???
ich deklariere den Rückwärtszählwert zweier Zähler in einem FB als Word. Im OB 1 rufe ich dann den FB auf und definiere als Zählwert den DB1.DBW 0 und DBW 2. Im Programmablauf holt sich das Programm dann auch artig erst den DBW 0, zählt diesen runter und holt danach den DBW 2. Dort geht die CPU dann aber sofort auf Stop. Diagnose ist ein Programmierfehler, lasse ich mir den Baustein anzeigen, ist es mein 2. Zähler. Sage ich im OB 1 nun das anstatt des DBW 2 ein fester Wert geholt werden soll (W#16#12) dann läuft das Programm durch. Auch das bilden eines Merkerwordes hat nix gebracht. Beide Zähler sind von dem Aufbau gleich, nur der 2. tut es nicht Warum ???
Code:
DB1:
Zeit_1 WORD W#16#0 Zeit für 1. Drehzahl
Zeit_2 WORD W#16#0 Zeit für 2. Drehzahl
FB10:
Zaehlw2 Word 8.0 W#16#0
U(
UN #T_Pause
U #Taktgeber
ZR #Zaehler2
BLD 101
U #SRO_6
L #Zaehlw2 //In --> Word
S #Zaehler2
NOP 0
NOP 0
LC #Zaehler2
T #Restwert2
U #Zaehler2
)
NOT
U #SRO_6
= #Ergebnis_Z2
OB 1
CALL FB 10 , DB10
Zaehler1 :=Z1
Zaehlw1 :=DB1.DBW0 //geht
Zaehler2 :=Z2
Zaehlw2 :=DB1.DBW0 //so geht´s nicht
Zaehlw2 :=W#16#12 // aber so ???