The input arFreqLimit must be defined as an array of 10 elements.
Bit 4 and 5 are then raised based on the following internal conditions, where l_uiArrFreqLimits is the vector arFreqLimit:
IF ((l_uiArrFreqLimits[0] > l_uiArrFreqLimits[1]) OR
(l_uiArrFreqLimits[2] > l_uiArrFreqLimits[3]) OR
(l_uiArrFreqLimits[4] > l_uiArrFreqLimits[5]) OR
(l_uiArrFreqLimits[6] > l_uiArrFreqLimits[7]) OR
(l_uiArrFreqLimits[8] > l_uiArrFreqLimits[9])) THEN
uiAlarmID:= (uiAlarmID) OR TO_UINT(MASKBIT_4);
END_IF;
IF ((uiMinFreq>l_uiArrFreqLimits[0]) AND (uiMinFreq<l_uiArrFreqLimits[1])) OR
((uiMinFreq>l_uiArrFreqLimits[2]) AND (uiMinFreq<l_uiArrFreqLimits[3])) OR
((uiMinFreq>l_uiArrFreqLimits[4]) AND (uiMinFreq<l_uiArrFreqLimits[5])) OR
((uiMinFreq>l_uiArrFreqLimits[6]) AND (uiMinFreq<l_uiArrFreqLimits[7])) OR
((uiMinFreq>l_uiArrFreqLimits[8]) AND (uiMinFreq<l_uiArrFreqLimits[9])) THEN
uiAlarmID:= (uiAlarmID) OR TO_UINT(MASKBIT_5);
END_IF;
Bit 4 and 5 are then raised based on the following internal conditions, where l_uiArrFreqLimits is the vector arFreqLimit:
IF ((l_uiArrFreqLimits[0] > l_uiArrFreqLimits[1]) OR
(l_uiArrFreqLimits[2] > l_uiArrFreqLimits[3]) OR
(l_uiArrFreqLimits[4] > l_uiArrFreqLimits[5]) OR
(l_uiArrFreqLimits[6] > l_uiArrFreqLimits[7]) OR
(l_uiArrFreqLimits[8] > l_uiArrFreqLimits[9])) THEN
uiAlarmID:= (uiAlarmID) OR TO_UINT(MASKBIT_4);
END_IF;
IF ((uiMinFreq>l_uiArrFreqLimits[0]) AND (uiMinFreq<l_uiArrFreqLimits[1])) OR
((uiMinFreq>l_uiArrFreqLimits[2]) AND (uiMinFreq<l_uiArrFreqLimits[3])) OR
((uiMinFreq>l_uiArrFreqLimits[4]) AND (uiMinFreq<l_uiArrFreqLimits[5])) OR
((uiMinFreq>l_uiArrFreqLimits[6]) AND (uiMinFreq<l_uiArrFreqLimits[7])) OR
((uiMinFreq>l_uiArrFreqLimits[8]) AND (uiMinFreq<l_uiArrFreqLimits[9])) THEN
uiAlarmID:= (uiAlarmID) OR TO_UINT(MASKBIT_5);
END_IF;