본문 바로가기
PLC/MITSUBISHI (MELSEC Q)

GX-WORKS2 (MELSEC Q) 라벨(레이블) 프로젝트 #1 FB(펑션블록)와 Label(레이블)

by 쪼렙엔지니어 2021. 12. 16.
반응형

 

오랜만에 GX-WORKS2를 켜보았습니다.

오늘은 바로 그 유용한 기능! 라벨(레이블) 프로젝트에 대해서 알아보려고 합니다.

저는 "라벨 프로젝트"라고 부르는게 입에 익어서.. 라벨이라고 하겠습니다.

정확한 영어발음은 "레이블 프로젝트" 인것 같아요.

아 그리고, GX-WORKS2의 경우 XG5000과 매우매우 유사합니다.

다들 알고 계시지요?

XGK나 XBC모델을 사용할때 쓰는 LS전용언어 프로그래밍 방식은

Address(변수)의 체계부터 LADDER방식의 표현까지 정말정말 비슷합니다.

그러니 공부를 하면서 공통점과 차이점도 잘 알아 두는것이

배울때 머리속에서 정리도 되고 많이 도움이 됩니다.

거두절미 하고 자~ 이제 시작해 볼까요?

GX-works2 기본적인 사용법은 아래 포스팅을 참조해 주십시오.

https://mech19.tistory.com/45

 

MELSEC Q PLC 시작하기 (GX-WORKS2)

오늘은 일본 MITSUBISHI사의 MELSEC Q PLC시리즈의 소프트웨어인 GX-WORK2 사용법에 대해서 알아보겠습니다. ​ 사용하기 위해서는 먼저 설치를 해야겠지요. ​ GX-WORK2의 경우 설치는 큰 어려움이 없습니

mech19.tistory.com

 

 

먼저 GX-works2를 실행하도록 합니다.

그럼 위와 같은 창이 생성되었지요?

여기서 상부 카테고리 [Project]-[New]를 실행시키시거나

위 아이콘을 클릭하시면 아래와 같이 [New Project] 생성창이 시작됩니다.

여기서 중요한 점은 라벨프로젝트를 만들려면

"Use Label"을 꼭 체크하셔야 한다는 점입니다.

그리고 "OK"를 눌러줍니다.

그럼 아무것도 없던 화면에 위와 같이

왼쪽(Navigation)에는 [Project]관리창과 오른쪽에는 [Program]작성창이 생성됩니다.

그리고 라벨프로젝트가 아닐때는 없었던 Local Label Setting창도 생성되었네요.

 

라벨은 각각의 프로그램와 펑션블록마다 존재합니다.

위 화면에 빨간색 네모박스로 표시해둔 부분을 보면

먼저 "글로발 라벨"은 프로젝트 전체를 아우르는 라벨이고,

"프로그램"중에서 MAIN 프로그램에 포함되어 있는

로컬라벨은 같은 하위 카테고리에 속해 있는 프로그램에 종속되어 있는 라벨입니다.

또 FB를 생성하면 그에 따라느 로컬라벨이 생성됩니다.

이렇게 설명하니 무슨말인지 잘 모르시겠지요?

직접 생성해 보겠습니다.

프로그램을 생성할때는 "Program"을 선택한 뒤 우클릭하여 메뉴를 생성한 뒤

"Add New Data..."를 좌클릭하면 됩니다.

그럼 아래와 같이 [New Data] 생성창이 실행됩니다.

여기서 "Data Type"을 Program으로 두고

"Data Name"과 "Program Language"는

원하는것으로 한 뒤에 "OK"를 클릭하면 프로그램이 생성됩니다.

저는 "Data Name"을 "TEST1"로 하고

"Ladder"프로그램으로 만들어 보겠습니다.

짠~

"TEST1"이라는 프로그램과 그에 종속되는 로컬라벨이 생성된것이

보이시나요?

그럼 바로 FB(Function Block)을 만들어 보겠습니다.

FB를 만드는것도 방법은 같습니다.

[Navigation]의 [Project]에서 "FB Pool"을 선택한 뒤 우클릭하여 메뉴를 생성한 뒤

"Add New Data..."를 좌클릭하면 됩니다.

그럼 아래와 같이 [New Data] 생성창이 실행됩니다.

여기서 "Data Type"을 "Function Block"으로 두고

"Data Name"과 "Program Language"는

원하는것으로 한 뒤에 "OK"를 클릭하면 프로그램이 생성됩니다.

저는 "Data Name"을 "FB1"로 하고

"Ladder" FB로 만들어 보겠습니다.

짠~

"FB1"이라는 Function Block과 그에 종속되는 로컬라벨이 생성된것이

보이시나요?

(이미 눈치를 채셨겠지만 Function block 또한 하나의 작은단위의 Program 입니다.)

 

전체적으로 보면 아래와 같습니다.

이렇게 Program이나 Function Block를 생성하면

그에 종속된 Local Label도 같이 생성됩니다.

또 굳이 만들자면 Global Label도 동일한 방법으로

추가로 생성이 가능합니다.

(그러나 굳이 그럴 필요는 없겠지요...꼭 필요하다면 모를까...)

#참고로 Global label과 Local label은 중복되면 안됩니다.

그럼 라벨이라는것은 무엇일까요?

간단하게 생각하여 라벨은 해당 "Program"이나 "FB(Function Block)"에서만

사용이 가능한 "변수(Device)"라고 생각하면 됩니다.

(아주 약간 다른 개념이지만.... 초보자 분들은 이렇게 생각하시는게 편할듯...)

​사실은 저도 초보지만 ㅠㅠ

 

그래도 잘 이해가 안되실듯 하니

직접 간단한 FB를 만들어 보며 알아보겠습니다.

 

먼저 [FB1]의 [Program]을 더블클릭하여 프로그램 작성창을 띄우도록 합니다.

 

여기에 간단한 자기유지 Function Block을 만들어 보겠습니다.

Ladder program을 만들듯이 만들면 됩니다.

차이점은 아래와 같이 Enter Symbol에서 Symbol을 생성하면

Local Label에 등록이 된다는 점입니다.

제일 먼저 입력A접점을 하나 생성하여 아래와 같이 Pump start라고 작성하고

"OK"를 눌러주도록 합니다.

그러면 아래와 같이 Local Label 선언창이 뜹니다.

여기서 편집해도 되고, 나중에 한꺼번에 편집해도 됩니다.

저는 나중에 한껀번에 편집하도록하겠습니다.

일단은 "OK"를 눌러주고 넘어가도록 합니다.

그럼 위와 같이 분홍색 글씨로 입력A접점 "Pumpstart" 가 생성된것을

확인할 수 있습니다.

그리고 [FB1]의 [Local Label]을 확인해 보면

위와 같이 "Pumpstart" label이 생성된것도 확인할 수 있습니다.

이러한 방식으로 아래와 같은 자기유지 프로그램을 만들어 주도록 합니다.

그리고 다시 [FB1]의 [Local Label]을 열어보도록 합니다.

이제 이곳에서 Label을 편집해 보도록 하겠습니다.

먼저 "Class"입니다.

Local Label의 "Class"종류는 위와 같습니다.

이중에서 대부분 VAR, VAR_INPUT, VAR_OUTPUT, VAR_IN_OUT을 사용하게 되실겁니다.

VAR : 내부릴레이 용도

VAR_INPUT : FB입력단자 용도

VAR_OUTPUT : FB출력단자 용도

VAR_IN_OUT : FB입출력단자 용도

VAR_RETAIN : 정전유지

VAR_CONSTANT : 상수

"Label Name"은 원하는것으로 작성이 가능하나, Global Label과 중복되어서는 안됩니다.

"Data Type"은 프로그램과 저장하고자 하는 데이터에 맞게 적절히 선택하면 됩니다.

참고로 "Data Type"은 아래 아이콘을 누르면 되는데

종류는 다음과 같습니다.

이제 위 화면은 자기유지 프로그램에 맞게 Local Label을 적절히 편집한 모습니다.

사실 "Class" 조절했지요.

그리고 다시 프로그램 작성 화면으로 돌아가서 "F4"를 눌러 컴파일 해주도록 합니다.

"F4"를 누르면 위와 같이 Compile하고 Build하겠냐는 문구가 뜨고

"OK"를 누르면 완료됩니다.

그럼 회색부분이었던 부분이 다시 하얗게 바뀌네요.

Compile완료되었다는 의미입니다.

이제 위에서 만든 [FB1]을 [TEST1]프로그램에서 호출하여 사용해 보겠습니다.

먼저 [TEST1] 프로그램 작성창으로 간 뒤에

빈 렁을 좀 늘려주도록 합니다.

(렁 추가 방법은 shift + insert를 누르거나, 아래와 같이 우클릭 후 Insert Row를 클릭하면 됩니다.)

만들어둔 FB를 불러오는 방법은 아래의 아이콘을 눌러서

Function Block select창을 생성하면 됩니다.

위 아이콘을 누르면 아래와 같이 프로그램 작성창 우측에 [Selection] 창이 생성됩니다.

여기서 원하는 Functin Block을 선택한 뒤에

드래그 & 드롭을 해주면 됩니다.

그럼 아래와 같은 창이 생성되고

여기서 Instance Name을 편집한 뒤 "OK"를 눌러주면 됩니다.

그럼 아래와 같이 프로그램 작성창에 FB1이 생성됩니다.

그리고 이렇게 동일한 FB를 아래와 같이 몇번이고 호출하여 사용이 가능합니다.

이렇게 호출한 뒤에 각각의 단자에 Device를 지정해 주어 사용하면 됩니다.

아래는 각 입출력 단자별로 Device 지정을 해준 뒤 Compile과 Build까지 끝낸 상황입니다.

접점 및 코일 생성과 Device지정은 일반 프로그램과 동일하니 겁먹지 말고 해보시기 바랍니다.

시뮬레이터를 실행하여 가동해보니 자기유지가 잘 되는것을 확인 할 수 있었습니다.

복잡해 보이지만 차근차근 따라해 보니

굉장히 쉽지 않나요??

 

일단 오늘은 라벨프로젝트의 Function Block과 Local Label을 만드는 방법을 알아보았습니다.

다음포스팅에서 이어서 Global Label과의 관계 및 명령어를 이용한 Function Block작성등을

해보도록 하겠습니다.

아래 포스팅을 참조해 주십시오.

https://mech19.tistory.com/92

 

GX-WORKS2 (MELSEC Q) 라벨(레이블) 프로젝트 #2 Global Label(글로벌 라벨(레이블))과 Local Label(로컬 라벨(

안녕하세요. ​ 오늘은 Label(레이블) 프로젝트 두번째 시간이에요. ​ 지난 시간에는 Label Project를 만들면 생성되는 FB Pool과 Label이용 방법에 대해 알아보았습니다. (아래 포스팅 참조) https://mech19.

mech19.tistory.com

 

감사합니다.

반응형

댓글