在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

使用SCL中的常量進行計算

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 2023-06-18 10:38 ? 次閱讀

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

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

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

編程示例

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

1. 創建一個 SCL 函數塊并將其命名為“FB_MathsFunctions”。

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

07518a20-0c42-11ee-962d-dac502259ad0.png

3. 編寫以下程序代碼

Variable_DINT := INT#1 +50000;

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

0773004c-0c42-11ee-962d-dac502259ad0.png

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

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

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

3. 轉至在線并監視塊。

077c904e-0c42-11ee-962d-dac502259ad0.png

有類型常量的數據類型定義加法的數據類型。這意味著加法是在 INT 數據類型區域中執行。在第一步中,無類型常量 50000 將隱式轉換為 INT 數據類型。

但這種轉換會導致生成負值 (-15536)。然后該值將添加到有類型常量 (INT#1)。結果是 -15535。

由于將寫入加法運算結果的變量被聲明為 DINT 數據類型,因此數字 -15535 將隱式轉換為 DINT 數據類型,并寫入到變量“Variable_DINT”。但結果仍為負數。

1. 可能的解決方案

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

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

0787de22-0c42-11ee-962d-dac502259ad0.png

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

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

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

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

3. 轉至在線并監視塊。

079e64f8-0c42-11ee-962d-dac502259ad0.png

常量 INT#1 將轉換為 DINT 數據類型,并且兩個常量的相加將在 DINT 數據類型區域中執行。

2. 可能的解決方案

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

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

07f3a62a-0c42-11ee-962d-dac502259ad0.png

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

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

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

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

3. 轉至在線并監視塊。

08036466-0c42-11ee-962d-dac502259ad0.png

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





審核編輯:劉清

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

    關注

    1

    文章

    239

    瀏覽量

    17111
  • S7-1500
    +關注

    關注

    3

    文章

    300

    瀏覽量

    6453

原文標題:使用 SCL 中的常量進行計算

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

收藏 人收藏

    評論

    相關推薦

    Go語言常量的聲明

    在 Go 語言中, 常量 表示的是固定的值,常量表達式的值在編譯期進行計算常量的值不可以修改。例如:3 、 Let's go 、
    發表于 07-20 15:24 ?417次閱讀

    IAR與KEIL如何直接定義常量到EEPROM的經驗分享

      分享了這篇在IAR與KEIL如何直接定義常量到EEPROM的經驗分享。其實方法和之前本人分享過的經驗分享“KE02在CW中使用常量形式初始化EEPROM值”合為姐妹篇,當然這種
    發表于 09-16 10:39 ?18次下載

    java 常量池靜態變量詳解

    Java常量池,實際上分為兩種形態:靜態常量池和運行時常量池。 所謂靜態常量池,即*.class文件
    發表于 09-27 13:01 ?10次下載
    java <b class='flag-5'>常量</b>池靜態變量詳解

    如何使用S7-SCL的“AT”指令?

    什么是“AT”指令,如何使用? AT指令是S7-SCL特有的一個指令,初學者可能會忽略此指令,或者對其理解不夠深刻。AT指令在S7-SCL中有著非常重要的地位,很多應用程序都必須使用此指令。下面
    的頭像 發表于 04-04 18:14 ?1.1w次閱讀
    如何使用S7-<b class='flag-5'>SCL</b><b class='flag-5'>中</b>的“AT”指令?

    請問怎樣在SCL中去使用浮點數進行計算

    例如,數據類型 REAL 在程序以 6 位小數的精度進行指定和計算
    的頭像 發表于 07-04 11:32 ?2483次閱讀

    使用SCL函數塊編寫計算保質期的應用程序

    在以下部分,將創建 SCL 函數塊“SCL_Best_before_date” 。 可使用 SCL 函數塊計算保質期。
    的頭像 發表于 10-18 15:15 ?1089次閱讀

    西門子SCL語言編程案例之計算方差

    在統計數據,經常用到方差來代表數據的離散程序,我們用SCL語言編寫一個計算方差的FB塊。
    的頭像 發表于 01-09 09:45 ?1393次閱讀

    對S7-SCL的AT指令進行詳細講解

    AT指令是S7-SCL特有的一個指令,初學者可能會忽略此指令,或者對其理解不夠深刻。
    的頭像 發表于 02-03 14:53 ?4876次閱讀

    淺談指針常量常量指針

    這節課我們來講一講指針常量常量指針。
    的頭像 發表于 02-21 09:27 ?1088次閱讀

    C語言的常量-2

    在C語言中,字符型常量是最特別的一種常量。他的特別之處在于我們需要對其使用指定的定界符對其進行限制。定界符為 ‘’ 。字符型常量可以分為兩種,一種是字符
    的頭像 發表于 02-21 15:02 ?664次閱讀
    C語言的<b class='flag-5'>常量</b>-2

    SCL中使用浮點數REAL和LREAL進行計算

    例如,數據類型 REAL 在程序以 6 位小數的精度進行指定和計算。在計算浮點數(REAL和 LREAL)時,請注意此精度通常應用于每個計算
    的頭像 發表于 05-30 09:40 ?1789次閱讀
    在<b class='flag-5'>SCL</b>中使用浮點數REAL和LREAL<b class='flag-5'>進行</b><b class='flag-5'>計算</b>

    SCL的 EN/ENO 機制概述

    SCL 的 EN/ENO 機制概述 在 SCL 程序段,可以通過賦值來改變 ENO。為此,請寫入“ENO:=TRUE”或“ENO:=FALSE”,或使用 BOOL 數據類型的變量。
    的頭像 發表于 08-23 10:08 ?2788次閱讀

    什么是常量折疊?Python如何優雅地實現它

    每種編程語言為了表現出色,并且實現卓越的性能,都需要大量編譯器級的優化。 一種著名的優化技術是“ 常量折疊 ”(Constant Folding):在編譯期間,編譯器會設法識別出常量表達式,對其進行
    的頭像 發表于 10-30 11:10 ?561次閱讀
    什么是<b class='flag-5'>常量</b>折疊?Python如何優雅地實現它

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

     建議在數學函數不要混用有類型和無類型常量,否則可能會發生不需要的隱式轉換,從而導致生成不正確的值。
    的頭像 發表于 01-24 11:21 ?2207次閱讀
    西門子博途之<b class='flag-5'>SCL</b><b class='flag-5'>常量</b>的運算運用

    微波檢測的關鍵物理常量是指

    微波檢測是一種利用微波技術進行物理量測量的方法,廣泛應用于通信、雷達、遙感等領域。在微波檢測,關鍵物理常量是指那些對測量結果有顯著影響的物理量。本文將詳細介紹微波檢測的關鍵物理常量
    的頭像 發表于 05-28 14:44 ?419次閱讀
    主站蜘蛛池模板: 五月婷婷六月合| 午夜欧美日韩| 91pao强力打造免费高清| xxx黄色片| 日本免费不卡视频| aaaa一级片| 天使色| 日本www色视频成人免费网站| 欧美午夜电影| 欧美疯狂爱爱xxxxbbbb| 天天爽夜夜| 免费簧片视频| www日| 亚洲福利一区二区| 最新版天堂资源中文官网| 五月激激| 免费两性的视频网站| 国内外精品免费视频| 又大又粗又爽黄毛片| 免费特黄一区二区三区视频一| 1024手机看片日韩| 深点再深一点好爽好多水| 伊人狠狠丁香婷婷综合色| 色视频网址| 狠狠色狠狠色综合久久一| 在线观看永久免费| 久久久久久久国产| 91大神网址| 亚洲swag精品自拍一区| 欧美色a电影精品aaaa| 国产一级特黄毛片| 天天视频免费入口| 日韩高清在线日韩大片观看网址| 色噜噜人体337p人体| 天堂资源www天堂在线| 久久亚洲视频| 天天干天天添| h视频在线免费看| 性欧美videofree另类超大 | 日本免费黄色网址| 欧美性妇|