MSM Specification 1.0


錯誤處理

運算

Motion

Motion Functio

ALM_SET

ACC載入

位元運算

加法

SELECT

LOOP_CMD

ERR_CATCH

LACCF

ANDL

ADDF

MODE

HERE_IS

LACCL

ORL

ADDL

點對點命令

PROTECT

流程控制

LACCW

SHF_ACC

ADDW

STOP

TIMEOUT

JMP_C

LALW

SHF_AL

減法

TACC

JMP_AL

LAHW

SHF_AH

SUBF

TDEC

Wait Function

JMP_BIT

LACC_PR

SET_BIT

SUBL

SPD

WT_EV

DELAY

LACCL_SV

RST_BIT

SUBW

PINC

WT_INPOS

LOOP

ACC存出

OP2運算

乘法

PABS

WT_MCOK

SACCF

REG_LSLW

MULF

PIDX

WT_PFILE

Debug

SACCL

REG_LSRW

MULL

JOG

WT_EMPTY

HOLD

SALW

REG_ANDW

MULW

向量命令

WT_CMDOK

SAHW

REG_ORW

除法

LINE

WT_BIT

Other

SACC_PR

REG_CPYL

DIVF

CIRC

VERSION

SACCL_SV

REG_CPYW

DIVL

VTACC

複合

 

REG_NEGL

DIVW

VTDEC

MACRO

 

 

REG_ADDW

比較

VSPD

 

 

 

MOVF

CMPF

 

 

 

MOVL

CMPL

命令Buffer

 

 

 

MOVW

CMPW

MC_OPT

 

 

 

 

 

 

 

 

 

高階數學延伸

 

 

 

 

 

MATH_ACC

 

 

 

 

 

 

 

 

 

其他

 

 

 

 

F2L

 

 

 

 

L2F

 

 

 

 

NEG

 

 

 

 

ABS

 

 

 

 

MODL

 

 

[語法說明]  [指令屬性]


語法說明

格式  {Label:} Instruction {Operand1{,Operand2}} {;Comment}     { }可選

Label:

每列第一字寫起視為Label,第一字不得為數字。用於程式跳躍。

Instruction

每列第二字寫起視為指令,故所有指令前至少要有一個空格。

Operand1{,Operand2}

Operand1Operand2為命令參數,視指令決定,逗號,前後不可有空格。

;Comment

以分號";"作為開頭。

 

指令屬性

PLC

執行時不會令PLC Ladder掃描中斷,可用於PLC Ladder

偵錯

當發生錯誤時,會拋出錯誤訊號的指令。


ALM_SET   Int{[Do]}

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

清除或設定告警,面板顯示「AL.警報碼」。若Int0,則清除ALM;若Int設非零,可使驅動器輸出一個指定的告警碼。告警碼依照嚴重程度分區,以16進制表示,各區有其預設的Do反應行為,可以使用Do參數改變。

ic_settings_24px參數

Int

將短整數(16 Bits)分成兩個部分,高4 Bits1215 Bits)表示軸的選擇,低12 Bits011 Bits)表示欲輸出面板的ALM號碼。其格式如下:

Bits

Bits 1512

Bits 110

用途

軸選擇

警報碼

預設Do

 

內容

0:SELECT選軸
1:X軸

2:Y軸

3:Z軸

其他:一律選擇X軸

900∼9FF:嚴重警報,立即Servo OFFReady OFF

ALM

A00∼AFF:次要警報,不會Servo OFF,但會減速停止(Quick-Stop)Ready ON

ALM

B00∼BFF:輕微警報,不會Servo OFF,也不減速停止!僅作顯示!Ready ON

WRN

其他:警報碼超過上述範圍,一律以9XX顯示,不產生錯誤。

ALM

定址方式

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

[Do]

設定輸出Do,若不指定則依據ALM號碼輸出預設Do

0

1

2

輸出預設Do

ALM

WRN

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

ALM_SET 0x1980[2]  ;X-Axis LCD shows AL.980, Do=WRN, Servo Off.

DELAY   5000       ;Delay 5 sec.

ALM_SET 0          ;Clear Alarm, Servo On


ERR_CATCH   $Label

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

設定本TASK的錯誤處理程序位址,當後續偵錯指令執行時,若發生ERR,則跳躍至 $Label的位址執行指令。若要取消設定,則使用ERR_CATCH  $NULL(代表空位址)。

ic_settings_24px參數

$Label

錯誤處理程序的Label(程式位置)

定址方式

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 ERR_CATCH $Prog01_Section02

 

Prog01_Section01:

 SELECT    X_AXIS

 

 MOVL      @AccTimeOne,10000

 TACC      @AccTimeOne ;偵錯w AL21, jump to Prog01_Section02.

 MOVL      @DecTimeOne,20000

 TDEC      @DecTimeOne

 MOVL      @SpeedOne,100000

 SPD       @SpeedOne

 PINC      100000

 JMP_C     $Prog01_End,UNC

 

Prog01_Section02:

 MOVW      @Block01,1

 

Prog01_End:


JMP_C   $Label,Cond

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

條件跳躍,當ST暫存器的旗標條件與COND設定條件吻合,則跳躍至$Label的位址執行指令。

ic_settings_24px參數

$Label

欲跳躍的目的位址。

Cond

跳躍條件,符號與編碼:

符號

編碼

意義

符號

編碼

意義

EQ/Z

0X10

=

NEQ / NZ

0X11

不等於 不為零

LT

0X20

< 

LEQ

0X30

<=

GT

0X04

> 

GEQ

0X14

>=

CA

0X08

無號溢位

NC

0X09

無進位

OV

0X40

有號溢位

NOV

0X41

無溢位

ER

0X80

錯誤

NER

0X81

無錯誤

UNC

0X3C

無條件

 

條件是否成立並非直接比較ST暫存器的數值與COND的編碼數值。例如:ST0x0089 C P時,與0x11 NZ吻合。

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

;展示JMP_C根據ST旗標意義跳躍,最後ACC = 1971

       LACCL   100        ;ACC = 100

       SUBL    1          ;ACC 減去 1

       JMP_C   $L_1,NZ    ;如果減法後ACC不為0ST滿足NZ條件,跳到L_1

       JMP_C   $L_END,UNC ;無條件跳到L_END

L_1:              

       JMP_C   $L_3,0x04  ;Cond 也可直接輸入數字,大於零跳到L_3

       JMP_C   $L_2,0x04  ;大於零跳到L_2

       ALM_SET 0xF01      ;七段顯示器顯示AL.901

       JMP_C   $L_END,UNC ;無條件跳到L_END

L_2:

       ALM_SET 0xF02      ;七段顯示器顯示AL.902

       JMP_C   $L_END,UNC ;無條件跳到L_END

L_3:

       ALM_SET 0xF03      ;七段顯示器顯示AL.903

       JMP_C   $L_END,UNC ;無條件跳到L_END

L_END:

       LACCL   0


JMP_AL   $Label,Val

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

條件跳躍,當AL暫存器的內容與VAL相同時,則跳躍至$Label的位址執行指令。

ic_settings_24px參數

$Label

欲跳躍的目的位址。

Val

跳躍條件,AL的值。

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

;展示利用JMP_AL來進行件判斷邏輯,最後七段顯示器顯示AL.902

       LALW    2          ;AL設定為2

       JMP_AL  $L_1,1     ;跳躍至 $L_1 AL = 1

       JMP_AL  $L_2,2     ;跳躍至 $L_2 AL = 2

       JMP_AL  $L_3,3     ;跳躍至 $L_3 AL = 3

       JMP_C   $L_END,UNC  

L_1:                      ;處理 ERR 1 區。

       LACCL   1           

       ALM_SET 0x1F01     ;七段顯示器顯示AL.901

       JMP_C   $L_END,UNC   

L_2:                      ;處理 ERR 2 區。

       LACCL   2           

       ALM_SET 0x1F02     ;七段顯示器顯示AL.902

       JMP_C   $L_END,UNC  

L_3:                      ;處理 ERR 3 區。

       LACCL   3        

       ALM_SET 0x1F03     ;七段顯示器顯示AL.903

       JMP_C   $L_END,UNC  

L_END:                    ;結束區。

       LACCL   0


JMP_BIT   $Label,Cond

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

條件跳躍,條件跳躍,當ACC暫存器的某一位元,符合Cond指定的內容,則跳躍至$Label的位址執行指令。

ic_settings_24px參數

$Label

欲跳躍的目的位址。

Cond

跳躍條件,MASK常用符號與編碼:

符號

編碼

意義

符號

編碼

意義

ON_0

0X00

BIT 0 = 1

OFF_0

0X80

BIT 0 = 0

ON_1

0X01

BIT 1 = 1

OFF_1

0X81

BIT 1 = 0

ON_2

0X02

BIT 2 = 1

OFF_2

0X82

BIT 2 = 0

...

...

...

...

...

...

...

...

...

...

...

...

ON_9

0X09

BIT 9 = 1

OFF_9

0X89

BIT 9 = 0

ON_10

0X0A

BIT 10 = 1

OFF_10

0X8A

BIT 10 = 0

ON_11

0X0B

BIT 11 = 1

OFF_11

0X8B

BIT 11 = 0

ON_12

0X0C

BIT 12 = 1

OFF_12

0X8C

BIT 12 = 0

ON_13

0X0D

BIT 13 = 1

OFF_13

0X8D

BIT 13 = 0

ON_14

0X0E

BIT 14 = 1

OFF_14

0X8E

BIT 14 = 0

ON_15

0X0F

BIT 15 = 1

OFF_15

0X8F

BIT 15 = 0

ON_16

0X10

BIT 16 = 1

OFF_16

0X90

BIT 16 = 0

ON_17

0X11

BIT 17 = 1

OFF_17

0X91

BIT 17 = 0

ON_18

0X12

BIT 18 = 1

OFF_18

0X92

BIT 18 = 0

...

...

...

...

...

...

...

...

...

...

...

...

ON_31

0X1F

BIT 31 = 1

OFF_31

0X9F

BIT 31 = 0

 

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

;展示利用JMP_BIT來進行件判斷邏輯,最後七段顯示器顯示AL.902

       LACCL   1           ;設定ACCbit0=1bit1~31=0

       JMP_BIT $L_1,ON_31  ;跳躍至$L_1ACCbit31=0

       JMP_BIT $L_2,ON_0   ;跳躍至$L_1ACCbit0=0

       JMP_C   $L_END,UNC  

L_1:                        

       ALM_SET 0x1F01      ;七段顯示器顯示AL.901

       JMP_C   $L_END,UNC   

L_2:                       ;JMP_BIT $L_2,ON_0跳躍過來。  

       ALM_SET 0x1F02      ;七段顯示器顯示AL.902

       JMP_C   $L_END,UNC  

L_END:                     ;結束區。

       LACCL   0


DELAY   Int

PLC

偵錯

 

ic_assessment_24px功能說明

延遲短整數(16 Bits)資料指定的時間(065535)。

ic_settings_24px參數

Int

延遲的時間,單位是 1 msec

 

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

;示範DELAY一段時間後,七段顯示器顯示不同的ALM

 DELAY 1            ;延遲 1 msec.

 ALM_SET     0x1F01 ;顯示AL.901.

 DELAY 1000         ;延遲 1 sec.

 ALM_SET     0x1F02 ;顯示AL.902.


LOOP   $Label,ARn

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

迴圈指令,其中 ARn紀錄迴圈執行次數,當ARn值不為0,會重複執行$LabelLOOP指令中的所有指令,每執行一次ARn值減一,直到ARn0時跳出迴圈。

ic_settings_24px參數

$Label

迴圈起始位置。

ARn

使用輔助暫存器(AR0~AR5)紀錄迴圈執行次數。

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

;此範例將ACC用迴圈從0開始每次加10總共10次,最後七段顯示器顯示AL.902

        LACCL   0

        MOVW    @AR3,10      ;紀錄迴圈次數,AR3 = 10

LOOP_1:                      ;迴圈起始位置。

        ADDL    10           ;迴圈內容,每次加 10

        LOOP    $LOOP_1,AR3  ;AR3遞減後不為0則跳到LOOP_1重複執行。

       

        CMPL    100          ;判斷ACC是否為100

        JMP_C   $L_1,NEQ     ;ACC不為100跳到L_1

        JMP_C   $L_2,EQ      ;ACC100跳到L_2

L_1:

        ALM_SET 0x1F01

        JMP_C   $L_END,UNC

L_2:                         ;JMP_C   $L_2,EQ跳到此。

        ALM_SET 0x1F02

        JMP_C   $L_END,UNC

L_END:

        LACCL   0


HOLD

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

暫停目前執行的 Task,通常用來搭配軟體進行除錯功能,可當作多重中斷點來使用。

請注意,必須先按下進入除錯模式。

ic_settings_24px參數

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 LACCL   100

 HOLD            ;暫停此Task

 SELECT  X_AXIS

 SET_BIT MV0.0

 DELAY   1000

 HOLD            ;暫停此Task

 SELECT  X_AXIS

 MODE    PATH

 TACC    1000

 TDEC    1000

 JOG     200000


VERSION   0,Int

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

P5-00高位元寫入一個版本號碼,通常用於提示方案的版本。

ic_settings_24px參數

Int

定址方式

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 VERSION 0,1 ;P5-00高位元顯示1.


ANDL   Dint

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

將長整數(32 Bits)資料與ACC暫存器的內容,做位元AND運算,結果存於ACC暫存器。

ic_settings_24px參數

Dint

長整數。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

