一、加法
1、整數加法
+I,整數加法指令。使能輸入有效時,將兩個單字長(16位)的符號整數IN1和IN2相加,產生一個16位整數結果OUT。

圖1 整數加法
2、雙整數加法
+D,雙整數加法指令。使能輸入有效時,將兩(liang) 個(ge) 雙字長(32位)的符號雙整數IN1和IN2相加,產(chan) 生一個(ge) 32位雙整數結果OUT。
在LAD和FBD中,以指令盒形式編程,執行結果:IN1+IN2=OUT。
在STL中,執行結果:IN1+OUT=OUT。
OUT的尋址範圍:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。
指令格式:+D IN1, OUT
3、+R,實數加法指令
使能輸入有效時,將兩(liang) 個(ge) 雙字長(32位)的實數IN1和IN2相加,產(chan) 生一個(ge) 32位實數結果OUT。
在LAD和FBD中,以指令盒形式編程,執行結果:IN1+IN2=OUT。
OUT的尋址範圍:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。
本指令影響的特殊存儲(chu) 器位:SM1.0(零);SM1.1(溢出);SM1.2(負)。
二、減法
減法指令是對有符號數進行相減操作。包括:整數減法、雙整數減法和實數減法。這三種減法指令與(yu) 所對應的加法指令除運算法則不同之外,其他方麵基本相同。

圖2 減法
在STL中,執行結果: OUT- IN2=OUT。
指令格式: -I IN2, OUT (整數減法);-D IN2, OUT (雙整數減法);-R IN2, OUT (實數減法)
例: -I AC0, VW4

圖3 減法運算
三、乘法
1、整數乘法
*I,整數乘法指令。使能輸入有效時,將兩(liang) 個(ge) 單字長(16位)的符號整數IN1和IN2相乘,產(chan) 生一個(ge) 16位整數結果OUT。
指令格式:*I IN1,OUT
例:*I VW0,AC0

圖4 乘法

圖5 乘法
2、完全整數乘法
MUL,完全整數乘法指令。使能輸入有效時,將兩(liang) 個(ge) 單字長(16位)的符號整數IN1和IN2相乘,產(chan) 生一個(ge) 32位雙整數結果OUT。
在LAD和FBD中,以指令盒形式編程,執行結果:IN1*IN2=OUT。
OUT的尋址範圍:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。
本指令影響的特殊存儲(chu) 器位:SM1.0(零);SM1.1(溢出);SM1.2(負);SM1.3(被0除)。
指令格式: MUL IN1,OUT
例: MUL AC0,VD10
3、雙整數乘法
*D,雙整數乘法指令。使能輸入有效時,將兩(liang) 個(ge) 雙字長(32位)的符號整數IN1和IN2相乘,產(chan) 生一個(ge) 32位雙整數結果OUT。
在STL中,執行結果:IN1*OUT=OUT。
N1和IN2的尋址範圍:VD、ID、QD、MD、SD、SMD、LD、HC、AC、*VD、*AC、*LD和常數。
OUT的尋址範圍:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。
本指令影響的特殊存儲(chu) 器位:SM1.0(零);SM1.1(溢出);SM1.2(負);SM1.3(被0除)。
指令格式:*D IN1,OUT
例:*D VD0,AC0
4、實數乘法
*R,實數乘法指令。使能輸入有效時,將兩(liang) 個(ge) 雙字長(32位)的實數IN1和IN2相乘,產(chan) 生一個(ge) 32位實數結果OUT。
在LAD和FBD中,以指令盒形式編程,執行結果:IN1*IN2=OUT。
在STL中,執行結果:IN1*OUT=OUT。
IN1和IN2的尋址範圍:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD和常數。
OUT的尋址範圍:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD。
本指令影響的特殊存儲(chu) 器位:SM1.0(零);SM1.1(溢出);SM1.2(負);SM1.3(被0除)。
指令格式:*R IN1,OUT
例:*R VD0,AC0
四、除法
在LAD和FBD中,以指令盒形式編程,執行結果: IN1/IN2=OUT。
在STL中,執行結果: OUT/ IN2=OUT。
指令格式: /I IN2, OUT(整數除法)
DIV IN2, OUT(整數完全除法)
/D IN2, OUT(雙整數除法)
/R IN2, OUT(實數除法)

圖6 除法
例:DIV VW10, VD100
/I VW20, VW200
兩條指令的編程及執行情況比較如圖所示。

圖7 指令執行圖
對於完全除法指令:

圖8 完全除法指令
對於除法指令:

圖9 除法指令

圖10 算術運算舉例

圖11 算術運算舉例
五、數學函數指令
1、平方根
SQRT,平方根指令。把一個(ge) 雙字長(32位)的實數IN開平方,得到32位的實數結果。
在LAD和FBD中,以指令盒形式編程,執行結果:SQRT(IN)=OUT。
在STL中,執行結果:SQRT(IN)=OUT。
本指令影響的特殊存儲(chu) 器位:SM1.0(零);SM1.1(溢出和非法值);SM1.2(負)。
使能流輸出ENO斷開的出錯條件:SM1.1(溢出);SM4.3(運行時間);0006(間接尋址)。
指令格式: SQRT IN,OUT
例: SQRT VD0,AC0

圖12 平方根
LN,自然對數指令。將一個雙字長(32位)的實數IN取自然對數,得到32位的實數結果。
應用實例:求以10為底的50(存於VD0)的常用對數,結果放到AC0。

圖13 自然對數
EXP,指數指令。將一個雙字長(32位)的實數IN取以e為底的指數,得到32位的實數結果OUT。
在LAD和FBD中,以指令盒形式編程,執行結果:EXP(IN)=OUT。
在STL中,執行結果:EXP(IN)=OUT。
指令格式: EXP IN, OUT
例: EXP VD0, AC0

圖14 指數
如果已知輸入值為角度,要先將角度值轉化為弧度值,方法:使用(*R)MUL_R指令用角度值乘以π/180°即可。

圖15 正弦餘弦正切
應用實例:求Cos160°的值。

圖16 應用實例
六、增減指令
1、字節增和字節減
INCB,字節增指令。使能輸入有效時,把一字節長的無符號輸入數(IN)加1,得到一字節的無符號輸出結果OUT。
DECB,字節減指令。使能輸入有效時,把一字節長的無符號輸入數(IN)減1,得到一字節的無符號輸出結果OUT。

圖17 字節增和字節減

圖18 字增和字減
INCD,雙字增指令。使能輸入有效時,把雙字長(32位)的有符號輸入數(IN)加1,得到雙字長的有符號輸出結果OUT。
DECD,雙字減指令。使能輸入有效時,把雙字長的有符號輸入數(IN)減1,得到雙字長的有符號輸出結果OUT。

圖19 雙字增和雙字減
控製要求:食品加工廠對飲料生產線上的盒裝飲料進行計數,每24盒為一箱,要求能記錄生產的箱數。

圖20 應用實例
七、邏輯運算
1、字節邏輯運算
字節邏輯運算包括字節與(yu) 、字節或、字節異或、字節取反。

圖21 字節邏輯運算
字節邏輯運算包括字節與、字節或、字節異或、字節取反。

圖22 字邏輯運算
字邏輯運算包括雙字與、雙字或、雙字異或、雙字取反。

圖23 雙字邏輯運算

圖24

圖25