Share
Sign In
PML BASIC
Pml Basic 1 - Object & Function
B
Bito
👍
Pml Beginner와는 다르게 Basic 부분에서는 AVEVA에서 기본 제공하는 Object 및 Function 에 대해 설명할 예정입니다 순서대로 학습할 필요 없이 코딩하면서 필요하다 싶은 Object들만 읽으면 될 것 같습니다.
Object란?
PML은 객체 지향 개념을 사용하는 언어입니다.
여기서 객체 는 OBJECT를 말합니다.
여기서 OBJECT가 무엇이냐 하면 (STRING, REAL, ARRAY) 뿐만 아니라
(COLLECTION, TABLE, BLCOK)등 모든 데이터는 Object(객체)로 다루어집니다.
예를들어 설명해보겠습니다.
1.
String 객체
설명: |test1|, 'test2'와 같은 문자열은 String 객체로 취급됩니다. PML에서는 문자열도 객체로 간주됩니다.
2.
Real 객체
설명: 1, 2.5, 3 등은 Real 객체로, 실수 또는 정수 형태의 숫자를 의미합니다.
3.
Array 객체
설명: Array 객체는 각 인덱스에 다양한 유형의 객체(문자열, 숫자, 다른 배열 등)를 저장할 수 있는 자료 구조입니다.
4.
Collection 객체
설명: Collection 객체는 데이터베이스 요소를 필터링하거나 범위 내의 데이터를 모아서 Array 객체로 반환하는 역할을 합니다.
뿐만아니라 수많은 Object들이 있으며 원할경우 Object를 생성하여 사용하여도 됩니다.
결론적으로 말하면 PML에서의 Object란 데이터를 담고 있는 일종에 컨테이너 라고 생각하면 되고
메쏘드를 통해 다양한 작업을 수행할 수 있습니다.
1. Object 선언
선언 방법 : !변수 = Object Object이름()
예시:
!A = Object string() !B = Object real() !C = Object array() !D = Object Collection()
string이던 Real이던 보통 문자열에 값을 바로 할당하여 사용합니다.
!A = |TEST|
!B = 1
다만 stinrg 혹은 Real 도 하나의 객체이기 떄문에 Object를 명시적으로 선언 할 수 있습니다.
2. Method 사용
PML의 각 Object는 다양한 메소드를 내장하고 있습니다.
예를 들어, String Object는 문자열을 조작하기 위한 여러 가지 메소드를 가지고 있으며, 이를 통해 문자열을 변형하거나 특정 작업을 수행할 수 있습니다.
예를 들어 :
replace(): 문자열에서 특정 부분을 다른 문자열로 대체합니다.
upcase(): 문자열을 대문자로 변환합니다.
lowcase(): 문자열을 소문자로 변환합니다.
예시:
!A = Object String() $* string에서는 생략해도 상관없습니다 !A = |Test| q var !A.replace('T','A') q var !A.upcase() Q var !A.lowcase()
결과:
<string> 'Aest' <string> 'TEST' <string> 'test'
Function
PML에서 Function(함수)는 특정 작업을 수행하고 그 결과를 반환하는 재사용 가능한 코드 블록입니다. 함수는 코드를 모듈화하고 유지보수를 쉽게 하며, 중복된 작업을 피할 수 있게 도와줍니다.
1. Function 정의
PML에서는 DEFINE FUNCTION을 사용하여 함수를 정의합니다.
함수는 이름, 매개변수(입력값), 반환 타입을 가질 수 있으며, 함수 내부에서 실행할 작업을 지정할 수 있습니다.
기본 문법:
DEFINE FUNCTION !!함수이름(매개변수1 is 타입1, 매개변수2 is 타입2) is 반환타입 -- 함수 내용 RETURN 반환값 ENDDEFINE
매개변수: 함수에 전달되는 입력값으로, 각각의 매개변수는 특정 데이터 타입(예: STRING, REAL)을 가져야 합니다.
반환타입: 함수가 결과값을 반환할 때 그 결과값의 데이터 타입을 지정합니다.
!!: 함수 이름은 반드시 !!로 시작하여 함수임을 명확히 구분합니다.
파일이름: PMLLIB 경로 안 .PMLFNC 확장자의 형태로 존재해야 합니다.
2. 예시 더한 값 반환
다음은 두 숫자를 더한 결과를 반환하는 함수 예시입니다:
pmlfnc:
DEFINE FUNCTION !!AddFunction(!a is REAL, !b is REAL) is REAL !result = !a + !b RETURN !result ENDDEFINE
이 함수는 두 개의 숫자를 입력받아 더한 값을 반환합니다. 함수를 호출하는 방식은 다음과 같습니다:
예시:
!res = !!AddFunction(5, 10) q var !res
결과:
<real> 15
위 코드는 510을 더한 결과를 출력합니다.
이 함수는 주어진 메시지를 출력하는 단순한 절차입니다.
만약 RETURN 없이 사용하고 싶을 경우에는 아래처럼 사용하면 됩니다
pmlfnc:
DEFINE FUNCTION !!AddFunction(!a is REAL, !b is REAL) !result = !a + !b $p $!result ENDDEFINE
이 함수는 두 개의 숫자를 입력받아 더한 값을 CommandWindow 에 출력합니다.
예시:
!res = !!AddFunction(5, 10)
결과:
<real> 15
3. Function의 장점
재사용성: 함수를 한 번 정의해두면 여러 곳에서 재사용할 수 있습니다.
모듈화: 코드를 작은 단위로 나누어 복잡한 문제를 쉽게 처리할 수 있습니다.
유지보수: 코드의 중복을 줄여 유지보수와 수정이 쉬워집니다.
요약
PML에서 Function은 입력값(매개변수)을 받아 특정 작업을 수행한 후, 결과를 반환하는 코드 블록입니다. 함수는 코드의 효율성을 높이고, 가독성과 재사용성을 개선하는 데 중요한 역할을 합니다.
이렇게 object와 Function 에 대해 설명하긴 하였으나….
이 글만 봐서는 이해가 잘 되지 않으실 수 도 있을 것 같습니다.
각종 예제들과 Object에 관한 글들을 읽어보고 천천히 이해하시면 될 것 같습니다.
감사합니다.
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 Basic 4 - Logical Functions
GPTS로 학습시킨후 뽑아낸 글입니다 어색만 부분이나 있을수 있습니다 오류 있으면 댓글 달아주세요 추후 수정 예정입니다.** PML에서의 논리 함수 PML(Programming Macro Language)에서 Logical Fucntions는 주어진 조건에 따라 논리값을 반환하는 함수들입니다. 이 함수들을 사용하면 다양한 조건 검사를 수행하고, 그 결과에 따라 프로그램의 흐름을 제어할 수 있습니다. 아래는 각 논리 함수에 대한 설명과 예제입니다. 1. BADREF 함수 개요: BADREF(id)는 id가 유효하지 않으면 TRUE를, 유효하면 FALSE를 반환합니다. 예제:이 예제는 TREF가 유효한지 확인합니다. 2. DEFINED 및 UNDEFINED 함수 개요: DEFINED(variable_name)는 변수나 배열 요소가 정의되어 있으면 TRUE를 반환합니다. UNDEFINED(variable_name)는 변수나 배열 요소가 정의되지 않았으면 TRUE를 반환합니다. 예제:이 예제는 배열 array가 정의되어 있는지 확인합니다. 3. EMPTY 함수 개요: EMPTY(text)는 text가 빈 문자열이면 TRUE를, 그렇지 않으면 FALSE를 반환합니다. 예제:이 예제는 문자열이 비어 있는지 확인합니다. 4. IFTRUE 함수 개요: IFTRUE(logical, anyA, anyB)는 logical이 TRUE일 경우 anyA를, FALSE일 경우 anyB를 반환합니다. 예제:이 예제는 조건이 참인지 거짓인지에 따라 다른 값을 반환합니다.
Bito
Pml Basic 3 - Object Real()
d
Bito
Pml Basic 2 - Object String()
Function Description Match(STRING) 문자열의 시작 위치를 찾습니다. MatchWild(STRING) 와일드카드( * 는 여러 문자, ? 는 한 문자)를 사용하여 문자열을 비교합니다. EQNoCase(STRING) 대소문자 구분 없이 문자열을 비교합니다. After(STRING) 문자열에서 가장 왼쪽에 있는 STRING 다음에 오는 부분 문자열을 반환합니다. Before(STRING) 문자열에서 가장 왼쪽에 있는 STRING 앞에 있는 부분 문자열을 반환합니다. Length() 문자열의 문자 수를 반환합니다. UpCase() 문자열을 대문자로 변환합니다. LowCase() 문자열을 소문자로 변환합니다. Replace(STRING1, STRING2) 문자열에서 모든 STRING1 를 STRING2 로 바꿉니다.