西門子編程基本數據類型?本篇是《基于博途V15 西門子S7-1200 ...》系列的後續篇,看懂本篇文章之前請大家關注我,然後查找相關文章,學習之後再學習此篇也請專業領域的大神批評指正,接下來我們就來聊聊關于西門子編程基本數據類型?以下内容大家不妨參考一二希望能幫到您!

西門子編程基本數據類型
本篇是《基于博途V15 西門子S7-1200 ...》系列的後續篇,看懂本篇文章之前請大家關注我,然後查找相關文章,學習之後再學習此篇。也請專業領域的大神批評指正。
感謝大家關注與支持!
這是第六篇功能指令,本篇介紹兩個簡單的定時器指令應用實例。上一篇是《基于博途V15 西門子S7-1200 數據處理指令應用-比較運算》,大家可以自行查閱學習。
1. CALCULATE(計算)
1)CALCULATE 指令
CALCULATE 指令可用于創建作用于多個輸入上的數學函數(IN1,IN2,.. INn),并根據您定義的等式在 OUT 處生成結果。
首先選擇數據類型。所有輸入和輸出的數據類型必須相同。
要添加其它輸入,請單擊最後一個輸入處的圖标。
2)參數的數據類型
參數 數據類型
IN1, IN2, ..INn SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte, Word, DWord
OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte, Word, DWord
注:IN 和 OUT 參數必須具有相同的數據類型(通過對輸入參數進行隐式轉換)。 例如: 如果 OUT 是 INT 或REAL,則 SINT 輸入值将轉換為 INT 或 REAL 值單擊計算器圖标可打開對話框,在其中定義數學函數。 輸入等式作為輸入(如 IN1 和IN2)和操作數。 單擊“确定”(OK) 保存函數時,對話框會自動生成 CALCULATE 指令的輸入。
對話框顯示一個示例,以及可根據 OUT 參數的數據類型加入的一列指令。
還必須為函數中的任何常量生成輸入。 然後會在指令 CALCULATE 的相關輸入中輸入該常量值。通過輸入常量作為輸入,可将 CALCULATE 指令複制到用戶程序的其它位置,從而無需更改函數。之後,不需要修改函數,就可以更改指令輸入的值或變量。
當執行 CALCULATE 并成功完成計算中的所有單個運算時,ENO = 1,否則 ENO = 0。
2. 加法、減法、乘法和除法指令
1)加法、減法、乘法和除法指令
ADD:加法 (IN1 IN2 = OUT)
SUB:減法 (IN1 - IN2 = OUT)
MUL:乘法 (IN1 * IN2 = OUT)
DIV:除法 (IN1 / IN2 = OUT)
整數除法運算會截去商的小數部分以生成整數輸出。
注:對于 LAD 和 FBD:單擊“???”并從下拉菜單中選擇數據類型。
2)參數的數據類型(LAD 和 FBD)
參數 數據類型 說明
IN1, IN2 SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, 常數 數學運算輸入
OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal 數學運算輸出
注:要添加 ADD 或 MUL 輸入,請單擊“創建”(Create) 圖标,或在其中一個現有IN 參數的輸入短線處單擊右鍵,并選擇“插入輸入”(Insert input) 命令。要删除輸入,請在其中一個現有 IN 參數(多于兩個原始輸入時)的輸入短線處單擊右鍵,并選擇“删除”(Delete) 命令。啟用數學指令 (EN = 1) 後,指令會對輸入值(IN1 和IN2)執行指定的運算并将結果存儲在通過輸出參數 (OUT) 指定的存儲器地址中。運算成功完成後,指令會設置 ENO = 1。
3)ENO 狀态
ENO 說明
1 無錯誤
0 數學運算結果值可能超出所選數據類型的有效數值範圍。返回适合目标大小的結果的最低有效部分。
0 除數為 0 (IN2 = 0):結果未定義,返回 0。
0 Real/LReal:如果其中一個輸入值為 NaN(不是數字),則返回 NaN。
0 ADD Real/LReal:如果兩個 IN 值均為 INF,但符号不同,則這是非法運算并返回 NaN。
0 SUB Real/LReal:如果兩個 IN 值均為 INF,且符号相同,則這是非法運算并返回 NaN。
0 MUL Real/LReal:如果一個 IN 值為零而另一個為 INF,則這是非法運算并返回 NaN。
0 DIV Real/LReal:如果兩個 IN 值均為零或 INF,則這是非法運算并返回 NaN。
3. MOD(返回除法的餘數)
1)求模(返回除法的餘數)指令
可以使用 MOD 指令返回整數除法運算的餘數。用輸入 IN1 的值除以輸入 IN2 的值,在輸出 OUT 中返回餘數。
2)參數的數據類型
參數 數據類型 說明
IN1 和 IN2 SInt, Int, DInt, USInt, UInt, UDInt, 常數 求模輸入
OUT SInt, Int, DInt, USInt, UInt, UDInt 求模輸出
3)ENO 值
ENO 說明
1 無錯誤
0 值 IN2 = 0,OUT 被賦以零值
4. NEG(取反)
1)NEG(求二進制補碼)指令
使用 NEG 指令可将參數 IN 的值的算術符号取反并将結果存儲在參數 OUT 中。
2)參數的數據類型
參數 數據類型 說明
IN SInt, Int, DInt, Real, LReal, Constant 數學運算輸入
OUT SInt, Int, DInt, Real, LReal 數學運算輸出
3)ENO 狀态
ENO 說明
1 無錯誤
0 結果值超出所選數據類型的有效數值範圍。注:以 SInt 為例:NEG (-128) 的結果為 128,超出該數據類型的最大值。
5. INC(遞增)和 DEC(遞減)
1)INC(遞增)和 DEC(遞減)
遞增有符号或無符号整數值:IN_OUT 值 1 = IN_OUT 值
遞減有符号或無符号整數值:IN_OUT 值 - 1 = IN_OUT 值
2)參數的數據類型
參數 數據類型 說明
IN/OUT SInt, Int, DInt, USInt, UInt, UDInt 數學運算輸入和輸出
3)ENO 狀态
ENO 說明
1 無錯誤
0 結果值超出所選數據類型的有效數值範圍。注:SInt 示例:( 127) INC 的結果為 128,超出該數據類型的最大值。
6. ABS(計算絕對值)
1)ABS(絕對值)指令
計算參數 IN 的有符号整數或實數的絕對值并将結果存儲在參數 OUT 中。
2)參數的數據類型
參數 數據類型 說明
IN SInt, Int, DInt, Real, LReal 數學運算輸入
OUT SInt, Int, DInt, Real, LReal 數學運算輸出
3)ENO 狀态
ENO 說明
1 無錯誤
0 數學運算結果值超出所選數據類型的有效數值範圍。注:SInt 示例:(-128) ABS 的結果為 128,超出該數據類型的最大值。
7. MIN(獲取最小值)和 MAX(獲取最大值)
1)MIN(獲取最小值)和 MAX(獲取最大值)指令
MIN 指令用于比較兩個參數 IN1 和 IN2 的值并将最小(較小)值分配給參數 OUT。
MAX 指令用于比較兩個參數 IN1 和 IN2 的值并将最大(較大)值分配給參數 OUT。
2)參數的數據類型
參數 數據類型 說明
IN1, IN2
[...IN32] SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, 數學運算輸入
Time, Date, TOD, 常數
OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, 數學運算輸出
Time, Date, TOD
注:要添加輸入,請單擊“創建”(Create) 圖标,或在其中一個現有 IN 參數的輸入短線處單擊右鍵,并選擇“插入輸入”(Insert input) 命令。要删除輸入,請在其中一個現有 IN 參數(多于兩個原始輸入時)的輸入短線處單擊右鍵,并選擇“删除”(Delete) 命令。
3)ENO 狀态
ENO 說明
1 無錯誤
0 僅适用于 Real 數據類型: 至少一個輸入不是實數 (NaN)。 結果 OUT 為 /- INF(無窮大)。
8. LIMIT(設置限值)
1)LIMIT(設置限值)指令
Limit 指令用于測試參數 IN 的值是否在參數 MIN 和 MAX 指定的值範圍内。
2)參數的數據類型
參數 數據類型 說明
MN, IN 和 MX SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Time,
Date, TOD·常數 數學運算輸入
OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Time, 數學運算輸出
Date, TOD
如果參數 IN 的值在指定的範圍内,則 IN 的值将存儲在參數 OUT 中。如果參數 IN 的值超出指定的範圍,則 OUT 值為參數 MIN 的值(如果 IN 值小于 MIN 值)或參數MAX 的值(如果 IN 值大于 MAX 值)。
3)ENO 狀态
ENO 說明
1 無錯誤
0 Real:如果 MIN、IN 和 MAX 的一個或多個值是 NaN(不是數字),則返回 NaN。
0 如果 MIN 大于 MAX,則将值 IN 分配給 OUT。
示例:
MyVal := LIMIT(MN:=10,IN:=53, MX:=40); //結果:MyVal = 40
MyVal := LIMIT(MN:=10,IN:=37, MX:=40); //結果:MyVal = 37
MyVal := LIMIT(MN:=10,IN:=8, MX:=40); //結果:MyVal = 10
9. 指數、對數及三角函數指令
1)使用浮點指令可編寫使用 Real 或 LReal 數據類型的數學運算程序:
SQR:計算平方 (IN 2 = OUT)
SQRT:計算平方根 (√IN = OUT)
LN:計算自然對數 (LN(IN) = OUT)
EXP:計算指數值 (e IN =OUT),其中底數 e = 2.71828182845904523536
EXPT:取幂 (IN1 IN2 = OUT)
EXPT 參數 IN1 和 OUT 總是為同一數據類型,可以選定為 Real 或
LReal。可以從衆多數據類型中為指數參數 IN2 選擇數據類型。
FRAC:提取小數(浮點數 IN 的小數部分 = OUT)
SIN:計算正弦值 (sin(IN radians) = OUT)
ASIN:計算反正弦值(arcsine(IN) = OUT 弧度),其中 sin(OUT 弧度) = IN
COS:計算餘弦(cos(IN 弧度) = OUT)
ACOS:計算反餘弦值 (arccos(IN) = OUT 弧度),其中 cos(OUT 弧度) = IN
TAN:計算正切值(tan(IN 弧度) = OUT)
ATAN:計算反正切值 (arctan(IN) = OUT 弧度),其中 tan(OUT 弧度) = IN
2)浮點型數學運算指令示例
平方:IN 2 = OUT例如:如果 IN = 9,則 OUT = 81。
綜合指數:IN1 IN2 = OUT例如:如果 IN1 = 3 且 IN2 = 2,則 OUT = 9。
注:對于 LAD 和 FBD:單擊“???”(按指令名稱)并從下拉菜單中選擇數據類型。
對于 SCL:還可以使用基本的 SCL 數學運算符來創建數學表達式。
3)參數的數據類型
參數 數據類型 說明
IN, IN1 Real, LReal, Constant 輸入
IN2 SInt, Int, DInt, USInt, UInt,UDInt, Real, LReal, Constant EXPT 指數輸入
OUT Real, LReal 輸出
4)ENO 狀态