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  من صندوق الحوار الذي يظهر.

من الظاهر ان عامل التصليح في حاجة الي مساعدة إذا استمرت الوظائف تصل بهذا المعدل وإلا فإن الورشة ستفقد الكثير من الزبائن.