01
题目
由于西门子PLC本身并没有带求立方根的指令,我们用SCL来写一个求立方根的FB块。
02
分析
利用牛顿迭代法求立方根,通过迭代次数可以带近正确的值,迭代次数越多,求出的值越准确
利用牛顿迭代法可推导出求立方根公式如下
x = (2 * x + num / (x * x)) / 3.0
具体推导过程可参考网上搜索:C#求立方根牛顿迭代法。这里就不再详细解释了。有兴趣的朋友 可以到网页自行搜索了解
03
程序
参数接口定义如下

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

程序大体就是根据上面2中推出出的公式来指导编程,利用FOR循环进行循环迭代次数。
在这里要强调,由于迭代次数越多,会占用大量PLC扫描时间,所以,在实际应用中,迭代次数尽量小于1000
在OB1中调用程序如下:

审核编辑:刘清
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
plc
+关注
关注
5052文章
14925浏览量
489325 -
SCL
+关注
关注
1文章
244浏览量
18084
原文标题:西门子SCL语言编程系列讲37-写立方根FB块
文章出处:【微信号:PLC 工控微课,微信公众号:PLC 工控微课】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
热点推荐
介绍一个使用SCL语言编写的电机控制函数块
电机控制在实际项目中经常使用,一般的电机控制程序块都是具有启动、保持、停止的功能。 今天这篇文章给大家介绍一个使用SCL语言编写的电机
发表于 03-09 17:02
在SCL源文件中调用功能和功能块方法
FUNCTION_BLOCK :定义块号或者块的符号名称。若是一个符号,例如 SIM _VAL,则在编译SCL代码中的
用SCL来写一个求立方根的FB块
评论