V

ACC原來是浮點數,轉換成長整數後超出範圍(-2147483648+2147483647)則溢位發生(V=1),ACC自動載入最大值:+2147483647-2147483648,正負根據N旗號。
ACC原來是長整數則不發生溢位。

FLOAT

ACC原來是短整數,運算結果也是短整數;若ACC原來是浮點數,FLOAT1,則會先依照無條件捨去法轉換成長整數,FLOAT0,再做AND運算,運算結果也是長整數。

ic_my_library_books_24px程式範例

;展示各種ANDL使用方式,以下的ACC結果只有AH+AL區。

 LACCL 65535            ;6553516進位為0x0000FFFF

 ANDL  0x000000FF       ;ACC=(ACC AND 0x000000FF),結果ACC=0x000000FF

                    

 LACCL 65535        

 ANDL  @var1            ;ACC=(ACC AND VAR_1),結果ACC=0x0000AAAA

                    

 LACCW #var2        

 SALW  @AR4         

 LACCL 65535        

 ANDL  *AR4[1]          ;ACC=(ACC AND *(AR4+1)),結果ACC=0x000000FF

                    

 MOVL  @XAR3,0x0FFF 

 LACCL 65535        

 ANDL  @XAR3            ;ACC=(ACC AND XAR4),結果ACC=0x00000FFF


ORL   Dint

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

將長整數(32 Bits)資料與ACC暫存器的內容,做位元OR運算,結果存於ACC暫存器。

ic_settings_24px參數

Dint

長整數。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

V

ACC原來是浮點數,轉換成長整數後超出範圍(-2147483648+2147483647)則溢位發生(V=1),ACC自動載入最大值:+2147483647-2147483648,正負根據N旗號。
ACC原來是長整數則不發生溢位。

FLOAT

ACC原來是短整數,運算結果也是短整數;若ACC原來是浮點數,FLOAT1,則會先依照無條件捨去法轉換成長整數,FLOAT0,再做OR運算,運算結果也是長整數。

ic_my_library_books_24px程式範例

;展示各種ORL使用方式,以下的ACC結果只有AH+AL區。

 LACCL 65535            ;6553516進位為0x0000FFFF

 ORL  0x00FFFFFF       ;ACC=(ACC AND 0x000000FF),結果ACC=0x00FFFFFF

                    

 LACCL 65535        

 ORL  @var1            ;ACC=(ACC AND VAR_1),結果ACC=0xAAAAFFFF

                    

 LACCW #var2        

 SALW  @AR4         

 LACCL 15        

 ORL  *AR4[1]          ;ACC=(ACC AND *(AR4+1)),結果ACC=0x000000FF

                    

 MOVL  @XAR3,0x0FFF 

 LACCL 15        

 ORL  @XAR3            ;ACC=(ACC AND XAR4),結果ACC=0x00000FFF


SHF_ACC   Int,Opt

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器(32位元)的內容做位移運算,不會影響EXP暫存器。

ic_settings_24px參數

Int

指位移的位數,僅參考Int的最低5位元,代表可位移0∼31位元

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

Opt

位移方式。

符號

意義

LSL

邏輯位移->向左

LSR

邏輯位移->向右

ASR

數學位移->向右

ROL

螺旋位移→向左

ROR

螺旋位移→向右

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

C

最後轉出的位元會放到C旗標。

V

ACC原來是浮點數,轉換成長整數後超出範圍(-2147483648+2147483647),則V=1ACC自動載入最大值,-2147483648+2147483647,正負號根據N旗標。
ACC原來是長整數,則不會發生溢位(V=0)。

FLOAT

ACC原來是長整數,運算結果也是長整數,如ACC原來是浮點數,則會先轉換成長整數,再做位移運算,運算結果也是長整數。

ic_my_library_books_24px程式範例

 LACCL   -536625146

 SHF_ACC 3,LSL           ;ACC向左邏輯位移3位元

 SHF_ACC 2,LSR           ;ACC向右邏輯位移2位元

 MOVW    AR0,1

 SHF_ACC AR0,ASR         ;ACC向右數學位移AR0位元


SHF_AL   Int,Opt

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

AL暫存器(16位元)的內容做位移運算,不會影響AHEXP暫存器。

ic_settings_24px參數

Int

指位移的位數,僅參考Int的最低5位元,代表可位移0∼31位元。位移前會先將Int÷16取餘數,才是最後實際的位移位數。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

Opt

位移方式。

符號

意義

LSL

邏輯位移->向左

LSR

邏輯位移->向右

ASR

數學位移->向右

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

C

最後轉出的位元會放到C旗標。

V

ACC原來是浮點數,轉換成長整數後超出範圍(-2147483648+2147483647),則V=1ACC自動載入最大值,-2147483648+2147483647,正負號根據N旗標。
ACC原來是長整數,則不會發生溢位(V=0)。

FLOAT

ACC原來是短整數,運算結果也是短整數;若ACC原來是浮點數,FLOAT1,則會先依照無條件捨去法轉換成長整數,FLOAT0,再做位移運算,運算結果也是長整數。

ic_my_library_books_24px程式範例

 LACCF  -65535.5 ;0xFFFF0001

 SHF_AL 3,LSL    ;0xFFFF0008, AL向左邏輯位移3位元

 SHF_AL 2,LSR    ;0xFFFF0002, AL向右數學位移2位元

 SHF_AL 20,LSL   ;0xFFFF0020, AL向左數學位移20位元

 LAHW   65450

 MOVW   AR0,1

 SHF_AL @AR0,LSR ;AL向左邏輯位移AH個位元

 SALW   @AR1


SHF_AH   Int,Opt

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

AH暫存器(16位元)的內容做位移運算,不會影響ALEXP暫存器。

ic_settings_24px參數

Int

指位移的位數,僅參考Int的最低5位元,代表可位移0∼31位元。位移前會先將Int÷16取餘數,才是最後實際的位移位數。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

Opt

位移方式。

符號

意義

LSL

邏輯位移->向左

LSR

邏輯位移->向右

ASR

數學位移->向右

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

C

最後轉出的位元會放到C旗標。

V

ACC原來是浮點數,轉換成長整數後超出範圍(-2147483648+2147483647),則V=1ACC自動載入最大值,-2147483648+2147483647,正負號根據N旗標。
ACC原來是長整數,則不會發生溢位(V=0)。

FLOAT

ACC原來是短整數,運算結果也是短整數;若ACC原來是浮點數,FLOAT1,則會先依照無條件捨去法轉換成長整數,FLOAT0,再做位移運算,運算結果也是長整數。

ic_my_library_books_24px程式範例

 LAHW   15

 SHF_AH 3,LSL    ;AH向左邏輯位移 3位元

 SHF_AH 2,ASR    ;AH向右數學位移 2位元

 LALW   4       

 SHF_AH @AL,LSR  ;AH向左邏輯位移AL個位元


SET_BIT   Int,Bit_No

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

將短整數(16 Bits)資料的指定位元,設定成1

ic_settings_24px參數

Int

短整數。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

變數需是可以Bit定址區域;例如:Y區、MV

Bit_No

指定位元編號(0∼15)。

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 SET_BIT @var1,6  ;設定@var1bit6=1.

 SET_BIT @AL,0    ;設定ALbit0=1.

 SET_BIT DV10,0   ;設定DV10bit0=0.


RST_BIT   Int,Bit_No

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

將短整數(16 Bits)資料的指定位元,設定成0

ic_settings_24px參數

Int

短整數。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

變數需是可以Bit定址區域;例如:Y區、MV

Bit_No

指定位元編號(0∼15)。

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 RST_BIT @var1,6  ;設定@var1bit6=0

 LALW    1

 RST_BIT @AL,0    ;設定ALbit0=0

 RST_BIT DV10.0   ;設定DV10bit0=0


REG_LSLW   Reg16,SHF_No

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

16位元暫存器的位元,向左位移。移入的位元(低位)補零,移出的消失!

本指令之目的乃快速改變輔助暫存器的內容,因此只能當作整數的運算!雖然對AHAL也可作用,但不會分辨ACC的內容是否為浮點數,也不會根據ACC結果設定ST狀態旗號,使用時須注意ACC的資料型態是否為整數!

利用本指令改變@SP,將造成堆疊中毀損,請不要使用!

ic_settings_24px參數

Reg16

16位元暫存器:AR0AR5AR0HAR5HAH/AL

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

SHF_No

位移的位數;常數(0~15)。

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 MOVW     @AR1,1    ;設定AR1=1

 REG_LSLW @AR1,1    ;@AR1  = @AR1 << 1,結果AR1=2

 REG_LSLW @AR5H,3   ;@AR5H = @AR5H << 3

 REG_LSLW @AL,10    ;@AL   = @AL << 10

 REG_LSLW @AH,0x0F  ;@AH   = @AH << 15


REG_LSRW   Reg16,SHF_No

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

16位元暫存器的位元,向右位移。移入的位元(高位)補零,移出的消失!

本指令之目的乃快速改變輔助暫存器的內容,因此只能當作整數的運算!雖然對AHAL也可作用,但不會分辨ACC的內容是否為浮點數,也不會根據ACC結果設定ST狀態旗號,使用時須注意ACC的資料型態是否為整數!

利用本指令改變@SP,將造成堆疊中毀損,請不要使用!

ic_settings_24px參數

Reg16

16位元暫存器:AR0AR5AR0HAR5HAH/AL

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

SHF_No

位移的位數;常數(0~15)。

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 MOVW     @AR1,15   ;設定AR1=15.

 REG_LSRW @AR1,1    ;@AR1  = @AR1 >> 1.

 REG_LSRW @AR5H,3   ;@AR5H = @AR5H >> 3.

 REG_LSRW @AL,10    ;@AL   = @AL >> 10.

 REG_LSRW @AH,0x0F  ;@AH   = @AH >> 15.


REG_ANDW   Reg16,Value

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

16位元暫存器的值,與ValueAND運算。

本指令之目的乃快速改變輔助暫存器的內容,因此只能當作整數的運算!雖然對AHAL也可作用,但不會分辨ACC的內容是否為浮點數,也不會根據ACC結果設定ST狀態旗號,使用時須注意ACC的資料型態是否為整數!

利用本指令改變@SP,將造成堆疊中毀損,請不要使用!

ic_settings_24px參數

Reg16

16位元暫存器:AR0AR5AR0HAR5HAH/AL

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

Value

短整數:-32768∼+32767

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 REG_ANDW @AR1,0x0001   ;@AR1 = (@AR1 AND 0x0001)

 REG_ANDW @AR5H,0x00FF  ;@AR5H = (@AR5H AND 0x00FF)

 REG_ANDW @AL,-4096     ;AL = @AL AND 0xF000

 REG_ANDW @AH,0x0FFF    ;@AH = (@AH AND 0x0FFF)


REG_ORW   Reg16,Value

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

16位元暫存器的值,與ValueOR運算。

本指令之目的乃快速改變輔助暫存器的內容,因此只能當作整數的運算!雖然對AHAL也可作用,但不會分辨ACC的內容是否為浮點數,也不會根據ACC結果設定ST狀態旗號,使用時須注意ACC的資料型態是否為整數!

利用本指令改變@SP,將造成堆疊中毀損,請不要使用!

ic_settings_24px參數

Reg16

16位元暫存器:AR0AR5AR0HAR5HAH/AL

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

Value

短整數:-32768∼+32767

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 REG_ORW       @AR1,0x0001   ;@AR1 = @AR1 OR 0x0001

 REG_ORW       @AR5H,0x00FF  ;@AR5H = @AR5H OR 0x00FF

 REG_ORW       @AL,-4096     ;@AL = (@AL OR 0xF000)

 REG_ORW       @AH,0x0FFF    ;@AH = @AH OR 0x0FFF


REG_CPYL   Reg32_D,Reg32_S

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

32 Bits暫存器(Reg32_D)的內容,複製到另一32 Bits暫存器(Reg32_S)。

本指令之目的乃快速複製輔助暫存器(XAR0XAR5)的內容,不需要經過ACC

雖然也可對ACC複製,但不會分辨ACC的內容是否為浮點數,也不會根據ACC結果設定ST狀態旗號,使用時須注意!

利用本指令改變@SP,將造成堆疊中毀損,請不要使用!

ic_settings_24px參數

Reg32_D

目標32位元暫存器:XAR0XAR5ACC

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

Reg32_S

來源32位元暫存器:XAR0XAR5ACC

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 REG_CPYL  @XAR1,@XAR2      ;@XAR1 = @XAR2

 REG_CPYL  @XAR5,@XAR3      ;@XAR5 = @XAR3

 REG_CPYL  @XAR2,@ACC       ;@XAR2 = @ACC

 REG_CPYL  @ACC,@XAR3       ;@ACC = @XAR3


REG_CPYW   Reg32_D,Reg32_S

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

16 bits暫存器(Reg32_S)的內容,複製到另一16 Bits暫存器(Reg32_D)。

本指令之目的乃快速複製輔助暫存器(AR0AR5AR0HAR5H)的內容,不需要經過ACC

雖然也可對ACC複製,但不會分辨ACC的內容是否為浮點數,也不會根據ACC結果設定ST狀態旗號,使用時須注意!

利用本指令改變@SP,將造成堆疊中毀損,請不要使用!

ic_settings_24px參數

Reg32_D

目標16位元暫存器:AR0AR5AR0HAR5HALAH

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

Reg32_S

