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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

西門子博途之SCL常量的運(yùn)算運(yùn)用

機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 來源:機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 2024-01-24 11:21 ? 次閱讀

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

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

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

編程示例

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

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

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

編寫以下程序代碼

Variable_DINT := INT#1 +50000;

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

要查看結(jié)果,請(qǐng)轉(zhuǎn)至在線。

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

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

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

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

1. 可能的解決方案

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

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

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

要查看結(jié)果,請(qǐng)轉(zhuǎn)至在線。

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

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

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

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

2. 可能的解決方案

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

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

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

要查看結(jié)果,請(qǐng)轉(zhuǎn)至在線。

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

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

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

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

審核編輯:黃飛

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

    關(guān)注

    98

    文章

    3138

    瀏覽量

    117819
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4372

    瀏覽量

    64303
  • 數(shù)據(jù)類型
    +關(guān)注

    關(guān)注

    0

    文章

    237

    瀏覽量

    13839
  • SCL
    SCL
    +關(guān)注

    關(guān)注

    1

    文章

    243

    瀏覽量

    17482

原文標(biāo)題:西門子博途:使用 SCL 中的常量進(jìn)行計(jì)算

文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

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

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

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

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

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

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

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

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

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

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

    淺談西門子SCL編程

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

    西門子PLC編程軟件下載

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

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

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

    西門子1200/1500PLC單按鈕啟停控制10種設(shè)計(jì)方法

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

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

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

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

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

    西門子使用常量的示例

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

    西門子SCL練習(xí)1:使用FC計(jì)算平均值

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

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

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

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品