0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

西門子博途之SCL常量的運算運用

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 2024-01-24 11:21 ? 次閱讀

有類型和無類型常量的解釋

常量是具有固定值的數(shù)據(jù),其值在程序運行期間不能更改。常量在程序執(zhí)行期間可由各種程序元素讀取,但不能被覆蓋。常量值有指定的表示法,具體取決于數(shù)據(jù)類型和數(shù)據(jù)格式。分為有類型和無類型的表示法。

建議在數(shù)學函數(shù)中不要混用有類型和無類型常量,否則可能會發(fā)生不需要的隱式轉換,從而導致生成不正確的值。

編程示例

在以下編程示例中,可以看到使用有類型和無類型常量的運算。

創(chuàng)建一個 SCL 函數(shù)塊并將其命名為“FB_MathsFunctions”。

在塊接口的“Temp”部分聲明“Variable_DINT”變量。

編寫以下程序代碼

Variable_DINT := INT#1 +50000;

在此數(shù)學運算中,將有類型常量 INT#1 與無類型常量 50000 相加。無類型常量 50000 在軟件中將帶黃色下劃線,指示常量值超出了 INT 數(shù)據(jù)類型允許的范圍。

要查看結果,請轉至在線。

通過右鍵單擊“編譯 》 軟件(僅更改)”(Compile 》 Software (only changes) 命令執(zhí)行此命令來編譯 SCL 函數(shù)塊“FB_MathsFunctions”。

使用“下載到設備 》 軟件(僅更改)”(Download to device 》 Software (only changes)) 命令下載塊。

轉至在線并監(jiān)視塊。

有類型常量的數(shù)據(jù)類型定義加法的數(shù)據(jù)類型。這意味著加法是在 INT 數(shù)據(jù)類型區(qū)域中執(zhí)行。在第一步中,無類型常量 50000 將隱式轉換為 INT 數(shù)據(jù)類型。但這種轉換會導致生成負值 (-15536)。然后該值將添加到有類型常量 (INT#1)。結果是 -15535。由于將寫入加法運算結果的變量被聲明為 DINT 數(shù)據(jù)類型,因此數(shù)字 -15535 將隱式轉換為 DINT 數(shù)據(jù)類型,并寫入到變量“Variable_DINT”。但結果仍為負數(shù)。

1. 可能的解決方案

避免得到錯誤結果的一種方法是兩個常量都采用有類型常量。如果兩個常量都采用有類型常量,較長的數(shù)據(jù)類型將確定計算結果。

在“FB_MathsFunctions”SCL 函數(shù)塊中編寫以下程序代碼:

在此計算操作中,將有類型常量 INT#1 與有類型常量 DINT#50000 相加。

要查看結果,請轉至在線。

通過右鍵單擊“編譯 》 軟件(僅更改)”(Compile 》 Software (only changes) 命令執(zhí)行此命令來編譯 SCL 函數(shù)塊“FB_MathsFunctions”。

使用“下載到設備 》 軟件(僅更改)”(Download to device 》 Software (only changes)) 命令下載塊。

轉至在線并監(jiān)視塊。

常量 INT#1 將轉換為 DINT 數(shù)據(jù)類型,并且兩個常量的相加將在 DINT 數(shù)據(jù)類型區(qū)域中執(zhí)行。

2. 可能的解決方案

避免得到錯誤結果的另一種方法是兩個常量都采用無類型常量。如果兩個常量都采用無類型常量,它們在當前 CPU 上將被解釋為最寬的可能數(shù)據(jù)類型。這意味著在 S7-1500 系列 CPU上,這兩個常量都解釋為 LINT 數(shù)據(jù)類型。

在“FB_MathsFunctions”SCL 函數(shù)塊中編寫以下程序代碼:

在此計算操作中,將無類型常量 1 與無類型常量 50000 相加。

要查看結果,請轉至在線。

通過右鍵單擊“編譯 》 軟件(僅更改)”(Compile 》 Software (only changes) 命令執(zhí)行此命令來編譯 SCL 函數(shù)塊“FB_MathsFunctions”。

使用“下載到設備 》 軟件(僅更改)”(Download to device 》 Software (only changes)) 命令下載塊。

轉至在線并監(jiān)視塊。

常量 1 和 50000 將解釋為 LINT 數(shù)據(jù)類型,相加的結果將再次轉換為 DINT 數(shù)據(jù)類型。

審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 西門子
    +關注

    關注

    94

    文章

    3039

    瀏覽量

    115874
  • 函數(shù)
    +關注

    關注

    3

    文章

    4331

    瀏覽量

    62618
  • 數(shù)據(jù)類型

    關注

    0

    文章

    236

    瀏覽量

    13624
  • SCL
    SCL
    +關注

    關注

    1

    文章

    239

    瀏覽量

    17081

原文標題:西門子博途:使用 SCL 中的常量進行計算

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    北京回收西門子組態(tài)軟件

    回收西門子變頻器SINAMICS V10系列變頻器回收西門子觸摸屏回收西門子組態(tài)軟件回收西門子
    發(fā)表于 05-27 12:16

    淺談西門子PLC的“SCL語言”編程

    介紹西門子PLC的“SCL語言”編程,相關編程代碼
    發(fā)表于 01-22 17:25 ?0次下載

    西門子大賽1200電梯參考程序

    西門子大賽1200電梯參考程序,V13文件.有需要的加油!
    發(fā)表于 06-22 15:56 ?183次下載

    西門子SCL編程:滾動數(shù)據(jù)記錄

    責任編輯:xj 原文標題:SCL編程實例:滾動數(shù)據(jù)記錄 文章出處:【微信公眾號:PLC技術圈】歡迎添加關注!文章轉載請注明出處。 ?
    的頭像 發(fā)表于 12-28 09:16 ?4118次閱讀
    <b class='flag-5'>西門子</b><b class='flag-5'>博</b><b class='flag-5'>途</b><b class='flag-5'>SCL</b>編程:滾動數(shù)據(jù)記錄

    西門子PLC中使用SCL語言編程的技巧

    西門子PLC中使用SCL語言編程的技巧說明。
    發(fā)表于 04-22 11:15 ?65次下載

    淺談西門子PLC的SCL語言編程

    西門子PLC的SCL語言編程說明。
    發(fā)表于 04-22 14:39 ?47次下載

    淺談西門子SCL編程

    淺談西門子SCL編程資料免費下載。
    發(fā)表于 04-23 10:44 ?27次下載

    西門子PLC編程軟件下載

    西門子PLC編程軟件TIA V13 SP1 SIMATIC_WinCC_Runtime_Professional_SP1_for_V13---江西工控論壇有下載密碼www.jx-gongkong.com
    發(fā)表于 03-01 11:04 ?68次下載

    如何在平臺調(diào)試西門子G120變頻器

      隨著工業(yè)自動化邁向智能化越來越近,科技工作者不斷的突破,近年在傳動領域,采用工業(yè)以太網(wǎng)(Profinet)和變頻器通訊非常廣泛,今天我們簡單的介紹下在平臺調(diào)試西門子G120變頻器。
    的頭像 發(fā)表于 04-25 10:17 ?2.9w次閱讀
    如何在<b class='flag-5'>博</b><b class='flag-5'>途</b>平臺調(diào)試<b class='flag-5'>西門子</b>G120變頻器

    西門子1200/1500PLC單按鈕啟??刂?0種設計方法

    西門子1200/1500PLC單按鈕啟停控制10種設計方法
    的頭像 發(fā)表于 08-31 09:14 ?8107次閱讀
    <b class='flag-5'>西門子</b><b class='flag-5'>博</b><b class='flag-5'>途</b>1200/1500PLC單按鈕啟??刂?0種設計方法

    西門子plc單按鈕啟停的十種方法(1200/1500PLC)

    西門子1200/1500PLC單按鈕啟停控制10種設計方法
    發(fā)表于 08-31 09:15 ?6642次閱讀
    <b class='flag-5'>西門子</b>plc單按鈕啟停的十種方法(<b class='flag-5'>博</b><b class='flag-5'>途</b>1200/1500PLC)

    如何在平臺調(diào)試西門子G120變頻器

    隨著工業(yè)自動化邁向智能化越來越近,科技工作者不斷的突破,近年在傳動領域,采用工業(yè)以太網(wǎng)(Profinet)和變頻器通訊非常廣泛,今天我們簡單的介紹下在平臺調(diào)試西門子G120變頻器。
    發(fā)表于 09-07 12:50 ?4980次閱讀
    如何在<b class='flag-5'>博</b><b class='flag-5'>途</b>平臺調(diào)試<b class='flag-5'>西門子</b>G120變頻器

    西門子使用常量的示例

    常量是具有固定值的數(shù)據(jù),其值在程序運行期間不能更改。常量在程序執(zhí)行期間可由各種程序元素讀取,但不能被覆蓋。不同的常量值通常會指定相應的表示方式,具體取決于數(shù)據(jù)類型和數(shù)據(jù)格式。類型與非類型表示方式不同。
    的頭像 發(fā)表于 09-11 10:24 ?2662次閱讀

    西門子SCL練習1:使用FC計算平均值

    西門子SCL練習1:使用FC計算平均值
    的頭像 發(fā)表于 01-02 10:25 ?2804次閱讀
    <b class='flag-5'>西門子</b><b class='flag-5'>博</b>圖<b class='flag-5'>SCL</b>練習1:使用FC計算平均值

    西門子:全局用戶常量的規(guī)則

    常量值可以通過用戶常量的幫助保存。通常,控制器中有 OB、FC 和 FB 的局部常量和整個用戶程序的全局常量
    發(fā)表于 01-16 09:28 ?2076次閱讀
    <b class='flag-5'>西門子</b><b class='flag-5'>博</b><b class='flag-5'>途</b>:全局用戶<b class='flag-5'>常量</b>的規(guī)則