來源16位元暫存器:AR0AR5AR0HAR5HALAH

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 REG_CPYW @AR1,@AR2  ;@AR1  = @AR2

 REG_CPYW @AR5H,@AR3 ;@AR5H = @AR3

 REG_CPYW @AL,@AR2   ;@AL   = @AR2

 REG_CPYW @AR5H,@AH  ;@AR5H = @AH


REG_NEGL   Reg32

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

將暫存器(Reg32)的內容,正負符號改變。

本指令之目的乃快速複製輔助暫存器(XAR0~XAR5)的內容,不需要經過ACC

雖然也可對ACC複製,但不會分辨ACC的內容是否為浮點數,也不會根據ACC結果設定ST狀態旗號,使用時須注意!

利用本指令改變@SP,將造成堆疊中毀損,請不要使用!

ic_settings_24px參數

Reg32

目標32位元暫存器:XAR0XAR5ACC

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 REG_NEGL   @XAR1      ;@XAR1 = -@XAR1

 REG_NEGL   @XAR5      ;@XAR5 = -@XAR5


REG_ADDW   Reg16,Value

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

16位元暫存器的值,增加Value

本指令之目的乃快速改變輔助暫存器的內容,因此只能當作整數的運算!雖然對AHAL也可作用,但不會分辨ACC的內容是否為浮點數,也不會根據ACC結果設定ST狀態旗號,使用時須注意ACC的資料型態是否為整數!

利用本指令改變@SP,將造成堆疊中毀損,請不要使用!

ic_settings_24px參數

Reg16

16位元暫存器:AR0AR5AR0HAR5HALAH

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

Value

短整數:-32768∼+32767

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 REG_ADDW @AR1,10     ;@AR1 = @AR1 + 10

 REG_ADDW @AR5H,-210  ;@AR5H = @AR5H - 210

 REG_ADDW @AL,7       ;@AL = @AL + 7

 REG_ADDW @AH,-7      ;@AH = @AH - 7


MOVF   Real48,Value

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

將浮點數(48 Bits)資料常數複製到REAL48定址的位置!若REAL48定址的位置是長整數變數,也會複製48位元,造成連續3個短整數數值改變!

 

請注意:

暫存器定址時不可使用ALAH(操作ALAH務必使用LALWLAHWLACCW)。

使用於DHMH區時無法斷電保持。

ic_settings_24px參數

Real48

欲載入的數值、定址方式。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

Value

載入的數值;48位元浮點數常數。

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 MOVF  @var1,7.5     ;@var1 = 7.5

 

;MOVF應用於陣列指標。

 LACCW #var2

 SALW  AR1

 MOVF  *AR1[1],3.14  ;var2陣列第2個元素為3.14


MOVL   Dint,Value

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

32位元常數複製到Dint定址的位置!若Dint定址的位置是短整數變數,也會複製32位元,造成連續2個短整數數值改變!

 

請注意:

暫存器定址時不可使用ACC(操作ACC務必使用LACCL)。

使用於DHMH區時無法斷電保持。

ic_settings_24px參數

Real48

欲載入的數值、定址方式。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

Value

載入的數值;32位元常數(-2147483648∼+2147483647)。

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 MOVL  @XAR1,123456  ;@XAR1 = 123456

 MOVL  @var1,65536   ;@var1 = 65536

 

;MOVL應用於陣列指標。

 LACCW #var2

 SALW  @AR1

 MOVL  *AR1[1],3310  ;var2陣列的第2個元素為3310


MOVW   Int,Value

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

16位元常數複製到Int定址的位置!若Int定址的位置是長整數變數,也僅複製16位元,其餘位元則不改變!

 

請注意:

暫存器定址時不可使用ALAH(操作ALAH務必使用LALWLAHWLACCW)。

使用於DHMH區時無法斷電保持。

ic_settings_24px參數

Int

欲載入的數值、定址方式。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

Value

載入的數值;16位元常數(-32768∼+32767)。

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 MOVW  @AR1,10       ;AR1 = 10

 MOVW  @AR5H,-1      ;AR5H = -1

 MOVW  @var1,-7      ;var1 = - 7

 MOVW  @var2[1],12   ;var2陣列的第二個元素為12

 

;MOVW於陣列指標的應用

 LACCW #var3

 SALW  @AR1

 MOVW  *AR1[2],1971  ;var3陣列第三個元素為1971


MATH_ACC   Value,FunID

PLC

偵錯

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

針對ACC的值執行對應的數學函式,所有的數學運算前會先將ACC轉為浮點數(48 Bits)型態,運算後結果儲存在ACC,其形態也是浮點數。有些數學運算除了第一運算元放在ACC外,還需要第二個運算元放在Value,例如POWERATAN2等,會將第二運算元放在Value,而Value的型態則根據不同的數學函式有不同的形態,若Value以變數跟指標定址的話,則會根據型態讀取指標指到的位址,但若以常數跟暫存器定址的話,Value只能輸入INT型態,但數學函式運算時會轉成預期的型態做運算。

 

目前POWER所需的第二運算元是INT型態且有數值限制0Value10,而ATAN2所需的第二運算元是REAL48型態,但指令無法接受直接輸入REAL48型態的常數,若需以REAL48型態的第二運算元必須以變數或指標定址方式傳遞。

ic_settings_24px參數

Int

定址方式。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

FunID

執行的數學函式:

符號

編碼

備註

SIN

0x00

角度

COS

0x01

角度

TAN

0x02

角度

ATAN

0x03

 

ATAN2

0x04

先放入ACCY

第二運算元INT參數為X

DEGREE_TO_RADIAN

0x06

 

RADIAN_TO_DEGREE

0x07

 

SQRT

0x08

 

POWER

0x09

 

ASIN

0x0A

 

ACOS

0x0B

 

ic_error_24px錯誤種類

0x247

FunID 錯誤

0x251

Power 參數錯誤

ic_flag_24px影響旗標

N Z P

ACC內容而定。

ic_my_library_books_24px程式範例

 LACCF    30.0

 MATH_ACC 0,SIN                                     ;ACC=SIN(30.0角度)=0.4999999981

                                                  

 LACCF    30.0                                      

 MATH_ACC 0,COS                                     ;ACC=COS(30.0角度)=0.8660254041

 

 LACCF    30.0                                      

 MATH_ACC 0,TAN                                     ;ACC=TAN(30.0角度)=0.5773502667

                                                    

 LACCF    0.5773502667                              

 MATH_ACC 0,ATAN                                    ;ACC=ATAN(0.5773502667)=0.5235987725徑度

 

 LACCF    2.0

 MOVF     @var1,1.0

 MATH_ACC @var1,ATAN2                               ;ACC=ATAN2(2.0,1.0)=1.1071487172徑度

 

 LACCF    0.5235987725

 MATH_ACC 0,RADIAN_TO_DEGREE  ;ACC=29.9999998212

 

 LACCF    30.0

 MATH_ACC 0,DEGREE_TO_RADIAN  ;ACC=0.5235987753

 

 LACCL    9

 MATH_ACC 0,SQRT                                    ;ACC=SQRT(9)=3.0

                                                 

 LACCL    2                                         

 MATH_ACC 3,POWER                                   ;ACC=8

                                                 

 LACCF    0.4999999981                               

 MATH_ACC 0,ASIN                                    ;ACC=ASIN(0.4999999981)=0.5235987715徑度

                                                   

 LACCF    0.8660254041                              

 MATH_ACC 0,ACOS                                    ;ACC=ATAN(0.8660254041)=0.5235987753徑度


F2L

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器(48 Bits)浮點數資料轉為長整數(32 Bits)。會依據小數第一位四捨五入。

ic_settings_24px參數

ic_error_24px錯誤種類

ic_flag_24px影響旗標

FLOAT

ACC原來是長整數,運算結果也是長整數,如ACC原來是浮點數,則會先轉換成長整數,再做位移運算,運算結果也是長整數。FLAG bit40

ic_my_library_books_24px程式範例

 LACCF 12345.54321

 F2L                ;ACC=12346

 LACCF 12345.12345  

 F2L                ;ACC=12345


L2F

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器(32 Bits)長整數資料轉為浮點數(48 Bits)。

ic_settings_24px參數

ic_error_24px錯誤種類

ic_flag_24px影響旗標

FLOAT

ACC原來是長整數,運算結果也是長整數,如ACC原來是浮點數,則會先轉換成長整數,再做位移運算,運算結果也是長整數。FLAG bit41

ic_my_library_books_24px程式範例

 LACCL 12345

 L2F          ;ACC=12345.00


NEG

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器內容(長整數32 Bits或浮點數),改變符號,結果存於ACC暫存器。

即:原來是正數→變成負數

  原來是負數→變成正數

  原來是零 →不改變

ic_settings_24px參數

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

C

設定同ZACC為零則設定(C=1),否則(C=0)。

V

此指令執行前,若ACC=-2147483648(整數),取負號則溢位!(V1),ACC=+2147483647,因為長整數的範圍是:-2147483648∼+2147483647

FLOAT

ACC原來是短整數,運算結果也是短整數;若ACC原來是浮點數,FLOAT1,則會先依照無條件捨去法轉換成長整數,FLOAT0,再做ANDL運算,運算結果也是長整數。

ic_my_library_books_24px程式範例

 LACCF -105.2312 ;ACC = -105.2312

 NEG             ;ACC = +105.2312

 LACCL 253       ;ACC = 253

 NEG             ;ACC = -253


ABS

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器內容取絕對值,長整數或浮點數均可執行。

ic_settings_24px參數

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

C

C=0

V

此指令執行前,若ACC=2147483648(整數),取絕對值則溢位!(V=1),ACC=+2147483647,因為長整數的範圍是:-2147483648∼+2147483647

ic_my_library_books_24px程式範例

 LACCF -105.2312   ;ACC = -105.2312

 ABS               ;ACC = +105.2312

 LACCL -253        ;ACC = -253

 ABS               ;ACC = 253


MODL   Dint

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器的內容除以長整數(32 Bits)資料,運算之餘數存於ACC暫存器。

運算結果一律是長整數.如ACC原來是浮點數,會自動轉換成長整數再運算。

ic_settings_24px參數

Dint

要放進ACC的長整數。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

V

除法運算前,若ACC(整數)等於-2147483648ACC(浮點數)小於等於-2147483648.0,則溢位(V1)。

ic_my_library_books_24px程式範例

 LACCL 10000004;

 MODL  9999999              ;ACC=5

 LACCL 10000003;

 MODL  @var1                ;ACC=4

 

;MODL應用於陣列指標

 LACCW #var2

 SALW  @AR4

 LACCL 10000002

 MODL  *AR4[1]              ;ACC=3                         

 

 LACCL 10000001            

 MOVL  @XAR4,9999999       

 MODL  @XAR4                ;ACC=2


LACCF   Real48

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

將浮點數(48 Bits)資料載入ACC暫存器。

ic_settings_24px參數

Real48

要放ACC的浮點數資料。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

ic_my_library_books_24px程式範例

 LACCF 123.456           ;ACC=123.456

 LACCF @var1             ;ACC=1234.45678

 

;LACCF應用於陣列指標

 LACCW #var2

 SALW  AR4

 LACCF *AR4[2]           ;ACC=1234.56789


LACCL   Dint

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

將長整數(32 Bits)資料載入ACC暫存器。EXP暫存器不受影響。

ic_settings_24px參數

Dint

要放ACC的長整數。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

ic_my_library_books_24px程式範例

 LACCL 32768              ;ACC = 32768,載入常數。

 LACCL @var1              ;ACC = var1,將變數var1的值拷貝到ACC

 LACCL @XAR5              ;ACC = XAR7暫存器。

 

;LACCL應用在陣列指標。

 LALW  #var2

 SALW  @AR4

 LACCL *AR4[1]            ;ACC <- *(AR4+3) (指標)


LACCW   Int

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

將長整數(16 Bits)資料載入ACC暫存器。EXP暫存器不受影響。

ic_settings_24px參數

Int

要放ACC的短整數。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

ic_my_library_books_24px程式範例

 LACCW 32767            ;ACC = 32767 (常數)

 LACCW @var1            ;ACC = var1 (變數)

 LACCW @AR4             ;ACC = AR4 (暫存器)

 

;LALW應用於陣列指標

 LALW  #var2            ;var2陣列的起始地址放入AL

 SALW  @AR1             ;AL中存放的var陣列起始地址,拷貝到AR1暫存器。

 LACCW *AR1[1]          ;ACC=2001


LALW   Int

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

將短整數(16 Bits)資料載入AL暫存器,不影響AH

ic_settings_24px參數

Dint

要放AL的短整數。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

ic_my_library_books_24px程式範例

 LALW 32767    ;AL = 32767

 LALW @var1    ;AL = var1

 LALW @AR4     ;AL = AR4

 

;LALW於陣列指標應用

 LALW #var2

 SALW @AR1

 LALW *AR1[1]  ;AL = 999


LAHW   Int

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

將短整數(16 Bits)資料載入AH暫存器。

ic_settings_24px參數

Int

要放進AH的短整數。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

ic_my_library_books_24px程式範例

 LAHW 32767                ;AH = 32767

 LAHW @var1                ;AH = var1

 LAHW @AR1                 ;AH = AR1

 

;LAHW於陣列指標應用

 LALW #var2

 SALW @AR2

 LAHW *AR2[1]              ;AH = 2001


LACC_PR   Int,Axis_Grp

PLC

偵錯

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

將參數PXXX(長整數32 Bits)資料載入ACC暫存器。

ic_settings_24px參數

Int

欲載入參數的索引值(IDX)。

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

Axis_Grp

用來指定本指令作用的軸(Axis)與參數群組(Grp)。

bit

bit 15~12

bit 11~8

bit 7~4

bit 3~0

內容

Axis

Grp

說明

<保留>

0:SELECT(僅可單軸)

1:X軸

2:Y軸

3:Z軸

其他:產生錯誤

00∼07:群組號碼

其他   :產生錯誤

ic_error_24px錯誤種類

0x207

參數群組值錯誤

0x209

參數索引值錯誤

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

ic_flag_24px影響旗標

N Z P

ACC內容而定。

ic_my_library_books_24px程式範例

 LACC_PR 4,X_P2  ;ACC = (axis X :P2-04)

 LACC_PR 3,Y_P5  ;ACC = (axis Y :P5-03)


LACCL_SV   Int,Axis

PLC

偵錯

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

將單一軸的系統變數載入ACC暫存器,存放成長整數(32 bits)。

ic_settings_24px參數

Int

欲載入系統變數的編號(0254);編號參考參數P002或監控變數表。定義請參考編號定義表。

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

 

 

 

Axis

用來指定本指令作用的(單一)軸(Axis)。

Bit

15~3

2

1

0

軸代號

保留

Z

Y

X

Axis0時,則軸別根據SELECT指令。

ic_error_24px錯誤種類

0x231

系統變數索引值錯誤

0x227

設定的軸出錯 (設定多軸、軸值出錯、未選定軸)

ic_flag_24px影響旗標

N Z P

ACC內容而定。

ic_my_library_books_24px程式範例

 LACCL_SV 0,X_AXIS    ;ACC = X軸回授位置

 LACCL_SV 7,Y_AXIS    ;ACC = Y軸馬達轉速

 

編號定義表

DEC

HEX

ALIAS

變數名稱/屬性

內容說明

0

0x0

V00h_FB_PUU

