-
ST 언어 .Q판정 (액션)PLC 2022. 4. 13. 11:22
PLC 개인적으로 공부하면서 참고할만한것을 모아놓는곳입니다.
Q가 무슨의미인지 몰라서 찾아봤는데 액션의 뜻이었습니다..;;
Functions, function bloccks 과 Actions 다양한 펑션과 펑션 블럭은 프로그램 언어 기능을 확장한다. 액션은 프로그램 구조를 보다 효과적으로 사용하게 한다. 펑션과 펑션 블럭은 툴바에서 추가할 수 있다.
Functions 콜 할때 펑션은 특정 값을 반환해주는 서브 루틴이다. 함수를 호출 할 수 있는 한가지 방법은 표현식에 있다. 인수(arguments)라고도 하는 전송 매개 변수(transfer parameter)는 함수에 전달되는 값이다. 전송 매개 변수는 쉼표(”,”)로 구분된다.
Function blocks 펑션 블럭은 여러 전송 매개 변수와 다수의 결과 값을 취할 수 있다는 사실이 특징이다. 펑션과 달리, 펑션블럭과 같은 데이터 타입을 지닌 인스턴스 변수로 선언이 필요하다. 펑션 블럭의 장점은 여러 사이클 동안 도출해야하는 더 복잡한 작업 결과들을 다룰 수 있다. 다른 인스턴스를 사용하므로써, 같은 타입에 다수의 펑션블럭은 다른 전송 매개 변수와 연계될 수 있다. 펑션 블럭을 콜할때, 모든 인수 또는 몇개를 넘기는 것도 가능하다. 매개 변수와 결과는 인스턴스 변수 요소를 사용하여 프로그램코드에서 접근 할 수 있다.
‘Call 하는 방법 1’에서 모든 매개변수는 펑션 블럭을 콜할때 직접 연결된다. ‘Call 하는 방법 2’에서 매개변수는 인스턴스 변수 요소에 할당된다. 두 경우 모두, 콜을 한 이후에 인스턴스 변수에서 원하는 변수를 읽어야 한다
변수의 선언 ▷ 프로그램 구성 요소(즉 프로그램, 펑션, 펑션 블록)는 그 구성 요소에서 사용할 변수를 선언할 수 있는 선언 부분을 가지고 있습니다. ▷ 프로그램 구성 요소에서 변수를 사용하기 위해서는 우선 사용할 변수를 선언해야 합니다. ▷ 변수의 선언에서 설정해야 할 사항은 다음과 같습니다
2) 데이터 타입 : 변수의 데이터 타입을 지정합니다. 3) 메모리 할당 : 변수가 차지할 메모리를 할당합니다. 자동 ---- 컴파일러가 변수의 위치를 자동으로 지정(자동 배치 변수). 사용자 정의(AT) ---- 사용자가 직접표현 변수를 사용하여 강제로 위치를 지정(직접변수).
참고)
자동 배치 변수는 그 실제 위치가 고정되어 있지 않습니다. 예를 들어 VAL1 이란 변수를 BOOL 데이터타입으로 선언하였 다면 그 변수가 내부 데이터 영역의 어느 위치에 있는지 고정되어 있지 않다는 것입니다. 그 위치는 프로그램을 다 작 성한 후 컴파일러와 링커에 의해 정해집니다. 만약 프로그램을 수정한 후에 다시 컴파일 하였다면 그 위치가 변할 수 있습니다. 자동 배치 변수의 장점은 사용자가 내부 변수로 사용하는 것들의 위치에 신경 쓰지 않아도 된다는 것입니다. 다른 이름으로 선언한 변수들은 결코 데이터 메모리에 중복되어 위치하지 않기 때문입니다. 직접변수는 변수의 위치가 정해지기 때문에 %I 와 %Q 를 제외하고는 될 수 있으면 사용하지 않는 것이 좋습니다. 직접변수는 자동 배치 변수가 아 니므로 사용자가 잘못 사용할 경우, 중복될 수 있습니다. ▷ 초기값(Initial Value) 지정 : 변수의 초기값을 지정합니다
VAR_EXTERNAL 의 선언 시에는 초기값을 줄 수 없습니다. 변수 선언 시 %I 와 %Q 로 강제 할당한 변수에는 초기값을 줄 수 없습니다. ▷ PLC 의 전원이 끊긴 후에도 데이터의 값을 유지할 필요가 있는 변수는 정전 유지(Retention)의 기능이 제공되는 VAR_RETAIN 을 써서 선언할 수 있으며 다음의 규칙을 따릅니다. 1) 정전 유지 변수는 시스템의 웜 리스타트시 그 값이 유지됩니다. 2) 시스템의 콜드 리스타트시에는 사용자가 정의한 초기값이나 기본 초기값으로 초기화됩니다. ▷ VAR_RETAIN 으로 선언되지 않은 변수는 콜드 리스타트나 웜 리스타트 어느 경우에도 사용자가 정의한 초기값이나 기 본 초기값으로 초기화됩니다.
변수 선언 시 %I 와 %Q 로 강제 할당한 변수는 변수종류를 VAR_RETAIN, VAR_CONSTANT 로 선언할 수 없습니다. ▷ 변수는 기본 데이터 타입을 인자로 갖는 어레이로 선언하여 사용할 수 있습니다. 어레이 변수로 선언할 때에는 인자 로 사용할 데이터의 타입과 어레이의 크기를 설정하여야 합니다. 단, 기본 데이터 타입 중에 STRING 데이터 타입은 인자로 설정할 수 없습니다. ▷ 변수 선언의 유효 영역(Scope), 즉 변수를 사용할 수 있는 영역은 그 변수가 선언된 프로그램 구성 요소에 한합니다. 따라서 다른 프로그램 구성 요소에서 선언된 변수는 사용할 수 없습니다. 글로벌 변수로 선언된 변수는 이와 달리 모 든 곳에서 VAR_EXTERNAL 선언에 의해 변수 접근이 가능합니다.
예약어 (조건들)
'PLC' 카테고리의 다른 글
미쯔비시 PLC GX-Work2 프로젝트생성 Setting CC-Link 설정 (0) 2022.04.22 ST 언어 복습해보자(1) (0) 2022.04.13 Structured Text ST 언어를 알아보자 (기초3) (0) 2022.04.08 Structured Text ST 언어를 알아보자 (기초2) (0) 2022.04.08 Structured Text ST 언어를 알아보자 (기초) (0) 2022.04.08