آموزش Arena آشنایی با محیط آرنا

1395/9/27 هادی هرمزی 4597

درود. هرمزی هستم و با قسمت دوم آموزش آرنا در خدمت شما  هستم.

تو جلسه پیش گفتیم که اصلا چرا شبیه سازی لازمه و چرا شبیه سازی با آرنا خوبه. امروز یه مقدار با محیطش آشنا میشیم.

Arena چیست ؟

اما یه دوره که Arena چیه. این نرم افزار محصول شرکت Rockwell Software بوده و یکی از بهترین نرم افزارهای شبیه سازی کامپیوتری بصورت گرافیکیه.

بخش های مهم Arena این هاست:
نرم افزار Arena دارای دو بخش مهمه
یکی قسمت فلوچارت (Flowchart View)
و اون یکی قسمت صفحه گسترده (Spreadsheet View)
قسمت فلوچارت حاوی نمودارهای مدله. یعنی این بخش شامل عناصر طراحی ، انیمیشن و فلوچارت های پردازشه. عمل ویرایش کردن هر شی از طریق Double-Click رون شکل اون شی و تنظیم از طریق پنجره مکالمه (Dialog) انجام میشه.
قسمت صفحه گسترده داده های مدل مثل زمان و  پارامترهای دیگه رو نشان میده. تو این بخش می تونیم داده ها رو وارد، حذف و ویرایش کنیم.
بیشتر پارامترهای شبیه سازی رو می تونیم تو هر دوقسمت ویرایش کرد.

نوار پروژه (Project Bar) :
نوار پروژه درست سمت چپ پنجره Arena واقع شده. این نوار شامل پانلهایی که تو اون بلوکهای سازنده مدلها قرار می گیرن. (شکل زیر)
تو هر لحظه فقط یه پانل تو نوار پروژه نشان داده میشه. از طریق دکمه های افقی می تونین به پانل های مختلفی سوییچ کنین. چند نمونه از پانل های نوار پروژه :
Basic Process
 (شامل بلوکهای اصلی سازنده مدلها که همان ماژولها هستن.)
Reports
 (شامل انواع گزارش ها ست که البته بعد از اجرا دیده میشن.)
Navigate
(برای جابجایی بین دیدهای مختلف توی یه مدل)

آرنا یه چیزایی تو خودش داره که خیلی مهمن: ماژول ها (Modules). ماژوووووووول؟!!! بله
ماژولها بلوک های اصلی برای ساخت مدل شبیه سازی برای Arena هستن که تو پنجره Project Bar قرار دارن. ماژولها بطور کلی دو دسته هستن:
ماژولهای فلوچارت (Flowchart Modules): ماژولهایی که شکل گرافیکی مشخصی دارن و می تونید اونها رو تو مدل جایگذاری (Drag and Drop) کنید. اجزای سیستم رو می توانید با استفاده از این ماژولها تو مدل وارد کنین. ماژولهای فلوچارت عناصری پویا هستن  که تو طول زمان تغییر می کنن و بر اساس شکل کلاسیک فلوچارت که توسط Schriber در سال 1969 معرفی شده ایجاد شدن.
ماژولهای داده (Data Modules): ماژولهایی که شکل مشخصی ندارن و به صورت صفحه گسترده هستن و مشخص کننده برخی خصوصیات مختلف اجزای سیستم مثل نهادها، منابع، صفها و .. هستن. تازه از اونها برای تعریف و تنظیم یه سری متغیرهای خاص، مشخصه های آماری و خیلی از خصوصیت های دیگه رفتار سیستم ها استفاده میشه.

ماژولها بنا به نوع استفاده شون طبقه بندی های مختلف دارن:
ماژولهای پایه Basic Process
ماژولهای Advanced Process
ماژولهای Advanced Transfer
ماژولهایBlocks
ماژولهای Flow Process
ماژولهای Packaging
ماژولهای Agent
ماژولهای Contact Data
ماژولهای Elements
ماژولهای Script


که به صورت پیش فرض فقط ماژولهای Basic Process توی پنجره Project Bar وجود دارن و بقیه ماژولها (که با پسوند .tpo معمولا تو شاخه نصب شده نرم افزار ذخیره شدن) رو میشه به این صورت زیر به Project Bar اضافه کرد:
 

File>Template Panel>Attach…

 

ماژولهای پایه :

برای مدلسازی باید ماژول مورد نظر تون رو به صورت Drag and Drop تو Flowchart Window قرار بدین. بعدش با دو روش می تونید اطلاعات مربوط به هر ماژول رو تنظیم کنین:
بصورت Dialog : با کلیک راست روی شکل ماژول و یا Double-click روی شکل ماژول (شکل زیر براتون ظاهر میشه)

