hallo
der collect baustein kann eingangsseitig bis zu 64 meldungen verarbeiten
das heisst z.b. von 8 verschiedenen mon_b8 bausteinen können meldungen entgegen genommen werden
jedoch pro mon_b8 baustein maximal 4 meldungen im selben zyklus
der collect baustein macht aus den maximal 64 inputs eine sammlung vom max. 32 meldungen
der collect baustein hat anscheinend eine macke !
dis zur vollständigen klärung warum das so ist, kann ich dir einen bug.fix anbieten
IF rst OR cnt < 0 THEN
pos := -1;
cnt := 0; <----- das musst du einfügen
ELSE
FOR cnt := 0 TO max_in DO
IF esr_0[cnt].typ > 0 THEN pos := INC1(pos, max_out); esr_out[pos] := esr_0[cnt]; END_IF;
IF esr_1[cnt].typ > 0 THEN pos := INC1(pos, max_out); esr_out[pos] := esr_1[cnt]; END_IF;
IF esr_2[cnt].typ > 0 THEN pos := INC1(pos, max_out); esr_out[pos] := esr_2[cnt]; END_IF;
IF esr_3[cnt].typ > 0 THEN pos := INC1(pos, max_out); esr_out[pos] := esr_3[cnt]; END_IF;
IF esr_4[cnt].typ > 0 THEN pos := INC1(pos, max_out); esr_out[pos] := esr_4[cnt]; END_IF;
IF esr_5[cnt].typ > 0 THEN pos := INC1(pos, max_out); esr_out[pos] := esr_5[cnt]; END_IF;
IF esr_6[cnt].typ > 0 THEN pos := INC1(pos, max_out); esr_out[pos] := esr_6[cnt]; END_IF;
IF esr_7[cnt].typ > 0 THEN pos := INC1(pos, max_out); esr_out[pos] := esr_7[cnt]; END_IF;
END_FOR;
END_IF;