7- محاكاة نظام تصنيع قطع إلكترونية

عرض المشكلة:

قسم التصنيع في شركة إلكترونات يقوم بصناعة ساعات رقمية. في قسم التوزيع تعبأ الساعات بشكل تلقائي بواسطة آلة تعبئة في علب جاهزة للعرض بالكميات التي يطلبها الموزعون. حجم الطلب يعطى بالدالة التالية:

Order Size      6    12    18    24    30    36    48

Frequency   .10   .25   .30   .15   .12   .05   .03

متوسط الزمن بين وصول الطلبات 15 دقيقة موزع أسيا. زمن التعبئة لكل طلب 120 ثانية بالإضافة إلى 10 ثوان لكل ساعة رقمية تعبأ في الطلب. قسم التصنيع ينتج الساعات الرقمية في مجموعات بحجم 60 وحدة في 455 دقيقة.

حاكي 5 أيام من نشاط الشركة لكي تعطي المعلومات التالية:

1-    متوسط عدد الطلبات المنتظرة في قسم التعبئة

2-    كمية الساعات الرقمية الموزعة كل يوم

3-    توزيع الأوقات الإنتقالية transit times للطلبات

عرض البرنامج:

; GPSS World Sample File - MANUFACT.GPS, by Gerard F. Cummings

*********************************************************************

*             Manufacturing Company                                   *

**********************************************************************

*      Time Unit is one hour                                          *

Sizeorder FUNCTION   RN1,D7                  ;Order size

.10,6/.35,12/.65,18/.80,24/.92,30/.97,36/1.0,48

Transit   TABLE      M1,.015,.015,20         ;Transit time

Number    TABLE      X1,100,100,20           ;No. packed each day

Ptime     VARIABLE   .0028#P1+0.0334         ;Packing time

Amount    EQU        1000                    ;Initial stock amount

Stock     STORAGE    4000                    ;Warehouse holds

                                             ;  4000 units

**********************************************************************

          GENERATE   (Exponential(1,0,0.25)) ;Order arrives

          ASSIGN     1,1,Sizeorder           ;P1=order size

          TEST GE    S$Stock,P1,Stockout     ;Is stock sufficient?

          LEAVE      Stock,P1                ;Remove P1 from stock

          QUEUE      Packing

          SEIZE      Machine                 ;Get a machine

          DEPART     Packing

          ADVANCE    V$Ptime                 ;Packing time

          RELEASE    Machine                 ;Free the machine

          SAVEVALUE  1+,P1                   ;Accumulate no. packed

          TABULATE   Transit                 ;Record transit time

          TERMINATE

Stockout  TERMINATE

**********************************************************************

          GENERATE   0.75,0.08334,1          ;Xact every 40+/-5 mins

          ENTER      Stock,60                ;Make 60, Stock

*                                               increased by 60

Stockad   TERMINATE

**********************************************************************

          GENERATE   8                       ;Xact every day 

          TABULATE   Number

          SAVEVALUE  1,0

          TERMINATE  1

**********************************************************************

          GENERATE   ,,,1,10                 ;Initial stock xact

          ENTER      Stock,Amount            ;Set initial stock

          TERMINATE

**********************************************************************

 

النموذج منظم في عدة أجزاء. بعد تعريف الكائنات  function و  variableو  Storage توجد أربع أجزاء من النموذج. المتعاملين قي الجزء الأعلى من النموذج يمثلوا الطلبات، والمتعاملين في الجزء التالي يضيفوا مجموعات من 60 ساعة رقمية إلى المخزون، المتعاملين في الجزء التالي يجدولوا المبيعات اليومية ويوقتوا زمن المحكاة الكلي بالأيام، والمتعامل في الجزء الأخير من النموذج يستهل مستوى المخزون إلى 1000 وحدة.

تقاس وحدات الزمن بالساعات. مستوى المخزون مثل بالمتغير S$Stock ، وهو المحتوى الحالي في كائن المخزون Stock و لهذا نستخدم LEAVE لكي نأخذ من المخزون و ENTER لكى نضيف إليه. الطلبات غير الملباة هي مخزون منتهي stockouts . مساحة تخزين البضائع المتاحة تكفي لـ 4000 وحدة. مستوى المخزون الممثل بـ S$Stock يستهل بـ 1000 وحدة عند بداية المحاكاة بواسطة متعامل ذا افضلية عليا في الجزء الأخير من النموذج. هذا المتعامل سيكون أول من يتحرك في المحاكاة.

إجراء المحاكاة:

