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