عرض المشكلة:
قسم التصنيع في شركة إلكترونات يقوم بصناعة
ساعات رقمية. في قسم التوزيع تعبأ الساعات بشكل تلقائي بواسطة آلة تعبئة في علب
جاهزة للعرض بالكميات التي يطلبها الموزعون. حجم الطلب يعطى بالدالة التالية:
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
لعدة مرات. لاحظ النتائج ودون ملاحظاتك.
قم ببعض التجارب على معالم النظام ولاحظ مايحدث ثم دون ملاحظاتك.