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