-
ST 언어 복습해보자(1)PLC 2022. 4. 13. 13:49
할당문 1) 할당문은 왼쪽에 변수, 그 뒤를 따르는 할당문 연산자(:=), 마지막으로 연산할 표현식으로 구성됩니다. 예) A := B + C ; 2) 할당문은 평션 이름을 할당문 연산자 왼쪽에 위치 시킴으로써 펑션의 리턴값을 대입하는데도 사용합니다.
선택문 1) 선택문은 IF 문과 CASE 문 두 가지 종류가 있습니다. 2) 선택문은 특정 조건에 기초하여 수행하는 동안 선택문을 구성하는 명령문들 중 하나(혹은 그룹)를 선택합니다. (1) IF 문 (a) 관련 부울 표현식이 1 의 값(참)으로 결과가 나오면 명령문 그룹을 실행합니다. (b) 조건이 거짓이면 어떠한 명령문도 실행되지 않습니다. 그러나 ELSE 가 있는 경우 ELSE 를 따르는 명령문 그룹 이 실행됩니다. 만약 ELSIF 관련 조건이 참인 경우 ELSIF 를 따르는 명령문 그룹이 실행됩니다. (2) CASE 문 (a) INT 형의 변수(“선택자”)를 계산하는 표현식과 명령문 그룹의 리스트로 구성됩니다. (b) 각 그룹의 라벨은 하나 이상의 정수와 정수 값의 범위로 설정할 수 있습니다. (c) 선택자의 계산 값을 포함하는 범위 내에 있는 명령문의 그룹이 수행되며, 선택자의 어떠한 값도 CASE 문의 각 경우에 해당되지 않으면 ELSE 를 뒤따르는 명령문 그룹이 수행됩니다. 만일 ELSE 가 없다면 어떠한 명령문 도 수행되지 않습니다.
반복문 1) 반복문은 FOR 문, WHILE 문 그리고 REPEAT 문 세가지 종류가 있습니다. 2) 반복문은 관련 명령문의 그룹이 반복적으로 수행되는 것을 말합니다. (1) FOR 문 (a) 반복 횟수가 미리 결정되어 있는 경우에 사용됩니다. (b) FOR 문에서는 명령문 시퀀스가 END_FOR 까지 반복적으로 수행되며 값의 진행은 FOR 루프의 제어 변수에 지정 됩니다. (c) 제어 변수, 초기값과 최종 값은 같은 정수형(SINT, INT, DINT)의 표현식으로 나타내며 반복되는 문장에 의해 바뀌지 않습니다. 종료 조건에 대한 검사는 각 반복의 시작 시 행해져 초기값이 최종값을 초과한다면 명령문 시퀀스가 더 이상 수행되지 않습니다. (2) WHILE 문과 REPEAT 문 (a) WHILE 문은 관련 부울 표현식이 거짓일 때까지 END_WHILE 까지의 명령문 시퀀스를 반복적으로 수행됩니다. (b) REPEAT 문에서는 관련 부울 조건이 참일 때까지 UNTIL 까지의 명령문 시퀀스를 반복적으로 (최소한 한번은) 수행됩니다. (c) WHILE 문과 REPEAT 문은 외부적으로 결정되는 종료 조건을 가진 “대기 루프(wait loop)”와 같은 프로세스간 동기화 하는데 사용하지 않습니다. (d) EXIT 문은 종료 조건이 만족되기 전에 반복을 중단하는데 사용됩니다. EXIT 문이 중첩 반복 구조 내에 사용될 때 해당 EXIT 는 그 EXIT 가 위치한 가장 안쪽 루프에 적용됩니다. 따라서, 제어는 EXIT 문의 뒤에 위치하는 첫번째 루프 종료자(END_FOR, END_WHILE, END_REPEAT) 이후의 명령문으로 전달됩니다. (e) WHILE 문과 REPEAT 문은 루프 종료 조건의 만족하거나 EXIT 문의 수행이 보장될 수 없는 알고리즘에 사용되면 에러입니다.
IF 문 1) IF 문은 프로그램이 한 가지 이상 선택해야 하는 경우에 갈림길을 제공하기 때문에 분기문이라 불립니다.
2) 문법
IF condition THEN statements [ELSE elsestatements ] END_IF 또는 아래와 같이 사용할 수 있습니다.
IF condition THEN
statements
[ELSIF condition-n THEN
elseifstatements] . . .
[ELSE elsestatements]
END_IF
CASE 문
1) 프로그램의 제어가 CASE 다음에 오는 표현식의 값으로 분기합니다. 표현식은 모두 정수값(INT 형)이어야 합니다. 표현 식의 값이 케이스 목록(case list) 범위에 포함되지 않는 경우 ELSE 이후에 있는 상태문이 실행됩니다. 만약 ELSE 가 없는 경우 케이스 목록 내의 어떠한 상태문 리스트(statement list)도 실행하지 않습니다. 다른 분기 명령이 없다면 나머지 모든 문을 실행하면서 프로그램의 흐름을 진행합니다.
2) 문법
CASE expression OF
case_list : statement_list
{ case_list : statement_list}
[ELSE statement_list]
END_CASE
FOR 문
1) FOR 문은 순환 과정을 처리하기 위해서 구분자로 분리된 세 개의 제어문을 사용합니다. FOR 문의 구성 요소 중 먼저 초 기화하는 수식이 실행됩니다. 만약 TO 수식이 참이면(현재 counter 의 값이 end 값보다 작은 경우) 루프는 한번 실행 됩니다. 그 다음 BY 수식의 값만큼 counter 의 값이 갱신되고 조건문을 다시 검사합니다. FOR 문은 선 조건 검사 루프 입니다. 즉, 루프를 통과하기 전에 순환 여부를 검사합니다. 따라서 루프를 전혀 수행하지 않을 수도 있습니다.
2) 문법
FOR counter := start TO end [BY step] DO
statements
END_FOR
WHILE 문
1) WHILE 문은 조건 수식이 거짓이나 0 이 될 때까지 반복하는 순환문을 만듭니다. WHILE 문은 선 조건 검사 루프입니다. 즉, 루프를 통과하기 전에 순환 여부를 검사합니다. 따라서 조건이 만족하지 않는 경우 WHILE 문 내의 상태문을 전혀 수행하지 않을 수 있습니다.
2) 문법
WHILE condition DO
statements
END_ WHILE
REPEAT 문
1) REPEAT 문은 조건식이 TRUE 가 될 때까지 반복하는 순환문을 만듭니다. REPEAT 문(후 조건 검사 루프)은 루프 통과 후 에 루프 반복 여부를 검사해서 결정합니다. 따라서 루프는 적어도 한번은 실행합니다.
2) 문법
REPEAT statements
UNTIL condition
END_REPEAT
EXIT 문
1) EXIT 문은 반복문(WHILE, FOR, REPEAT)에서 빠져 나가는데 사용됩니다.
2) EXIT 문을 반복문 밖에서 사용하는 경우 에러가 발생합니다
'PLC' 카테고리의 다른 글
미쯔비시 PLC 명령어 (BKCMP) (0) 2022.04.27 미쯔비시 PLC GX-Work2 프로젝트생성 Setting CC-Link 설정 (0) 2022.04.22 ST 언어 .Q판정 (액션) (0) 2022.04.13 Structured Text ST 언어를 알아보자 (기초3) (0) 2022.04.08 Structured Text ST 언어를 알아보자 (기초2) (0) 2022.04.08