1.介紹ST文本中的賦值運(yùn)算符和算術(shù)運(yùn)算符
2.介紹比較運(yùn)算符的基本用法
3.介紹AND和OR 邏輯運(yùn)算符的基本
4.介紹置位和復(fù)位運(yùn)算符的用法
1.ST文本中的賦值運(yùn)算符和算術(shù)運(yùn)算符
1.1 賦值運(yùn)算符
1.1.1賦值運(yùn)算符的講解
本小結(jié)為大家講解ST語(yǔ)法中的賦值語(yǔ)句。什么是賦值語(yǔ)句呢,就是指把一個(gè)“數(shù)值”或者“變量中的內(nèi)容”轉(zhuǎn)移給另一個(gè)變量。
以下是3種編程語(yǔ)言的賦值語(yǔ)句,放在下面給大家做個(gè)對(duì)比
ST語(yǔ)言 | 梯形圖 | C語(yǔ)言 |
---|---|---|
:= | MOV\DMOV\DEMOV | = |
ST文本中使用的“:=”作為賦值運(yùn)算符,注意所有符號(hào) 都是英文狀態(tài)下的(半角符號(hào))
1.1.2賦值運(yùn)算符的應(yīng)用
ST語(yǔ)言的賦值語(yǔ)句 使用的是“:=”.下面我們來(lái)看看使用案例
vi_NumOfPeople := 100;
vi_人數(shù) := 100;
上面兩句話的意思,其實(shí)就是將 100這個(gè)數(shù)值賦值給我們 變量中。程序運(yùn)行之后,“vi_NumOfPeople”這個(gè)變量中的數(shù)值為 100,而這個(gè)變量“vi_人數(shù)”中的數(shù)值也是100.
vb_StopButton := TRUE;
vb_啟動(dòng)按鈕 := FALSE;
賦值語(yǔ)句順序是 "從后向前",也就是把后面變量里的 值,賦值給前面的變量。這個(gè)和數(shù)學(xué)上的等于是不一樣的哈,大家注意。
再?gòu)?qiáng)調(diào)一遍,ST語(yǔ)言中“:=”賦值語(yǔ)句,是將 后面變量里的值,賦值給前面的變量的。順序是“從后向前”。
1.1.3 不同數(shù)據(jù)類型賦值需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換
如果不強(qiáng)制類型轉(zhuǎn)換,提示效果如下
使用強(qiáng)制類型轉(zhuǎn)換后:
強(qiáng)制類型轉(zhuǎn)換的含義就是,將等式右邊的數(shù)據(jù)類型和左邊的數(shù)據(jù)類型統(tǒng)一。
常用的數(shù)據(jù)類型轉(zhuǎn)換格式:當(dāng)前數(shù)據(jù)類型_TO_目標(biāo)數(shù)據(jù)類型(變量);
REAL_TO_DINT(變量B);//把 浮點(diǎn)型變量B 強(qiáng)制轉(zhuǎn)換成 DINT型
DINT_TO_REAL(變量C);//把 32位整型數(shù)據(jù) 強(qiáng)制轉(zhuǎn)換成 REAL浮點(diǎn)型
INT_TO_DINT(變量D);//把16位整型數(shù)據(jù)強(qiáng)制轉(zhuǎn)換成32位整型數(shù)據(jù)
INT_TO_REAL(變量E);//把16位整型變量強(qiáng)制轉(zhuǎn)換成浮點(diǎn)型
1.2 算術(shù)運(yùn)算符
算術(shù)運(yùn)算符就是我們數(shù)學(xué)上的加減乘除,這里呢拿出來(lái)簡(jiǎn)單講一下。會(huì)小學(xué)數(shù)學(xué),就肯定會(huì)PLC編程中的加減乘除!
1.2.1加法 +
在ST語(yǔ)法中,加法就是"+"數(shù)學(xué)上的加法符號(hào)。假如已知變量:
vi_VarA := 10;
vi_VarB := 90;
則:vi_Num := vi_VarA + vi_VarB;
經(jīng)過運(yùn)算,vi_Num輸出值為 100;
1.2.2減法 -
在ST語(yǔ)法中,減法就是“-”數(shù)學(xué)上的減號(hào)。假如已知變量:
vi_VarA := 10;
vi_VarB := 90;
則:vi_Num := vi_VarA - vi_VarB;
經(jīng)過運(yùn)算,vi_Num輸出值為 -80;
1.2.3 乘法 *
在ST語(yǔ)法中,乘法就是“”星號(hào)。假如已知變量:
//-----乘法的運(yùn)用----------------------------
vf_圓周率 := 3.1415926;
vi_半徑 := 8; //----8mm
vf_圓面積 := vf_圓周率 INT_TO_REAL(vi_半徑 * vi_半徑);
運(yùn)算結(jié)果就是半徑為8mm的圓面積。
1.2.4 除法 /
ST語(yǔ)法中的除法就是"/"
//-----已知 vf_圓周長(zhǎng) := 15mm,求直徑.--------
vf_圓周長(zhǎng) := 15;
vf_直徑 := vf_圓周長(zhǎng) / vf_圓周率;
1.2.5 變量區(qū)代碼:
PROGRAM PLC_PRG VAR vi_VarA : INT; vi_VarB : INT; vi_Var1 : INT; vi_Var2 : INT; vf_圓周率 : REAL; vi_半徑 : INT; //mm vf_圓面積 : REAL; //mm^2 vf_圓周長(zhǎng) : REAL; //mm vf_直徑: REAL; END_VAR
1.2.6 程序段代碼:
vi_VarA := 10; vi_VarB := 90; //-----加法指令的運(yùn)用,運(yùn)算結(jié)果100----------- vi_Var1 := vi_VarA + vi_VarB; //-----減法指令的運(yùn)用,運(yùn)算結(jié)果-80----------- vi_Var2 := vi_VarA - vi_VarB; //-----乘法的運(yùn)用---------------------------- vf_圓周率 := 3.1415926; vi_半徑 := 8; //----8mm vf_圓面積 := vf_圓周率 * INT_TO_REAL(vi_半徑 * vi_半徑); //-----除法的應(yīng)用---------------------------- //-----已知 vf_圓周長(zhǎng) := 15mm,求直徑.-------- vf_圓周長(zhǎng) := 15; vf_直徑 := vf_圓周長(zhǎng) / vf_圓周率;
程序運(yùn)行結(jié)果
好了,大家應(yīng)該會(huì)ST語(yǔ)法中的加減乘除了吧,自己練練哈!
請(qǐng)用程序?qū)懗鱿旅娴木毩?xí)題:
1.科幻書每套有3本,每套12元,漫畫書每本8元。買一本科幻書和一本漫畫書共要多少元???
2.面包:每個(gè)3元,餅干:每包4元,飲料:每瓶6元;小剛:買4個(gè)面包和1瓶飲料,應(yīng)付多少元?小強(qiáng)有50元,買5包餅干,找回多少元?
2.比較運(yùn)算符的基本用法
ST中關(guān)系運(yùn)算符實(shí)際上就是我們數(shù)學(xué)中常用的“大于”、“等于”、“小于”、“不等于”。關(guān)系運(yùn)算符常一般有2種常用用法:
用法1:配合IF語(yǔ)句,作為IF語(yǔ)句的判斷條件使用
用法2:在賦值語(yǔ)句的右側(cè),作為一個(gè)表達(dá)式,返回TRUE or FALSE給賦值語(yǔ)句的左側(cè)。
(咱們大家在自己以后項(xiàng)目中,變量命名盡量不要太相似,不然不容易辨認(rèn)。這里因?yàn)槭菧y(cè)試程序,我為了方便就起相似的名字了)
2.1大于 >
請(qǐng)看以下代碼:
vi_Num1 := 200;
vi_Num2 := 1000;
則運(yùn)行:vb_Test1 := (vi_Num1 > vi_Num2);
輸出結(jié)果:vb_Test實(shí)際為 false,因?yàn)関i_Num1(200)并不大于vi_Num2(1000);運(yùn)行結(jié)果為假。
繼續(xù)看下一段代碼:
vi_Num3 := 888;
vi_Num4 := 666;
則運(yùn)行:vb_Test2 := (vi_Num3 > vi_Num4);
運(yùn)行結(jié)果:vb_Test實(shí)際輸出結(jié)果為true,因?yàn)?88確實(shí)是大于666。所以運(yùn)行結(jié)果為真!
2.2小于 <
vi_Num5 := 888;
vi_Num6 := 666;
則運(yùn)行:vb_Test3 := (vi_Num5 < vi_Num6);
則vb_Test3運(yùn)算結(jié)果為false,因?yàn)?88不小于666.所以運(yùn)算結(jié)果為假
vi_Num7 := 233;
vi_Num8 := 2333;
則運(yùn)行vb_Test4 := (vi_Num7 < vi_Num8);
則vb_Test4運(yùn)行結(jié)果為true,因?yàn)?33<2333,所以運(yùn)算結(jié)果為真。
2.3 等于 =
同樣的道理,當(dāng)比較的兩個(gè)變量相等的時(shí)候,運(yùn)行結(jié)果就為true,否則運(yùn)行結(jié)果就為false。
vi_Num9 := 233;
vi_Num10 := 233;
vb_Test5 := (vi_Num9 = vi_Num10);
vb_Test5的運(yùn)行結(jié)果為true。當(dāng)兩個(gè)變量?jī)?nèi)的值不相等的時(shí)候,運(yùn)行結(jié)果就為false了。。
3.4 不等于 <>
這個(gè)符號(hào)是不等于的意思,如果兩個(gè)值相等,則輸出結(jié)果為false為假。如果兩個(gè)數(shù)值不相等,則輸出結(jié)果為true,運(yùn)行結(jié)果為真。
vi_Num11 := 233;
vi_Num12 := 233;
vb_Test6 := (vi_Num11 <> vi_Num12);
vb_Test6運(yùn)行結(jié)果為false,因?yàn)関i_Num11和vi_Num12這兩個(gè)變量存儲(chǔ)的數(shù)值相等,所以vb_Test6運(yùn)行結(jié)果為假。
3.5 大于等于 >=
C := (A >= B);
當(dāng)A中保存的數(shù)值大于等于B數(shù)值的時(shí)候,則C輸出TRUE;否則C輸出FALSE.
2.6 小于等于 < =
C := (A < = B);
當(dāng)A數(shù)值小于等于B數(shù)值的時(shí)候,則C輸出結(jié)果為true,否則輸出結(jié)果為false。
3.AND和OR邏輯運(yùn)算符的基本用法
邏輯運(yùn)算符主要有兩種使用方式:
1.與IF語(yǔ)句配合使用
2.作為賦值語(yǔ)句的 右邊部分表達(dá)式的連接符如:
變量A := (變量B > 10) AND (變量C < 0)
變量A的結(jié)果就是賦值語(yǔ)句右側(cè)的表達(dá)值。
4.置位和復(fù)位運(yùn)算符的用法
樣例如下
等效于: