G10G65指令说明.ppt
G10 G65 指令码说明,G10 指令一览表,G10 指令一览表,G10 方式设定工件原点(建议使用方式),使用 G10 方式,设定 G54G59 工作坐标系之工件原点。HUST H4 系列可利用面板 MDI 按键,或由客户自设,经 HUST 内装之 PLC 处理。程序格式:G10 X_ Y_ Z_A;四 轴同时使用,也可任选一轴使用以 G10 方式,设定工件原点(G54G59)的步骤:1.执行手动,回机械原点(Home)动作。2.进入 手动 模式。3.移动刀具(轴向)至要设定的工件原点位置。4.进入 MDI 模式,输入 G54,按 启动。,5A.如果步骤3 的刀具位置,就是要设定的工件原点(设在 G54),则执行下列动作:按G10Input,X0.Input,Y0.Input,Z0.Input,启动.完成设定动作5B.如果步骤3 的刀具位置,与要设定的工件原点还有一段距离,则执行下列动作:(假设这段距离是,X=20.,Y=100.,Z=15.)按G10Input,X20.Input,Y100.Input.Z15.Input.CYCST.完成设定动作,G10 方式设定工件原点,宏程序(MACRO)指令,G65,G65 指令是用来对一些变量做基本运算及逻辑运算,并可对变量做判断比较后之程序分枝等功能。它可用于主程序或子程序,而一组 G65 指令也可自成一程序群,其结构格式与子程序完全相同。G65 之程序格式:G65 Lm P#i A#j B#kL,P,A,B:G65 指令使用之代码,不可变更。m:运算子代码。如 L2 表 加 法,L3 表 减 法。#i:运算函式。数学运算时,P#i 为计算所得放置位址;判断函式时,Pi 为判断式成立时,程序跳行的程 序序号。,#j:运算变量名称 1,此函数可代表变量号码或是常数数值。CASE1:A#j,j代表变量号码、范围 1-9999。CASE2:Aj,j代表常数数值、范围 9999999-9999999。注意格式“Aj”,格式中无“”。#k:运算变量名称 2,此函数可代表变量号码或是常数数值。CASE1:A#j,j代表变量号码、范围 1-9999。CASE2:Aj,j代表常数数值、范围 9999999-9999999。注意格式“Aj”,格式中无“”。,#k:运算变量名称 2,此函数可代表变量号码或是常数数值。CASE1:A#j,j代表变量号码、范围 1-9999。CASE2:Aj,j代表常数数值、范围 9999999-9999999。注意格式“Aj”,格式中无“”。,G65 客户自设群指令(1),G65 客户自设群指令(2),G65 客户自设群指令(3),G65 L01 等于,取代,G65 L1 P#i A#j;#i=#j例1:#10 初始值=0,欲设定#10=150 程序指令:G65 L1 P#10 A150结果:#10=150 例2:#10 初始值=0,#5 初始值=1200,设定#10=#5 程序指令:G65 L1 P#10 A#5结果:#10=1200 例3:#10 初始值=0,#5 初始值=1200,设定#10=-#5 程序指令:G65 L1 P#10 A-#5结果:#10=-1200,G65 L02 加法,G65 L2 P#i A#j B#k;#i=#j+#k例1:#10 初始值=99,#5 初始值=1200,设定#1=#10+#5 程序指令:G65 L2 P#1 A#10 B#5结果:#1=#10+#5=1299例2:#10 初始值=99,设定#10=#10+1 程序指令:G65 L2 P#10 A#10 B1结果:#10=#10+1=100,G65 L03 減法,G65 L3 P#i A#j B#k;#i=#j-#k例1:#10 初始值=1200,#5 初始值=99,設定#1=#10-#5 程式指令:G65 L3 P#1 A#10 B#5結果:#1=#10-#5=1101例2:#10 初始值=99,設定#10=#10-1 程式指令:G65 L2 P#10 A#10 B1結果:#10=#10-1=98,G65 L04 乘法,G65 L4 P#i A#j B#k;#i=#j#k计算所得大于 9999.999,系统运算会有错误。计算所得小于 9999.999,系统运算会有错误。例1:#4 初始值=10,#30 初始值=25,设定#10=#4#30 程序指令:G65 L4 P#10 A#4 B#30 结果:#10=#4#30=250例2:#4 初始值=100000,#30 初始值=25000,设定#10=#4#30 程序指令:G65 L4 P#10 A#4 B#30 结果:#10=?(计算值 9999.999,无法运算),G65 L05 除法,G65 L5 P#i A#j B#k;#i=#j/#k计算所得小于 1 的数值会被抛弃例1:#4 初始值=130,#30 初始值=25,设定#10=#4/#30 程序指令:G65 L5 P#10 A#4 B#30 结果:#10=#4/#30=5(130/25=5.2)例2:#4 初始值=10,设定#10=#4/30 程序指令:G65 L5 P#10 A#4 B30 结果:#10=#4/30=0,G65 L06 设定一连串变量,G65 L6 P#i A#j B#k;#i.#(i+k)=#j 例1:初始值#10=100,#11=20,#13=50,#5=99欲设定#10=#11=#12=#13=#14=#5 程序指令:G65 L6 P#10 A#5 B5结果:#10=#11=#12=#13=#14=#5=99例2:欲设定#10.#(10+N-1)=100,N=#3=4 程序指令:G65 L6 P#10 A100 B#3结果:#10=#11=#12=#13=100,G65 L07 拷貝一連串變數,G65 L07 P#i A#j B#k#i:儲存的起始變數#j:預拷貝的起始變數#k:拷貝的總數G65 L07 P#1 A#101 B10;#1#10=#101#110#50=101G65 L07 P#1 A#90050 B10;#1#10=#101#110 G65 L07 P#900050 A#1 B10;#101#110=#1#10,G65 L11 邏輯運算:OR,G65 L11 P#i A#j B#k#2=12,#3=100G65 L11 P#1 A#2 B#3;#1=108,G65 L12 邏輯運算:AND,G65 L12 P#i A#j B#k#2=12,#3=100G65 L12 P#1 A#2 B#3;#1=4,G65 L13 邏輯運算:XOR,G65 L13 P#i A#j B#k#2=4,#3=100G65 L13 P#1 A#2 B#3;#1=96,G65 L14 封閉左移,G65 L14 P#i A#j B#k#2=49152G65 L14 P#1 A#2 B1;#1=32769,G65 L15 封閉右移,G65 L15 P#i A#j B#k#2=3G65 L15 P#1 A#2 B1;#1=32769,G65 L16 左移,G65 L16 P#i A#j B#k#2=13G65 L16 P#1 A#2 B2;#1=52,G65 L17 右移,G65 L17 P#i A#j B#k#2=13G65 L17 P#1 A#2 B2;#1=3,G65 L21 平方根,G65 L21 P#i A#j#5=30G65 L21 P#10 A#5;#10=5小於1的數值將無條件刪除保留小數兩位的方式#5=30*10000=300000;(100的平方)G65 L21 P#10 A#5;#10=547(小數兩位),G65 L22 取絕對值,G65 L22 P#i A#j;取絕對值#5=-30G65 L22 P#10 A#5;#10=30,G65 L23 取餘數,G65 L23 P#i A#j;取餘數#5=99G65 L23 P#10 A#5 B12;#10=3#10=99-(8*12)=3,G65 L26 先乘後除,G65 L26 P#i A#jB#k#i=#i*#j/#k#5=12,#1=15,#15=3G65 L26 P#5 A#1 B#15;#5=60小數點下一位四捨五入.,G65 L27 平方和開根號,G65 L27 P#i A#jB#k#i=開根號(#j平方+#k平方)#10=15,#15=3G65 L27 P#5 A#10 B#15;#5=15小數點下一位四捨五入.,G65 L28 平方差開根號,G65 L28 P#i A#jB#k#i=開根號(#j平方-#k平方)#10=25,#15=5G65 L28 P#5 A#10 B#15;#5=24小數點下一位四捨五入.,G65 L31 正弦(sin),G65 L31 P#i A#jB#k#i=#j*sin(#k)#k=角度值要補兩個零 4500=45度G65 L31 P#1 A1000 B6000;#1=886,G65 L32 餘弦(cos),G65 L32 P#i A#jB#k#i=#j*cos(#k)#k=角度值要補兩個零 4500=45度G65 L32 P#1 A1000 B3000;#1=886,G65 L33 正切(tan),G65 L33 P#i A#jB#k#i=#j*tan(#k)#k=角度值要補兩個零 4500=45度G65 L33 P#1 A1000 B6000;#1=1732,G65 L34 餘切(tan-1),G65 L34 P#i A#jB#k#i=tan-1(#j/#k)#2=577,#3=1000G65 L34 P#1 A#2 B#3;#1=3000,G65 L50 取得暫存器資料,G65 L50 P#i A#j#i=R(#j);#j=0 到 255R05=99G65 L50 P#1 A5;#1=99,G65 L51 取得I-BIT資料,G65 L51 P#i A#j#i=I(#j*16)I(#J*16+16);一次抓16 BitG65 L51 P#1 A1;#1=229,G65 L52 取得O-BIT資料,G65 L52 P#i A#j#i=O(#j*16)O(#J*16+16);一次抓16 BitG65 L52 P#1 A1;#1=229,G65 L53 取得C-BIT資料,G65 L53 P#i A#j#i=C(#j*16)C(#J*16+16);一次抓16 BitG65 L53 P#1 A2;#1=7,G65 L54 取得S-BIT資料,G65 L54 P#i A#j#i=S(#j*16)S(#J*16+16);一次抓16 BitG65 L54 P#1 A5;#1=257,G65 L55 取得A-BIT資料,G65 L55 P#i A#j#i=A(#j*16)A(#J*16+16);一次抓16 BitG65 L55 P#1 A5;#1=259,G65 L56 取得Counter資料,G65 L56 P#i A#j#i=Counter(#j);#j=0 到 255Counter 10=100G65 L56 P#10 A10;#10=100,G65 L60 設定暫存器,G65 L60 P#i A#jR(#i)=#j;#i=0 到 255G65 L56 P10 A99;R10=99,G65 L66 設定Counter,G65 L66 P#i A#jCounter(#i)=#j;#i=0 到 255G65 L66 P10 A100;Counter 10=100,G65 L70 檢測IOCSA BIT狀態-條件分離,G65 L70 Pn A#j B#kn:檢測條件成立時跳躍的行號(N)(P4 N04;P10 N010)#J:I=0255O=256512C=512767S=7681023A=10242048#K:檢測的條件=1(ON)=-1(OFF)G65 L70 P40 A1 B1;IF I01=ON THEN GOTO N40N10G01 X100.Y100.N20M12N30M14N40M30;程式結束,G65 L80 无条件分离,G65 L80 Pn;程序跳到n指定的行号 程序:N10 G65 L80 P40 N20 X100.N30 Y200.N40 M02结果:当程序执行到 N10 时,程序跳至第 40 节执行,忽略 N20&N30。注意:G65 单节中的程序序号必须与欲找寻的程序序号完全相同。因此 P50,P050,P0050 代表不同的程序序号。,G65 L81 条件分离#j=#k,G65 L81 Pn A#j B#k;如果#j=#k,程序跳至第n节执行例1:程序:N10 G65 L01 P#1 A10 N20 G65 L81 P50 A#1 B10 N30 X100.N40 Y100.N50 M02结果:当程序执行到 N10 时,设定#1=10,故当程序执行到 N20 时,判断式#1=10 成立,程序跳至第50节,忽略 N30&N40。例2:程序:N10 G65 L01 P#1 A20 N20 G65 L81 P50 A#1 B10 N30 X100.N40 Y100.N50 M02结果:当程序执行到 N10 时,设定#1=20,故当程序执行到 N20 时,判断式#1=10 不成立,程序执行 N10N20N30.。,G65 L82 条件分离#j#k,G65 L82 Pn A#j B#k;如果#j#k,程序跳至第n节执行例1:程序:N10 G65 L01 P#1 A20 N20 G65 L82 P50 A#1 B10 N30 X100.N40 Y100.N50 M02结果:当程序执行到 N10 时,设定#1=20,故当程序执行到 N20 时,判断式#110 成立,程序跳至第 50 节,忽略 N30&N40。,G65 L83 条件分离#j#k,G65 L83 Pn A#j B#k;如果#j#k,程序跳至第n节执行例1:程序:N10 G65 L01 P#1 A20 N20 G65 L83 P50 A#1 B10 N30 X100.N40 Y100.N50 M02结果:当程序执行到 N10 时,设定#1=20,故当程序执行到 N20 时,判断式#110 成立,程序跳至第 50 节,忽略 N30&N40。,G65 L84 条件分离#j#k,G65 L84 Pn A#j B#k;如果#j#k,程序跳至第n节执行例1:程序:N10 G65 L01 P#1 A10 N20 G65 L84 P50 A#1 B100N30 X100.N40 Y100.N50 M02结果:当程序执行到 N10 时,设定#1=100,故当程序执行到 N20 时,判断式#1100 成立,程序跳至第 50 节,忽略 N30&N40。,G65 L85 条件分离#j=#k,G65 L85 Pn A#j B#k;如果#j#k,程序跳至第n节执行例1:程序:N10 G65 L01 P#1 A100 N20 G65 L85 P50 A#1 B10N30 X100.N40 Y100.N50 M02结果:当程序执行到 N10 时,设定#1=100,故当程序执行到 N20 时,判断式#110 成立,程序跳至第 50 节,忽略 N30&N40。例2:程序:N10 G65 L01 P#1 A100 N20 G65 L85 P50 A#1 B100 N30 X100.N40 Y100.N50 M02结果:当程序执行到 N10 时,设定#1=100,故当程序执行到 N20 时,判断式#1100 成立程序跳至第 50 节,忽略 N20&N30&N40。,G65 L86 条件分离#j=#k,G65 L86 Pn A#j B#k;如果#j#k,程序跳至第n节执行例1:程序:N10 G65 L01 P#1 A20 N20 G65 L86 P50 A#1 B100 N30 X100.N40 Y100.N50 M02结果:当程序执行到 N10 时,设定#1=20,故当程序执行到 N20 时,判断式#1100 成立,程序跳至第 50 节,忽略 N30&N40。例2:程序:N10 G65 L01 P#1 A20 N20 G65 L86 P50 A#1 B20 N30 X100.N40 Y100.N50 M02结果:当程序执行到 N10 时,设定#1=20,故当程序执行到 N20 时,判断式#120 成立,程序跳至第 50 节,忽略 N30&N40。,G65 L88 条件分离#j=n=(#j+#k),G65 L88 P#i A#j B#kG65 L80 PnG65 L80 Pn1#i:欲判断的变量号码#j:#i的起始值#k:#i的最终值条件:1.#j与#k之间必须为连续值2.G65 L80 Pn 指令最多为64行,G65 L88 P#1 A51 B55G65 L80 P10;#1=51 跳到 N10G65 L80 P20;#1=52 跳到 N10G65 L80 P30;#1=53 跳到 N30G65 L80 P30;#1=54 跳到 N30G65 L80 P30;#1=55 跳到 N30M99;未在范围内时返回N10G65 L02 P#2 A#2 B10;#2=#2+10M99 N20G65 L02 P#2 A#2 B20;#2=#2+20M99 N30G65 L02 P#2 A#2 B30;#2=#2+30M99,G65 L89 条件分离 BIT_k=0,G65 L89 Pn A#j BkIF#j(bit_k)=0 THEN GOTO N(n)N00 G65 L01 P#10 A10:#10=10.N05 G65 L89 P40 A#10 B0;IF#10(bit_0)=0 THEN GOTO N40N10 G01 X100.Y100.N30 M14N40 M30;程序结束,G65 L90 条件分离 BIT_k=1,G65 L90 Pn A#j BkIF#j(bit_k)=1 THEN GOTO N(n)N00 G65 L01 P#10 A10:#10=10.N05 G65 L90 P40 A#10 B1;IF#10(bit_1)=1 THEN GOTO N40N10 G01 X100.Y100.N30 M14N40 M30;程序结束,G65 L91 条件分离#j=blank code,G65 L91 Pn A#jIF#j=blank code THEN GOTO N(n)N00 G65 L06 P#10 B1:#10=blank code.N05 G65 L91 P40 A#11;IF#10=blank code THEN GOTO N40N10 G01 X100.Y100.N30 M14N40 M30;程序结束,G65 L92 条件分离#j blank code,G65 L92 Pn A#jIF#j blank code THEN GOTO N(n)N00 G65 L01 P#10 A10:#10=10.N05 G65 L92 P40 A#11;IF#10blank code THEN GOTO N40N10 G01 X100.Y100.N30 M14N40 M30;程序结束,G65 L99 客户自订的警号,G65 L99 Pi;i=149ERR(50+i)G65 L99 P10;ERR 60,BLANK CODE对MACRO的影响,变量=BLANK CODE时,除了G65 L91及G65 L92以外,其余指令将会把变量视为无效码.将变量设为”BLANK CODE”的方法1.PLC中可使用变量V TO V的方式,将变量设定为”BLANK CODE”,系统变量#13115为固定=BLANK CODE的变量2.MACRO程序 G65 L06 P#2 B1;A项设定值不编写时(#2=BLANK CODE),解除 变量=BLANK CODE的状态,1.PLC中直接将数值填入变量中2.MACRO程序例:#1=0、#2=BLANK CODE、#11=0、#12=0A.G65 L01 P#2 A0#2=BLANK CODE,P#2为无效码,#2无法等于0 B.G65 L06 P#2 A0 B1#2=BLANK CODE,P#2为无效码,#2无法等于0C.G65 L07 P#2 A#11 B1#2=BLANK CODE,P#2为无效码,#2无法等于#11D.G65 L06 P#1 A0 B2#1及#2=0E.G65 L07 P#1 A#11 B2#1=#11,#2=#12,