From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

[Archive] 강좌게시판

취소
다음에 대한 결과 표시 
다음에 대한 검색 
다음을 의미합니까? 

[myLV.net 집필진 강좌] Ladder Game with AF - 실습 - 1

 [myLV.net 집필진 강좌 – 웅킹킹킹]

 

안녕하세요. 웅킹킹킹 입니다.

 

 

 

최근 프로젝트 진행한다고 업데이트가 늦었네요. ㅜㅜ

 

지난 시간까지 예제로 실습을 진행할 Ladder Game의

 

UML을 분석했습니다.

 

UML은 이해가 되시던가요?

 

제가 만든 Ladder Game의 설계도 같은 개념이기 때문에

 

여러분들께서 다른 UML 구조가 떠오르시면

 

다른 방법으로도 구현해보세요. 많은 도움이 되실 거예요.

 

그럼 이번 시간부터 본격적으로 예제를 한 단계씩 같이

 

진행해나가도록 하겠습니다.

 

 

 

우선 UI부터 제공해드리겠습니다.

 

UI는 첨부한 파일을 확인해보시면 됩니다.

 

1.UI

  

1.png

 

UI의 모습입니다. VI파일에 모두 올려놓았으며 예제를 진행하시면

 

UI를 구현할 때 가져다 사용하시면 됩니다.

 

그럼 각각의 UI 구성에 대한 설명입니다.

 

2.png

  

먼저 2,3,4,5 등의 User 수를 선택해서 Create Map버튼을 클릭하면

 

사다리 맵이 형성되는 UI입니다.

 

3.png

 

선택한 User 수에 따라서 형성되는 Ladder Game의 User 버튼입니다.

 

최대 5인이겠죠?

 
4.png

 

그리고 각각의 User가 Ladder Map을 타고 간

 

결과 값을 나타내는 아이콘입니다.

 

각각의 User가 사다리를 타고 내려간 위치에 결과 아이콘의 위치가

 

이동하는 형태입니다.

 

5.png

 

그리고 Ladder Map 입니다.

 

Ladder Map은 불리언의 2D 배열로 이루어져있습니다.

 

저렇게 보여도 매우 작은 불리언 LED로 만들어서

 

꽤 무거워요. 하지만 프로그램 구동에는 문제가 없습니다.

 

그럼 이제 예제를 시작해보도록 하겠습니다.

 

2. 프로젝트 생성하기

 

 

6.png

 

우선 프로젝트를 진행할 폴더를 만들어줍니다

 

Ladder Game이라는 폴더를 만듭니다.

 

7.png

 

8.png

 

9.png

  

저는 LabVIEW 2015 버전을 사용합니다

 

새로 만들기 → 새 프로젝트 → Ladder Game으로 저장

 

프로젝트를 저장할 때는 이 전에 만들어둔 폴더에 저장하도록 합니다

 

3. Actor 클래스 생성하기

 

 

10.png

 

11.png

  

그리고 프로젝트에 Actor Framework 라이브러리를 추가합니다

 

지금까지 제 강좌를 읽어보셨으면 많이 익숙하실 거예요

 

위 그림과 같이 프로젝트에서 추가 → 파일

 

그리고 라이브러리를 추가합니다

 

라이브러리 위치는

 

C:\Program Files (x86)\National Instruments\LabVIEW 2015\vi.lib\ActorFramework 폴더에 있습니다.

 

12.png

  

Actor Framework 라이브러리가 추가된 모습입니다.

 

13.png

  

지난 시간에 다루었던 UML을 다시 한번 살펴보면

 

 

14.png

 

Ladder Game, Runner Manager, Runner 클래스는

 

Actor 클래스를 상속받은 하위 클래스입니다.

 

15.png

  

그리고 Ladder Map 클래스는 아무것도 상속받지 않은

 

최상위 클래스 입니다

 

Actor Framework에서 Actor 클래스를 상속 받은 클래스와

 

상속 받지 않은 클래스는 매우 다르기 때문에 구분 짓기

 

위해서 폴더를 생성하도록 합니다

 

16.png

 

Actor폴더, Support Class (non-Actors)라는 폴더를 만듭니다.

 

Actor 폴더에는 Ladder Game, Runner Manager, Runner 클래스가

 

들어가겠죠?

 

Support Class (non-Actors) 폴더에는 Ladder Map 클래스가

 

들어갑니다.

 

 

17.png

 

18.png

 

 

그리고 프로젝트의 내 컴퓨터에서

 

새로 만들기 → 버추얼 폴더를 선택해서

 

Actor, Support Class (non-Actors) 라고 만듭니다.

 

프로젝트의 폴더구성과 실제 폴더의 구성과 유사하게 만들어 줍니다

 

Actor Framework에서는 흔히 사용하시는 “자동 적용 폴더”로 사용하게 되면

 

같은 이름의 Method를 많이 사용하기 때문에 충돌이 일어날 가능성이

 

있습니다. 그래서 버추얼 폴더로 관리하게 됩니다

 

실제로 저도 Actor Framework를 사용하면서 버추얼 폴더로만

 

사용하다보니

 

버추얼 폴더가 오히려 장점이 더 많은 것 같더라고요

 

 

19.png

 

20.png

 

Actor 버추얼 폴더에서

 

새로 만들기 → 클래스를 선택해서

 

Ladder Game 클래스를 만들어줍니다.

 

Actor 폴더에서 Ladder Game이라는 폴더를 생성해서

 

Ladder Game\Actor\Ladder Game에

 

Ladder Game 클래스로 저장합니다.

 

 

21.png

 

22.png

 

23.png

 

24.png

 

 

생성한 Ladder Game 클래스의 프로퍼티에서

 

클래스의 아이콘과 상속을 설정합니다

 

위의 그림과 같이 순서대로 진행하시면 됩니다

 

 

 

나머지 Runner Manager, Runner 클래스도 같은 과정으로

 

생성하고 클래스 상속설정을 합니다

 

 

25.png

 

26.png

 

27.png

  

이렇게 3개의 Actor 클래스를 완성했습니다

 

위의 그림은 클래스가 생성된 LabVIEW 프로젝트 모습과

 

클래스 계층 구조 모습 (Actor 클래스의 하위에

Ladder Game, Runner Manager, Runner 클래스가 있는 것을

볼 수 있음)

 

그리고 실제 프로젝트 폴더 모습입니다

 

각 클래스는 Method가 추가되기 때문에 폴더를 생성해서

 

관리하는 것이 편합니다

 

 

 

지금까지 예제 Ladder Game의 Actor Framework 구조와

 

3개의 Actor 클래스 Ladder Game, Runner Manager, Runner 클래스를

 

생성했습니다.

 

 

 

다음 시간에는 non-Actor 클래스인 Ladder Map 클래스를 생성하고

 

각 Actor 클래스의 Data 멤버와 Method를 생성하는 과정을

 

진행하도록 하겠습니다

기여자