马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
<p><span style="text-wrap: nowrap;"> // Title: FIFO</span></p><p><span style="text-wrap: nowrap;"> // Comment/Function: Shift the data to FIFO</span></p><p><span style="text-wrap: nowrap;"> // Library/Family: </span></p><p><span style="text-wrap: nowrap;"> // Author: DDA</span></p><p><span style="text-wrap: nowrap;"> // Tested with: V1.6.2 SP1</span></p><p><span style="text-wrap: nowrap;"> // Engineering: Lib_Dang</span></p><p><span style="text-wrap: nowrap;"> // Restrictions: ENO disabled - error handling done with error and status</span></p><p><span style="text-wrap: nowrap;"> // Requirements: PLC (AM610_AM400)</span></p><p><span style="text-wrap: nowrap;"> //-------------------------------------------------------------------------------</span></p><p><span style="text-wrap: nowrap;"> // Change log table:</span></p><p><span style="text-wrap: nowrap;"> // Version | Date | Expert in charge | Changes applied</span></p><p><span style="text-wrap: nowrap;"> //----------|------------|------------------------|------------------------------</span></p><p><span style="text-wrap: nowrap;"> // 09.00.00 29.7.2021 dangguodong</span></p><p><span style="text-wrap: nowrap;"> // the index the of array must be start with the zreo </span></p><p><span style="text-wrap: nowrap;"> //==================================================================================</span></p><p><span style="text-wrap: nowrap;"><br/></span></p><p><span style="text-wrap: nowrap;"><br/></span></p><p><span style="text-wrap: nowrap;"><br/></span></p><p><span style="text-wrap: nowrap;">// Check the param</span></p><p><span style="text-wrap: nowrap;">IF Contianer=0</span></p><p><span style="text-wrap: nowrap;"> OR arrayLenght<=0</span></p><p><span style="text-wrap: nowrap;"> OR elementBytes<=0</span></p><p><span style="text-wrap: nowrap;"> THEN</span></p><p><span style="text-wrap: nowrap;"> FC_FIFO_V1:=FALSE;</span></p><p><span style="text-wrap: nowrap;">RETURN;</span></p><p><span style="text-wrap: nowrap;">END_IF;</span></p><p><span style="text-wrap: nowrap;"><br/></span></p><p><span style="text-wrap: nowrap;"> // put the pointer to the array , according of the first pointer</span></p><p><span style="text-wrap: nowrap;">FOR i:=arrayLenght-2 TO 0 BY -1 DO</span></p><p><span style="text-wrap: nowrap;"> </span></p><p><span style="text-wrap: nowrap;"> pointerArray:=Contianer+ INT_TO_DWORD(i*elementBytes);</span></p><p><span style="text-wrap: nowrap;"> pointerArrayNext:=Contianer+ INT_TO_DWORD((i+1)*elementBytes); </span></p><p><span style="text-wrap: nowrap;">BMOV(pbyDataSrc:=ADR(pointerArray^), uiSize:=INT_TO_UINT(elementBytes) , pbyDataDes:=ADR( pointerArrayNext^));</span></p><p><span style="text-wrap: nowrap;"><br/></span></p><p><span style="text-wrap: nowrap;">END_FOR</span></p><p><span style="text-wrap: nowrap;"><br/></span></p><p><span style="text-wrap: nowrap;">FC_FIFO_V1:=TRUE;</span></p><p><br/></p> |