[HMI] InTouch Script 사용하여 물류 프로그램 만들기
[ AVEVA InTouch로 작은 물류 프로그램 만들기 ]
< 동작 조건 >
▷ 문이 열리면 상자가 앞으로 나오고, 화살표 방향대로 상자가 움직인다.
▷ 나오는 동작의 값이 0, 오른쪽 문으로 들어가는 동작의 값이 100일 때, 0~100까지의 position 슬라이더로 조절 가능.
▷ speed 슬라이더로 상자가 움직이는 속도 조절 가능. (0~10까지)
▷ 상자가 문을 나와서 가운데 기계에 들어갔다가 오른쪽으로 나오면 상자에 테이핑과 바코드 붙이기.
위 조건을 고려하여, 제작해보기 !!!
InTouch HMI Application Manager, InTouch HMI WindowMaker, InTouch HMI WindowViewer
위 프로그램 3개를 사용하여 구현하였습니다.
STEP 1. 요소 제작 & 태그 생성
- 제작 요소
: speed 슬라이더, position 슬라이더, 문, 상자, 테이핑 기계
▷ 문은 열린 문, 닫힌 문 두 개의 문을 사용하여 열리고 닫힘을 visibility로 표현.
→ position 값이 0~10일 때 : 왼쪽 문 열림.
→ position 값이 90~100일 때 : 오른쪽 문 열림.
▷ 상자는 기계에 들어가기 전과 후 테이핑/바코드 유무의 상자 2가지를 사용.
→ 문에서 나와서 기계에 들어가기 전 상자1, 기계에서 나와서 오른쪽문으로 들어가는 상자2.
STEP 2. position값에 따른 요소 동작 구현 ( 상자 )
· position 0 ~ 30 : 왼쪽 문에서 나오는 동작.
· position 30 ~ 70 : 오른쪽으로 이동하는 동작.
· position 70 ~ 100 : 오른쪽 문으로 들어가는 동작.
▷ position 30 ~ 70에서 상자 테이핑/바코드 붙여주기.
→ position 30 ~ 50 : 상자1 이동하고 숨기기.
→ position 50 ~ 70 : 상자2 보여주고 이동하기.
STEP 2. position값에 따른 요소 동작 구현 ( 문 )
· position 0 ~ 10 : 왼쪽 문 열림.
· position 90~ 100 : 오른쪽 문 열림.
Window Script에서 Condition Type이 'While Showing'일 때,
position 값에 따라 문의 동작 값을 설정해 주었다.
내가 제작한 프로그램은 Window가 열려있는 동안 계속 작동하도록 만들고 싶어서 Window Script에서 Script를 작성하였다.
만약, 시작/종료 버튼을 사용하여 on(1) 일 때만 작동시키고 싶으면 Condition Script에서 작성하면 된다.
STEP 3. speed 슬라이더로 속도 조절
position 값에 speed 값에 따라 position 값이 변하도록 Script에서 설정.
Window Script에서 Every 1 Msec으로 설정을 해주었기에, position = position + 1*speed 수식을 사용하였다.
'speed' 태그를 생성하여, 입력(슬라이더)/출력(text버튼)에 동일 Tagname을 사용하여 입출력을 확인할 수 있게 설정하였다.
태그 생성과 반복되는 작업들은 생략하여 작성하였다.
구현하면서 각각의 상황 및 성격에 맞게 Tag를 사용하고 스크립트에 설정해 주었다.
동일한 Tagname을 사용할 때, 각 동작을 나타내기 위해 입력(input) 및 출력(output)을 적절하게 설정해야 하고
Script도 원하는 상황에 맞게 알맞은 Script를 사용하여 구현되어야 한다 !
이렇게 직접 구현하면서 프로그램을 효과적으로 구현할 수 있게 되었고, 태그 사용과 스크립트 작성을 효과적으로 활용할 수 있게 되었다 ! ^_^