电子说
01
题目
由于西门子PLC本身并没有带求立方根的指令,我们用SCL来写一个求立方根的FB块。
02
分析
利用牛顿迭代法求立方根,通过迭代次数可以带近正确的值,迭代次数越多,求出的值越准确
利用牛顿迭代法可推导出求立方根公式如下
x = (2 * x + num / (x * x)) / 3.0
具体推导过程可参考网上搜索:C#求立方根牛顿迭代法。这里就不再详细解释了。有兴趣的朋友 可以到网页自行搜索了解
03
程序
参数接口定义如下
X是被求数,Y是结果,由于要不断迭代,在此设置为INOUT类型
SCL程序:
程序大体就是根据上面2中推出出的公式来指导编程,利用FOR循环进行循环迭代次数。
在这里要强调,由于迭代次数越多,会占用大量PLC扫描时间,所以,在实际应用中,迭代次数尽量小于1000
在OB1中调用程序如下:
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !