SoMachine Basic: Grafcet POU

SoMachine Basic의 POU 알아보기 제 2탄!!
1탄은 General POU에 대해 알아보았고, 2탄은 Grafcet POU를 알아보려고 한다.
역시나, 그냥 한번 부딪혀보자.  (๑و•̀Δ•́)و

2. Grafcet POU


이름이 Grafcet POU란다.
문득, Grafcet이라는 단어가 무슨 뜻인지 궁금하여 구글신에게 물어봤다.
몇 군데의 웹사이트를 돌아다니다보니, Grafcet이 무슨 말인지 알 수 있었다.

Grafcet은 "GRAphe Fonctionnel de Commande Etapes / Transitions"의 약자이고,
(귀차니즘이 발동하여, 어느 나라 말인지까지는 찾아보지 않았다. ㅎㅎ)
영어로 번역하자면, "Step Transition Function Chart"란다.
결국 SFC (Sequential Function Chart)와 유사한 의미로 보인다.

본론으로 들어가서, Grafcet POU를 추가하려면 SoMachine Basic > Programming 탭dml
왼쪽 부분 중 'Master Task'에서 추가할 수 있다.
(왜!! 다른 Task에서는 추가할 수 없을까??)

Grafcet POU를 추가하니 POU 밑에 'Transitions'도 함께 생성된다.

그런데, SFC 격인 Grafcet POU가 추가되었는데, POU만 달랑 추가될 뿐 프로그래밍을 위한 다른 어떤 항목들이 보이지 않는다.
(살짝 당황... (⊙_⊙))
그냥 부딪혀보기로 했으니 일단 POU 내부에 마우스 우클릭을 해보자.

역시나, 스텝을 추가하는 메뉴가 나타났다. ٩(ˊᗜˋ )و
곧바로 스텝들을 추가해보자.


눈에 띄는 것은 가장 먼저 추가한 스텝은 두 줄짜리이고 나머지는 한 줄짜리 스텝이라는 점이다.
토큰을 이용하여 동작할 스텝을 결정하는 SFC 언어의 특성 상 처음 토큰을 가지고 시작하는 스텝 (Initial Step)을
구별하기 위함일 것이다.
당연히 이니셜 스텝은 사용자에 의해 변경이 가능하다.

이니셜 스텝이 2개 생겼다. (o_O) !
토큰을 여러개 핸들링 할 수 있다는 의미 같다.
어차피 난 하나의 POU 안에서 여러개의 토큰을 핸들링 할 생각도 없으니, 일단 넘어가자.
(그리고, 토큰을 여러개 둔다는 것은 별로 좋은 프로그래밍 습관도 아니다.)

다시 3번 스텝을 원상 복귀 시키고나서 가만 보니 뭔가 빠진게 있다.
바로 토큰을 전달하는 브랜치들과 토큰의 전이를 제어할 트렌지션들이다.
Grafcet POU를 좀 가지고 놀다보니 눈에 띄는 것 중 하나가,
스텝의 상단과 하단에 마우스 포인터가 지나갈 때 그 부분에 굵은 녹색 네모가 생긴다는 것이다.
아마도, 거기가 브랜치를 연결하는 곳이 아닐까 싶은데...

역시!! 연결하고자 하는 한쪽 스텝의 끝 부분을 마우스로 드래그 해주면 브랜치가 연결되고,
브랜치 사이에 트랜지션도 함께 추가된다.
(자연스레 만들어진 Alternative Branch ㅎㅎ)

이번에는 Parallel Branch를 만들어보자.
먼저, 'Tr2'가 있는 브랜치를 먼저 삭제하고, 'Tr1'과 스텝3을 연결해보자.
('Delete' 키로 삭제할 수 있다.)

< 쉽네!! ㅎㅎ ٩(^ᴗ^)۶ >

Grafcet POU에 스텝과 트랜지션들을 만들고 나면 왼쪽의 Task 부분에 추가된 스텝들과 트랜지션들이 생겨난다.
어차피, SFC의 역할은 그려진 차트 안에서 토큰들을 이리 저리 굴리는 것 뿐,
토큰을 받은 스텝이 해야할 일은 분명 스텝 안에다가 만들어줘야 할 것이다.
Grafcet POU에 대해 이해한 것이 맞는 지 확인하기 위해 간단한 프로그램을 하나 만들어보자.

정말정말 간단한 프로그램이다.
각 스텝마다 하는 역할은 현재 토큰이 위치한 스텝의 번호를 알 수 있도록 %MW0에 상수를 할당하도록 되어 있고,
자기 자신에게 토큰이 전이되도록 만든 트랜지션을 리셋하도록 되어 있다.
그리고, 각 트랜지션은 %Mn (n은 타켓 스텝 번호)이 True가 되었을 때 토큰을 전이하도록 프로그래밍하였다.

동작하는지 확인하기 위해 애니메이션 테이블을 하나 만들자.

시뮬레이션으로 동작을 확인한다.

예상대로 잘 동작하는 것을 확인할 수 있다. ㅎㅎ



요약
- Grafcet POU는 SFC와 유사한 개념
- Grafcet POU에는 토큰을 핸들링하기 위한 스텝과 트랜지션만 추가하고 각 스텝별 액션은 스텝에 지정


Share:
spacer

댓글 없음:

댓글 쓰기

참고: 블로그의 회원만 댓글을 작성할 수 있습니다.