ABB機器人編程方式

發(fā)布日期:2012-06-09    蘭生客服中心    瀏覽:6393

四、編程方式

1、指令表IL

  指令表(IL)由一系列指令組成。每條指令都由一個新行開始,包含一個操作符以及和操作符類型相關的一個或多個操作數(shù),并用逗號分開。在指令前可以有標號,后接一個冒號。

注解必須在一行的最后,指令之間可以插入空行。

示例

標號

操作符

操作數(shù)

注釋

LD

17

ST

lint

(*comment*)

GE

5

JMPC

next

LD

idword

EQ

istruct.sdword

STN

test

Nest:

在IL語言中,可以使用下面的操作符和修飾符。

修飾符:

JMP、CAL、RET中帶C:指令在預置表達式結果為TRUE時執(zhí)行。

JMPC、CALC、RETC中帶N:指令在預置表達式結果為FALSE時執(zhí)行。

其它指令中帶N:操作數(shù)取反(不是累加器)。

操作符

修飾符

意義

LD

N

使當前結果等于操作數(shù)

ST

N

在操作數(shù)位置保存當前結果

S

如果當前位置為TRUE,置位布爾操作數(shù)為TRUE

R

如果當前位置為TRUE,復位布爾操作數(shù)為FALSE

AND

N,(

位與

OR

N,(

位或

XOR

(

位異或

ADD

(

SUB

(

MUL

(

DIV

(

GT

(

>

EQ

(

=

NE

(

<>

LT

(

<=

JMP

(

<

CAL

(

跳轉到標號

PET

CN

調用功能塊

)

CN

評估括號操作

下表為IL中全部的操作符及可能的修飾符和相關的意義:

IL是一種面向行的語言。

標號

操作符/功能

操作數(shù)(表)

注釋

跳轉標號

分隔符

IL操作符或功能名

用于操作符的零個,一個或多個常數(shù)、變量,或用于功能的輸入?yún)?shù),由逗號分隔。

在(*…*)中的注釋,可選

通過不同的操作符組修改CR

影響CR數(shù)據(jù)類型的操作符組

縮寫

操作符示例

Create(建立)

C

LD

Process(處理)

P

GT

Leaveunchanged(保持不變)

U

ST:JMPC

Settoundefined(設置為未定義的)

CAL=功能塊的無條件調用,

操作符

操作符組

描述

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ù)設置為TRUE

R

U

若CR=1,則將操作數(shù)設置為FALSE

)

U

結束括號:對遞延操作求值

帶布爾操作數(shù)(BOOL類型)的操作符

用于類屬數(shù)據(jù)類型(類型ANY)操作數(shù)的操作符

操作符

操作符組

描述

LD

C

操作數(shù)裝入CR

ST

U

將CR存儲到操作數(shù)

ADD

ADD(

P

加操作數(shù),結果存入CR

SUB

SUB(

P

從CR減去操作數(shù),結果存入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

結束括號級

跳轉和調用

操作符

操作符組

JMP

-或U

(無)/有條件跳轉到一個跳轉標號

JMPC

JMPCN

U

CAL

-或U

(無)/有條件調用一個功能塊

CALC

CALCN

U

RET

-或U

(無)/有條件從一個功能或功能塊返回

RETC

RETCN

U

功能名

P

功能調用

使用功能和功能塊

A.調用一個功能

  在IL語言中,調用一個功能只是簡單地寫入該功能名即可。隨后的實際參數(shù)用逗號分隔。這種語法和帶有幾個操作數(shù)的操作符的語法相同。

  功能的第一個參數(shù)是當前結果(CR)。因此必須正好在功能調用之前將該值裝入CR中。用于功能調用的第一個操作數(shù)實際上是功能的第二個參數(shù),并依次類推。

B.調用一個功能塊

操作符CAL(或條件調用CALC和條件取反調用CALCN)可以激活一個功能塊。

IEC61131-3描述IL語言中給一個FB傳送參數(shù)的三種方法:

  1).使用一個調用,它包括在括號內的實際輸入和輸出參數(shù)的一個列表

  2).在調用FB前,裝載和保存輸入?yún)?shù)

  3).用輸入?yún)?shù)作為操作符“隱性地”調用

第三種方法只對標準FB有效,不適合用戶定義的FB。

2、結構化文本ST

T語言的優(yōu)點(與IL語言相比較):編程任務高度壓縮化的表達格式,在語句塊中清晰的程序結構,

控制命令流的強有力結構

這些優(yōu)點亦帶來其本身的缺陷:

由于它借助于編譯程序自動地執(zhí)行程序,因此用戶不能直接影響其翻譯成機器碼。

高度抽象導致效率降低(通常,編譯程序的時間更長且執(zhí)行速度更慢)

ST語句

關鍵字

說明

示例

說明

:=

賦值

d:=10

將右邊的一個供計算的數(shù)值賦值給左邊的標識符

調用FB

FBName(

Par1:=10,

Par2:=20);

調用另一個類型為FB的POU,包括其參數(shù)

RETURN

返回

RETURN

脫離當前的POU和返回到調用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)語句塊,帶有起始和結束條件以及一個增量值

WHILE

跌代(2)

WHILEm>1DO

N:=n/2;

END_WHILE

一個多循環(huán)語句塊,具有在開始端的結束條件

REPEAT

跌代(3)

一個多循環(huán)語句塊,具有在結束端的結束條件

EXIT

循環(huán)的結束

EXIT

一個跌代語句的結束條件。

;

空白語句

;;

ST語言不包括跳轉指令(GOTO)。

3、功能塊圖FBD

  功能塊圖(FBD)語言起源于信號處理領域,對信號處理而言,整數(shù)與/或浮點數(shù)是很重要的。

  使用圖形化語言FBD或LD的POU表達式包括的部分與文本化語言相同。

  1).POU的引導部分和結束部分

  2).說明部分

  3).代碼部分

代碼部分,分為若干個網絡。網絡有助于構造POU的控制流。

一個網絡包括1).網絡標號2).網絡注釋3).網絡圖形

4、梯形圖LD

  梯形圖語言(LD)源自機電一體化的繼電器系統(tǒng)的應用領域,它描述一個POU的網絡自左至右的能量流。編程語言主要是設計用于處理布爾信號。

梯形圖LD接點分類:

常開接點

常閉接點

上升沿接點

下降沿接點

梯形圖LD線圈分類:

線圈

--()--

線圈的取反

--(/)--

置位(鎖存)線圈

--(S)--

復位(解除鎖存)線圈

--(R)--

保持(記憶)線圈

--(M)--

置位保持(記憶)線圈

--(SM)--

復位保持(記憶)線圈

--(RM)--

上升沿線圈

--(P)--

下降沿線圈

--(N)--

梯形圖LD執(zhí)行控制分類:

無條件返回

條件返回

無條件跳轉

條件跳轉

調用功能和功能塊