ABB機(jī)器人編程方式
發(fā)布日期:2012-06-09 蘭生客服中心 瀏覽:6303
四、編程方式
1、指令表IL
指令表(IL)由一系列指令組成。每條指令都由一個(gè)新行開(kāi)始,包含一個(gè)操作符以及和操作符類型相關(guān)的一個(gè)或多個(gè)操作數(shù),并用逗號(hào)分開(kāi)。在指令前可以有標(biāo)號(hào),后接一個(gè)冒號(hào)。
注解必須在一行的最后,指令之間可以插入空行。
示例
標(biāo)號(hào) |
操作符 |
操作數(shù) |
注釋 |
LD |
17 |
||
ST |
lint |
(*comment*) | |
GE |
5 |
||
JMPC |
next |
||
LD |
idword |
||
EQ |
istruct.sdword |
||
STN |
test |
||
Nest: |
修飾符:
JMP、CAL、RET中帶C:指令在預(yù)置表達(dá)式結(jié)果為TRUE時(shí)執(zhí)行。
JMPC、CALC、RETC中帶N:指令在預(yù)置表達(dá)式結(jié)果為FALSE時(shí)執(zhí)行。
其它指令中帶N:操作數(shù)取反(不是累加器)。
操作符 |
修飾符 |
意義 |
LD |
N |
使當(dāng)前結(jié)果等于操作數(shù) |
ST |
N |
在操作數(shù)位置保存當(dāng)前結(jié)果 |
S |
如果當(dāng)前位置為TRUE,置位布爾操作數(shù)為TRUE | |
R |
如果當(dāng)前位置為TRUE,復(fù)位布爾操作數(shù)為FALSE | |
AND |
N,( |
位與 |
OR |
N,( |
位或 |
XOR |
( |
位異或 |
ADD |
( |
加 |
SUB |
( |
減 |
MUL |
( |
乘 |
DIV |
( |
除 |
GT |
( |
> |
EQ |
( |
= |
NE |
( |
<> |
LT |
( |
<= |
JMP |
( |
< |
CAL |
( |
跳轉(zhuǎn)到標(biāo)號(hào) |
PET |
CN |
調(diào)用功能塊 |
) |
CN |
評(píng)估括號(hào)操作 |
下表為IL中全部的操作符及可能的修飾符和相關(guān)的意義:
IL是一種面向行的語(yǔ)言。
標(biāo)號(hào) |
: |
操作符/功能 |
操作數(shù)(表) |
注釋 |
跳轉(zhuǎn)標(biāo)號(hào) |
分隔符 |
IL操作符或功能名 |
用于操作符的零個(gè),一個(gè)或多個(gè)常數(shù)、變量,或用于功能的輸入?yún)?shù),由逗號(hào)分隔。 |
在(*…*)中的注釋,可選 |
影響CR數(shù)據(jù)類型的操作符組 |
縮寫 |
操作符示例 |
Create(建立) |
C |
LD |
Process(處理) |
P |
GT |
Leaveunchanged(保持不變) |
U |
ST:JMPC |
Settoundefined(設(shè)置為未定義的) |
CAL=功能塊的無(wú)條件調(diào)用, |
操作符 |
操作符組 |
描述 | |
LD |
LDN |
C |
裝入操作數(shù)(操作數(shù)的反值)到CR |
AND AND( |
ANDN ANDN( |
P |
操作數(shù)(操作數(shù)的反值)和CR的布爾AND(“與”運(yùn)算) |
OR OR( |
ORN ORN( |
P |
操作數(shù)(操作數(shù)的反值)和CR的布爾OR(“或”運(yùn)算) |
XOR XOR( |
XORN XORN( |
p |
操作數(shù)(操作數(shù)的反值)和CR的布爾XOR(“異或”運(yùn)算) |
ST |
STN |
U |
將CR存到操作數(shù) |
S |
U |
若CR=1,則將操作數(shù)設(shè)置為TRUE | |
R |
U |
若CR=1,則將操作數(shù)設(shè)置為FALSE | |
) |
U |
結(jié)束括號(hào):對(duì)遞延操作求值 |
帶布爾操作數(shù)(BOOL類型)的操作符
用于類屬數(shù)據(jù)類型(類型ANY)操作數(shù)的操作符
操作符 |
操作符組 |
描述 | |
LD |
C |
操作數(shù)裝入CR | |
ST |
U |
將CR存儲(chǔ)到操作數(shù) | |
ADD |
ADD( |
P |
加操作數(shù),結(jié)果存入CR |
SUB |
SUB( |
P |
從CR減去操作數(shù),結(jié)果存入CR |
MUL |
MUL( |
P |
操作數(shù)乘以CR |
DIV |
DIV( |
P |
CR除以操作數(shù) |
GT |
GT( |
P |
CR>操作數(shù)(大于) |
GE |
GE( |
P |
CR>=操作數(shù)(大于或等于) |
EQ |
EQ( |
P |
CR=操作數(shù)(等于) |
NE |
NE( |
P |
CR<>操作數(shù)(不等于) |
LE |
LE( |
P |
CR<=操作數(shù)(小于或等于) |
LT |
LT( |
P |
CR<操作數(shù)(小于) |
) |
U |
結(jié)束括號(hào)級(jí) |
操作符 |
操作符組 |
||||
JMP |
-或U |
(無(wú))/有條件跳轉(zhuǎn)到一個(gè)跳轉(zhuǎn)標(biāo)號(hào) | |||
JMPC |
JMPCN |
U | |||
CAL |
-或U |
(無(wú))/有條件調(diào)用一個(gè)功能塊 | |||
CALC |
CALCN |
U | |||
RET |
-或U |
(無(wú))/有條件從一個(gè)功能或功能塊返回 | |||
RETC |
RETCN |
U | |||
功能名 |
P |
功能調(diào)用 |
使用功能和功能塊
A.調(diào)用一個(gè)功能
在IL語(yǔ)言中,調(diào)用一個(gè)功能只是簡(jiǎn)單地寫入該功能名即可。隨后的實(shí)際參數(shù)用逗號(hào)分隔。這種語(yǔ)法和帶有幾個(gè)操作數(shù)的操作符的語(yǔ)法相同。
功能的第一個(gè)參數(shù)是當(dāng)前結(jié)果(CR)。因此必須正好在功能調(diào)用之前將該值裝入CR中。用于功能調(diào)用的第一個(gè)操作數(shù)實(shí)際上是功能的第二個(gè)參數(shù),并依次類推。
B.調(diào)用一個(gè)功能塊
操作符CAL(或條件調(diào)用CALC和條件取反調(diào)用CALCN)可以激活一個(gè)功能塊。
IEC61131-3描述IL語(yǔ)言中給一個(gè)FB傳送參數(shù)的三種方法:
1).使用一個(gè)調(diào)用,它包括在括號(hào)內(nèi)的實(shí)際輸入和輸出參數(shù)的一個(gè)列表
2).在調(diào)用FB前,裝載和保存輸入?yún)?shù)
3).用輸入?yún)?shù)作為操作符“隱性地”調(diào)用
第三種方法只對(duì)標(biāo)準(zhǔn)FB有效,不適合用戶定義的FB。
2、結(jié)構(gòu)化文本ST
T語(yǔ)言的優(yōu)點(diǎn)(與IL語(yǔ)言相比較):編程任務(wù)高度壓縮化的表達(dá)格式,在語(yǔ)句塊中清晰的程序結(jié)構(gòu),
控制命令流的強(qiáng)有力結(jié)構(gòu)
這些優(yōu)點(diǎn)亦帶來(lái)其本身的缺陷:
由于它借助于編譯程序自動(dòng)地執(zhí)行程序,因此用戶不能直接影響其翻譯成機(jī)器碼。
高度抽象導(dǎo)致效率降低(通常,編譯程序的時(shí)間更長(zhǎng)且執(zhí)行速度更慢)
ST語(yǔ)句
關(guān)鍵字 |
說(shuō)明 |
示例 |
說(shuō)明 |
:= |
賦值 |
d:=10 |
將右邊的一個(gè)供計(jì)算的數(shù)值賦值給左邊的標(biāo)識(shí)符 |
調(diào)用FB |
FBName( Par1:=10, Par2:=20); |
調(diào)用另一個(gè)類型為FB的POU,包括其參數(shù) | |
RETURN |
返回 |
RETURN |
脫離當(dāng)前的POU和返回到調(diào)用POU |
IF |
選擇 |
IFd ELSEIFd=eTHENf:=2; ELSEf:=3; END_IF |
通過(guò)布爾表達(dá)式選擇替代值 |
CASE |
多重選擇 |
CASEfOF 1:g:=11; 2:g:=12; ELSEg:=FunName(); END_CASE |
根據(jù)表達(dá)式”f”的值選擇一個(gè)語(yǔ)句塊 |
FOR |
跌代(1) |
FORh:=1TO10BY2DO F[h/2]:=h; END_FOR |
一個(gè)多循環(huán)語(yǔ)句塊,帶有起始和結(jié)束條件以及一個(gè)增量值 |
WHILE |
跌代(2) |
WHILEm>1DO N:=n/2; END_WHILE |
一個(gè)多循環(huán)語(yǔ)句塊,具有在開(kāi)始端的結(jié)束條件 |
REPEAT |
跌代(3) |
一個(gè)多循環(huán)語(yǔ)句塊,具有在結(jié)束端的結(jié)束條件 | |
EXIT |
循環(huán)的結(jié)束 |
EXIT |
一個(gè)跌代語(yǔ)句的結(jié)束條件。 |
; |
空白語(yǔ)句 |
;; |
ST語(yǔ)言不包括跳轉(zhuǎn)指令(GOTO)。
3、功能塊圖FBD
功能塊圖(FBD)語(yǔ)言起源于信號(hào)處理領(lǐng)域,對(duì)信號(hào)處理而言,整數(shù)與/或浮點(diǎn)數(shù)是很重要的。
使用圖形化語(yǔ)言FBD或LD的POU表達(dá)式包括的部分與文本化語(yǔ)言相同。
1).POU的引導(dǎo)部分和結(jié)束部分
2).說(shuō)明部分
3).代碼部分
代碼部分,分為若干個(gè)網(wǎng)絡(luò)。網(wǎng)絡(luò)有助于構(gòu)造POU的控制流。
一個(gè)網(wǎng)絡(luò)包括1).網(wǎng)絡(luò)標(biāo)號(hào)2).網(wǎng)絡(luò)注釋3).網(wǎng)絡(luò)圖形
4、梯形圖LD
梯形圖語(yǔ)言(LD)源自機(jī)電一體化的繼電器系統(tǒng)的應(yīng)用領(lǐng)域,它描述一個(gè)POU的網(wǎng)絡(luò)自左至右的能量流。編程語(yǔ)言主要是設(shè)計(jì)用于處理布爾信號(hào)。
梯形圖LD接點(diǎn)分類:
常開(kāi)接點(diǎn) |
常閉接點(diǎn) |
上升沿接點(diǎn) |
下降沿接點(diǎn) |
梯形圖LD線圈分類:
線圈 --()-- |
線圈的取反 --(/)-- |
置位(鎖存)線圈 --(S)-- |
復(fù)位(解除鎖存)線圈 --(R)-- |
保持(記憶)線圈 --(M)-- |
置位保持(記憶)線圈 --(SM)-- |
復(fù)位保持(記憶)線圈 --(RM)-- |
|
上升沿線圈 --(P)-- |
下降沿線圈 --(N)-- |
梯形圖LD執(zhí)行控制分類:
無(wú)條件返回 |
條件返回 |
無(wú)條件跳轉(zhuǎn) |
條件跳轉(zhuǎn) |
調(diào)用功能和功能塊
-
ABB機(jī)器人標(biāo)準(zhǔn)數(shù)據(jù)類型
一、標(biāo)準(zhǔn)數(shù)據(jù)類型 1、BOOLBOOL類型變量可取值TRUE和FALSE。保留8位內(nèi)存空間。 2、整型數(shù)據(jù)類型所有的整型數(shù)據(jù)類型為: BYTE 字節(jié) WORD 字 DWORD
2012-06-09 -
ABB機(jī)器人變量類型轉(zhuǎn)換功能
二、變量類型轉(zhuǎn)換功能 不能直接從“大類型”向“小類型”變量轉(zhuǎn)換。(例如:從INT到BYTE,或從DINT到WORD)。要完成此功能,可以使用特殊功能塊實(shí)現(xiàn)。作為一種規(guī)則,你可以用此功能將一種類型的變量轉(zhuǎn)換成任何需要的類型變量。 句法:
2012-06-09 -
ABB機(jī)器人用戶定義的數(shù)據(jù)類型
三、用戶定義的數(shù)據(jù)類型 1、數(shù)組支持一維、二維和三維數(shù)組的成員數(shù)據(jù)類型。數(shù)組可在POU的聲明部分和全局變量表中定義。 語(yǔ)法: lt;數(shù)組名>:ARRAY[..,..]OF ll1,ll2為數(shù)組維數(shù)的下限標(biāo)識(shí),ul1和ul2
2012-06-09 -
ABB機(jī)器人全部運(yùn)算符及功能
五、CoDeSys中全部運(yùn)算符及功能名 ST中操作符 IL中操作符 IL中的修飾符 意義 ‘ 字符串分界符(例如:’string1’) [..]
2012-06-25