西門(mén)子SM338模板6ES7338-7XF00-0AB0
圖. 2 展示了BCD 格式到 Real 和 Byte 到 SInt 的數(shù)據(jù)格式轉(zhuǎn)換的例子。
BCD格式的數(shù)據(jù)必須先轉(zhuǎn)換為 Int 或 DInt 格式才能轉(zhuǎn)換為 REAL 格式,如例子。
如要實(shí)現(xiàn)數(shù)據(jù)類(lèi)型 Byte 到 SInt 或 從 Byte 到 USInt, CONVERT 指令需要手動(dòng)設(shè)置 input 和 output 數(shù)據(jù)類(lèi)型為 SInt 或 USInt。
更多的信息可以參見(jiàn)STEP7(TIA Portal)在線幫助 CONVERT: Convert value。
圖. 2
實(shí)數(shù)取整
下面的指令可以將實(shí)數(shù)類(lèi)型的數(shù)據(jù)取整為一個(gè)整數(shù)( INT 或 DINT ),這些指令也在上面描述的“Converters” 目錄中。
“CEIL ” :上取整。
“FLOOR ”: 下取整。
“ ROUND ”:舍入取整。
“ TRUNC ”: 截尾取整。
字符串?dāng)?shù)據(jù)類(lèi)型轉(zhuǎn)換
下表包含轉(zhuǎn)換字符串?dāng)?shù)據(jù)類(lèi)型的說(shuō)明。指令的編程過(guò)程如表中的描述 。
高級(jí)指令
| 描述 |
---|---|
S_CONV | 字符串轉(zhuǎn)換 |
STRG_VAL | 將字符串轉(zhuǎn)換為數(shù)值 |
VAL_STRG | 將數(shù)值轉(zhuǎn)換為字符串 |
Strg_TO_Char | 將字符串轉(zhuǎn)換為字符 |
Char_TO_Strg | 將字符轉(zhuǎn)換為字符串 |
ATH | 將 ASCII 字符串轉(zhuǎn)換為十六進(jìn)制數(shù) |
HTA | 將十六進(jìn)制數(shù)轉(zhuǎn)換為ASCII 字符串 |
轉(zhuǎn)換為 TIME 數(shù)據(jù)類(lèi)型
使用高級(jí)指令“T_CONV ” 將 INT 類(lèi)型的數(shù)據(jù)轉(zhuǎn)換為一個(gè)時(shí)間值(TIME)和進(jìn)行反向轉(zhuǎn)換。在轉(zhuǎn)換為 TIME 數(shù)據(jù)類(lèi)型之前必須將所有數(shù)據(jù)類(lèi)型(INT,REAL,BCD 等)轉(zhuǎn)換為DINT。“T_CONV ” 指令在塊編輯器的“擴(kuò)展指令 > 日期和時(shí)間” 指令卡中。
圖 3 給出了一個(gè)將 INT 和 REAL 轉(zhuǎn)換為 TIME 格式的例子。
圖. 3
硬件數(shù)據(jù)類(lèi)型 HW_IO 的轉(zhuǎn)換
硬件數(shù)據(jù)類(lèi)型 HW_IO 是 STEP 7 (TIA Portal) 訪問(wèn)模板信息時(shí)用來(lái)識(shí)別硬件模板的。這個(gè)識(shí)別碼是自動(dòng)分配的,在創(chuàng)建設(shè)備時(shí)保存在設(shè)備的硬件配置中。模塊名作為系統(tǒng)常量放在 "PLC variables" 表中。在相應(yīng)功能塊中通過(guò)模塊名可以直接使用該模塊。
另外,使用 "IO2MOD" 功能可以從模塊的邏輯輸入地址"InAddress" (E0.0) 確定模塊的硬件標(biāo)識(shí)符 "HWIO" 。直接在功能塊的 "LADDR" 參數(shù)直接輸入硬件標(biāo)識(shí)符 "HWIO" 。"LADDR" 參數(shù)無(wú)需做轉(zhuǎn)換,因?yàn)榭梢蕴顚?xiě) "HW_IO" 參數(shù),也可以填寫(xiě) UINT 數(shù)據(jù)類(lèi)型變量。
圖. 4
在圖4中是一個(gè) SCL 的程序例子,調(diào)用指令 "IO2MOD"。如果功能塊分配參數(shù)不正確,變量 "ChangeHWIO" 會(huì)顯示報(bào)錯(cuò)代碼。
更多信息
可以在 STEP 7 (TIA Portal) 的在線幫助中找到更多上面提到的關(guān)于編程和參數(shù)化指令的信息。選中指令后按“F1 ”鍵可以打開(kāi)在線幫助。
西門(mén)子SM338模板6ES7338-7XF00-0AB0