= nFifoSize THEN iPutIndex := 0; END_IF pPutIndex := iPutIndex * nDataLen; MEMCPY(pFifoMemory + pPutIndex, pPutData, nDataLen); iPutIndex := iPutIndex + 1; iFifoSizeLeft := iFifoSizeLeft - 1; END_IF END_IF; IF NOT(bFifoEmpty) THEN IF bGetData THEN bIs1Sec := iGetIndex >= nFifoSize; IF bIs1Sec THEN iGetIndex := 0; END_IF pGetIndex := iGetIndex * nDataLen; MEMCPY(pGetData, pFifoMemory + pGetIndex , nDataLen); iGetIndex := iGetIndex + 1; iFifoSizeLeft := iFifoSizeLeft + 1; END_IF END_IF; (* _TaskInfo[GETCURTASKINDEX()].FirstCycle; SystemTaskInfoArr[SystemInfo.RuntimeNo].firstCycle *) fbGetTaskId(); IF _TaskInfo[fbGetTaskId.index].FirstCycle THEN iFifoSizeLeft := nFifoSize; END_IF //IF iFifoSizeLeft = 0 THEN // bFifoFull := TRUE; //ELSE // bFifoFull := FALSE; //END_IF //IF iFifoSizeLeft >= nFifoSize THEN // bFifoEmpty := TRUE; //ELSE // bFifoEmpty := FALSE; //END_IF ]]>