بصورت جدولی: با استفاده از صفحه گسترده تو پنجره Spreadsheet :
که به دو روش قابل انجامه:
با کلیک روی هر ماژول تو قسمت Spreadsheet و وارد کردن داده ها تو فیلدهای مورد نظر

و یا با Double-Click کردن روی مثلث ابتدای هر سطر از ماژول های داده و وارد کردن داده های مورد نظر تو پنجره Dialog باز شده

برای آشنایی با ماژولهای پایه و کاربردهای اونها از یه مثال معروف استفاده می کنیم تا تمرین دوستان دانشجو رو هم یه جورایی راه انداخته باشیم ;)

مثال 1:
می خواهیم ایستگاه سوراخکاری یک خط مونتاژ را با استفاده از نرم افزار Arena شبیه سازی کنیم. قطعات هر کدام به صورت تصادفی وارد ایستگاه شده و پس از انجام عملیات سوراخکاری به ایستگاه بعد می روند. مدت زمان بین ورود دو قطعه دارای توزیع نمایی به پارامتر 5 بر حسب دقیقه است. همچنین مدت زمان انجام عملیات سوراخکاری برای هر قطعه نیز دارای توزیع مثلثی با پارامترهای a = 1 , b = 2 c = 3 می باشد.

برای اینکه یه چالشی هم داشته باشیم و آموزش مون تعاملی باشه من ماژول هایی که لازمه رو میگم و تنظیمات لازمه رو هم میگم. شما تو آرنا اجراش کنین و نتیجه ش رو برام بفرستید. اگر استقبال بشه روند رو کامل تر میکنیم:

ماژولها و تنظیمات آنها:

Create Flowchart Module :
تعریف ماژول: این ماژول به عنوان نقطه شروع شبیه سازی مطرح میشه و وظیفه ش تولید نهادها با در نظر گرفتن توزیع ورود و سایر خصوصیات مربوط به اونه. نهادها بر حسب زمانبندی خاص ایجاد و داخل سیستم می شن. نهادها برای انجام فعالیتی توی سیستم، این ماژول رو ترک می کنن و به قسمت بعدی می رن. اسم و مشخصات نهاد تو ماژول نهاد تعریف میشه که بعدا میگم.

از موارد استفاده این ماژول می شه به وارد شدن مواد برای یک خط تولید
ورود یه سند (مثل برگه دستور، چک، برگه درخواست و ...) توی یه فرایند کاری – اداری
ورود یه مشتری توی یه فرایند سرویس دهی (مثل فروشگاه، رستوران، بانک و ...) اشاره کنم

این هم تنظیمات ماژول
Create

تنظیمات ماژول:
نام ماژول: نام دلخواه برای ماژول (دقت کنین که Arena با فونت های فارسی سازگار نیست. پس نام ها رو به صورت لاتین و یا شبه فارسی انتخاب کنین.)
نوع نهاد (موجودیت): نام دلخواه برای عناصری که ماژول تولید می کنه. هر نامی که انتخاب بشه، یه ماژول نهاد (Entity) توسط Arena با همان نام ساخته میشه که این نهاد تولید شده با کلیک بر روی ماژول Entity در پنجره Project Bar قابل مشاهده و تنظیمه.
ماژول نهاد (Entity) :ویژگی ها و مشخصه های مختلفی که در نهاد وجود دارد را ایجاد می کند.

شکل ماژول نهاد

نوع ورود : Arena یکی از چهار الگوی زیر رو برای نوع ورود محاسبه میکنه:
Random (Expo)
  توزیع بین دو ورود نمایی بوده و مقدار Value بیانگر میانگین این توزیع نمایی و Units نشاندهنده واحد زمانی توزیعه که یکی از مقادیر ثانیه، دقیقه، ساعت و روز رو می گیره.

Schedule :
 توزیع بین دو ورود نماییه اما میانگین اون براساس برنامه زمانیه که کاربر برای Arena تعریف میکنه. (تو فروم های تخصصی و کتاب ها میگن برای داده های خود همبسته کاربرد داره! من که نفهمیدم یعنی چی چی :) ) در قسمت Schedule Name نام جدولی که قراره زمان ورود نهادها از آن خونده بشه می نویسیم.

جدول یکی دیگر از ماژولهای داده ایه که مثل ماژول نهاد از پنجره Project Bar قابل دستیابیه.

Constant : مدت زمان بین دو ورود ثابته.

Expression : مدت زمان بین دو ورود توزیع دیگری داشته باشه.

