一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

使用SCL中的常量進(jìn)行計(jì)算

機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 來(lái)源:機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 2023-06-18 10:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

有類(lèi)型和無(wú)類(lèi)型常量的解釋

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

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

編程示例

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

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

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

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

3. 編寫(xiě)以下程序代碼

Variable_DINT := INT#1 +50000;

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

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

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

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

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

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

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

有類(lèi)型常量的數(shù)據(jù)類(lèi)型定義加法的數(shù)據(jù)類(lèi)型。這意味著加法是在 INT 數(shù)據(jù)類(lèi)型區(qū)域中執(zhí)行。在第一步中,無(wú)類(lèi)型常量 50000 將隱式轉(zhuǎn)換為 INT 數(shù)據(jù)類(lèi)型。

但這種轉(zhuǎn)換會(huì)導(dǎo)致生成負(fù)值 (-15536)。然后該值將添加到有類(lèi)型常量 (INT#1)。結(jié)果是 -15535。

由于將寫(xiě)入加法運(yùn)算結(jié)果的變量被聲明為 DINT 數(shù)據(jù)類(lèi)型,因此數(shù)字 -15535 將隱式轉(zhuǎn)換為 DINT 數(shù)據(jù)類(lèi)型,并寫(xiě)入到變量“Variable_DINT”。但結(jié)果仍為負(fù)數(shù)。

1. 可能的解決方案

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

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

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

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

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

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

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

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

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

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

2. 可能的解決方案

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

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

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

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

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

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

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

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

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

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





審核編輯:劉清

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

    關(guān)注

    1

    文章

    243

    瀏覽量

    17511
  • S7-1500
    +關(guān)注

    關(guān)注

    3

    文章

    301

    瀏覽量

    6795

原文標(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)推薦

    Go語(yǔ)言常量的聲明

    在 Go 語(yǔ)言中, 常量 表示的是固定的值,常量表達(dá)式的值在編譯期進(jìn)行計(jì)算,常量的值不可以修改。例如:3 、 Let's go 、
    發(fā)表于 07-20 15:24 ?539次閱讀

    IAR與KEIL如何直接定義常量到EEPROM的經(jīng)驗(yàn)分享

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

    java 常量池靜態(tài)變量詳解

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

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

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

    請(qǐng)問(wèn)怎樣在SCL中去使用浮點(diǎn)數(shù)進(jìn)行計(jì)算?

    例如,數(shù)據(jù)類(lèi)型 REAL 在程序以 6 位小數(shù)的精度進(jìn)行指定和計(jì)算。
    的頭像 發(fā)表于 07-04 11:32 ?2680次閱讀

    使用SCL函數(shù)塊編寫(xiě)計(jì)算保質(zhì)期的應(yīng)用程序

    在以下部分,將創(chuàng)建 SCL 函數(shù)塊“SCL_Best_before_date” 。 可使用 SCL 函數(shù)塊計(jì)算保質(zhì)期。
    的頭像 發(fā)表于 10-18 15:15 ?1392次閱讀

    西門(mén)子SCL語(yǔ)言編程案例之計(jì)算方差

    在統(tǒng)計(jì)數(shù)據(jù),經(jīng)常用到方差來(lái)代表數(shù)據(jù)的離散程序,我們用SCL語(yǔ)言編寫(xiě)一個(gè)計(jì)算方差的FB塊。
    的頭像 發(fā)表于 01-09 09:45 ?1695次閱讀

    對(duì)S7-SCL的AT指令進(jìn)行詳細(xì)講解

    AT指令是S7-SCL特有的一個(gè)指令,初學(xué)者可能會(huì)忽略此指令,或者對(duì)其理解不夠深刻。
    的頭像 發(fā)表于 02-03 14:53 ?5844次閱讀

    淺談指針常量常量指針

    這節(jié)課我們來(lái)講一講指針常量常量指針。
    的頭像 發(fā)表于 02-21 09:27 ?1342次閱讀

    C語(yǔ)言的常量-2

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

    SCL中使用浮點(diǎn)數(shù)REAL和LREAL進(jìn)行計(jì)算

    例如,數(shù)據(jù)類(lèi)型 REAL 在程序以 6 位小數(shù)的精度進(jìn)行指定和計(jì)算。在計(jì)算浮點(diǎn)數(shù)(REAL和 LREAL)時(shí),請(qǐng)注意此精度通常應(yīng)用于每個(gè)計(jì)算
    的頭像 發(fā)表于 05-30 09:40 ?2170次閱讀
    在<b class='flag-5'>SCL</b>中使用浮點(diǎn)數(shù)REAL和LREAL<b class='flag-5'>進(jìn)行</b><b class='flag-5'>計(jì)算</b>

    SCL的 EN/ENO 機(jī)制概述

    SCL 的 EN/ENO 機(jī)制概述 在 SCL 程序段,可以通過(guò)賦值來(lái)改變 ENO。為此,請(qǐng)寫(xiě)入“ENO:=TRUE”或“ENO:=FALSE”,或使用 BOOL 數(shù)據(jù)類(lèi)型的變量。
    的頭像 發(fā)表于 08-23 10:08 ?3486次閱讀

    什么是常量折疊?Python如何優(yōu)雅地實(shí)現(xiàn)它

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

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

     建議在數(shù)學(xué)函數(shù)不要混用有類(lèi)型和無(wú)類(lèi)型常量,否則可能會(huì)發(fā)生不需要的隱式轉(zhuǎn)換,從而導(dǎo)致生成不正確的值。
    的頭像 發(fā)表于 01-24 11:21 ?2873次閱讀
    西門(mén)子博途之<b class='flag-5'>SCL</b><b class='flag-5'>常量</b>的運(yùn)算運(yùn)用

    微波檢測(cè)的關(guān)鍵物理常量是指

    微波檢測(cè)是一種利用微波技術(shù)進(jìn)行物理量測(cè)量的方法,廣泛應(yīng)用于通信、雷達(dá)、遙感等領(lǐng)域。在微波檢測(cè),關(guān)鍵物理常量是指那些對(duì)測(cè)量結(jié)果有顯著影響的物理量。本文將詳細(xì)介紹微波檢測(cè)的關(guān)鍵物理常量
    的頭像 發(fā)表于 05-28 14:44 ?761次閱讀