지난 강의에서는 Flexsim에서 가장 기본이 되는 몇개의 개념과 용어에 대하여 설명드렸습니다.
잠깐 복습한다면...
1) 시뮬레이션에서 물류의 주체가 되는 리소스 즉 개체에는 discrete objects 와 fluid objects를 각각 그룹핑하여 두개의 라이브러리로 제공한다.
2) 각각의 개체 리소스들은 구성하고자 하는 모델의 전후 물류 흐름에 맞추어 라이브러리에서 마우스로 클릭하여 화면에 드레그하여 원하는 위치에 갖다 레이아웃을 배치한다.
3) 리소스간 흐름의 대상이 되는 것은 "아이템(Item)" 인데, 아이템을 생성하는 개체는 'Source' 라는 개체이며 초록색 화살표가 위로 그려진 아이콘의 개체이며, 마지막에 사라지게 만드는 개체는 'Sink' 라는 개체로 붉은 색 화살표가 아래로 향하여 그려진 아이콘 개체입니다.
4) 물류의 방향은 개체간에 선을 이어서 그려주는데 키보드(Ctrl-A)와 마우스 왼쪽을 클릭하여 From-To로 개체간에 연결하면 흐름의 방향이 설정되며 검은 선이 그려집니다. 마우스만을 사용하여 연결하는 경우에는 상단의 체인고리가 그려진 'A' 문자 아이콘을 클릭하여 그리는 방법이 있습니다.
오늘은 각 개체(리소스)에서 속성(Method)를 설정하여 '아이템(item)'을 어떻게 처리할 것인지 설정하는 방법을 설명하겠습니다.
드레그 드롭으로 화면에 배치한 라이브러리를 더블클릭하면 아래와 같은 속성편집창이 나타납니다.
이 속성 편집창에서 그 리소스의 모든 것들을 설정할 수 있습니다.
화면에 보이는 형태의 변경(크기,방향등...), 아이템을 처리하는 방법, 리소스간 메세지 송수신 등....
개체의 이름 변경, 그리고 이벤트 처리 방법등....아주 세부적인 것까지 로직등을 코딩으로 추가할 수도 있습니다.
이 속성창에는 여러개의 탭이 있으며 이 탭은 라이브러리의 개체마다 각각 기능이 다르듯이 그 설정하는 항목과 내용이 다르며 그에 따라 탭의 갯수도 그리고 탭의 명칭도 다릅니다. 그렇지만 공통적인 부분이 약 60~70%는 됩니다.
기본이 되는 속성들을 우선 익히면 나머지 다른 부분은 보이는 개체의 기능에 따라 설정하는 항목들을 충분히 쉽게 어떤 의미들인지 추정이 가능합니다. 그러니까 쉽게 초보자도 익힐 수 있습니다.
우선 위의 그림의 개체는 프로세서 입니다. 즉 아이템에 무엇인가 처리를 하는 개체입니다.
사실은 '준비(Setup) + 프로세싱' 의 시간동안 아이템이 이 프로세서에 머물러 있게 됩니다.
그리고 이 준비시간과 프로세싱 시간은 고정된 시간으로 설정할 수도 있으며, 통계 분포 함수를 설정하여 랜덤하게 발생하는 분포 값으로 처리할 수도 있습니다. 보통은 경우는 통계 분포 함수 값으로 처리하여 실제 세계와 유사한 결과를 얻도록 처리합니다.
이 통계 분포 함수에 대하여는 별도의 심오한(?) 학습이 요구되는 부분이며 flexsim과 같은 시뮬레이션 툴의 심장이자 꽃이기도 합니다.
이 부분에 대하여는 별도의 강의 과목을 설정하여 진행하기로 하겠습니다.
여기서는 약간 간단히 개념적인 설명을 하고 넘어가겠습니다.
예를 들어 어떤 아이템 하나를 프로세서가 처리하는데 준비시간 10 초, 작업시간이 평균 3분이 걸린다고 하면, 실제 상황에서는 준비시간이 10초 +- 어느 정도의 산포, 작업시간이 180초 +- 어느 정도의 산포가 걸립니다. 즉 랜덤한 값으로 분포를 하게 됩니다. 산포 값은 어떤 확률 분포를 가지느냐에 따라 달라집니다.
그렇지만 거의 무한대 또는 긴 시간동안의 분포 값들을 평균하면 약 10초 , 180초의 값으로 나타납니다.
이 분포 값들이 변동하므로 전후 공정/리소스에서 병목이 발생하기도 하고 idle이 발생하기도 하는 것이지요. 이런 시뮬레이션은 흔히들 물류 컨설턴트들이나 현자의 업무에서 엑셀을 사용하여 분석하는 경우에는 도저히 흉내내지 못하는 방법입니다.
Flexsim의 경우에는 이 분포함수에 대한 통계 소프트웨어는 'ExperFit' 라는 서드파트 제품을 내장시켜 놓았습니다. ExperFit은 독립적인 상품으로 판매하기도 합니다. 이 ExperFit 툴을 활용하여 현장의 어느 일정기간의 작업실적을 분석하여 어떤 분포를 하는지 역으로 분석하여 분포 함수를 찾아내는 기능도 구사합니다.
필요하면 랜덤한 값을 발생시켜 그 값들을 엑셀로 저장한뒤 활용하기도 합니다.
이 정도로 설명하고...
다시 본론으로 돌아가서, 리소스의 속서을 설정할 때 설비의 고장시간도 설정할 수 있습니다. 보수 시간도 설정할 수 있습니다. 물론 위에 설명한 분포함수를 활용할 수도 있습니다. 즉 년간 3% 정도의 고장이 발생한다면 이를 설정할 수 있다는 얘기입니다. 그래서 랜덤하게 고장을 일으키게 합니다.
개체의 이름을 위의 그림처럼 변경할수도 있습니다.(My Object 1)
디폴트는 드레그하여 화면에 끌어다 놓을 때 자체내에서 자동으로 일련번호를 뒤에 붙여 이름을 정해줍니다.
이때 동일한 이름이 있어서는 안됩니다. 에러를 발생합니다.
아래에 위의 프로세서의 각 탭들에 해당하는 화면을 캡처하여 보여 드리지요.
디폴트는 Push 입니다. 즉 앞 리소스에서 밀어넣어 주는 대로 받는 물류 정책입니다.
Pull은 앞의 리소스에 요청하는 물류 정책입니다. 즉 JIT(Just In Time)이라고 볼 수 있습니다. 흐름이 일어나는 시간이 각각 다릅니다. 당연히 중간에 Queue가 있다면 이 큐에 쌓이는 재고량도 달라지겠지요.
디폴트로 각 이벤트(OnReset, OnMessage,...)에 대하여 설정된 것은 없으며, 방법을 추가할 때에는 우측의 + 기호 아이콘을 눌러 추가하며, 지울때는 두번째 지우개 아이콘으로 지우고, 로직을 추가할 때는 세번째 아이콘을 눌러 C++ 또는 Flexsim Script를 추가하여 로직을 코딩합니다. 일반적인 프로그램 로직과 동일합니다. If 문, Do Case 문 등....
여기서 Port는 In/Out 그리고 Central 포트가 있는데 In/Out은 전후에 연결된 리소스 이름이 나타납니다.
Central 포트는 리소스간 메세지를 보낼 때 사용합니다.
시뮬레이션 하면서 프로세서가 처리하는 각종 통계값들을 실시간으로 확인 할 수 있는 창입니다.
이 정도로 이번 강의는 설명 드리겠습니다.
다음에는 모델 구성을 계속 진행하며 기본적인 개념들을 익혀 보겠습니다.
'3D 시뮬레이션' 카테고리의 다른 글
| 3D 시뮬레이션 강좌 (4) - Flexsim의 기초 : (리소스의 속성-Method) 설정 (0) | 2010/05/08 |
|---|---|
| 3D 시뮬레이션 강좌 (3) - Flexsim의 기초 (0) | 2010/04/26 |
| 3D 시뮬레이션 강좌 (2) - Flexsim의 기초 (0) | 2010/04/18 |
| 3D 시뮬레이션 강좌 (1) - Flexsim의 기초 (0) | 2010/04/16 |