که این توزیع های دیگه میتونه یکی از موارد این عکس باشه:

توی بخش Entities Per Arrival مشخص می شه که تو هر بار ورود نهادها چند نمونه از نهاد تولید میشه(بطور مثال مشتریان چند تا چند تا وارد سیستم میشن.)
تو بخش Maximum Arrivals تعیین میشه که حداکثر تعداد نهادهای تولیدی چقدر باشن. (بطور مثال چند مشتری تولید بشه.)
تو بخش First Creation مشخص میشه که اولین نهاد تو چه زمانی تولید بشه (بطور مثال اولین مشتری کی وارد سیستم بشه.)
عدد نوشته شده جلوی شکل ماژول Create بیانگر تعداد Entity هاییه که تاکنون این ماژول تو شبیه سازی تولید کرده.

و اما دومین ماژولی که لازم داریم و تنظیمات اون:
Process Flowchart Module :
تعریف ماژول:ماژول پروسه برای نشان دادن انجام یک عملیات پردازشی یا گرفتن سرویس و اشغال نمودن یک یا چند منبع از سیستم استفاده می شود. در واقع از طریق این ماژول کارها و فعالیت های اصلی فرایندهای اصلی سیستم را تعریف نمود. در این ماژول می توان تخصیص منابع کاری برای دریافت، کار کردن و رها کردن مواد را انجام داد.
* اگر بخواهیم چند فعالیت و یا حتی یک فرایند کامل را (با انواع ماژول های آن) در زیر مجموعه ماژول پروسه خود قرار دهیم، کافی ست آنها را در حالت Submodel تعریف کنیم.

موارد استفاده از ماژول Process :
ارایه سرویس به مشتری
کار ماشین آلات
بررسی یک برگه برای تکمیل کردن
انجام دادن دستورات
سرویس دهی به یک مشتری
استفاده از یک کامپیوتر
سرو یک  غذا در رستوران (سلف سرویس)
عملیات ماشینکاری
بررسی یک قطعه معیوب

این هم ریخت و قیافه ش

تنظیمات ماژول:
Name : نام دلخواه برای ماژول
Type : نوع پروسه مشخص می شود
Action : این بخش که زیر مجموعه بخش منطق (Logic) ماژول است، بیانگر نوع عملکرد پروسه است و چهار حالت دارد:
Delay : وقتی نهاد وراد می شود بدون هیچگونه استفاده از منابعی فقط دچار تاخیر می شود و سپس همه نهادهای جمع شده با هم خارج می شوند. مثال : چراغ قرمز

Seize Delay :
در این حالت نهاد وارد می شود ، منبع رو اشغال (Seize) می کند اما اونو رها نمی کنه و فرض بر اینه که تو یه جای دیگه از سیستم اون رو رها (Release) میکنه.(حالت iv) مثل کرایه دوچرخه در شهربازی یا سلف سرویسی که در آن غذا منبع فرض شده باشه.

Seize Delay Release :
در این حالت نهاد وارد می شود، منبع را اشغال می کند، پس از اتمام کار آن را رها می کند. مثل سرویس گرفتن در بانک و فرایندهای تولیدی (بیشتر مثال های شبیه سازی که تو ایران درس داده میشن با این نوع منطق پروسه کار میکنن.)

Delay Release :
 برای حالتیه که منبع قبلا اشغال شده (حالت ii ) و حالا باید رها بشه.

Priority :
 در حالات دوم و سوم به خاطر وجود عمل اشغال (Seize)، این بخش اضافه میشه که نشونه اولویت اشغال منبع توسط نهادها (مشتریان)هست و سه مقدار شماره گذاری شده High (1) ، Medium (2) و Low (3) می گیره.
Resources :
 در حالات ii و iii و iv به دلیل وجود منبع، این بخش افزوده میشه که لیستی از منابعی که می تونین برای پروسه در نظر بگیرین رو نشان میده.

با سه تا دکمه Add ، Edit و Delete می توان منابع را ایجاد، ویرایش و حذف کرد. با زدن دکمه های Add و Edit پنجره زیر باز می شود که دارای تنظیمات زیره:

ببخشین که اینقدر جز به جز میگم. چون میخوام به همه سوالات احتمالی جواب بدم

Type :
تو اینجا نوع منبع تعیین می شه که برای منابع همسان از نوع Resource و برای منابع غیرهمسان از نوع Set استفاده می کنیم.
Resource / Set Name :
توی این بخش نام منبع یا مجموعه منبع تعیین می شود.
Quantity :
توی این بخش تعداد منبع یا مجموعه منابع رو مشخص می کنیم.
Selection Rule :
قانون انتخاب از میان عناصر رو تعیین می کنه که خداییش توضیح اون خارج از چارچوب این بخشه و خودش یه جلسه بحث میخواد.
Save Attribute :
 برای تعیین محل ذخیره سازی نتیجه کنش روی مجموعه منابعه

