在线观看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

    文章

    243

    瀏覽量

    17464
  • S7-1500
    +關注

    關注

    3

    文章

    301

    瀏覽量

    6740

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

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Go語言常量的聲明

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

    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.2w次閱讀
    如何使用S7-<b class='flag-5'>SCL</b><b class='flag-5'>中</b>的“AT”指令?

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

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

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

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

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

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

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

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

    淺談指針常量常量指針

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

    C語言的常量-2

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

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

    例如,數據類型 REAL 在程序以 6 位小數的精度進行指定和計算。在計算浮點數(REAL和 LREAL)時,請注意此精度通常應用于每個計算
    的頭像 發表于 05-30 09:40 ?2137次閱讀
    在<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 ?3386次閱讀

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

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

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

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

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

    微波檢測是一種利用微波技術進行物理量測量的方法,廣泛應用于通信、雷達、遙感等領域。在微波檢測,關鍵物理常量是指那些對測量結果有顯著影響的物理量。本文將詳細介紹微波檢測的關鍵物理常量
    的頭像 發表于 05-28 14:44 ?720次閱讀
    主站蜘蛛池模板: 女人被男人免费播放网站 | free性乌克兰高清videos | 白丝丝袜高跟国产在线视频 | 国产永久视频夜色资源网 | 国产一区二区在线观看免费 | 欧美三级影院 | 啪啪网免费 | 一级做a爱片特黄在线观看 一级做a爱片特黄在线观看免费看 | 中文字幕一区二区三区四区五区人 | 欧美成年网站 | 久久人人爽爽爽人久久久 | 日本免费黄色录像 | 亚偷熟乱区视频在线观看 | 欧美激情αv一区二区三区 欧美激情第一欧美在线 | 四虎影院国产 | 精品伊人久久大线蕉色首页 | 午夜国产在线 | 三级在线观看免播放网站 | 天天摸夜夜摸爽爽狠狠婷婷97 | 磁力bt种子搜索在线 | 亚洲国产精品va在线观看麻豆 | 婷婷丁香色 | 男人操女人免费视频 | 国产精品高清免费网站 | 奇米影视777狠狠狠888不卡 | 四虎国产精品免费入口 | 天堂网在线www资源在线 | 老色网站 | 日韩基地1024首页 | 狠狠丁香激情久久综合 | 欧美一级做一a做片性视频 欧美一级做一级做片性十三 | 特级一级毛片免费看 | 成人免费国产gav视频在线 | 国产视频国产 | 国产综合色在线视频区色吧图片 | 正在播放欧美 | 男男全肉高h腐文 | 色香蕉在线观看网站 | 日韩高清性爽一级毛片免费 | 成人国产在线24小时播放视频 | 婷婷综合久久中文字幕蜜桃三 |