回授位置(PUUB

馬達編碼器目前回授的位置座標,單位為使用者單位PUU

1

0x1

V01h_CMD_PUU

位置命令(PUUB

位置命令的目前座標,單位為使用者單位PUU
PT模式:代表驅動器接收的脈波命令數。
PR模式:位置命令的絕對座標值。
相當於上位機發送的命令脈波數。

2

0x2

V02h_Err_PUU

位置誤差(PUUB

位置命令與回授位置的差,單位為使用者單位PUU

3

0x3

V03h_FB_Pulse

回授位置(pulseB

馬達編碼器目前回授的位置座標,單位為編碼器單位pulse

4

0x4

V04h_PT_CMD_Pulse

位置命令(pulseB

位置命令的目前座標,單位為編碼器單位pulse

5

0x5

V05h_Err_Pulse

位置誤差(pulseB

位置命令與回授位置的差,單位為編碼器單位pulse

6

0x6

V06h_Pls_Cmd_Freq

脈波命令輸入頻率[Kpps]

驅動器接收到脈波命令的頻率,單位為 Kpps
PTPR模式適用。

7

0x7

V07h_Spd_Now_rpm_lpf

馬達轉速 or 速度回授 [r/min]

馬達目前轉速,單位為 0.1 r/min
有經過低通濾波,數值較穩定

8

0x8

V08h_SCMD_Volt

速度輸入命令(類比) [Volt]

由類比通道輸入的速度命令,單位為 0.01 Volt

9

0x9

V09h_SCMD_RPM

速度輸入命令 (整合)[r/min]

整合的速度命令,單位為 1 r/min
來源可能是類比/暫存器/位置迴路所產生

10

0xA

V0Ah_TCMD_Vot

扭矩輸入命令(類比) [Volt]

由類比通道輸入的扭力命令,單位為 0.01 Volt

11

0xB

V0Bh_TCMD_1Per

扭矩輸入命令(整合) [%]

整合的扭力命令,單位為 Percent (%)
來源可能是類比/暫存器/速度迴路所產生

12

0xC

V0Ch_AVG_LOAD

平均負載率  [%]

驅動器輸出的平均負載比率,單位為 Percent (%)

13

0xD

V0Dh_PEAK_Load

峰值負載率

驅動器輸出的最大負載比率,單位為 Percent (%)

14

0xE

V0Eh_Bus_Volt

DC Bus電壓

整流後的電容器電壓,單位為Volt

15

0xF

V0Fh_JL_RATIO

負載慣量比

負載慣量與馬達慣量的比率,單位為 0.1倍。

16

0x10

V10h_IGBT_Temp

IGBT溫度

IGBT的溫度,單位為°C。

17

0x11

V11h_Rsn_Freq

共振頻率

系統的共振頻率,包含2組頻率:F1F2
面板監視時,按下SHF可切換兩者顯示:
F2
無小數點,F1顯示1位小數點
通訊(參數映射)讀取時:
16 BitLow WORD)傳回頻率F2
16 BitHigh WORD)傳回頻率F1

18

0x12

V12h_Z_Diff_pos

Z相偏移量

相對於編碼器Z相的絕對脈波數,也就是Z相原點處的數值為0 往前往後分別定為正負5000 pulse

27

0x1B

V1Bh_Z_Diff_PUU

 

 

28

0x1C

V1Ch_Alm_Err

 

 

29

0x1D

V1Dh_AUX_FB_PUU

 

 

30

0x1E

V1Eh_AUX_Err_PUU

 

 

31

0x1F

V1Fh_MA_DIFF_PUU

 

 

32

0x20

V20h_TACC

加速度時間

0加速到 3000 RPM 時間,單位 ms

33

0x21

V21h_TDEC

減速度時間

3000減速到0  RPM 時間,單位 ms

39

0x27

V27h_DI

DI狀態(整合)

整合的驅動器DI狀態,每一位元對應一DI通道。
包含來源:硬體通道/軟體P4-07,依P3-06來選擇。

40

0x28

V28h_DO

DO狀態(硬體)

驅動器DO硬體實際輸出的狀態,每一位元對應一DO通道。

41

0x29

V29h_Drv_STATUS

驅動器狀態

傳回參數 P0-46,請參考該參數說明

43

0x2B

代補上 ALIAS

CAP抓取資料

最新一次由CAP硬體所抓取到的資料

48

0x30

V30h_Aux_ENC_Cnt

輔助編碼器CNT

輔助編碼器(CN5)輸入的脈波計數值。

49

0x31

V31h_Pls_Cmd_Cnt

脈波命令CNT

脈波命令(CN1)輸入的脈波計數值。

50

0x32

V32h_Spd_Cmd_rpm

速度命令(整合)

整合的速度命令,單位為 0.1 r/min
來源可能是類比/暫存器/位置迴路所產生

51

0x33

V33h_Spd_Now_rpm

速度回授(立即)

馬達目前實際速度,單位為 0.1 r/min

52

0x34

V34h_Spd_Now_rpm_lpf

速度回授(濾波)

馬達目前實際速度,單位為 0.1 r/min(經過低通濾波器)。

53

0x35

V35h_Trq_Cmd_0_1Per

扭力命令(整合)

整合的扭力命令,單位為 0.1 Percent (%)
來源可能是類比/暫存器/速度迴路所產生

54

0x36

V36h_Trq_Now_0_1Per

扭力回授

馬達目前實際扭力,單位為 0.1 Percent (%)

55

0x37

V37h_Trq_Now_Amp

電流回授

馬達目前實際電流,單位為 0.01 安培(Amp)。

56

0x38

V38h_DC_Bus_Volt

DC Bus電壓

整流後的電容器電壓,單位為0.1 伏特(Volt)。

57

0x39

V39h_JL_RATIO_1

V0Fh_JL_RATIO

 

58

0x3A

V3Ah_Spd_Now_1_rpm

 

 

59

0x3B

V3Bh_ECAM_MST_CNT

ECAM主動軸脈波 (累計)

電子凸輪主動軸的累計脈波數,同參數P5-86

60

0x3C

V3Ch_ECAM_MST_INC

ECAM主動軸脈波 (增量)

電子凸輪主動軸的脈波數增量,每1 msec的增加量。

61

0x3D

V3Dh_ECAM_MST_LEAD

ECAM主動軸脈波 (前置量)

電子凸輪主動軸脈波的前置量,用來判斷嚙合條件
未嚙合時:前置量=P5-87 P5-92,為零後即嚙合。
已嚙合時:前置量=P5-89,為零後即脫離。

62

0x3E

V3Eh_ECAM_X_POS

ECAM 凸輪主軸位置

電子凸輪主軸的位置,表格的輸入。
單位:同主動軸的脈波,主動軸的脈波位移量為P 時,凸輪主軸旋轉M 圈(P5-83M, P5-84P)。

63

0x3F

V3Fh_ECAM_Y_POS

ECAM 從動軸位置

電子凸輪從動軸的位置,表格的輸出。
單位:凸輪表格中資料的單位

64

0x40

V40h_PCMD

PR命令終點暫存器

位置命令的終點(Cmd_E

65

0x41

V41h_PCMD_OUT

PR命令輸出暫存器

位置命令累計的輸出(Cmd_O)

66

0x42

V42h_PCMD_AMF

 

 

67

0x43

V43h_SCMD

PR目標速度

PR模式路徑命令的目標速度,單位是PPSPulse Per Second)。

68

0x44

V44h_SCMD_AMF_IN

PR當前速度-S型濾波器(輸入)

 

69

0x45

V45h_SCMD_AMF_OUT

PR當前速度-S型濾波器(輸出)

 

70

0x46

V46h_SCMD_OUT_M

PR輪廓速度命令(主插值)

當前毫秒主插值器的輸出速度,單位:PUU/ms

71

0x47

V47h_SCMD_OUT_A

PR輪廓速度命令(副插值)

當前毫秒副插值器的輸出速度,單位:PUU/ms

72

0x48

V48h_TH_PCMD_OUT

 

 

73

0x49

V49h_TH_SCMD_OUT

 

 

74

0x4A

V4Ah_CR_XC

 

 

75

0x4B

V4Bh_CR_YC

 

 

76

0x4C

V4Ch_SCMD_OUT

PR輪廓速度命令(總和)

當前毫秒插值器的輸出速度,單位:PUU/ms

77

0x4D

V4Dh_VTACC

向量命令加速度時間

0加速到 3000 RPM 時間,單位 ms

78

0x4E

V4Eh_VTDEC

向量命令減速度時間

3000減速到0  RPM 時間,單位 ms

79

0x4F

V4Fh_VSPD

向量命令目標速度

PPS

80

0x50

V50h_CSAX_GEAR_N

 

 

81

0x51

V51h_CSAX_GEAR_M

同步修正軸-脈波輸入增量

同步抓取修正軸作用時,相鄰兩次CAP之間,所收到的脈波數量,可用來量測標記(Mark)的實際距離!

84

0x54

V54h_CSAX_GEAR_DIFF

同步修正軸-同步誤差脈波數

同步抓取修正軸作用時,實際輸出脈波與目標脈波的累積誤差值。若同步達成,此數值接近0

85

0x55

V55h_ALG_ERR_RATE

對位誤差率 (單位: 0.1%)

DI:ALGN 觸發凸輪對位後計算出的對位誤差率。

87

0x57

V57h_CAP_TIME_OFS

抓取事件發生點 (單位: us)

無法使用韌體內建的高速抓取計算時間誤差的情況,可以參考此系統變數得到 DI:CAP 發生時間點是該毫秒(ms) 中哪一個微秒(us)

88

0x58

V58h_CSAX_G_Rate

同步修正軸-誤差率(即時)

同步抓曲軸實際脈波與 P5-78 數值的誤差比例 (單位: 0.1 %)

89

0x59

V59h_CSAX_G_LPF

同步修正軸-誤差率(濾波後)

同步抓曲軸實際脈波與 P5-78 數值的誤差比例,經過濾波處理較緩和 (單位: 0.1 %)

91

0x5B

V5Bh_FB_PUU_CR

分度座標回授位置(PUU

根據 P2-52 定義的分度範圍,由直線座標回授所轉換過的分度座標回授值。單位: PUU,範圍 0 (P2-52-1)


SACCF   Real48

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器(48 Bits)浮點數資料存入記憶體或暫存器。

ic_settings_24px參數

Real48

要放ACC的浮點數資料。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 SACCF @var1                ;var1 = ACC

 

;SACCF應用於陣列指標

 LALW  #var2

 SALW  @AR4

 SACCF *AR4[1]              ;var2[1] = ACC


SACCL   Dint

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器(32 Bits)浮點數資料存入記憶體或暫存器。

ic_settings_24px參數

Real48

ACC暫存器(32 Bits)長整數資料存入記憶體或暫存器

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

V

ACC原來是浮點數,轉換成長整數後超出範圍,若發生溢位,ACC自動載入最大值:+2147483647-2147483648,正負根據N旗號。

ic_my_library_books_24px程式範例

 SACCL @var1        ;var1 = ACC

 SACCL @XAR1        ;XAR4 = ACC

 

;SACCL應用於陣列指標

 LALW  #var2

 SALW  @AR2

 SACCL *AR2[1]      ;var2[1] = ACC


SALW   Int

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

AL暫存器(16 Bits)短整數資料存入記憶體或暫存器。

ic_settings_24px參數

Int

要放AL的短整數

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 SALW @var1                ;var1 = AL

 SALW @AR1                 ;AR1 = AL

 

;SALW應用於陣列指標

 LALW #var2

 SALW @AR2

 SALW *AR2[1]              ;var2[1] = AL


SAHW   Int

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

AH暫存器(16 Bits)短整數資料存入記憶體或暫存器。

ic_settings_24px參數

Int

要放AH的短整數

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 SAHW  @VAR_1    ;VAR_1 <- AH (變數)

 SAHW  *AR4[3]   ;*(AR4+3) <- AH (指標)

 SAHW  @AR4      ;AR4 <- AH (暫存器)


SACC_PR   Int,Axis_Grp

PLC

偵錯

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器(長整數32 Bits)資料存入P參數(PXXX)。

 

參數寫入時,必須遵循P參數屬性,例如:有的參數無法於Servo On時設定。

ic_settings_24px參數

Int

欲存入參數的索引值(IDX)。

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

Axis_Grp

用來指定本指令作用的軸(Axis)與參數群組(Grp)。

bit

bit 15~12

bit 11~8

bit 7~4

bit 3~0

內容

Axis

Grp

說明

<保留>

0:SELECT(僅可單軸)

1:X軸

2:Y軸

3:Z軸

其他:產生錯誤

00∼07:群組號碼

其他   :產生錯誤

ic_error_24px錯誤種類

0x207

參數群組值錯誤

0x209

參數索引值錯誤

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 LACCL     1       ;ACC   = 1

 SACC_PR   30,X_P2 ;X P2-30 = 1 (強制 X Servo ON)


SACCL_SV   Int,Axis

PLC

偵錯

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器(長整數32 Bits)資料存入系統變數。

 

參數寫入時,必須遵循P參數屬性,例如:有的參數無法於Servo On時設定。

ic_settings_24px參數

Int

欲存入參數的索引值(IDX)。

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

Axis

用來指定本指令作用的(單一)軸(Axis)。

Bit

15~3

2

1

0

軸代號

保留

Z

Y

X

Axis0時,則軸別根據SELECT指令。

ic_error_24px錯誤種類

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 LACCL     1       ;ACC   = 1

 SACC_PR   30,X_P2 ;X P2-30 = 1 (強制 X Servo ON)

 

編號定義表

DEC

HEX

ALIAS

變數名稱/屬性

內容說明

148

0x94

Extra_ECAM_Master_Pls

額外的凸輪主軸脈波

149

0x95

DA_CH1

第一路類比輸出

ACC 內的數值單位為 0.001 Volt

150

0x96

DA_CH2

第二路類比輸出

ACC 內的數值單位為 0.001 Volt


ADDF   Real48

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

將浮點數(48 Bits)資料與ACC暫存器的資料相加,再存於ACC暫存器,運算結果仍為浮點數。

ic_settings_24px參數

Real48

欲相加的浮點數資料。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

C V

一律清除。

ic_my_library_books_24px程式範例

 LACCF 1.1

 ADDF  1.2           ;ACC = ACC + 1.2

 ADDF  @var1        ;ACC = ACC + var1

 

;ADDF應用於陣列指標

 LALW  #var2

 SALW  @AR1

 LACCF 1.1

 ADDF  *AR1[1]       ;ACC = ACC + var2[1]


ADDL   Dint

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

將長整數(32 Bits)資料與ACC暫存器的資料相加,再存於ACC暫存器。如ACC原來是整數,運算結果也是整數;如ACC原來是浮點數,運算結果則是浮點數。

ic_settings_24px參數

Dint

欲相加的長整數。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

V

若運算後是長整數而加法運算後超出長整數範圍(-2147483648+2147483647),則溢位(V1),若為浮點數則一律清除。

C

若運算後是長整數則視ACC內容而定,若為浮點數則一律清除。

ic_my_library_books_24px程式範例

 LACCL 10000001

 ADDL  10000002    ;ACC = ACC + 10000002

 ADDL  @var1       ;ACC = ACC + var1

 

;ADDL應用於陣列指標

 LALW  #var2

 SALW  @AR1

 LACCL 1

 ADDL  *AR1[1]     ;ACC = ACC + var2[1]


ADDW   Int

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

將短整數(16 Bits)資料與ACC暫存器的資料相加,再存於ACC暫存器(32 Bits)。如ACC原來是整數,運算結果也是整數;如ACC原來是浮點數,運算結果則是浮點數。

ic_settings_24px參數

Int

欲相加的短整數。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

V

若運算後是長整數而加法運算後超出長整數範圍(-2147483648+2147483647),則溢位(V1),若為浮點數則一律清除。

C

若運算後是長整數則視ACC內容而定,若為浮點數則一律清除。

ic_my_library_books_24px程式範例

 LACCW 1

 ADDW  1           ;ACC = ACC + 1

 ADDW  @var1       ;ACC = ACC + var1

 

 ;ADDW應用於陣列指標

 LALW  #var2

 SALW  @AR1

 LACCW 1

 ADDW  *AR1[1]     ;ACC = ACC + var2[1]


SUBF   Real48

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器的資料減浮點數(48 Bits)資料,再存於ACC暫存器。運算結果仍為浮點數。

ic_settings_24px參數

Real48

欲相加的浮點數資料。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

C V

一律清除。

ic_my_library_books_24px程式範例

 LACCF 1.1

 SUBF  0.2           ;ACC = ACC - 0.2

 SUBF  @var1         ;ACC = ACC - var1

 

;SUBF應用於陣列指標

 LALW  #var2

 SALW  @AR1

 LACCF 1.1

 SUBF  *AR1[1]       ;ACC = ACC - var2[1]


SUBL   Dint

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器的資料減長整數(32 Bits)資料,再存於ACC暫存器。如ACC原來是整數,運算結果也是整數;如ACC原來是浮點數,運算結果則是浮點數。

ic_settings_24px參數

Dint

欲相減的長整數。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

V

若運算後是長整數而加法運算後超出長整數範圍(-2147483648+2147483647),則溢位(V1),若為浮點數則一律清除。

C

若運算後是長整數則視ACC內容而定,若為浮點數則一律清除。

ic_my_library_books_24px程式範例

 LACCL 10000001

 SUBL  10000002    ;ACC = ACC - 10000002

 SUBL  @var1       ;ACC = ACC - var1

 

;ADDL應用於陣列指標

 LALW  #var2

 SALW  @AR1

 LACCL 10000001

 SUBL  *AR1[1]     ;ACC = ACC - var2[1]


SUBW   Int

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器的資料減短整數(16 Bits)資料,再存於ACC暫存器。如ACC原來是整數,運算結果也是整數;如ACC原來是浮點數,運算結果則是浮點數。

ic_settings_24px參數

Int

欲相減的短整數。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

V

若運算後是長整數而加法運算後超出長整數範圍(-2147483648+2147483647),則溢位(V1),若為浮點數則一律清除。

C

若運算後是長整數則視ACC內容而定,若為浮點數則一律清除。

ic_my_library_books_24px程式範例

 LACCW 1

 SUBW  1           ;ACC = ACC - 1

 SUBW  @var1       ;ACC = ACC - var1

 

;SUBW應用於陣列指標

 LALW  #var2

 SALW  @AR1

 LACCW 1

 SUBW  *AR1[1]     ;ACC = ACC - var2[1]


MULF   Real48

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器的資料乘以浮點數(48 Bits)資料,再存於ACC暫存器。運算結果仍為浮點數。

ic_settings_24px參數

Real48

欲相乘的浮點數資料。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

V

一律清除。

ic_my_library_books_24px程式範例

 LACCF 1.1

 MULF  0.2           ;ACC = ACC x 0.2

 MULF  @var1         ;ACC = ACC x var1

 

;MULF應用於陣列指標

 LALW  #var2

 SALW  @AR1

 LACCF 1.1

 MULF  *AR1[1]       ;ACC = ACC x var2[1]


MULL   Dint

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器的資料乘以長整數(32 Bits)資料,再存於ACC暫存器。如ACC原來是整數,運算結果也是整數;如ACC原來是浮點數,運算結果則是浮點數。

ic_settings_24px參數

Dint

欲相乘的長整數。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

V

若運算後是長整數而加法運算後超出長整數範圍(-2147483648+2147483647),則溢位(V1),若為浮點數則一律清除。

C

若運算後是長整數則視ACC內容而定,若為浮點數則一律清除。

ic_my_library_books_24px程式範例

 LACCL 2

 MULL  10000002    ;ACC = ACC x 10000002

 MULL  @var1       ;ACC = ACC x var1

 

;MULL應用於陣列指標

 LALW  #var2

 SALW  @AR1

 LACCL 2

 MULL  *AR1[1]     ;ACC = ACC x var2[1]


MULW   Int

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器的資料乘以短整數(16 Bits)資料,再存於ACC暫存器。如ACC原來是整數,運算結果也是整數;如ACC原來是浮點數,運算結果則是浮點數。

ic_settings_24px參數

Int

欲相的短整數。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

V

若運算後是長整數而加法運算後超出長整數範圍(-2147483648+2147483647),則溢位(V1),若為浮點數則一律清除。

C

若運算後是長整數則視ACC內容而定,若為浮點數則一律清除。

ic_my_library_books_24px程式範例

 LACCW 1

 MULW  2           ;ACC = ACC x 2

 MULW  @var1       ;ACC = ACC x var1

 

;MULW應用於陣列指標

 LALW  #var2

 SALW  @AR1

 LACCW 3

 MULW  *AR1[1]     ;ACC = ACC x var2[1]


DIVF   Real48

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器的內容除以浮點數(48 Bits)資料,結果存於ACC暫存器。運算結果一律是浮點數。

ic_settings_24px參數

Real48

欲相乘的浮點數資料。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

ACC內容而定。

V

一律清除。

ic_my_library_books_24px程式範例

 LACCF 1.1

 DIVF  2.2           ;ACC = ACC÷2.2

 DIVF  @var1         ;ACC = ACC÷var1

 

;DIVF應用於陣列指標

 LALW  #var2

 SALW  @AR1

 LACCF 1.1

 DIVF  *AR1[1]       ;ACC = ACC÷var2[1]


DIVL   Dint

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器的資料除以長整數(32 Bits)資料,再存於ACC暫存器。如ACC原來是整數,運算結果也是整數;如ACC原來是浮點數,運算結果則是浮點數。

商不會四捨五入。

ic_settings_24px參數

Dint

欲相的長整數。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

除數為0(沒有ERROR CODE

ic_flag_24px影響旗標

N Z P

ACC內容而定。

V

若運算後是長整數,運算前若ACC等於-2147483648V=1;若為浮點數則一律清除。

ic_my_library_books_24px程式範例

 LACCL 20000002

 DIVL  2           ;ACC = ACC ÷ 2

 DIVL  @var1       ;ACC = ACC ÷ var1

 

;DIVL應用於陣列指標

 LALW  #var2

 SALW  @AR1

 LACCL 40000004

 DIVL  *AR1[1]     ;ACC = ACC ÷ var2[1]


DIVW   Int

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器的資料除以短整數(16 Bits)資料,再存於ACC暫存器。如ACC原來是整數,運算結果也是整數;如ACC原來是浮點數,運算結果則是浮點數。

ic_settings_24px參數

Int

欲相的短整數。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

除數為0FW 沒有 ERROR CODE

ic_flag_24px影響旗標

N Z P

ACC內容而定。

V

若運算後是長整數,運算前若ACC等於-2147483648V=1;若為浮點數則一律清除。

ic_my_library_books_24px程式範例

 LACCW 99

 DIVW  9           ;ACC = ACC x 2

 DIVW  @var1       ;ACC = ACC x var1

 

;DIVW應用於陣列指標

 LALW  #var2

 SALW  @AR1

 LACCW 66

 DIVW  *AR1[1]     ;ACC = ACC x var2[1]


CMPF   Real48

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器的資料與浮點數(48 Bits)資料作比較,ACC暫存器內容不變。

ic_settings_24px參數

Real48

欲相比較的浮點數資料。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P

視比較結果而定。

ic_my_library_books_24px程式範例

       LACCF 3.3             ;ACC = 3.3

       CMPF  2.2

       JMP_C $L_END,GEQ      ;ACC > 2.2,跳躍到L_END

       LACCF 4.4             ;未執行。

       JMP_C $L_END,UNC      ;未執行。

L_END:

       LACCF 0.0


CMPL   Dint

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

ACC暫存器的資料與長整數(32 Bits)資料作比較,ACC暫存器內容不變。

ic_settings_24px參數

Dint

欲相比較的長整數資料。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P C

ACC而定。

ic_my_library_books_24px程式範例

       LACCL 10000001        ;ACC = 10000001

       CMPL  10000000

       JMP_C $L_END,GEQ      ;ACC > 10000000,跳躍到L_END

       LACCL 10000002        ;未執行。

       JMP_C $L_END,UNC      ;未執行。

L_END:

       LACCL 0


CMPW   Int

PLC

偵錯

ic_done_24px

ic_assessment_24px功能說明

AL暫存器的資料與短整數(16 Bits)資料作比較,AL暫存器內容不變。

ic_settings_24px參數

Int

欲相比較的短整數資料。

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

N Z P C

ACC而定。

ic_my_library_books_24px程式範例

       LACCW 2               ;ACC = 2

       CMPL  1

       JMP_C $L_END,GEQ      ;ACC > 1,跳躍到L_END

       LACCL 3               ;未執行。

       JMP_C $L_END,UNC      ;未執行。

L_END:

       LACCL 0


SELECT   Int

PLC

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

選擇座標系的組成軸,作為後續Motion命令的作用軸。

ic_settings_24px參數

Int

每一個bit指定一個軸,定義如下:

Bit

15~3

2

1

0

軸名稱

保留

參數OP1的內容(Bit 012)表示各軸是否有被選取,當作後續Motion的命令軸,若為0表示未選取,非零表示選取。各軸的命令,存於Motion命令陣列內,順序固定為X(0)、Y(1)、Z(2)

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

 

 

ic_error_24px錯誤種類

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

;選擇XMotion模式。

 SELECT  X_AXIS

 MODE    PATH


MODE   Int

PLC

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

設定 Motion 的命令模式。

ic_settings_24px參數

Int

Motion 命令模式,mode定義如下:

模式名稱

模式數值

模式功能

IDLE

0

IDLE 模式

PATH

0x10

路徑模式

點對點運動包含速度運動 (位置模式)

向量運動(直線/圓弧插補)

PT

0x11

Pt模式

USER

0x12

IP 模式 (自定加減速)

SPD

0x20

速度控制(速度模式)

TRQ

0x30

扭力模式

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

 

 

 

ic_error_24px錯誤種類

0x221

設定未定義模式號碼

ic_flag_24px影響旗標

N Z P

ACC內容而定。

ic_my_library_books_24px程式範例

;選擇XMotion模式。

 SELECT  X_AXIS

 MODE    PATH


STOP   Dint

PLC

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

在路徑模式下,以點對點運動方式將速度減速至0然後停止。永遠以插斷方式執行,因此不必執行指令: MC_OPT  0x01,停止過程以目前速度,遵循減速時間TDEC減速至零,根據參數決定要不要使用路徑S濾波器。向量運動用此指令停止時,合成路徑不會維持在原始路徑上。由於是在路徑中途停止,因此已輸出的命令位置並不等於終點位置,如果想要繼續未完成的路徑,可以執行PINC指令,並設定所有軸的增量命令為零即可。

ic_settings_24px參數

Dint

設定停止過程是否使用路徑 S 濾波器:

    0: 減速過程不使用路徑 S 濾波器。

    1: 減速過程使用路徑 S 濾波器。

 

當參數使用常數跟暫存器設定,則所有選定的軸(SELECT)共用此參數;使用變數或指標方式則各別軸可以設定不同的是否使用路徑S濾波器設定。

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

1. 單軸指令:

 SELECT X_AXIS                   

 STOP   1          ;Stop the Motion with S-Curve Filter.

2. 多軸指令:

 SELECT X_Y_AXIS                   

 STOP   @sCurveFilter[0]   ;Stop the Motion with/without S-Curve Filter.


TACC   Dint

PLC

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

在路徑模式下,設定點對點運動各軸的加速時間.單位msec,代表速度由0加速至3000 rpm所需的時間。設定範圍是1∼65536

ic_settings_24px參數

Dint

值為0加速3000 rpm加速時間,單位msec

 

參數使用變數或指標定址時,不論單軸或多軸指令都使用連續3個長整數(32 bits)組成的命令陣列的開頭,用來儲存多軸加速時間,其中陣列第一個長整數存放X軸參數,第二個存放Y軸參數,第三個存放Z軸參數。

 

定址方式:

 

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

單軸

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

多軸

 

ic_done_24px

ic_done_24px

 

ic_error_24px錯誤種類

0x211

多軸命令時,輸入參數不可為常數或是暫存器

0x223

模式錯誤

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

警告種類

-11

加速參數超過容許範圍

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

1. 單軸指令:

;選擇X軸進行JOG

 SELECT  X_AXIS

 TACC    10000

 TDEC    10000

 JOG     200000

2. 多軸指令:

 SELECT  X_Y_Z_AXIS

 TACC    @acc[0]

 TDEC    @dec[0]

 JOG     @speed[0]


TDEC   Dint

PLC

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

將參數PXXX(長整數32 Bits)資料載入ACC暫存器。

ic_settings_24px參數

Dint

在路徑模式下,設定點對點運動各軸的減速時間.單位msec,代表速度由3000 rpm減速至0 rpm所需的時間。設定範圍是1∼65536

 

定址方式:

 

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

單軸

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

多軸

 

ic_done_24px

ic_done_24px

 

ic_error_24px錯誤種類

0x211

多軸命令時,輸入參數不可為常數或是暫存器

0x223

模式錯誤

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

錯誤種類

-12

減速參數超過容許範圍

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

1. 單軸指令:

 SELECT  X_AXIS

 TACC    10000

 TDEC    10000

 JOG     200000

 

2. 多軸指令:

 SELECT  X_Y_Z_AXIS

 TACC    @acc[0]

 TDEC    @dec[0]

 JOG     @speed[0]


SPD   Dint

PLC

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

在路徑模式下,設定點對點運動各軸的目標速度。單位PPSPulse Per Second)。

ic_settings_24px參數

Dint

代表點對點運動各軸的目標速度,單位為 PPSPulse Per Second),設定範圍是102147483647

 

參數使用變數或指標定址時,不論單軸或多軸指令都使用連續3個長整數(32 bits)組成的命令陣列的開頭,用來儲存多軸參數,其中陣列第一個長整數存放X軸參數,第二個存放Y軸參數,第三個存放Z軸參數。

 

PPSrpm的轉換公式為:

     PPSGear Ratio60/(pulse of 1 turn of the encoder)=rpm

 

定址方式:

 

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

單軸

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

多軸

 

ic_done_24px

ic_done_24px

 

ic_error_24px錯誤種類

0x211

多軸命令時,輸入參數不可為常數或是暫存器

0x223

模式錯誤

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

1. 單軸指令:

 SELECT X_AXIS

 TACC   10000

 TDEC   10000

 SPD    200000

 PINC   400000

2. 多軸指令:

 SELECT X_Y_Z_AXIS

 TACC   @acc[0]

 TDEC   @dec[0]

 SPD    @speed[0]

 PINC   @incPos[0]


PINC   Dint

PLC

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

在路徑模式下,執行獨立軸增量位置命令,單位為Pulse

本命令只在Mode為路徑模式時有效。

命令以上次命令為起點,加上本次位移量作為本次命令。

ic_settings_24px參數

Dint

值為增量位置量,單位為Pulse

 

參數使用變數或指標定址時,不論單軸或多軸指令都使用連續3個長整數(32 bits)組成的命令陣列的開頭,用來儲存多軸參數,其中陣列第一個長整數存放X軸參數,第二個存放Y軸參數,第三個存放Z軸參數。

 

定址方式:

 

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

單軸

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

多軸

 

ic_done_24px

ic_done_24px

 

ic_error_24px錯誤種類

0x211

多軸命令時,輸入參數不可為常數或是暫存器

0x223

模式錯誤

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

0x237

PLC Task執行不可等待

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

1. 單軸指令:

 SELECT X_AXIS

 TACC   10000

 TDEC   10000

 SPD    200000

 PINC   400000

2. 多軸指令:

 SELECT  X_Y_Z_AXIS

 TACC    @acc[0]

 TDEC    @dec[0]

 SPD     @speed[0]

 PINC     @incPos[0]


PABS   Dint

PLC

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

在路徑模式下,執行獨立軸絕對位置命令,單位為Pulse

本命令只在Mode為路徑模式時有效。

命令為相對於原點的絕對命令。

ic_settings_24px參數

Dint

值為絕對位置量,單位為Pulse

 

參數使用變數或指標定址時,不論單軸或多軸指令都使用連續3個長整數(32 bits)組成的命令陣列的開頭,用來儲存多軸參數,其中陣列第一個長整數存放X軸參數,第二個存放Y軸參數,第三個存放Z軸參數。

 

定址方式:

 

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

單軸

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

多軸

 

ic_done_24px

ic_done_24px

 

ic_error_24px錯誤種類

0x211

多軸命令時,輸入參數不可為常數或是暫存器

0x223

模式錯誤

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

0x235

絕對位置命令溢位

0x237

PLC Task執行不可等待

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

1. 單軸指令:

 SELECT X_AXIS

 TACC   10000

 TDEC   10000

 SPD    200000

 PABS   400000

2. 多軸指令:

 SELECT X_Y_Z_AXIS

 TACC   @acc[0]

 TDEC   @dec[0]

 SPD    @speed[0]

 PABS   @incPos[0]


PIDX   Dint

PLC

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

Mode為路徑模式時,執行獨立軸分度位置命令,單位為PUU。本命令必須配合P2-52參數配置分度座標系大小及MC_OPT指令設定分度命令方向。

ic_settings_24px參數

Dint

分度位置量,單位為PUU

定址方式

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

單軸

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

多軸

ic_done_24px

ic_done_24px

 

 

參數使用變數或指標定址時,不論單軸或多軸指令都使用連續3個長整數(32 bits)組成的命令陣列的開頭,用來儲存多軸參數。

成員

[0]

[1]

[2]

定義

X

Y

Z

 

ic_error_24px錯誤種類

0x0227

選軸錯誤

0x0223

模式錯誤

0x227

未選擇操作軸

0x237

PLC Task執行不可等待

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 SELECT X_AXIS

 MC_OPT 8

 MODE  PATH

 TACC   1000

 TDEC   1000

 SPD    1000000

 PIDX   0


JOG   Dint

PLC

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

在路徑模式下,執行獨立軸速度控制命令,單位為PPSPulse Per Second)。命令以目前速度為起點,根據加減速時間設定,造出速度曲線。當速度命令達到設定值時,本指令結束,但速度命令會持續輸出。

ic_settings_24px參數

Dint

值為軸速度,單位PPSPulse Per Second)。

 

參數使用變數或指標定址時,不論單軸或多軸指令都使用連續3個長整數(32 bits)組成的命令陣列的開頭,用來儲存多軸參數,其中陣列第一個長整數存放X軸參數,第二個存放Y軸參數,第三個存放Z軸參數。

 

定址方式:

 

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

單軸

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

多軸

 

ic_done_24px

ic_done_24px

 

ic_error_24px錯誤種類

0x211

多軸命令時,輸入參數不可為常數或是暫存器

0x223

模式錯誤

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

0x237

PLC Task執行不可等待

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

1. 單軸指令:

 SELECT X_AXIS

 TACC   10000

 TDEC   10000

 JOG    200000

2. 多軸指令:

 SELECT  X_Y_Z_AXIS

 TACC    @acc[0]

 TDEC    @dec[0]

 JOG     @speed[0]


LINE   Dint

PLC

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

在路徑模式下,設定直線補間之增量位置命令,單位為Pulse。命令以上次命令為起點,加上本次位移量作為本次命令。

本命令只在Mode為路徑模式時有效。

ic_settings_24px參數

Dint

值為直線補間之增量位置量,單位為Pulse

 

須使用連續3個長整數(32 BITS)組成的命令陣列的開頭,用來儲存多軸參數,其中陣列第一個長整數存放 X 軸參數,第二個存放 Y 軸參數,第三個存放 Z 軸參數。

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

 

ic_done_24px

ic_done_24px

 

ic_error_24px錯誤種類

0x211

多軸命令時,輸入參數不可為常數或是暫存器

0x223

模式錯誤

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

0x237

PLC Task執行不可等待

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 SELECT X_Y_AXIS

 VTACC  500

 VTDEC  600  

 VSPD   50000   

 LINE   @ln[0] ;@ln[0]為長度3之陣列。


CIRC   Dint,Set

PLC

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

在路徑模式下,設定圓弧插補命令,當以Set選擇兩個成員軸時,執行圓弧插補,若選三個成員軸,則圓弧過程中多了Z方向的運動,即執行螺旋插補。

本命令只在Mode為路徑模式時有效。

ic_settings_24px參數

Dint

參數為一塊連續4個長整數(32 bits)組成的命令陣列,其命令陣列組成如下:

記憶體

C[0]

C[1]

C[2]

C[3]

參數

半徑 Radius

起始角度
( Unit : 0.5 degree )

圓弧角度
( Unit : 0.5 degree )

Z軸移動距離(H)

DWORD

Hi-Word

Low-Word

Hi-Word

Low-Word

DWORD

內容

Radius

不作用

Theta_0

不作用

Delta_Theta

H

C[0] ~ C[3]代表4個長整數(32 bits)變數。

角度的計算,由選擇的座標系第一軸正向往第二軸正向旋轉

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

 

ic_done_24px

ic_done_24px

 

ic_error_24px錯誤種類

0x211

多軸命令時,輸入參數不可為常數或是暫存器

0x223

模式錯誤

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

0x237

PLC Task執行不可等待

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

1. 圓弧插補:

 SELECT X_Y_AXIS

 VTACC  500

 VTDEC  600  

 VSPD   50000

;par[0] 圓弧半徑 = 10000

;par[1] 圓弧起始角度=180(90 degree)

;par[2] 圓弧角度=720(1 turn)

 CIRC   @par2[0],XY

2. 螺旋插補:

 SELECT X_Y_Z_AXIS

 VTACC  500

 VTDEC  600  

 VSPD   50000

;par[0] 圓弧半徑 = 10000

;par[1] 圓弧起始角度=180(90 degree)

;par[2] 圓弧角度=720(1 turn)

;par[3] Z軸移動距離

 CIRC   @par3[0],XY+Z


VTACC   Dint

PLC

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

設定向量模式的加速時間。

ic_settings_24px參數

Dint

參數為向量模式加速時間,代表直線/圓弧插補的合成速度由0加速至3000 rpm所需的時間,單位msec,設定範圍是165535

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

0x223

模式錯誤

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

0x237

PLC Task執行不可等待

警告種類

-11

加速參數超過容許範圍

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 SELECT X_Y_AXIS

 VTACC  500

 VTDEC  600  

 VSPD   50000   

 LINE   @ln[0]


VTDEC   Dint

PLC

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

設定向量運動的減速時間。

ic_settings_24px參數

Dint

參數為向量運動減速時間,代表直線/圓弧插補的合成速度由3000減速至0 rpm所需的時間,單位msec,設定範圍是165535

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

0x223

模式錯誤

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

0x237

PLC Task執行不可等待

錯誤種類

-12

減速參數超過容許範圍

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 SELECT X_Y_AXIS

 VTACC  500

 VTDEC  600  

 VSPD   50000   

 LINE   @ln[0]


VSPD   Dint

PLC

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

設定向量運動的向量速度。

ic_settings_24px參數

Dint

參數為向量運動速度值,代表直線/圓弧插補的合成速度,單位PPSPulse Per Second)。

 

參數使用變數或指標定址時,不論單軸或多軸指令都使用連續3個長整數(32 bits)組成的命令陣列的開頭,用來儲存多軸參數,其中陣列第一個長整數存放X軸參數,第二個存放Y軸參數,第三個存放Z軸參數。

 

PPSrpm的轉換公式為:

     PPSGear Ratio60/(pulse of 1 turn of the encoder)=rpm

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

0x223

模式錯誤

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

0x237

PLC Task執行不可等待

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 SELECT X_Y_AXIS

 VTACC  500

 VTDEC  600

 VSPD   50000

 LINE   @ln[0]


MC_OPT   Int

PLC

ic_done_24px

ic_assessment_24px功能說明

設定Motion路徑的執行方式。

ic_settings_24px參數

Int

參數以位元方式表示各個路徑執行屬性,當Bit值為 1表示該屬性有勾選,屬性定義如下:

Bit

15~2

3

2

1

0

名稱

Reserved

PIDX

OVL

INS

功能

Reserved

分度路徑

00正轉PCCW

01逆轉PCW

10 最短距離PSD

路徑重疊

路徑插斷

00 SEQ

01 INS

10 OVL

11 INS_OVL

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 MC_OPT      SEQ                ;路徑以依序方式執行

 MC_OPT      INS         ;路徑以插斷方式執行

 MC_OPT      OVL                ;路徑以重疊方式執行

 MC_OPT      INS_OVL       ;路徑以插斷+重疊方式執行


LOOP_CMD   Int,Axis

PLC

ic_done_24px

ic_done_24px

功能說明

設定驅動器內部迴路的命令,用於手動規劃運動控制。

請注意,與MODE命令相比,LOOP_CMD會取消自動補償,例如:加減速的補償。所有時間點的所有輸出必須自己設計與規劃。

參數

Int

迴路模式:

Mode

Value

模式功能

MODE_T_AD

0x00

扭力迴路,命令來源是A/D

MODE_T_ACC

0x01

扭力迴路,命令來源是ACC暫存器

MODE_S_AD

0x10

速度迴路,命令來源是A/D

MODE_S_ACC

0x11

速度迴路,命令來源是ACC暫存器

MODE_P_ACC

0x20

位置迴路,命令來源是ACC暫存器(增量位置)

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

 

 

 

Axis

等待的軸代號:

bit

bit 15~12

bit 11~8

bit 7~4

bit 3~0

內容

Axis

說明

<保留>

<保留>

<保留>

0:SELECT(僅可單軸)

1:X軸

2:Y軸

3:Z軸

其他:產生錯誤

錯誤種類

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

0x239

參數錯誤

影響旗標

程式範例

 SELECT   X_AXIS

 LACCL    200     

 LOOP_CMD 0x20,1   ;Output position command from X-Axis


HERE_IS   Dint,Ax_When

PLC

ic_done_24px

ic_assessment_24px功能說明

將長整數(32 bits)的值設定為指定對象的位置,會影響目前位置命令計數器,與目前迴授位置,並清除溢位旗標。

1.若目前路徑正在行進中,則命令終點也會一同平移。

2.若目前路徑已經停止(正常停止或異常),則命令終點會設定成與PCMD_OUT相等,因此,本指令不會改變運動過程的命令,只是改變位置座標值。

3.HERE_IS命令執行後,依照選擇的軸,X_ModePrY_ModePrZ_ModePr會觸發上升元。

ic_settings_24px參數

Dint

設置的位置值。

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

Ax_When

指定的軸與對象,其設定與編碼為:

欄位

Bit 1512

Bit 110

功能

Ax(軸)

When

說明

符號

編碼

意義

符號

編碼

意義

SEL_

0x0

SELECT選軸(限單軸)

FDBK

0x000

設定目前迴授的位置

X_

0x1

X

AT_Z

0x100

等待Z發生,設定目前迴授位置

Y_

0x2

Y

CMD

0x010

設定目前命令的位置

Z_

0x3

Z

ALIGN

0x011

設定已輸出命令位置=命令終點位置=設定值

ic_error_24px錯誤種類

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

0x286

正極限

0x288

負極限

0x245

等待Z發生時等待超時

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

;利用HERE_IS設定當前位置為HOME

 SELECT  X_AXIS

 MODE    PATH

 DELAY   100

 HERE_IS 0,SEL_FDBK


PROTECT   Int,Axis

PLC

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

設定指定軸路徑的自動保護功能。自動保護在相關事件發生時,會自動減速停止,達到保護的作用。

請注意,若其他指令會觸發Servo Off,會優先於PROTECT的取消效果。

ic_settings_24px參數

Int

16 bits短整數,以各bit指定要開啟/取消的保護功能。(設定為0代表功能開啟,1為取消),每個位元定義無下:

Bit

158

7

6

5

4

32

1

0

名稱

-

OVF

WRN

SNL

SPL

--

NL

PL

功能

溢位保護取消

伺服警告保護取消

軟體反向極限保護取消

軟體正向極限保護取消

反向極限保護取消

正向極限保護取消

來源

DO

-

DI

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

 

 

 

Axis

指定的軸

ID

編碼

說明

AX_SEL

0

SELECT指令所選的軸

AXIS_X

1

X

AXIS_Y

2

Y

AXIS_Z

3

Z

ic_error_24px錯誤種類

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

0x286

正極限

0x288

負極限

0x245

等待Z發生時等待超時

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 PROTECT 0x0000,X_AXIS ;X軸所有保護功能皆作用

 PROTECT 0x0001,X_AXIS  ;X軸正向極限保護取消


TIMEOUT   Int

PLC

ic_done_24px

ic_assessment_24px功能說明

某些指令具有等待的功能,例如:WT_CMDOKWT_EVWT_EMPTYWT_MCOKWT_INPOS,透過此指令可以設定超過時限(Time-Out)的時間限制,當超過期限則產生超時錯誤。

ic_settings_24px參數

Int

等待時間,單位為100msec,若設定為0代表取消本功能。

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

ic_done_24px

ic_done_24px

ic_done_24px

ic_error_24px錯誤種類

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

;TIMEOUT發生後,會執行TIMEOUT_ERR_錯誤處理

       SELECT   X_AXIS     ;選擇 X軸。

       MODE     PATH       ;PATH MODE

       TACC     500        ;ACC Time

       TDEC     600        ;DEC Time

       SPD      200000     ;SPD (PPS)

       TIMEOUT  30         ;3 sec time out.

       PINC     1000000    ;下達增量運動命令。

       WT_CMDOK 0          ;根據SELECT等待 X 軸命令完成。

       JMP_C    $L_END,UNC      

L_END:

       SET_BIT  DV1.3


WT_EV   Int,Axis

PLC

ic_done_24px

ic_assessment_24px功能說明

等待選擇軸(限單軸)的運動命令完成或指定的事件發生。

本指令結束的狀況有三:

   1.運動命令發送完畢,且指定的事件未發生:AL暫存器是0。

   2.運動命令尚未完成,但指定的事件已發生:AL暫存器是發生的事件。

    3.產生錯誤:ERR暫存器內容為錯誤碼:AL暫存器內容不改變。

ic_settings_24px參數

Int

等待的事件:各別Bit用來代表一個事件訊號,該位元為1代表該是件需要被檢察,反之則否。

Bit

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

名稱

CM3

CM2

CM1

SNB

SPB

ORB

NLB

PLB

CA3

CA2

CA1

SNL

SPL

ORG

NL

PL

 

CMP1發生

CMP1發生

CMP1發生

軟體反極限信號反相

軟體正向極限信號反相

原點信號反相

反向極限信號反相

正向極限反相

CAP3發生

CAP2發生

CAP1發生

軟體反向極限信號

軟體正向極限信號

原點信號

反向極限信號

正向極限信號

類別

COMPARE

邏輯反相信號#6

(原始信號的反相)

CAPTURE

原始信號#6

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

 

 

 

Axis

等待的軸代號:

bit

bit 15~12

bit 11~8

bit 7~4

bit 3~0

內容

Axis

說明

<保留>

<保留>

<保留>

0:SELECT(僅可單軸)

1:X軸

2:Y軸

3:Z軸

其他:產生錯誤

ic_error_24px錯誤種類

0x223

模式錯誤

0x227

設定的軸出錯(設定多軸、軸值出錯、未選定軸)

0x245

等待超時

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

;DI信號有發生,將之儲存至AL,不產生錯誤

       SELECT  X_AXIS                     ;選擇 X軸。

       MODE    PATH                       ;PATH MODE

       TACC    500                        ;ACC Time

       TDEC    600                        ;DEC Time

       SPD     200000                     ;SPD (PPS)

       PROTECT 0x0001,SEL_AXIS            ;關閉PL極限保護。

       PINC    10000000                   ;下達增量運動命令。

       LALW    0                          ;AL=0,清除所有事件。

       WT_EV   0x1,SEL_AXIS               ;等待觸發PL

 

       JMP_BIT $L_PL_ON,ON_0              ;PL ON 跳躍至 $L_PL_ON

       JMP_C   $L_ERR,ER                  ;發生錯誤跳躍至$L_ERR,可能是TIME-OUT

       JMP_C   $L_END,UNC

L_PL_ON:

       TDEC    50000

       STOP    S-Curve_Filter

       JMP_C   $L_END,UNC

L_ERR:

       JMP_C   $L_END,UNC

L_END:


WT_INPOS   Int

PLC

ic_done_24px

ic_assessment_24px功能說明

等待設定軸的馬達定位完成。馬達定位完成代表馬達的位置與命令的誤差在參數P154設定的範圍內,並不代表命令已經下達完成,須明辨之。

請注意,此指令在定位無法即時追上命令時,才會有等待效果,並非用於等待整個運動路徑的定位完成。

ic_settings_24px參數

Int

等待的軸代號:

Int0 :便等待根據指令SELECT指定的軸。

Int不為0:其值每位元代表一軸,該位元為1代表該軸被選定。

 

Bit

153

2

1

0

軸代號

-

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

 

 

 

ic_error_24px錯誤種類

0x223

模式錯誤

0x245

等待超時

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 SELECT   X_AXIS     ;選擇 X軸。

 MODE     PATH       ;PATH MODE

 TACC     500        ;ACC Time

 TDEC     600        ;DEC Time

 SPD      200000     ;SPD (PPS)

 PINC     1000000    ;下達增量運動命令。

 WT_CMDOK 0          ;根據SELECT等待 X 軸命令完成

 WT_INPOS 0          ;根據SELECT等待 X 軸定位完成

 SET_BIT  DV1.0


WT_MCOK   Int

PLC

ic_done_24px

ic_assessment_24px功能說明

等待設定軸的運動命令完成且定位完成。運動命令完成是路徑產生器產生的命令已經完成,等待命令完成請參考指令WT_CMDOK。馬達定位完成代表馬達的位置與命令的誤差在參數P1-54設定的範圍內。

等待馬達定位完成請參考指令WT_INPOS。本指令等於先執行WT_CMDOK再執行WT_INPOS的合成效果。

ic_settings_24px參數

Int

等待的軸代號:

Int0 :便等待根據指令SELECT指定的軸。

Int不為0:其值每位元代表一軸,該位元為1代表該軸被選定。

 

Bit

153

2

1

0

軸代號

-

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

 

 

 

ic_error_24px錯誤種類

0x223

模式錯誤

0x245

等待超時

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 SELECT   X_AXIS     ;選擇 X軸。

 MODE     PATH       ;PATH MODE

 TACC     500        ;ACC Time

 TDEC     600        ;DEC Time

 SPD      200000     ;SPD (PPS)

 PINC     1000000    ;下達增量運動命令。

 WT_MCOK  0          ;根據SELECT等待 X 軸命令與定位完成

 SET_BIT  DV1.0


WT_PFILE   Int,Step

PLC

ic_done_24px

ic_assessment_24px功能說明

等待某軸的路徑命令曲線到達指定區域。

註:速度指令JOG也可用本指令檢查命令是否完成,當命令完成僅代表速度到達設定值,命令仍持續送出,並未停止,必須注意。

ic_settings_24px參數

Int

等待的軸代號:

Int0 :便等待根據指令SELECT指定的軸。

Int不為0:其值每位元代表一軸,該位元為1代表該軸被選定。

 

Bit

153

2

1

0

軸代號

-

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

 

 

 

Step

等待區域代號:

區域

ID

命令開始

START

加速區開始

ACC

等速區開始

CSPD

減速區開始

DEC

命令完成

OK

ic_error_24px錯誤種類

0x223

模式錯誤

0x245

等待超時

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 SELECT   X_AXIS     ;選擇 X軸。

 MODE     PATH       ;PATH MODE

 TACC     500        ;ACC Time

 TDEC     60000      ;DEC Time

 SPD      200000     ;SPD (PPS)

 PINC     1000000    ;下達增量運動命令。

 WT_PFILE 0,DEC      ;等待到進入減速區。

 SET_BIT  DV1.0


WT_EMPTY   Int

PLC

ic_done_24px

ic_assessment_24px功能說明

等待某軸的運動路徑命令緩衝區清空。運動指令執行後,會將路徑命令存入緩衝區內,等待路徑產生器來讀取,然後開始產生插值座標,作為伺服馬達的參考輸入。緩衝區清空,代表最後一個指令的路徑命令已被路徑產生器讀取,並開始輸出插值座標。

ic_settings_24px參數

Int

等待的軸代號:

Int0 :便等待根據指令SELECT指定的軸。

Int不為0:其值每位元代表一軸,該位元為1代表該軸被選定。

 

Bit

153

2

1

0

軸代號

-

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

 

 

 

ic_error_24px錯誤種類

0x223

模式錯誤

0x245

等待超時

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 SELECT   X_AXIS     ;選擇 X軸。

 MODE     PATH       ;PATH MODE

 TACC     500        ;ACC Time

 TDEC     600        ;DEC Time

 SPD      200000     ;SPD (PPS)

 PINC     1000000    ;下達增量運動命令。

 WT_EMPTY 0          ;根據SELECT等待。

 SET_BIT  DV1.0


WT_CMDOK   Int

PLC

ic_done_24px

ic_assessment_24px功能說明

等待某軸的運動命令完成。運動命令是路徑產生器產生的命令座標,作為伺服馬達的參考輸入,因此命令完成不代表馬達已經定位完成,須明辨之。等待馬達定位完成請參考指令WT_INPOS

註:速度指令JOG也可用本指令檢查命令是否完成,當命令完成僅代表速度到達設定值,命令仍持續送出,並未停止,必須注意。

ic_settings_24px參數

Int

等待的軸代號:

Int0 :便等待根據指令SELECT指定的軸。

Int不為0:其值每位元代表一軸,該位元為1代表該軸被選定。

 

Bit

153

2

1

0

軸代號

-

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

ic_done_24px

 

 

 

ic_error_24px錯誤種類

0x223

模式錯誤

0x245

等待超時

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 SELECT   X_AXIS     ;選擇 X軸。

 MODE     PATH       ;PATH MODE

 TACC     500        ;ACC Time

 TDEC     600        ;DEC Time

 SPD      200000     ;SPD (PPS)

 PINC     1000000    ;下達增量運動命令。

 WT_CMDOK 0          ;根據SELECT等待 X 軸命令完成

 SET_BIT  DV1.0


WT_BIT   Int,Mask

PLC

ic_done_24px

ic_assessment_24px功能說明

等待PLC裝置的特定Bit HighLow,否則指令一直停在該指令。

ic_settings_24px參數

Int

等待的PLC裝置(DHDVMHMVXY;其餘不支援)號。

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

 

ic_done_24px

 

 

Mask

等待的Bit

符號

編碼

意義

符號

編碼

意義

0_ON

0X00

BIT 0 = 1

0_OFF

0X10

BIT 0 = 0

1_ON

0X01

BIT 1 = 1

1_OFF

0X11

BIT 1 = 0

2_ON

0X02

BIT 2 = 1

2_OFF

0X12

BIT 2 = 0

...

...

...

...

...

...

...

...

...

...

...

...

9_ON

0X09

BIT 9 = 1

9_OFF

0X19

BIT 9 = 0

10_ON

0X0A

BIT 10 = 1

10_OFF

0X1A

BIT 10 = 0

11_ON

0X0B

BIT 11 = 1

11_OFF

0X1B

BIT 11 = 0

12_ON

0X0C

BIT 12 = 1

12_OFF

0X1C

BIT 12 = 0

13_ON

0X0D

BIT 13 = 1

13_OFF

0X1D

BIT 13 = 0

14_ON

0X0E

BIT 14 = 1

14_OFF

0X1E

BIT 14 = 0

15_ON

0X0F

BIT 15 = 1

15_OFF

0X1F

BIT 15 = 0

ic_error_24px錯誤種類

0x211

參數定址錯誤

ic_flag_24px影響旗標

ic_my_library_books_24px程式範例

 WT_BIT  DV2,1_ON   ;DV2.1 ON時才會執行下面的程式。

 SELECT  X_AXIS     ;選擇 X軸。

 MODE    PATH       ;PATH MODE

 TACC    500        ;ACC Time

 TDEC    600        ;DEC Time

 SPD     200000     ;SPD (PPS)

 PINC    1000000    ;下達增量運動命令。


MACRO   Dint,ID

PLC

ic_done_24px

ic_done_24px

ic_assessment_24px功能說明

取代巨集參數功能,巨集參數需填入Dint命令陣列,不同巨集(ID)的巨集參數解釋不同,參考文件說明。

巨集執行返回值儲存在ACC

注意:需事先以SELECT軸設定巨集指令作用軸。

ic_settings_24px參數

Dint

巨集參數為一塊連續4個長整數(32 Bits)組成的命令陣列,其命令陣列組成如下:

記憶體

C[0]

C[1]

C[2]

C[3]

內容

巨集參數#1

巨集參數#2

巨集參數#3

巨集參數#4

原參數

P5-93

P5-94

P5-95

P5-96

C[0] ~ C[3]代表4個連續長整數(32 Bits)命令陣列。

 

定址方式:

常數
123

變數
Var[Offset]

指標
*Pt[Offset]

暫存器
Reg

 

ic_done_24px

ic_done_24px

 

ID

巨集號碼:

Alias

ID

功能

參數#1 意義

參數#2 意義

參數#3 意義

參數#4 意義

巨集5
CAM_LEN_SET

0

設定凸輪一週(360)後即脫離的脈波數

-

-

凸輪一週對應的主動軸脈波數

-

巨集7
CAM_TBL_Free

1

飛剪造

P5-93.H16(16位元)= S

P5-93.L16(16位元)= W

 其中:

S(曲線等級)Z1~4

W(等待區角度)-1~170

 

P5-94= (同步區角度)   0~330

P5-95.H16= x

P5-95.L16=

其中:

 A(減速比:分子)
 
C(切刀數)。
 
B(減速比:分母)

 

P5-96=1000000 * *

其中:

R(切長比)=L(目標切長)/ (單位切刀長)

允許的標準切長比為:(0.05 ~ 5.0)倍

 

V(速度倍率)=目標裁切速度/產品速度

 V=1.0:裁切時,切刀速度與產品相同

 V=1.1:裁切時,切刀速度提升 10%

 V=0.9:裁切時,切刀速度降低 10%

 以此類推。。。

 

巨集8
P5_19_Actv_Now

2

凸輪倍率(P5-19) 立即生效一次

-

-

-

-

巨集C
CAM_Chg_X_Pos

3

瞬間改變嚙合位置

新的嚙合X位置,單位:主動軸脈波數。

-

-

-

巨集D
CAM_2_CIRC

4

凸輪回到正確的位置

P5-93=DCBA:UZYX

l  YXPR編號)= 0~0X3F,設0則無效!

