4- محاكاة ورشة تصليح تلفزيون
عرض
المشكلة:
تستخدم ورشة إصلاح اجهزة
تلفزيون عامل إصلاح واحد للصيانة الدورية overhaul لأجهزة الورشة المؤجرة ولصيانة اجهزة الزبائن وللقيام
بإصلاحات سريعة في حينها. الصيانة الدورية لأجهزة الورشة تبدأ كل 40±8 ساعة وتستغرق 10±1 ساعة لإكمالها. الإصلاحات السريعة مثل تغيير فيوز او
تعديل قنوات تجري فوريا وتصل كل 90±10 دقيقة وتستغرق 15±5 دقيقة. أجهزة الزبائن التي تحتاج إصلاح وصيانة عادية
تصل كل 5±1 ساعة وتستغرق 120±30 دقيقة لإنتهائها. أجهزة الزبائن لها الأفضلية في
التصليح عن الصيانة الدورية لأجهزة الورشة.
1-
حاكى عمل
الورشة لمدة 50 يوم.
2-
حدد فعالية
عامل التصليح والتأخير في خدمة الزبائن.
عرض
البرنامج:
; GPSS World Sample File -
TVREPAIR.GPS, by Gerard F. Cummings
*****************************************************************
* Television
Maintenance Man Model
*
*****************************************************************
* Repair of
rented sets, one each week
*
* Time unit is
one minute
*
*****************************************************************
GENERATE
2400,480,,,1
;Overhaul of a rented set
QUEUE
Overhaul ;Queue for service
QUEUE
Alljobs ;Collect global
statistics
SEIZE
Maintenance
;Obtain TV repairman
DEPART
Overhaul ;Leave queue for man
DEPART
Alljobs ;Collect global
statistics
ADVANCE
600,60 ;Complete
job 10+/-1 hours
RELEASE
Maintenance
;Free repairman
TERMINATE
;Remove one transaction
*****************************************************************
* On the spot repairs
GENERATE
90,10,,,3 ;On-the-spot repairs
QUEUE
Spot
;Queue for spot repairs
QUEUE
Alljobs ;Collect global
statistics
PREEMPT
Maintenance,PR ;Get the TV
repairman
DEPART
Spot
;Depart the 'spot' queue
DEPART Alljobs
;Collect global statistics
ADVANCE
15,5
;Time for tuning/fuse/fault
RETURN
Maintenance
;Free maintenance man
TERMINATE
****************************************************************
* Normal repairs on customer owned sets
GENERATE
300,60,,,2
;Normal TV Repairs
QUEUE
Service ;Queue for service
QUEUE
Alljobs ;Collect global
statistics
PREEMPT Maintenance,PR ;Preempt maintenance man
DEPART
Service ;Depart the
'service' queue
DEPART
Alljobs ;Collect global
statistics
ADVANCE
120,30 ;Normal
service time
RETURN
Maintenance ;Release the man
TERMINATE
*****************************************************************
GENERATE 480
;One xact each 8 hr. day
TERMINATE 1
* Day counter
*****************************************************************
* Tables of queue statistics
Overhaul
QTABLE
Overhaul,10,10,20
Spot QTABLE Spot,10,10,20
Service QTABLE Service,10,10,20
Alljobs QTABLE Alljobs,10,10,20
*****************************************************************
وصف عمل
النموذج:
GENERATE
المتعاملين والذين يمثلوا
اجهزة الورشة التي تحتاج الي صيانة دورية تولد في هذا القالب في المتوسط كل 40
ساعة. وحدة الزمن ستكون بالدقائق. هذه الإصلاحات تعطي اقل اولويه برتبة 1.
QUEUE
هنا تستخدم قالبين QUEUE لجمع إحصائيات منفردة. قالب QUEUE لكائن الطابور Queue Entityالمسمي Overhaul
يجمع إحصائيات ازمنة
البدء لأجهزة الصيانة الدورية. قالب QUEUE الثاني
لكائن الطابور Queue Entity
المسمي Alljobs يكرر في اماكن اخرى لكي يجمع إحصائيات
للأنواع الأخرى من التصليحات كما لهذة.
SEIZE
إصلاحات الصيانة الدورية التي
تنتظر وتحصل علي إهتمام عامل التصليح تمثل بكائن التسهيلة Facility Entity المسماة Maintenance
DEPART
عندما يحصل متعامل صيانة دورية
علي إنتباه تسهيلة عامل التصليح ينتهي وقت إنتظاره. إثنان من قوالب DEPART تسجل وقت الإنتظار لكائنين طابور Queue entities مختلفة.
ADVANCE
هذا القالب يحاكي زمن الصيانة
الدورية 600 ±60 دقيقة.
RELEASE
عند إكمال صيانة دورية فإن
المتعامل الذي يمثلها يخلي سبيل كائن التسهيلة المتمثل في عامل التصليح مما يسمح
لصيانة اخرى في ان تبدأ.
TERMINATE
المتعامل الممثل لصيانة دورية
ينهى من المحاكاة وبون إنقاص عداد الإنهاء Termination Count
GENERATE
المتعاملين Transactions الممثلين للإصلاحات
الفورية تولد في هذا القالب في المتوسط كل 90 دقيقة ولهم أفضلية أعلى من الصيانة الدورية.
QUEUE
هنا تستخدم قالبين QUEUE لجمع إحصائيات منفردة. قالب QUEUE لكائن الطابور Queue EntityالمسميSpot
يجمع إحصائيات ازمنة
البدء لأجهزة الصيانة الفورية. قالب QUEUE الثاني
لكائن الطابور Queue Entity
المسمي Alljobs يكرر في اماكن اخرى لكي يجمع إحصائيات
للأنواع الأخرى من التصليحات كما لهذة.
PREEMPT
بما ان الصيانة الفورية تقطع
كل انواع الصيانة الاخرى فإن المتعاملين الممثلين للصيانة الفورية تحاول الدخول في
طور أولوية لقالب إخلاء PREEMPT Block لكي تتحصل علي عامل التصليح وهذا سيوقف بشكل مؤقت اي عملية صيانة دورية او
عادية.
DEPART
عند إمتلاك متعامل صيانة فورية
لتسهيلة عامل التصليح ينتهي وقت إنتظاره. . إثنان من قوالب DEPART تسجل وقت الإنتظار لكائنين طابور Queue entities مختلفة.
ADVANCE
قالب ADVANCE Block يحاكي وقت التصليح 15±5 دقيقة.
RELEASE
عند إكمال صيانة فورية فإن
المتعامل الذي يمثلها يخلي سبيل كائن التسهيلة المتمثل في عامل التصليح مما يسمح
لصيانة اخرى في ان تبدأ.
TERMINATE
المتعامل الممثل لصيانة فورية
ينهى من المحاكاة وبون إنقاص عداد الإنهاء Termination Count
GENERATE-TERMINATE
هذا الجزء من النموذج يعمل
تماما كالجزء السابق مع فارق واحد، حيث ان الصيانة الفورية تقطع اي من انواع
الصيانة الاخرى، الا ان الصيانة العادية تقطع فقط الصيانة الدورية ولهذا فإننا
نعطي المتعامل الذي يمثل صيانة عادية افضلية مساوية 2 ( افضلية تقع بين الأفضليتين
الاخرى)
GENERATE
متعامل يستخدم لعد إنقضاء يوم
واحد يولد كل 8 ساعات
محاكاة.
TERMINATE
متعامل العد Counting Transaction ينتهى فوريا. هذا ينقص 1 من عداد الإنهاء Termination Count مما يسمح لنا
بالسيطرة علي طول المحاكاة بإستخدام العامل A ( operand A ) في امر START Command
QTABLE
عبارة QTABLE التي تبدأ بـ Overhaulتعرف مدرجات تكرارية لإحصائيات الطابور كل منها في
نافذة جدول Table Window
والتي تعرض في التقرير المعياري. لاحظ هنا اننا لانحتاج وضع قوالب TABULATE Blocks لجداول الطابور Qtables لأن الإحصائيات تسجل تلقائيا عند الدخول الي قالب DEPART Block المعني.
النموذج منظم في عدة أجزاء. كل
جزء له نوع مختلف من المتعاملين. الأجزاء الثلاثة الاولى تمثل الصيانة الدورية
والصيانة الفورية والصيانة العادية علي الترتيب. هذة كلها تتنافس علي
التسهيلة Facility Entity الوحيدة المسماة Maintenanceوالتي تمثل عامل التصليح. وظائف الصيانة الدورية اعطيت
اقل افضلية.
الجزء السفلي من النموذج يوقت
المحاكاة وذلك بتوليد وإنهاء متعامل كل يوم عمل محاكى. قالب TERMINATE هنا هو الوحيد الذي يسبب لعداد الإنهاء في
التناقص والذي يعطى من خلال الأمر START
Command والذي يوقف المحاكاة عندما يصبح عداد الإنهاء Termination Count (TG1) صفرا أو أقل.
أوقات الإنتظار لكل نوع من
انواع الصيانة تتجمع بواسطة كائنات الطابور Queue entities المسماة Overhaul
و Spotو Serviceأوقات التأخر لجميع الوظائف تتجمع بواسطة كائن الطابور Alljobs هذه الأوقات لاتشمل
أوقات التصليح فقط التأخر حتي يبدأ التصليح.
كائنات Qtable entities عرفناها لكل كائن طابور Queue Entity وهذة طريقة سهلة
للحصول علي مدرج تكراري تلقائي لأوقات الإنتظار لكل نوع.
إجراء
المحاكاة:
لإجراء المحاكاة وتوليد تقرير
معياري نختار File / Open وفي صندوق الحوار
نختار TVREPAIR ثم نختار Open . لآبد من خلق المحاكاة بإختيار Command / Create Simulation ثم نختار Command / START وفي صندوق الحوار نستبدل الواحد الصحيح بـ 50وإضغط OK
تنتهي المحاكاة بعد مرور 50
متعامل Transactions بقالب TERMINATE Block وهذا يمثل 50 يوم عمل.
عند نهاية المحاكاة يكتب GPSS تقرير معياري في الملف TVRepair.1.1 . يعرض هذا التقرير تلقائيا في
نافذة التقارير.
مناقشة
النتائج:
يلاحظ ان عامل التصليح كان
مشغولا بشكل جيد إذ كانت فعاليته 78% . متوسط اوقات
الإنتظار كانت 25 دقيقة لصيانة الأجهزة الدورية و 51
دقيقة لصيانة الأجهزة العادية. لم يوجد هناك اي تأخير لوظائف الصيانة الفورية.
متوسط زمن الإنتظار الكلي حوالي 12 دقيقة وهذا لايشمل
اوقات الخدمة طبعا نظرا لوضع قوالب DEPART
Blocks
داخل
المحاكاة:
لننظر إلي حالة نهاية المحاكاة
عند توليد التقرير المعياري.
اولا لنتأكد من فعالية عامل
التصليح، من القائمة في نافذة النموذج
Model Window
نختار Command / SHOW وفي صندوق الحوار أكتب FR$Maintenanceثم اضغط OK .
الفعالية التي نشاهدها في سطر Status line في نافذة النموذج لهذه الصفة العددية للنظام SNA معبر عنها كأجزاء من الف والتي كانت 78%
لكي ننظر إلي حالة التسهيلة Facility التي تمثل عامل
التصليح نفتح نافذة التسهيلات Facilities
Window
لنختار Window / Simulation Window / Facilities
Window نحن الآن
ننظر الي المنظر المفصل لهذه النافذة، متوسط زمن التصليح حوالي 52
دقيقة.
إذا فتحنا نافذة الجدول Table Window لـ Overhaul Tableسنرى المدرج التكراري لأزمنة إنتظار الوظائف. لنختار Window /
Simulation Window / Table Window وفي صندوق الحوار إضغط علي The Down Arrow و اختار OVERHAUL ثم OK