تمامی تنظیمات مربوط به ماژول Process رو می تونین از طریق Spreadsheet View نیز انجام بدین.

Delay Type :
در این بخش نوع توزیع تابع ریاضی تاخیر توی ماژول Process مشخص میشه که می تونه یکی از حالات زیر باشه:
۱( Constant :
 یه مقدار ثابت رو توی قسمت Value به عنوان زمان تاخیر وارد میکنیم.

۲) Normal :
 با این گزینه مقدار تاخیر با توزیع نرمال مشخص میشه. مقدار انحراف استاندارد (Standard Deviation) توزیع نرمال رو توی بخش Std Dev تعیین میکنیم.

۳) Triangular :
 مقدار تاخیر از روی توزیع مثلثی تعیین میشه. تو اینجا مقدار Minimum، Maximum و Value برای گرفتن حداقل، حداکثر و فراوانترینی توزیع مثلثی است.

Uniform :
زمان تاخیر با توزیع یکنواخت مشخص میشه. بخش های Minimum  و Maximum بیانگر حداقل و حداکثر زمان توزیع است.

۵) Expression :
یک عبارت محاسباتی به جز موارد ۱ تا ۴ برای تعیین تاخیر استفاده میشه. برای دادن مقدار به عبارت بخش Expression می تونین از لیست یه تابع رو انتخاب کنین و برای ساختن عبارت دلخواه، راست کلیک کنین و. Build Expression رو انتخاب کنین.

Units :
 واحد زمانی تاخیر را مشخص میکند که می تونه یکی از مقادیر ثانیه (Seconds)، دقیقه (Minutes)، ساعت(Hours) و روز (Days) باشه.
Allocation :
 نوع عملکرد تاخیر (هدف تاخیر) رو مشخص می کنه که می تونه یکی از مقادیر ارزش افزوده (Value Added)، ارزش ناافزوده (Non-Value Added)، جابجایی (Transfer)، انتظار (Wait) و دیگر (Other) باشه. (برای نام گذاری تو گزارشات بیشتر استفاده میشه.)
Report Statistics :
 با انتخاب این گزینه تعیین میکنیم که فعل و انفعالات این پروسه در گزارش شبیه سازی آورده بشه و یا خیر.

عدد نوشته شده زیر شکل ماژول Process، نشونه تعداد نهادهاییه که درگیر پروسه شدن و منتظر آزاد شدن منبع هستن(WIP).

اما آخرین ماژول امشب اگر خدا بخواد ماژول خروج نهاد هاست:

Dispose Flowchart Module :
تعریف ماژول : این ماژول برای نشون دادن مسیر خروج نهادها (مشتریان) استفاده می شه.در واقع این ماژول به عنوان نقطه نهایی حضور نهاد توی سیستمه و مکانیه که نهادها از اون خارج میشن. یعنی این ماژول به عنوان نقطه پایانی یه نهاد تو مدل شبیه سازیه. اطلاعات و آمار یه نهاد تا قبل از خارج شدن اون از طریق ماژول Dispose می توانند ذخیره و ارائه بشن.

موراد استفاده از ماژول Dispose :
قطعاتی که یک خط تولید را ترک می کنند.
پایان دادن به یک فرایند کاری- اداری
مشتریانی که فروشگاه یا بانک را ترک می کنند.

راستی اینم بگم که لزومی نداره که یه مدل فقط یه Dispose داشته باشه و می تونین برای هر نوع نهاد یه Dispose خاص داشته باشین.
یه ضرب المثل آرنایی هست که میگه Dispose زیاد داشتن عیب نیست٬ موجودیت بدون خروجی داشتن عیبه!


 

عدد کنار شکل ماژول Dispose نشونه تعداد نهادهاییه که تاحالا از این مسیر خارج شدن

تنظیمات ماژول :
Name :
 نام دلخواه برای ماژول
Record Entity Statistics :
خروجی ماژول که همون خروجی سیستمه توی آمار پایان شبیه سازی ذکر بشه یا خیر.

چون هنوز ممکنه خوب راه نیافتاده باشین این تنظیمات رو انجام بدین و ازش برامون اسکرین شات بفرستید.بعدا این روند رو کامل میکنیم.

دانلود PDF قسمت دوم آموزش Arena

کلمات کلیدی