May 15, 2023 메시지를 남겨주세요

매크로 프로그램은 쓸모가 없습니까? 그것은 당신이 화장을 할 수 없기 때문입니다!

 

많은 CNC 기술자는 매크로 프로그램을 이해하지 못합니다. 그들은 자동 프로그래밍 소프트웨어를 사용하면 매크로 프로그램을 배울 필요가 없다고 생각합니다. 실제로 매크로 프로그램의 기능은 매우 강력합니다. 예를 들어 일부 일괄 및 반복 프로그램을 작성하려면 매크로 프로그램을 사용할 때 몇 가지 데이터만 변경하면 됩니다. 많은 수의 반복 프로그래밍이 필요하지 않아 작업을 크게 단순화하고 작업 효율성을 크게 향상시킬 수 있습니다.

매크로 프로그램은 변수를 사용하여 산술 연산, 논리 연산 및 함수의 혼합 연산을 수행하고 루프 문, 분기 문 및 서브루틴 호출 문을 제공할 수도 있습니다.

일반적으로 매크로 프로그램은 그래픽은 같지만 크기가 다른 일련의 부품을 프로그래밍하는 데 적합합니다. 프로세스 경로는 같지만 위치 매개변수가 다른 일련의 부품을 프로그래밍하는 데 적합합니다. 보간 명령 없이 포물선, 타원, 쌍곡선 및 기타 곡선의 프로그래밍에 적합합니다.


01
변수의 표현과 사용

1. 변수 표현

#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


02
변수 유형

WeChat에 사진 추가: mvm9987이 CNC 튜토리얼을 보냅니다.

1. 지역 변수 #1~#33

매크로 프로그램에서 로컬로 사용되는 변수로 그 연산 결과는 다른 프로그램에서 사용할 수 없습니다.
예: A 매크로 프로그램 B 매크로 프로그램
...
#10=20 X#10은 X20을 의미하지 않습니다.
...
전원이 꺼지면 지워지고 매크로 프로그램이 호출되면 변수 값이 채워집니다.

2. 공용 변수 #100~#199, #500~#999

각 사용자 매크로 프로그램의 공통 변수는 모든 프로그램 호출에서 동일한 연산 결과를 가집니다.
예: 위 예에서 10번을 100번으로 변경하면
X#100은 X20을 의미합니다.
#100~#149 전원을 끄면 비어 있음
#500~#531 영구 변수(전원을 꺼도 손실되지 않음)

3. 시스템 변수

값이 시스템 상태에 따라 달라지는 고정 목적 변수
예: #2001은 1번 공구 보정의 X축 보정 값입니다.
#5221 값은 X축 G54 공작물 원점 오프셋 값입니다.
입력 시 소수점을 반드시 입력하여야 하며, 소수점 생략시 단위는 μm 입니다.


03
작동 지침

표현식의 오른쪽은 상수, 변수, 함수, 표현식이 될 수 있습니다.
수식에서 #j와 #k도 상수가 될 수 있습니다.
표현식의 오른쪽은 변수 번호, 표현식

1. 정의

#I=#j

2. 산술 연산

#I=#j 더하기 #k
#I=#j-#k
#I=#j*#k
#I=#j/#k

3. 논리적 연산

#나=#JOK#k
#나=#JXOK#k
#I=#JAND#k

4. 기능

그림

#I=SIN[#j] 사인
#I=COS[#j] 코사인
#I=TAN[#j] 탄젠트
#I=ATAN[#j] 아크 탄젠트
#I=SQRT[#j] 제곱근
#I=ABS[#j] 절대값
#I=ROUND[#j] 반올림
#I=FIX[#j] 반올림
#I=FUP[#j] 내림
#I=BIN[#j] BCD→BIN(바이너리)
#I=BCN[#j] BIN→BCD

1) 각도는도 단위입니다.
예: 90도와 30분은 90.5도

2) ATAN 함수 뒤의 두 변 길이는 "/"로 구분해야 합니다.
예: #{{0}}ATAN[1]/[-1], #1은 35.0입니다.

3) 스테이트먼트 내 주소는 ROUND로 사용하며, 각 주소의 최소 설정 단위에 따라 반올림
예: #1=1.2345, #2=2.3456 설정, 설정 단위는 1μm
G91 X-#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
#{0}}FUP[#1]인 경우 #3=2.0
#{0}}FIX[#1]인 경우 #3=1.0
#{0}}FUP[#2]인 경우 #3=-2.0
#{0}}FIX[#2]인 경우 #3=-1.0

5) 함수 명령 시 처음 두 글자만 쓸 수 있다.
예: ROUND→RO
FIX→FI

6) 우선순위
기능 → 곱셈과 나눗셈(*, 1, AND) → 덧셈과 뺄셈( 더하기 , -, OR, XOR)
예: #1=#2 더하기 #3*SIN[#4];

7) 괄호는 대괄호로 최대 5회까지이며 괄호는 주석문에 사용한다.
예: #1=SIN[[[#2 더하기 #3]*#4 더하기 #5]*#6]; (3가지 가중치)


04
분기 및 루프 명령어

1. 무조건 편입

형식: GOTO n;

블록 n으로 무조건 분기
n: 블록 번호(1-99999)
n은 변수 또는 표현식으로 대체될 수도 있습니다.
goto10;
GOTO #10;

2. 조건부 편입

만약에 [] n으로 이동;
만약만족하면 다음 작업은 블록 번호가 n인 블록으로 전송됩니다.
만족하지 않으면 다음 블록을 실행합니다.

만약에 [] 그 다음에 ... ;
만약를 만족하면 THEN 이후의 매크로 프로그램 문이 실행되고 한 문만 실행됩니다.
IF[#1EQ #2] THEN #3=0;

조건식:
그림
#j 및 #k는 다음으로 대체할 수도 있습니다.

예: IF[#1 GT 10] GOTO 100;

N100 G00 G91 X10;
예: 1에서 10까지의 합 구하기
O9500;
#1=0
#2=1
N1 IF [#2 GT10] GOTO 2
#1=#1 더하기 #2;
#2=#2 더하기 1;
고토 1
N2 M30

3. 주기

형식: WHILE[]DO m; (m=1, 2, 3)



ENDm

1. 조건이 만족되면 DOm을 ENDm까지 실행한 후 DOm의 프로그램 세그먼트에서 실행
만족하지 않으면 ENDm 이후 프로그램 세그먼트 실행
2. WHILE 문을 생략하고 DOm...ENDm만 있으면 DOm에서 ENDm까지 무한 루프가 형성됩니다.
3. 중첩
4. EQ NE, 비어 있음 및 "0"은 다릅니다.
다른 곳에서는 null이 "0"와 동일합니다.

예: 1에서 10까지의 합 구하기
O0001;
#1=0;
#2=1;
WHILE [#2LE10] DO1;
#1=#1 더하기 #2;
#2=#2 더하기 #1;
끝1;
M30;

 

 

문의 보내기

whatsapp

skype

이메일

문의