l  UZ必須為0。

l  BAP5-95格式):0(使用閃避點)1(使用正轉允許率)

l  DC(反轉禁止)0(無效)1(反轉禁止作用)

 

-

-閃避點(不可交越):

一周的0~100%

或正轉允許率0~100%

 

-

巨集E
CAM_Align

5

凸輪對位(單次型)

P5-93=DCBA:UZYX

l  YX(PR編號)= 0~0x3F,設0則無效!

l  UZ(允許最大對位修正率)0~0x64(%

l  A(直接觸發指定PR)=1:ON;0:OFF

l  B(反式對位)=1:ON;0:OFF

l  C(CAP對位)=1:ON;0:OFF

l  D(對位目標來源)=0:直接以P5-96的內容當做對位目標。1P5-96=指向資料陣列的位址。

 

P5-94(DI時間延遲補償) -25000 ~ +25000 usec

 

P5-95(正轉允許率)0~100(%)

P5-93.D=0P5-96(對位目標位置X),單位:主動軸脈波數= - (P5-84/P5-83) ~ +(P5-84/P5-83)-1

 

P5-93.D=1:P5-96=指向資料陣列的位址(巨集11h產生的對位目標)

 

巨集F
Trgt_2_PR

6

凸輪指定位移量,供PR定位

P5-93=UZYX

l  YX(去程PR編號)= 0~0X3F,設0則無效!

l  UZ(回程PR編號)= 0~0X3F,設0則無效!

P5-93.Hi_Word=必須為0

-

P5-95(正轉允許率)0~100%

P5-96(目的位置X),

單位:主動軸脈波數。

範圍: 0 ~ (P5-84/P5-83)-1

巨集10
CAM_Hold_1_CY

7

凸輪立即暫停一週

-

-

-

-

巨集11
CAP_Data_Proc

8

多點對位修正

P5-93=UZYX

l  YX0

l  UZ(指令)
0
:初始
1
:計算

P5-93.Hi_Word=必須為0。

濾波強度:0∼14

-

-

ic_error_24px錯誤種類

0x8001

不支援此項巨集ID

0x8005

巨集5參數#3 範圍錯誤

0x8071

建造表格時,凸輪不可以在嚙合狀態。

0x8072

P5-94 同步區超出範圍:(0 ~ 330

0x8073

P5-93.H16曲線等級超出範圍:(1 ~ 4

0x8074

P5-93.L16等待區角度超出範圍:(0 ~ 170

0x8075

P5-96超過範圍:(50000 ~ 5000000

0x8076

P5-82表格分區超過範圍:(30 ~ 72

0x8077

P5-81位址太大,資料陣列空間不足

0x8078

資料計算錯誤,請降低齒輪比數值:(P1-44,P1-45),維持比例即可

0x8079

加速角度不足,請縮小 等待區(),同步區()

       或縮小 曲線等級()

0x807A

等待區太小,請增加 等待區()

      或縮小 同步區()

0x80C1

執行本巨集時,凸輪不在嚙合狀態

0x80C2

P5-93資料錯誤,不可<0,必須>=0。

0x80C3

P5-93資料錯誤,必須<(P5-84P5-83

0x80D1

執行本巨集時,凸輪不在嚙合狀態!

0x80D2

P5-93.YXPR編號超出範圍: 1 ~ 0x3F

0x80D3

P5-95,正轉允許率超出範圍:  0 ~ 100 (%)

0x80D9

P5-93.BAP5-95資料格式超出範圍: 0 ~ 1

0x80DA

P5-93.DC,反轉禁止超出範圍: 0 ~ 1

0x80DB

反轉禁止作用失敗,請勿連續使用巨集#D,#10h

0x80E1

執行本巨集時,凸輪不在嚙合狀態!

0x80E2

P5-93.YXPR編號超出範圍:0 ~ 0x3F

0x80E3

P5-93.UZ,最大對位修正率超出範圍: 0~0x64(%)

0x80E4

P5-94DI時間補償超出範圍: -10000 ~ +10000

0x80E5

P5-95,正轉允許率超出範圍:  0 ~ 100 (%)

0x80E6

P5-96,對位目的超出範圍:+/- (P5-84/P5-83)-1

0x80E7

P5-93.DCBA 設定超出範圍: 0x0000 ~ 0x1111

0x80E8

使用CAP對位時,凸輪未使用CAP軸當主軸!

0x80E9

使用CAP對位時,本巨集太晚觸發(離CAP位置太遠)!

請使用CAP完成的PR#50 來自動觸發本巨集!

0x80EA

P5-93.D=1時,P5-96指向的資料陣列超出範圍!

* P5-96 + P5-38 必須小於 800

0x80F1

執行本巨集時,凸輪不在嚙合狀態!

0x80F2

P5-93.YXPR去程編號超出範圍:0 ~ 0x3F

0x80F3

P5-93.UZPR回程編號超出範圍:0 ~ 0x3F

0x80F5

P5-95,正轉允許率超出範圍:  0 ~ 100 (%)

0x80F6

P5-96,目的位置超出範圍:0 ~ (P5-84/P5-83)-1

0x8101

執行本巨集時,凸輪不在嚙合狀態!

0x8102

P5-93資料超出範圍: 必須為0

0x8103

凸輪必須為正方向運轉!請檢查凸輪表 與 P5-19>0

0x8104

累計暫停距離溢位(>2^31),請勿連續執行本巨集。

0x8110

P5-93功能碼錯誤

0x8111

設定CAP數量過大

0x8112

資料陣列不足

0x8113

P5-94 範圍錯誤 0~14

0x8114

P5-93副功能碼錯誤

ic_flag_24px影響旗標

N Z P

ACC內容而定。

ic_my_library_books_24px程式範例

 LACCL   0

 SELECT  X_AXIS                          ;設定X軸為巨集作用軸

 LACCL   100                             ;設定 X P5-81=100

 SACC_PR 81,X_P5

 LACCL   72                              ;設定 X P5-82=72(巨集7最大造表個數)

 SACC_PR 82,X_P5

 

 MOVL    @MarcoArray[0],0x0002FFFF       ;S曲線等級=2; 0速造表

 MOVL    @MarcoArray[1],100              ;同步區角度 = 40

 MOVL    @MarcoArray[2],0x00020001       ;切刀數 2; 減速比 1:1

 MOVL    @MarcoArray[3],2000000          ;切長比 2; 速度倍率 1

 MACRO   @MarcoArray[0],CAM_TBL_Free     ;執行巨集7飛剪造表

 

 SET_BIT DV1.0

造出的表如圖:


Copyright © Delta. All rights reserved.