Falls da irgendeine außer Kontrolle geratene indirekte Adressierung reinpfuscht: versuche mal eine andere DB-Nummer für die Kanal-DB
Ist Dein FC CNT_CTRL aktuell?
In meiner FMx50LIB: FC0 CNT_CTRL V3.0 vom 25.01.2006 12:15:33, 540 Bytes Arbeitsspeicher
FM Configuration Packages für Step7 ...
Hast Du irgendwie Fehleranzeigen des FC CNT_CTRL? Hast Du schon mal den FC_DIAG_INF aufgerufen?
Direktzugriff auf Peripherieadressen der FM450-1:
Kanal 1: CH_ADR = MOD_ADR
Kanal 2: CH_ADR = MOD_ADR + 32
PED[CH_ADR + 0] ACT_LOAD Aktueller Ladewert
PED[CH_ADR + 4] ACT_CNTV Aktueller Zählwert
PEW[CH_ADR + 8] DA_ERR_W Datenfehler-Wort
PEB[CH_ADR + 10] OT_ERR_B Bedienfehler-Byte
PEB[CH_ADR + 11] Bit .4: DATA_ERR Datenfehler-Bit
Was Siemens im FM450-1-Handbuch wohl damit meint?
Die FC CNT_CTRL kann im Zyklus oder alternativ in einem zeitgesteuerten Programm einmal pro Zähler aufgerufen werden. Der Aufruf im Alarmprogramm ist nicht zulässig.
Ich interpretiere das so: nicht zulässig ist Aufruf in Prozessalarmen OB4x und Fehler-Alarmen OB8x... Aufruf in zyklischen Weckalarmen OB3x sollte zulässig sein.
Eine FM450-1 habe ich noch nicht gehabt, bei FM350-1 rufe ich den CNT_CTRL.. im OB1 auf. Will ich den Zählerstand in einem OB3x/OB4x wissen, dann lese ich direkt das PED des Zählwertes. Ich lasse alle Kanäle endlos frei laufen und setze die nie auf Anfangswerte zurück, weil dabei Impulse verloren gehen können.
Programmbeispiel: Zählerstandübernahme zu einer relativen Position ohne daß der Überlauf stört
Harald