MSM 是 Motion Assembly 的意思,是一種專為運動控制所設計的組合語言,其特色有:
- 包含 PLC(Ladder) 與 Motion 指令:可以交互穿插使用
- 支援 多工(Multi-Tasking):具 工作(Task) 與 時槽(Slot)觀念!
- 多種資料型態混合計算:不必轉換成相同資料格式就可直接運算
- 具錯誤處理機制:Err … Catch,簡化程式流程
語法格式 每一列分成四個欄位,分別為 標記,指令,運算元,註解,說明如下:
標記: | 指令 | 運算元 | ; 註解 |
可有可無 | 必要 | 必要,完整格式如下: | 可有可無 |
必須由第一格開始, 否則視為 指令 |
必須在第二格之後, 否則視為 標記 |
op1[Index],op2
op1 依指令決定支援以下格式:
常數:123 或 123.456 變數:@Var_Name[Index] 指標:*ARn[Index] 暫存器:@XARn 或 @ERR 標記:$Label_Name 取得變數位址:#Var_Name 空白:有些指令沒有運算元
“@” 可省略 Index 可有可無 op2 依指令個別定義 “,” 前後不可有空格 |
分號 “;” 之後視為註解 |
範例:
Label_1: Label_2:(錯誤) |
LACCF MULL SUBL CMPL JMP_C |
123.456 @ARRAY[2] @XAR0 *AR1[3] $Label_1,LEQ |
; ACC = 123.456 ; ACC = ACC x @ARRAY[2] ; ACC = ACC – @XAR0 ; 比較 ACC 與 *AR1[3] ; 若 “<=” 則跳躍 |