Pracuję z modułem FM 353 (6ES7 353-1AH01-0AE0) w systemie SIMATIC S7-300 (CPU 312C, STEP7 v5.5).
Napotkałem zachowanie, które wydaje się sprzeczne z dokumentacją Siemensa.
Podczas wywołania bloku POS_INIT (inicjalizacja FM353) z parametrem:
CH_NO := 0, 1, 2 lub 3
→ CPU natychmiast przechodzi w STOP, zapala się dioda SF (System Fault).
→ Moduł FM353 się nie inicjalizuje.
Natomiast przy parametrach:
CH_NO := 4 … 255
→ CPU pozostaje w trybie RUN, brak błędu SF.
→ Moduł również się nie inicjalizuje, ale CPU pracuje.
Zgodnie z dokumentacją:
CH_NO := 0 → dozwolone przy tylko jednej osi na module
CH_NO := 1 → dozwolone
CH_NO := 2 … 255 → niedozwolone (illegal)
Pytanie:
Dlaczego użycie CH_NO = 0, 1, 2, 3 powoduje błąd SF i STOP CPU,
a CH_NO = 4 … 255 (niby niedozwolone) nie powoduje błędu?
Moduł FM353 mam w slocie 5. Wszystko inne w konfiguracji wygląda poprawnie.
Ktoś spotkał się z podobnym zachowaniem?
============================ Uzupełnienie==============================
Zachowanie POS_INIT:
Podczas wywoływania bloku POS_INIT obserwuję to:
CALL "POS_INIT"
DB_NO := 1210
CH_NO := 0 (1) // również 2, 3
LADDR := 272
RET_VAL := MW100
Powoduje błąd SF, procesor przechodzi do STOP.
RET_VAL = W#16#00FF
Ale:
CALL "POS_INIT"
DB_NO := 1210
CH_NO := 4 // i wyższe (moduł znajduje się w gnieździe 5)
LADDR := 272
RET_VAL := MW100
Brak SF, procesor pozostaje w trybie RUN, ale moduł nadal nie jest zainicjowany (RET_VAL = W#16#00FF).
Czy ktoś mógłby wyjaśnić, dlaczego wartości CH_NO 0-1 (również 2-3) powodują błąd, mimo że instrukcja mówi, że (0,1) są legalne?
Dlaczego wartości takie jak 4–255 nie powodują STOP, mimo że są oznaczone jako nielegalne?
Napotkałem zachowanie, które wydaje się sprzeczne z dokumentacją Siemensa.
Podczas wywołania bloku POS_INIT (inicjalizacja FM353) z parametrem:
CH_NO := 0, 1, 2 lub 3
→ CPU natychmiast przechodzi w STOP, zapala się dioda SF (System Fault).
→ Moduł FM353 się nie inicjalizuje.
Natomiast przy parametrach:
CH_NO := 4 … 255
→ CPU pozostaje w trybie RUN, brak błędu SF.
→ Moduł również się nie inicjalizuje, ale CPU pracuje.
Zgodnie z dokumentacją:
CH_NO := 0 → dozwolone przy tylko jednej osi na module
CH_NO := 1 → dozwolone
CH_NO := 2 … 255 → niedozwolone (illegal)
Pytanie:
Dlaczego użycie CH_NO = 0, 1, 2, 3 powoduje błąd SF i STOP CPU,
a CH_NO = 4 … 255 (niby niedozwolone) nie powoduje błędu?
Moduł FM353 mam w slocie 5. Wszystko inne w konfiguracji wygląda poprawnie.
Ktoś spotkał się z podobnym zachowaniem?
============================ Uzupełnienie==============================
Zachowanie POS_INIT:
Podczas wywoływania bloku POS_INIT obserwuję to:
CALL "POS_INIT"
DB_NO := 1210
CH_NO := 0 (1) // również 2, 3
LADDR := 272
RET_VAL := MW100
Powoduje błąd SF, procesor przechodzi do STOP.
RET_VAL = W#16#00FF
Ale:
CALL "POS_INIT"
DB_NO := 1210
CH_NO := 4 // i wyższe (moduł znajduje się w gnieździe 5)
LADDR := 272
RET_VAL := MW100
Brak SF, procesor pozostaje w trybie RUN, ale moduł nadal nie jest zainicjowany (RET_VAL = W#16#00FF).
Czy ktoś mógłby wyjaśnić, dlaczego wartości CH_NO 0-1 (również 2-3) powodują błąd, mimo że instrukcja mówi, że (0,1) są legalne?
Dlaczego wartości takie jak 4–255 nie powodują STOP, mimo że są oznaczone jako nielegalne?