返回列表 发布新帖

中型PLC ST语言_FOR语句

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

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

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

×
<h4 style="background-color: rgb(102, 204, 204); padding: 2px; font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;">FOR:在计数循环中执行</h4><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;"><strong>说明:使用&quot;在计数循环中执行&quot;指令,重复执行程序循环,直至运行变量不在指定的取值范围内。</strong></p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;">也可以嵌套程序循环。在程序循环内,可以编写包含其它运行变量的其它程序循环。</p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;">通过指令&quot;复查循环条件&quot;(Continue),可以终止当前正在运行的程序循环。通过指令&quot;立即退出循环&quot;(Exit)终止整个循环的执行。</p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;"><strong>注意:</strong></p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;"><strong><span style="text-decoration:underline;">有关运行次数和运行变量的信息:</span></strong></p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;"><span style="text-decoration:underline;"><strong>程序运行时无法更改运行次数。出于性能原因,应在块接口的&quot;Temp&quot;部分中声明运行变量。在循环中,该运行变量无法更改。</strong></span></p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;">按如下方式声明此指令:</p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;">FOR &lt;运行变量&gt; := &lt;起始值&gt; TO &lt;结束值&gt; BY &lt;增量&gt; DO</p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;">&lt;语句&gt;;</p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;">END_FOR;</p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;">如果增量为1,可以简写为:</p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;">FOR &lt;运行变量&gt; := &lt;起始值&gt; TO &lt;结束值&gt; DO</p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;">&lt;语句&gt;;</p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;">END_FOR;</p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;"><img src="/upload/image/20230618/1687051225826875.png" width="591" height="418"/></p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;">图10 FOR语句</p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;">下表列出了该指令的参数:</p><table width="NaN"><tbody><tr class="firstRow"><th width="100" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>参数</p></th><th width="100" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>数据类型</p></th><th width="100" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>存储区</p></th><th width="700" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>说明</p></th></tr><tr><td width="100" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>&lt;运行变量&gt;</p></td><td width="100" rowspan="4" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>有符号整数、无符号整数*</p></td><td width="100" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>I、Q、M、D、L</p></td><td width="700" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>执行循环时会计算其值的操作数。执行变量的数据类型将确定其它参数的数据类型。</p></td></tr><tr><td width="100" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>&lt;起始值&gt;</p></td><td width="100" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>I、Q、M、D、L</p></td><td width="700" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>表达式,在运行变量首次执行循环时,将为运行变量分配该表达式的值。</p></td></tr><tr><td width="100" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>&lt;结束值&gt;</p></td><td width="100" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>I、Q、M、D、L</p></td><td width="700" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>表达式,在运行程序最后一次循环时会为运行变量分配该表达式的值。在每个循环后都会检查运行变量的值:</p><ul class=" list-paddingleft-2"><li><p>未达到结束值:<br/>执行符合 DO 的语句</p></li><li><p>达到结束值:<br/>最后执行一次 FOR 语句</p></li><li><p>超出结束值:<br/>完成 FOR 循环</p></li></ul><p>执行该指令期间,不允许更改结束值。</p></td></tr><tr><td width="100" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>&lt;增量&gt;</p></td><td width="100" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>I、Q、M、D、L</p></td><td width="700" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>表达式,根据增量表达式的值,执行变量在每次循环后都会递增(正增量)或递减(负增量)自身变量值。</p><p>如果未指定增量,则在每次循环后执行变量的值加 1。</p><p>执行该指令期间,不允许更改增量。</p></td></tr><tr><td width="100" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>&lt;语句&gt;</p></td><td width="100" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>-</p></td><td width="100" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><br/></td><td width="700" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;"><p>只要运行变量的值在取值范围内,每次循环都就会执行的语句。取值范围由起始值和结束值定义。</p></td></tr></tbody></table><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;">*TIA PORTAL V16开始支持无符号整数类型的变量</p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;"><strong>示例</strong></p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;"><img src="/upload/image/20230618/1687051226376584.png" width="303" height="50"/></p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;">图11 FOR示例<br/></p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;">Tag_Value 操作数乘以b_array 数组变量的元素 (2, 4, 6, 8)。并将计算结果读入到a_array 数组变量的元素 (2, 4, 6, 8) 中。</p><p style="font-family: Arial, Helvetica, sans-serif; font-size: medium; text-wrap: wrap;">下表展示了给定 Tag_Value 与 b_array 的值得到 a_array 的结果:</p><table width="NaN"><tbody><tr class="firstRow"><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">设定</td><td colspan="4" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">Tag_Value</td></tr><tr><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">值</td><td colspan="4" style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">5</td></tr><tr><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">设定</td><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">b_array[2]</td><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">b_array[4]</td><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">b_array[6]</td><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">b_array[8]</td></tr><tr><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">值</td><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">3</td><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">5</td><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">7</td><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">9</td></tr><tr><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">结果</td><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">a_array[2]</td><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">a_array[4]</td><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">a_array[6]</td><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">a_array[8]</td></tr><tr><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">值</td><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">15</td><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">25</td><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">35</td><td style="text-align: center; vertical-align: middle; padding-top: 2px; padding-bottom: 2px;">45<br/><br/></td></tr></tbody></table><p><br/></p>

回复

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

本版积分规则

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