جدول الصيانات الدورية.
هذا يعطي نفس المعلومات كما في جدول Overhaul Table في التقرير العياري. لكي نشاهد Qtable entities الاخرى، نكرر ما
فعلناة سابقا ولكن نختار الأسماء Serviceاو Spot أو Alljobs في صندوق الحوار. ويترك هذا كتمرين.
أقفل جميع النوافذ البيانية.
لننظر الآن لما يحدث عندما تصل
الوظائف كل 30 دقيقة. في نافذة النموذج Model
Window لنبحث عن قالب GENERATE الثالث (في الجزء الخاص بالصيانة العادية من النموذج).
غير هذا بحيث تصبح عمال operands
هذا القالب A يساوي 30 و B يساوي 5
بدلا من 300 و 60 . أعد ترجمة النموذج
بإختيار Command / Retranslate . لنجهز لرسم بياني قبل إعادة إجراء
المحاكاة، لنختار Window /
Simulation Window / Plot Window ثم في نافذة تحرير الرسومات Edit Plot Window أدخل البيانات كما في الرسم التالي،

نافذة تحرير
الرسومات
. سوف نرسم طابور الخدمة وفعالية عامل التصليح علي نفس الرسم، إضغط علي Plot
و علي Memorize ثم أدخل القيم التالية التي يراد رسمها،
اكتب Maintenance Util في خانة الرمز و FR$Maintenance في خانة العبارة ثم اضغط علي Plot و Memorize ثم OK.
كبر قليلا النافذة بحيث
يمكن مشاهدتها بوضوح ثم اختار Command / START وفي صندوق الحوار بدل 1 بالقيمة 5
ثم OK

رسم الطابور
ة الفعالية
واضح ان الورشة اصبحت مليئة
بالأجهزة والعامل يعمل بدون توقف. لننظر الي النافذة اخرى، أقفل نافذة الرسومات و
افتح نافذة التسهيلات، اختار Window / Simulation Window / Facilities Window لاحظ ان هذه النافذة تؤكد الفعالية والتي رأيناها توا و
الأيقونة (icon)
تبين طابور طويل للوظائف المنتظرة، حوالي 62 وظيفة، اختار Window /
Simulation Window / Table Window لكل جدول تريد ان تراه وأختار إسم الجدول المناسب، Overhaulأو Alljobs أو Spot أو Service من صندوق الحوار الذي يظهر.
من الظاهر ان عامل التصليح في حاجة الي مساعدة إذا استمرت الوظائف تصل بهذا المعدل وإلا فإن الورشة ستفقد الكثير من الزبائن.