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
+關注
關注
5051文章
14594瀏覽量
486918 -
SCL
+關注
關注
1文章
244瀏覽量
18019
原文標題:西門子SCL語言編程系列講37-寫立方根FB塊
文章出處:【微信號:PLC 工控微課,微信公眾號:PLC 工控微課】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
介紹一個使用SCL語言編寫的電機控制函數塊
電機控制在實際項目中經常使用,一般的電機控制程序塊都是具有啟動、保持、停止的功能。 今天這篇文章給大家介紹一個使用SCL語言編寫的電機
發表于 03-09 17:02
在SCL源文件中調用功能和功能塊方法
FUNCTION_BLOCK :定義塊號或者塊的符號名稱。若是一個符號,例如 SIM _VAL,則在編譯SCL代碼中的
用SCL來寫一個求立方根的FB塊
評論