直接公式和語言輸入類似於C語言,廣泛應用於0i系統。由於現在有大量的B類宏程序,
這裏就不贅述了,但是在壹些老系統中,比如弗蘭克OTD系統,由於其MDI鍵盤上沒有公式符號,甚至連最簡單的等號都沒有,所以如果應用B類宏程序,只能在計算機上編程,然後通過RSN-32接口傳輸。但是如果我們沒有PC和RSN-32電纜,那麽只能編制A類宏程序,如下所示。
A類宏以G65HXP # xx Q # XX R # XX或G65HXP # XX QXX RXX格式輸入,表示數值,以um級別的金額輸入。比如輸入100,表示0.1 mm ~ ~ ~。# XX是變量數,不知道變量數是什麽意思。變量數是把數值代入固定地址,固定地址是變量。壹般OTD系統在關閉電源時有# 0 ~ ~ # 100 ~ # 149 ~ ~ # 500 ~ # 531變量。變量#500~#531保存數據。如果我們說#100=30,那麽地址#100中的數據現在就是30,就這麽簡單。好了,現在我來說說H碼。如妳所見,#xx和xx都是A類宏標準格式中的數值,而G65表示使用A類宏。所以這個H是表示每個數值和變量數中的數值之間或者每個變量數中的數值和其他變量數中的數值之間要進行什麽運算。可以說妳基本上可以應用H代碼A宏程序了。好了,現在來說說H碼的含義:
以下示例是#100和#101和#102,以及值10和20。應用時不要把它們當成格式。
基本說明:
H01賦值;格式:g65h 01p # 101q # 102:將# 101中的值賦值。
g65h 01p #101q # 10:給10到# 101。
H02 plus指令;格式g65h 02 p # 101Q # 102 r # 103。將# 102的值與# 103的值相加,得到# 101。
g65 H02 P # 101 Q # 102 r 10
g65 H02 P # 101q 10 R # 103
g65 H02 P # 101q 10 R20
以上四條指令都是加法指令的格式,將Q後面的數或者變量數中的數加到r後面的數上。
值或變量編號中的值等於p後面的變量編號。
H03減指令;格式g65h 03 p # 101Q # 102 r #103,將# 102的值減去# 103的值,得到# 101。
g65 H03 P # 101 Q # 102 r 10
g65 H03 P # 101q 10 R # 103
g65 H03 P # 101 Q20 r 10
以上四條指令都是減法指令的形式,就是將Q後面的數或者變量數中的數減去R後面的數。
值或變量編號中的值等於p後面的變量編號。
H04乘法指令;格式g65h 04p # 101Q # 102 r #103,將# 102的值乘以# 103的值得到# 101。
g65 H04 P # 101 Q # 102 r 10
g65 H04 P # 101q 10 R # 103
g65 H04 P # 101 Q20 r 10
以上四條都是乘法指令,格式是將q後的值或者變量數中的值乘以r後的數。
值或變量編號中的值等於p後面的變量編號。
H05除法指令;格式g65h 05 p # 101Q # 102 r #103,將# 102的值除以# 103的值得到# 101。
g65 H05 P # 101 Q # 102 r 10
g65 H05 P # 101q 10 R # 103
g65 H05 P # 101 Q20 r 10
以上四種都是除了指令格式,就是用q後面的值或者變量數裏的值除以r後面的數。
然後value或variable number中的值等於p後面的變量數(余數不存在,如果除數為0,則在112處出現報警)。
三角函數指令:
H31 SIN正形函數指令:格式g65h 31P # 101Q # 102 r # 103;意義Q後面的#102是三角形的斜邊,斜邊R後面的#103是角度。結果是# 101 = # 102 * SIN # 103,也就是說可以直接用這個求三角形的另壹邊。
壹邊長。和前面的指令壹樣,妳也可以直接把值寫在Q和r之後.
H32 COS cofoundation函數指令:格式g65h 32 # 101Q # 102 r # 103;#102後的含義q是三角形的斜邊。
R後的#103的記憶是角度。結果是# 101 = # 102 * COS # 103,也就是說妳可以直接用這個來求三角形。
另壹邊是長的。和前面的指令壹樣,妳也可以直接在Q和r後面寫值.
H33和H34應該是譚和的,但是我用的數字不準確。希望有知道的人能告訴我為什麽。
開平方根指令:
h 21;格式g65h 21P # 101Q # 102;意思是對#102中的值求平方根,保存在#101中(這個指令很重要,驅動橢圓時沒有平方根的指令是無法用宏來做的。
無條件轉移指令:
H80格式:G65 H80 p 10;直接跳到10部分。
條件分支指令:
H81 H82 H83 H84 H85 H86,分別等於h 81;H82那不等於轉;H83,小於時轉向;H84,大於時轉向;小於或等於H85H86,當它大於或等於時轉向;
格式:g 65 h8 p 10Q # 101R # 102;將#101中的值與#102中的值進行比較,按照上面的代碼帶入H8x。如果條件滿足,跳到10程序段,如果不滿足,繼續執行下面的程序段。
用戶宏程序序列
能夠完成某種功能的壹系列指令像子程序壹樣存儲在內存中,它們存儲在壹條通用指令中。使用時,僅給出此通用說明來執行其功能。
l存儲在這壹系列指令-用戶宏程序中
l調用宏程序的指令-宏指令
l特性:使用變量
I .變量的表示和使用
(壹)變量表示
# I (I = 1,2,3,...)或# [<公式>]
例如:# 5、# 109、# 501、[# 1+# 2-12]
(二)變量的使用
1.在地址字後指定變量編號或公式。
格式: <地址字> # i
<地址字>-# I
<地址字>[<公式>]
例:F # 103,設# 103 = 15為F15。
Z-# 110,如果# 110 = 250,則為Z-250。
X[#24+#18*COS[#1]]
2.變量編號可以用變量代替。
例:# [# 30],設# 30 = 3為# 3。
3.變量不能使用地址o,n,I。
示例:允許使用以下方法。
o # 1;
I # 2 6.00×100.0;
N # 3 Z200.0
4.對應於變量編號的變量對於每個地址具有特定的數值範圍。
例:當# 30 = 1100時,則不允許M # 30。
5.# 0是空變量,沒有定義變量值的變量也是空變量。
6.變量值的定義:
定義程序時可以省略小數點,例如# 123 = 149。
MDI鍵盤輸入1。變量的類型
1.局部變量# 1 ~ # 33
宏程序中局部使用的變量。
示例:a宏程序b宏程序
… …
# 10 = 20 x # 10不代表X20。
… …
斷電後清空,調用宏程序時輸入變量值。
2.公共變量# 100 ~ # 149,# 500 ~ # 531。
每個用戶宏程序共有的變量。
示例:當上面示例中的# 10更改為# 100時。
X # 100表示X20。
# 100 ~ # 149停電後空。
# 500 ~ # 531保持變量(斷電後不丟失)
3.系統變量
壹種固定用途的變量,其值取決於系統的狀態。
例:# 2001值是X軸的1刀具補償值。
# 5221的值是X軸G54工件原點的偏移值。
輸入時必須輸入小數點,省略小數點時單位為微米。
壹、操作說明
表達式的右邊可以是常數、變量、函數或表達式。
其中# j和# k也可以是常數。
公式的右邊是可變數字和表達式。
1.定義
#I=#j
2.算術運算
#I=#j+#k
#I=#j-#k
#I=#j*#k
#I=#j/#k
3.邏輯運算
#我=#JOK#k
#I=#JXOK#k
#我=#JAND#k
4.功能
正弦,正弦
# I = cos [# j]余弦
# I = tan [# j]正切
# I = atan [# j]反正切
# I = sqrt [# j]平方根
# I = ABS [# j]絕對值
# i = round [# j]向上舍入整數。
# I =在固定值[# j]下舍入
# I = fup[# j]上的整數
# I = bin [# j] BCD → bin(二進制)
#I=BCN[#j] BIN→BCD
1.描述
1)角度單位是度。
例:90度30分為90.5度。
atan函數後的兩個邊長應由“1”分隔
例如:# 1 = atan[1]/[-1],# 1為35.0。
3) ROUND用於語句中的地址,按照每個地址的最小設置單位取整。
例:設# 1 = 1.2345,# 2 = 2.3456,單位設為1 μ m。
g 91x-# 1;X-1.235
x-# 2 F300;X-2.346
x[# 1+# 2];X3.580
未放回原處的,應改為
x[ROUND[# 1]+ROUND[# 2]];
4)舍入後,絕對值大於原值,向上舍入,否則向下舍入。
例如:設# 1 = 1.2,而# 2 =-1.2。
如果# 3 = fup [# 1],# 3 = 2.0。
如果# 3 = fix [# 1],# 3 = 1.0。
如果# 3 = fup [# 2],# 3 =-2.0。
如果# 3 = fix [# 2],則# 3 =-1.0。
5)指令壹個函數時,只能寫前兩個字母。
示例:圓形→圓形
修復→FI
6)優先級
函數→乘除(*,1,AND)→加減(+,-,OR,XOR)
例如:# 1 = # 2+# 3 * sin[# 4];
7)括號是括號,最多5次,圓括號用於註釋語句。
例如:# 1 = sin[[[# 2+# 3]* # 4+# 5]* # 6];(三倍)
I .轉移和循環指令
1.無條件轉移
格式:goto 1;
轉到# 10;
2.有條件轉移
格式:if [<條件> >]轉到n
條件表達式:
# j eq # k代表=
# j ne # k代表≠
# jgt # k代表>
# jlt # k代表
# j ge # k表示≥
# j le # k表示≤
例:if[# 1gt 10]goto 100;
…
n 100 G00 691 x 10;
例:求1到10的和。
O9500
#1=0
#2=1
N1 IF [#2 GT10]轉到2
#1=#1+#2;
#2=#2+1;
轉到1
N2 M301。循環
格式:while [<條件>]do m;(m=1,2,3)
…
…
…
ENDm
描述:1。當條件滿足時,執行DOm到ENDm,然後從DOm的程序段開始。
如果沒有,則執行從DOm到ENDm的程序段。
2.省略WHILE語句只有DOm…ENDm,那麽DOm和ENDm之間就形成了壹個無限循環。
築巢
4.當4。EQ NE,null和“0”是不同的。
否則,null和“0”是相同的。
例:求1到10的和。
o 0001;
#1=0;
#2=1;
而[# 2le 10]do 1;
#1=#1+#2;
#2=#2+#1;
end 1;
M30