Share
Sign In
PML BASIC
이 글에서는 Aveva E3D, AM, PDMS에서 사용되는 PML(Programming Macro Language)의 기본적인 사용법을 설명해보려고 합니다.
처음 PML을 학습할때 메뉴얼을 보먼서 학습하였는데 자료가 부족하기도.. 했고 영문이라 학습하는데 힘들기도했고... 예를들어 $S라던지 잘 사용하지도 않는걸 우선적으로 설명해버려서 고생한 기억이 있어 PML 기초에 대해 정리해보았습니다.
Beginner의 경우 PML을 사용하는데 있어서 자주 사용되며 정말 필요한 정말 최소한의 지식들을 작성해 보았습니다.
정말 기초적인 내용을 다루기 때문에 PML에 익숙하신 분들은 이 내용을 건너뛰어도 무방합니다.
다만 E3D 혹은 PDMS를 어느정도 해본 후 적어도 Q ATT, Q NAME, Q NAME OF PIPE 등 정말 간단한 COMMAND를 알고있는 상태에서 읽는걸 추천드립니다.
PML의 기본 구조
1. 주석
PML 코드내에서 주석을 작성하는 방법입니다.
단일 줄 주석:
$*, - 를 사용하여 한 줄 주석을 작성합니다.
예시:
$* This is a comment
-- This is another comment
블록 주석:
- $(...$) 로 여러 줄에 걸친 주석을 작성할 수 있습니다.
예시:
$( ... $)로 여러 줄에 걸친 주석을 작성할 수 있습니다.
2. 변수
PML에서는 변수 이름이 항상 ! 로 시작해야 합니다.
PML1 변수 선언:
VAR을 이용하여 변수를 선언합니다.
모든 결과값이 string Type 입니다
예시:
VAR !A |Hello| VAR !B 3 $* 변수에 할당된 값을 확인하기 위해서는 $* Q VAR 변수 를 사용하면 됩니다. Q VAR !A Q VAR !B
결과:
<string> 'hello' <string> '3'
PML2 변수 선언:
Var 사용없이 = 을 사용합니다.
string이 아닌 다른 type도 바로 할당 가능합니다.
예시:
!A = 'Hello' !B = 3 $* 변수에 할당된 값을 확인하기 위해서는 $*Q VAR 변수 를 사용하면 됩니다. Q VAR !A Q VAR !B
결과:
<string> 'hello' <real> 3
3. 조건문
IF문은 IF 조건 THEN 과 같이 사용됩니다.
추후 설명하겠지만 PML에서는
== != > < 와 같이 사용 하지 않고 EQ NEQ GT LT 등등 조금 다른 비교연산자를 사용합니다.
예시:
!Y = 20 IF (!X GT !Y) THEN $* $P 사용시 $P 뒤에 오는 내용들을 $* CommandWindow에 출력합니다 $P 'X is greater than Y' ELSE $P 'X is not greater than Y' ENDIF
이 코드에서는 !X 와 !Y 를 비교하여 조건에 따라 다른 메시지를 출력합니다.
4. 반복문
특정 작업을 반복하기 위해 사용하는 DO 문입니다.
예시:
DO !I FROM 1 TO 5 $* 추후 설명하겠지만 변수앞에 $를 붙일시 $* 변수가 가지고있는 값을 참조하여 사용할수 있습니다. $P $!I ENDDO
결과:
1 2 3 4 5
이 반복문은 !I 가 1에서 5까지 증가하면서, 각 반복마다 메시지를 출력합니다.
5. 문자
PML에서 문자는 |혹은 로 감싸서 사용하며, 문자 간의 연결이나 비교가 가능합니다.
예시:
!Greeting1 = |Hello1| !Greeting2 = 'Hello2' Q VAR !Greeting1 Q VAR !Greeting2
결과:
<STRING> 'Hello1' <STRING> 'Hello2'
6. OF
PML 에서 OF 는 특정 요소의 속성을 가져오기 위해 사용됩니다.
기본구조: (원하는 속성) OF (가져올대상)
주의사항: 가져올 대상의 경우 보통 CE 혹은 각 ELEMENT를 지정하지만 상위 HIERARCHY에 있는 TYPE도 지정이 가능합니다.
예시:
!A = /TestSite1 !B = TYPE OF $!A Q VAR !B
결과:
<STRING> 'SITE'
예시2:
$* 현재 Pipe를 선택 하고 있다고 가정할 때 $* Site 의 이름은 TestSite1 로 가정 !A = TYPE !B = name of site
결과2:
<STRING> 'PIPE' <STRING> '/TestSite1'
Bi
Subscribe to 'bittokki'
Welcome to 'bittokki'!
By subscribing to my site, you'll be the first to receive notifications and emails about the latest updates, including new posts.
Join SlashPage and subscribe to 'bittokki'!
Subscribe
👍
Other posts in 'PML BASIC'See all
Bito
PML Beginner 4 - 연산자, 조건문, 반복문
연산자와, 조건문, 반복문 이번엔 연산자, 조건문, 반복문 에 대해 설명해보도록 하겠습니다. 1. 연산자 1. 산술 연산자 기본적인 수학 연산을 수행할 때 사용되는 연산자들입니다. 더하기 (Addition): + 빼기 (Subtraction): - 곱하기 (Multiplication): * 나누기 (Division): / 예시: 결과: 2. 비교 연산자 두 값을 비교할 때 사용되는 연산자들입니다. 작다 (Less than): LT 크다 (Greater than): GT 같다 (Equal to): EQ 다르다 (Not equal to): NEQ 작거나 같다 (Less than or equal to): LE 크거나 같다 (Greater than or equal to): GE 예시: 이 예시에서:
Bito
PML Beginner 3 - Collect
PML 에서의 Collect 매번 하나하나 데이터를 ARRAY에 add 할수는 없기에 collect를 사용합니다. 크게 PML1 방식의 Collect와 PML2 방식의 Collect가 있으나 주로 PML2는 복잡하기에 PML1 위주로 설명드리도록 하겠습니다. Beginner 이후 Object에 대한 설명 과정에서 PML2방식의 Collect에 대해 자세히 설명 드리겠습니다. PML1 에서 Collect PML1 에서 데이터를 COLLECT 하는 방법엔 2가지가 있습니다. COLL 을사용하는것과 EVAL을 사용하는게 있습니다. COLL 을 이용한 COLLECT 구조: VAR (변수) COLL ALL (COLLECT TYPE) WITH (조건) FOR (COLLECT 할 Scope) 주의사항: (COLLECT TYPE) 과 WITH (조건) 과 FOR (조건) 은 생략할 수 있습니다. 주의사항: 다만 셋 모두 동시 생략은 불가능합니다 EX) VAR !A COLL ALL 불가능 주의사항: COLL 사용시 모든 데이터는 string 타입의 refno 가 들어갑니다. 예시: 결과: EVAL 을 이용한 COLLECT 구조: 구조: VAR (변수) EVAL NAME FOR ALL (COLLECT TYPE) WITH (조건) FOR (COLLECT 할 Scope) 주의사항: (COLLECT TYPE) 과 WITH (조건) 과 FOR (조건) 은 생략할 수 있습니다. 주의사항: 다만 셋 모두 동시 생략은 불가능합니다 EX) VAR !A EVAL NAME FOR ALL 불가능 주의사항: EVAL NAME FOR ALL 사용시 모든 데이터는 string 타입의 Name 가 들어갑니다. 예시: 결과: PML2에서 Collect PML2에서는 COLLECTION() 이라는 OBJECT를 이용하여 COLLECT 합니다. 자세히 설명하기에는 아직 OBJECT에 대한 설명도 안하였고 PML2를 이용한 객체지향에 대한 설명도 안하였기에 Beginner 이후 자세히 설명하도록 하겠습니다. 아래와 같이 사용이 가능하며 PML1에 비해 복잡하지만 결과값이 DBREF이기에 PML2에서 . 으로 객체 속성접근이나 메쏘드 접근이 가능하다는점 여러 SCOPE를 지정 가능하다는 장점이 있습니다.
Bito
PML Beginner 2 - 변수(string, real, array)
PML에서의 변수 변수 간단하게 말하면 값을 저장할수있는 저장공간 입니다. PML에서 변수에는 string, real, array, file, datetime, 등 각종 object들이 들어갈수 있습니다. Object에 대한 자세한 설명은 초급 과정 이후 추후 자세히 설명하도록 하겠습니다 Beginner에서는 제일 많이 사용하는 string, real, array 만 설명하도록 하겠습니다. 1. PML에서 변수를 선언하는법 PML에서 모든 변수는 ! 로 시작합니다. PML1 변수 선언 예시 모든 값이 string 형태로 저장됩니다 예시 결과: PML2 변수 선언 예시 문자형 형태로 변수를 입력시 문자형, 숫자형 형태로 입력시 숫자형 값이 들어값니다 예시: 결과: 지역변수와 전역변수 지역 변수: !로 시작하며, 스크립트 내에서만 사용할수 있습니다. 즉 commandwidnow 에서 !a에 값을 할당했다고 해서 .mac파일 혹은 form에서 !a에 할당된 값을 사용이 불가능합니다. 전역 변수: !!로 시작하며, 프로그램 내에서 사용이 가능합니다. 즉 commandwidnow 에서 !!a에 값을 할당하면 .mac파일 혹은 form에서 !!a에 할당된 값을 사용이 가능합니다. 예시: (COMMAND WINDOW) 결과: