用SCL来写一个求立方根的FB块

电子说

1.3w人已加入

描述

01

题目

由于西门子PLC本身并没有带求立方根的指令,我们用SCL来写一个求立方根的FB块。

02

分析

利用牛顿迭代法求立方根,通过迭代次数可以带近正确的值,迭代次数越多,求出的值越准确

利用牛顿迭代法可推导出求立方根公式如下

x = (2 * x + num / (x * x)) / 3.0

具体推导过程可参考网上搜索:C#求立方根牛顿迭代法。这里就不再详细解释了。有兴趣的朋友 可以到网页自行搜索了解

03

程序

参数接口定义如下

plc

X是被求数,Y是结果,由于要不断迭代,在此设置为INOUT类型

SCL程序:

plc

程序大体就是根据上面2中推出出的公式来指导编程,利用FOR循环进行循环迭代次数。

在这里要强调,由于迭代次数越多,会占用大量PLC扫描时间,所以,在实际应用中,迭代次数尽量小于1000

在OB1中调用程序如下:

plc






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分