لكي نجري المحاكاة ونولد تقرير معياري نختار  File / Open وفي صندوق الحوار نختار MANUFACT ثم نضغط  Open ثم نخلق المحاكاة بالأمر  Command / Create Simulationثم نختار  Command / STARTونكتب 5 بدلا من قيمة 1 الموجودة ثم  OKستنتهي المحاكاة عند دخول 5 متعاملين قالب  TERMINATE 1 وهذا يمثل 5 أيام من عمل المصنع. كالمعتاد سيكتب تقرير معياري إلى الملف Manufact.1.1 كما ان هذا التقرير يعرض ذاتيا في نافذة التقارير.

مناقشة النتائج:

نستطيع الإجابة على الأسئلة المطروحة في عرض المشكلة من المعلومات الناتجة في التقرير:

·       متوسط عدد الطلبات المنتظرة في قسم التعبئة هو فقط 0.12 . وهو من قيمة Ave. Cont. في التقرير تحت Queue Entity Packing.

·       توزيع الساعات الرقمية الموزعة يوميا معطى في Table Number .

داخل المحاكاة:

لنستعرض الآن حالة نهاية المحاكاة والتي تولد لديها التقرير. لنستخدم الأمر SHOW لننظر إلى بعض الصفات العددية للنظام System Numeric Attributes . أولا عدد الطلبات المتلقاه ، نختار Command / SHOW وفي صندوق الحوار نكتب  N1 ثم  OK. سوف تشاهد النتيجة 169 في سطر الحالة Status Line في النافذة الرئيسية وفي نافذة الجريدة Journal Window كذلك. سوف نفحص الأن عدد المرات التي حدث فيها نفاذ المخزون stockout ، نختار   Command / SHOW ثم نكتب في صندوق الحوار  N$Stockout ثم  OK.

لنشاهد بعض النوافذ الرسومية، نختار

Window / Simulation Window / Storages Window

وهي نافذة المخازن Storages Window مستوى المخزون stock level يمثل بالمحتويات الحالية لكائن المخزون Storage Entity والتي قيمتها هنا 898 ستجد هذه القيمة تحت المخزن المستخدم Storage In Use في نافذة المخازن Storages Window . مستوى المخزون الحالي مرتفع جدا، إذا لم نتمكن من زيادة المبيعات فيجب علينا إنقاص مستوى الإنتاج. لنشتكشف نوافذ رسومية أخرى بعد إغلاق نافذة المخازن. نختار  Window / Simulation Window / Facilities Window . نشاهد أن فعالية آلات التعبئة منخفضة جدا. لون الآيقونة يبين لنا أن الآلة مشغولة حاليا. القي نظرة على القيم الأخرى المتاحة لك في الجزء المفصل من النافذة. لننظر الآن إلي الجدول الإنتقالي Transit Table لنختار

 Window / Simulation Window / Table Window

وفي صندوق الحوار اوجد Transit إضغط على   Transit ثم إختار   OK هذا يبين توزيع الأزمان الإنتقالية للطلبات order transit times . لننظر إلى جدول الأعداد Number Table إختار

Window / Simulation Window / Table Window

في صندوق الحوار سنجد ان  الجدول المسمي Number قد إختير فأضغط على  OK ، جدول الأعداد يبين المدرج التكراري للساعات الرقمية المعبئة كل يوم.

إقفل نافذة الرسومات. لنقم بالتجربة التالية: لنخلق طلب عندما يكون المخزون عند أعلى مستوا له. نفتح نافذة القوالب بإختيار  Window / Simulation Window / Blocks Window بالإستعانة بمؤشر الفارة إختار اول قالب TERMINATE في النموذج ( الذي يتبع قالب TABULATE ) وأضغط عليه. ستشاهد ان لون القالب يضيء. الآن لنضع شرط توقف Stop Condition على هذا القالب، إضغط على The Place Icon in the Debugging Toolbar  ثم اختار  Command / STARTوفي صنوق الحوار أكتب  5,NP ثم  OK عندما تتوقف المحاكاة حرك المتعامل النشط إلى الأعلى إلى جزء النموذج الخاص بالطلب، إختار  Command / Customوفي صندوق الحوار أكتب  TRANSFER ,2ثم OK ، الآن لاحظ الطلب بإجراء المحاكاة خطوة خطوة بإستخدام Ctrl+Alt+1 لعدة مرات. لاحظ النتائج ودون ملاحظاتك.

قم ببعض التجارب على معالم النظام ولاحظ مايحدث ثم دون ملاحظاتك.