返回列表 发布新帖

英威腾PLC 任意类型先入先出方法

316 0
发表于 2024-7-10 18:16:53 | 查看全部 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
<p><span style="text-wrap: nowrap;">&nbsp; &nbsp;// Title:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FIFO</span></p><p><span style="text-wrap: nowrap;">&nbsp; &nbsp; // Comment/Function: Shift the data to&nbsp; FIFO</span></p><p><span style="text-wrap: nowrap;">&nbsp; &nbsp; // Library/Family:&nbsp; &nbsp;</span></p><p><span style="text-wrap: nowrap;">&nbsp; &nbsp; // Author:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DDA</span></p><p><span style="text-wrap: nowrap;">&nbsp; &nbsp; // Tested with:&nbsp; &nbsp; &nbsp; V1.6.2 SP1</span></p><p><span style="text-wrap: nowrap;">&nbsp; &nbsp; // Engineering:&nbsp; &nbsp; &nbsp; Lib_Dang</span></p><p><span style="text-wrap: nowrap;">&nbsp; &nbsp; // Restrictions:&nbsp; &nbsp; &nbsp;ENO disabled - error handling done with error and status</span></p><p><span style="text-wrap: nowrap;">&nbsp; &nbsp; // Requirements:&nbsp; &nbsp; &nbsp;PLC (AM610_AM400)</span></p><p><span style="text-wrap: nowrap;">&nbsp; &nbsp; //-------------------------------------------------------------------------------</span></p><p><span style="text-wrap: nowrap;">&nbsp; &nbsp; // Change log table:</span></p><p><span style="text-wrap: nowrap;">&nbsp; &nbsp; // Version&nbsp; | Date&nbsp; &nbsp; &nbsp; &nbsp;| Expert in charge&nbsp; &nbsp; &nbsp; &nbsp;| Changes applied</span></p><p><span style="text-wrap: nowrap;">&nbsp; &nbsp; //----------|------------|------------------------|------------------------------</span></p><p><span style="text-wrap: nowrap;">&nbsp; &nbsp; // 09.00.00 29.7.2021&nbsp; dangguodong</span></p><p><span style="text-wrap: nowrap;">&nbsp; &nbsp; // the index the of array must be start with the zreo&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span></p><p><span style="text-wrap: nowrap;">&nbsp; &nbsp; //==================================================================================</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;">&nbsp; &nbsp;OR arrayLenght&lt;=0</span></p><p><span style="text-wrap: nowrap;">&nbsp; &nbsp;OR elementBytes&lt;=0</span></p><p><span style="text-wrap: nowrap;">&nbsp; &nbsp;THEN</span></p><p><span style="text-wrap: nowrap;">&nbsp; &nbsp;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;">&nbsp; &nbsp;// put the pointer to the array , according of the first pointer</span></p><p><span style="text-wrap: nowrap;">FOR i:=arrayLenght-2 TO&nbsp; 0 BY -1 DO</span></p><p><span style="text-wrap: nowrap;">&nbsp; &nbsp; &nbsp; &nbsp;</span></p><p><span style="text-wrap: nowrap;">&nbsp; pointerArray:=Contianer+ INT_TO_DWORD(i*elementBytes);</span></p><p><span style="text-wrap: nowrap;">&nbsp; pointerArrayNext:=Contianer+ INT_TO_DWORD((i+1)*elementBytes);&nbsp; &nbsp; &nbsp; &nbsp;</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>

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2025 英威腾技术论坛 版权所有 All Rights Reserved. 粤ICP备07504406号
关灯 在本版发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表