ปรับปรุงประสิทธิภาพของกลไกการจัดกำหนดการ
กลไกการจัดกำหนดการทรัพยากรจะใช้เมื่อจัดกำหนดการกระบวนการผลิตสำหรับใบสั่งผลิตที่วางแผนไว้และที่นำออกใช้ กลไกจัดการถูกนำออกใช้ในครั้งแรกโดยเป็นส่วนหนึ่งของ Dynamics AX 2012 และผ่านการปรับปรุงหลายครั้งตั้งแต่การนำออกใช้
ปัญหาเกี่ยวกับการจัดกำหนดการร้านค้าของงาน เป็นปัญหาแบบรวม ที่ซับซ้อนมาก ซึ่งเวลาที่ใช้ในการแก้ไขปัญหามีการเติบโตตามจำนวนตัวแปรการตัดสินใจแบบเท่าทวีคูณ บ่อยครั้งที่ลูกค้าตั้งค่ากระบวนการผลิตและข้อมูลที่เกี่ยวข้องในลักษณะที่ส่งผลให้เกิดปัญหาการจัดกำหนดการที่ไม่สามารถแก้ไขได้ในเวลาที่เหมาะสม แม้กระทั่งบนฮาร์ดแวร์สมัยใหม่ที่สุด บทความนี้จะช่วยให้คุณเข้าใจกลไกการจัดกำหนดการและวิธีการตั้งค่าเฉพาะมีผลกระทบต่อประสิทธิภาพการทำงาน
เมื่อมีการปรับปรุงประสิทธิภาพการทำงานของการจัดกำหนดการ คำแนะนำทั่วไปจะแนะนำให้ลดความซับซ้อนของปัญหาที่กลไกจัดการต้องการแก้ไข ปัจจัยหลักบางประการที่อาจส่งผลกระทบต่อประสิทธิภาพการทำงานรวมถึง:
- กระบวนการผลิตที่มีการดำเนินงานหลายอย่าง
- กระบวนการผลิตที่มีการดำเนินงานที่เกิดขึ้นควบคู่กัน
- การดำเนินงานที่มีปริมาณทรัพยากรสูงกว่าหนึ่งรายการ
- การดำเนินงานที่มีทรัพยากรที่ใช้ได้หลายอย่าง
- การใช้ฮาร์ดลิงค์
- การใช้กำลังการผลิตที่มีจำกัด
- จำนวนของปฏิทินที่แตกต่างกันที่ใช้
- จำนวนช่องเวลาการทำงานสำหรับแต่ละวันในปฏิทิน
- ระยะเวลารวมของกระบวนการผลิต
- การรันกลไกการจัดกำหนดการหลายชุดควบคู่กัน
ภาพรวมของโฟลว์การจัดกำหนดการพื้นฐาน
เมื่อต้องการทำความเข้าใจวิธีการตั้งค่าที่กำหนดอาจส่งผลกระทบต่อประสิทธิภาพการทำงาน ควรทำความเข้าใจบางอย่างเกี่ยวกับโฟลว์ของกระบวนการทำงาน ทั้งภายในกลไกจัดการและในรหัส X++ ที่อยู่รอบๆ
กระบวนการพื้นฐานของการจัดกำหนดการใบสั่งประกอบด้วยขั้นตอนหลักสามขั้นตอน:
- การโหลดข้อมูล – ที่นี่ แบบจำลองข้อมูล X++ จะกลายเป็นแบบจำลองข้อมูลภายในของกลไกจัดการในรูปแบบของงานและข้อจำกัด
- การจัดกำหนดการ – นี่คือต้นทางหลักสำหรับการจัดกำหนดการที่ประมวลผลแบบจำลองและข้อจำกัดที่กำหนด และสร้างผลลัพธ์ ในระหว่างกระบวนการนี้ กลไกจัดการจะร้องขอข้อมูลเวลาการทำงานและการจองกำลังการผลิตที่มีอยู่จาก X++ ตามความจำเป็น
- บันทึกข้อมูล – ผลลัพธ์ของกลไกจัดการในฟอร์มของช่องการจองกำลังการผลิตของงานจะถูกประมวลผลโดยรหัส X++ เพื่อบันทึกการจองกำลังการผลิต และอัปเดตเวลาเริ่มต้นและเวลาสิ้นสุดของงาน/การดำเนินงาน/ใบสั่ง
โหลดข้อมูลลงในกลไกจัดการ
กลไกการจัดกำหนดการมีรูปแบบข้อมูลที่เป็นนามธรรมมากกว่าฐานข้อมูล Supply Chain Management เนื่องจากได้รับการสร้างขึ้นเป็นกลไกจัดการทั่วไปที่สามารถจัดการกับแหล่งข้อมูลที่แตกต่างกันได้ แนวคิดของกระบวนการผลิต การดำเนินงานรอง และเวลาที่ใช้ในการผลิตต้องเป็น "แปล" เป็นแบบจำลองงานทั่วไปและข้อจำกัดที่กลไกจัดการแสดง ตรรกะสำหรับการสร้างแบบจำลองมีจำนวนตรรกะทางธุรกิจที่สำคัญและแตกต่างกันไปขึ้นอยู่กับข้อมูลต้นทาง คลาส X++ ที่รับผิดชอบคือ WrkCtrScheduler
และมีคลาสที่สืบทอดมาสำหรับใบสั่งผลิตที่วางแผน ใบสั่งผลิตที่นำออกใช้ และการคาดการณ์โครงการ
ตัวอย่างเช่น พิจารณากระบวนการผลิตที่แสดงอยู่ในตารางและรูปภาพต่อไปนี้ ซึ่งดูเหมือนง่าย
การดำเนินงาน ลำดับที่ | ลำดับความสำคัญ | เวลาเซ็ตอัพ | เวลาที่ใช้ในการผลิต | เวลาในการรอหลังจาก | ปริมาณทรัพยากร | ถัดไป |
---|---|---|---|---|---|---|
10 | หลัก | 1.00 | 2.00 | 1 | 20 | |
10 | รองอันดับที่ 1 | 1 | 20 | |||
20 | หลัก | 3.00 | 1.00 | 3 | 0 |
เมื่อส่งไปยังกลไกจัดการ จะถูกแบ่งออกเป็นแปดงาน ดังที่แสดงในภาพประกอบต่อไปนี้ (เลือกรูปเพื่อขยาย)
ลิงค์มาตรฐานระหว่างงานสองอย่างคือ FinishStart
หมายความว่าเวลาสิ้นสุดของงานหนึ่งต้องอยู่ก่อนเวลาเริ่มต้นของงานอื่น เนื่องจากการตั้งค่าต้องได้รับการดำเนินการโดยทรัพยากรเดียวกันที่จะดำเนินการในภายหลัง จึงมีข้อจำกัด OnSameResource
ระหว่างการตั้งค่า ระหว่างงานสำหรับการดำเนินงานหลักและรองสำหรับ10 มีลิงค์ StartStart
และ FinishFinish
ซึ่งหมายความว่างานต้องทั้งเริ่มต้นและสิ้นสุดในเวลาเดียวกัน และมีข้อจำกัด NotOnSameResource
ซึ่งจะป้องกันไม่ให้มีทรัพยากรเดียวกันสำหรับการดำเนินงานหลักและรอง
สำหรับการดำเนินงาน 20 ที่มีการตั้งค่าปริมาณของทรัพยากรเป็น3 งานในกระบวนการถูกแบ่งเป็นงานที่แตกต่างกันสามงาน ที่งานทั้งหมดต้องรันในเวลาเดียวกัน ในกรณีนี้ กลุ่มของกระบวนการผลิตได้รับการตั้งค่าให้ไม่จองกำลังการผลิตสำหรับคิวหลังจากนั้น ซึ่งเป็นเหตุให้มีเพียงงานเดียวสำหรับคิวหลังจากนั้นเท่านั้น
กลไกการจัดกำหนดการเข้าใจแนวคิดของงานเท่านั้น และไม่มีแนวคิดการดำเนินงาน ซึ่งหมายความว่าเมื่อทำการจัดตารางการผลิตระดับการดำเนินงาน การดำเนินงานจะถูกแบ่งเป็นงาน แม้ว่าจะไม่ถูกรักษาไว้ในฐานข้อมูล
สำหรับแต่ละงานเราจะกำหนดความต้องการกำลังการผลิตตามความต้องการของงาน (จำนวนวินาทีที่จำเป็น) ทั้งนี้ขึ้นอยู่กับวิธีการกำหนดคความต้องการทรัพยากร เราอาจ สำหรับแต่ละงาน ส่งรายการของทรัพยากรที่เกี่ยวข้องทั้งหมดที่มีผลบังคับใช้ ที่งานอาจรันและความต้องการกำลังการผลิตสำหรับทรัพยากรเฉพาะ ถึงแม้ว่าจะมีการส่งรายการทรัพยากรที่เกี่ยวข้องในเมื่อสร้างแบบจำลอง กลไกจัดการจะยังคงต้องตรวจสอบให้แน่ใจว่าการกำหนดทรัพยากรมีผลบังคับใช้จริงสำหรับระยะเวลาของงานทั้งหมด
การจัดกำหนดการกลไกจัดการภายใน
การจัดกำหนดการกลไกจัดการอินเทอร์เฟส
เพื่อให้ได้แนวคิดเกี่ยวกับวิธีการทำงานของกลไกจัดการภายใน ดีที่สุดที่จะดูฟังก์ชันการทำงานที่แสดงภายนอก ใน X++ อินเทอร์เฟสหลักคือ WrkCtrSchedulerEngineInterface
มีวิธีการที่อธิบายไว้ในส่วนย่อยต่อไปนี้
กลไกจัดการทั่วไป
วิธีการ | วัตถุประสงค์ |
---|---|
run |
จัดกำหนดการงานที่โหลดทั้งหมดและส่งคืนรหัสข้อผิดพลาด |
getJobSchedulingSequenceResult |
เรียกดูผลลัพธ์ของการจัดกำหนดการและงานที่เกิดข้อผิดพลาดแรกสำหรับลำดับที่ระบุโดยงานที่ระบุ |
validateJobCapacityReservations |
ตรวจสอบความถูกต้องของการจองกำลังการผลิตสำหรับงานทั้งหมดที่จัดเก็บโดยกลไกจัดการ |
setReservationsTimeStamp |
ส่งการลงเวลาไปยังกลไกจัดการที่กำหนดไว้สำหรับการจองกำลังการผลิตใหม่ทั้งหมด สำหรับงานที่จัดกำหนดการไว้ในแคชของกลไกจัดการ |
addPropertyToGroupAggregation |
เพิ่มคำนำหน้าคุณสมบัติให้ชุดของคุณสมบัติที่ใช้ เมื่อมีการรวมกำลังการผลิต |
addResource |
เพิ่มทรัพยากรลงในกลุ่มทรัพยากรกลไกการจัดกำหนดการ |
addResourceGroup |
เพิ่มกลุ่มทรัพยากรลงในกลุ่มของกลุ่มทรัพยากรกลไกการจัดกำหนดการ |
addResourceGroupMembership |
เพิ่มทรัพยากรเป็นสมาชิกของกลุ่มทรัพยากร |
addOptimizationGoal |
เพิ่มเป้าหมายการเพิ่มประสิทธิภาพการจัดกำหนดการ (ระยะเวลาหรือระดับความสำคัญ) |
งานแต่ละงาน
วิธีการ | วัตถุประสงค์ |
---|---|
addJobInfo |
เพิ่มเรกคอร์ดข้อมูลงานที่แจ้งให้กลไกจัดการเกี่ยวกับงานที่ควรมีการจัดกำหนดการ |
addConstraintJobEndsAt |
เพิ่มข้อจำกัดที่งานควรสิ้นสุดในวันที่และเวลาที่ระบุ |
addConstraintJobStartsAt |
เพิ่มข้อจำกัดที่งานควรเริ่มในวันที่และเวลาที่ระบุ |
addConstraintMaxJobDays |
กำหนดข้อจำกัดที่งานอาจครอบคลุมถึงจำนวนวันที่สูงสุดที่ระบุ |
addConstraintResourceRequirement |
เพิ่มข้อจำกัดที่งานต้องจัดกำหนดการในทรัพยากรที่ระบุ |
addJobBindPriority |
เพิ่มระดับความสำคัญของการผูกงานสำหรับการจับคู่ (งาน ระดับข้อจำกัด) ค่าระดับความสำคัญสูงหมายความว่าตัวแปรงานจะถูกผูกไว้ก่อนหน้านี้ งานจะได้รับการประมวลผลก่อนงานที่มีค่าระดับความสำคัญต่ำกว่าในลำดับเดียวกัน |
addJobCapacity |
เพิ่มข้อมูลปริมาณการใช้กำลังการผลิตสำหรับงาน (เช่น รันไทม์ของงานที่จำเป็น) โดยไม่ขึ้นอยู่กับทรัพยากรที่จะรันงาน |
addJobResourceCapacity |
เพิ่มทรัพยากรลงในชุดของทรัพยากรที่อาจจะใช้ในการทำงาน และระบุกำลังการผลิตที่จำเป็นเมื่อรันทรัพยากรนั้น |
addJobGoal |
เพิ่มข้อมูลเป้าหมายของงานสำหรับระดับข้อจำกัดที่ระบุ (เวลาสิ้นสุดแรกสุด หรือเวลาเริ่มต้นล่าสุด) |
addJobResourcePriority |
เพิ่มระดับความสำคัญที่จะใช้เมื่อมีการจัดกำหนดการการผลิตระดับงานในทรัพยากร |
addJobResourceRuntime |
ระบุเวลาของงานที่ขึ้นอยู่กับทรัพยากรที่จะจัดกำหนดการงาน |
addJobRuntime |
ระบุเวลาของงานที่ไม่ขึ้นอยู่กับทรัพยากรที่จะจัดกำหนดการงาน |
scheduleJobOnResourceGroup |
ทำเครื่องหมายงานสำหรับการจัดกำหนดการในระดับกลุ่มทรัพยากร |
setJobResourcePreemptionAllowed |
ตั้งค่าว่าอนุญาตให้ preemption สำหรับงานในทรัพยากร (ถ้ากลไกจัดการสามารถจัดกำหนดการงานในช่องกำลังการผลิตที่ไม่ติดกัน) |
setRequiredNumberOfResources |
ตั้งค่าจำนวนทรัพยากรที่จำเป็นสำหรับการจัดกำหนดการงาน (สำหรับการจัดตารางการผลิตระดับการดำเนินงานเท่านั้น) |
ข้อจำกัดระหว่างงาน
วิธีการ | วัตถุประสงค์ |
---|---|
addJobLink |
เพิ่มลิงค์ (เช่น การเสร็จสิ้น>การเริ่มต้น) ระหว่างงานสองงาน |
addConstraintEndsDelayed |
กำหนดข้อจำกัดของงานที่ไม่สามารถสิ้นสุดก่อนการสิ้นสุดของงานอื่นบวกเวลาหน่วง |
addConstraintJobListWorkingTimeIntersect |
เพิ่มข้อจำกัดว่าช่องกำลังการผลิตที่จองไว้สำหรับงานต้องอยู่บนเวลาการทำงานที่ตัดกันสำหรับสองทรัพยากรที่ใช้โดยงาน |
addConstraintJobOverlap |
เพิ่มข้อจำกัดที่กำหนดวิธีการเรียงเวิร์กโฟลว์ เมื่อปริมาณของสินค้าที่กำหนดสามารถย้ายไปมาระหว่างสองทรัพยากร ในขณะที่ทรัพยากรแรกยังคงประมวลผลไม่เสร็จ เพื่อให้ทรัพยากรที่สองสามารถเริ่มต้นการประมวลผลได้ |
addConstraintNotOnSameResource |
เพิ่มข้อจำกัดที่สองงานไม่ควรมีการจัดกำหนดการในทรัพยากรเดียวกัน |
addConstraintOnSameResource |
เพิ่มข้อจำกัดที่สองงานต้องใช้การจัดกำหนดการในทรัพยากรเดียวกัน |
addJobSameReservations |
เพิ่มข้อจำกัดที่งานต้องเสร็จสิ้นโดยมีการจองกำลังการผลิตสำหรับช่องเวลาเดียวกันกับงานหลัก |
setPrimaryParallelJob |
เพิ่มข้อมูลเกี่ยวกับงานที่เป็นงานหลักในชุดงานที่ทำควบคู่กัน |
โปรแกรมแก้ปัญหา
ตัวกลไกจัดการเป็นโปรแกรมแก้ปัญหาข้อจำกัดเฉพาะที่มีการเพิ่มศึกษาสำนึกที่กำหนดเอง โปรแกรมแก้ปัญหาขึ้นอยู่กับองค์ประกอบหลักสองประการ คือ ตัวแปรและข้อจำกัด
ตัวแปร
ตัวแปรแสดงถึงโดเมนของค่าที่เป็นไปได้ กลไกการจัดกำหนดการมีตัวแปรอยู่สองชนิด:
- ตัวแปรวันที่และเวลา - มีโดเมนของวันที่และเวลาทั้งหมด และโดเมนสามารถจำกัดโดยการย้ายขอบด้านล่างและด้านบนสำหรับเวลาของตัวแปรที่อยู่ใกล้กัน
- ตัวแปรของทรัพยากร - มีโดเมนของทรัพยากรที่เกี่ยวข้อง และสามารถจำกัดโดเมนได้โดยการตัดทรัพยากรออกจากรายการ
ข้อจำกัด
ข้อจำกัดทำงานกับตัวแปรโดยการจำกัดโดเมนของตนเอง แต่จะขึ้นอยู่กับตัวแปร เพื่อให้มีการเรียกใช้เมื่อมีการเปลี่ยนแปลงตัวแปร กระบวนการ "การเผยแพร่ข้อจำกัด" คือ เมื่อข้อจำกัดทำหน้าที่ฟังก์ชันหลัก และรายงานกลับไปยังตรรกะหลักหากประสบความสำเร็จ
ตัวแปรจะถือว่าถูกผูกไว้เมื่อไม่สามารถจำกัดเพิ่มเติมได้ ซึ่งสำหรับตัวแปร วันที่และเวลา หมายความว่ามีขอบด้านบนและด้านล่างเดียวกัน และสำหรับตัวแปร ทรัพยากร ที่มีเพียงทรัพยากรที่เกียวข้องอันเดียวเท่านั้น เมื่อมีการผูกตัวแปรทั้งหมด ระบบจะพบโซลูชัน
ระดับข้อจำกัด
เมื่อดำเนินการจัดกำหนดการเป็นส่วนหนึ่งของระยะความครอบคลุมของการวางแผนความต้องการวัสดุ (MRP) ใบสั่งจะมีการจัดกำหนดการย้อนหลังจากวันที่ของความต้องการ อย่างไรก็ตาม ถ้าไม่สามารถค้นหาตารางเวลาที่เริ่มต้นในวันนี้หรือหลังจากนี้ และสิ้นสุดก่อนวันที่ความต้องการ ทิศทางการจัดกำหนดการจะเปลี่ยนเป็นไปข้างหน้าจากวันนี้
กฎทางธุรกิจหลักนี้ได้รับการจัดการโดยการจัดระดับข้อจำกัด ถ้าไม่พบโซลูชันเมื่อใช้ข้อจำกัดในระดับสูงสุด ข้อจำกัดในระดับดังกล่าวจะถูกทิ้งไปทั้งหมด และระดับที่ต่ำกว่าจะถูกใช้ ใน Praxis หมายความว่าสำหรับการจัดกำหนดการแบบย้อนหลัง แบบจำลองจะมีระดับ1 ที่มีเป้าหมายงานเป็นเวลาเริ่มต้นล่าสุดให้ข้อจำกัดเวลาสิ้นสุดสูงสุด (วันที่ของความต้องการ) และระดับ0 ที่มีเป้าหมายงานเป็นเวลาสิ้นสุดเร็วที่สุด และให้ข้อจำกัดของเวลาเริ่มต้นต่ำสุดเป็นวันนี้
อัลกอริทึม
ขั้นตอนหลักของอัลกอริทึมงกลไกจัดการ ได้แก่:
- ค้นหาลำดับ (กลุ่มงาน) ซึ่งสามารถแก้ไขได้ต่างหาก
- ลองค้นหาโซลูชันเริ่มต้นสำหรับลำดับสำหรับระดับข้อจำกัดสูงสุด
- เรียงเวิร์กโฟลว์ในลำดับตามเป้าหมายและระดับความสำคัญของงาน เพื่อให้พบงานเริ่มต้น
- วนรอบของงานในลำดับต่อไปนี้:
- ค้นหาข้อจำกัดทั้งหมดที่จำเป็นต้องแพร่กระจาย และรันการเผยแพร่
- ถ้ามีการผูกตัวแปรทั้งหมดสำหรับงาน ดังนั้นโซลูชันสำหรับงานถูกพบแล้ว
- ถ้าตัวแปรตัวใดตัวหนึ่งไม่สามารถผูกได้โดยไม่ละเมิดข้อจำกัด ให้ย้อนกลับการผูกตัวแปร ลองใช้ค่าอื่นในโดเมน (สำหรับตัวแปรของทรัพยากร) และรันการเผยแพร่ข้อจำกัดอีกครั้ง
- ถ้าไม่พบโซลูชันใดๆ ดังนั้นข้อจำกัดทั้งหมดในระดับข้อจำกัดปัจจุบันถูกเอาออกแล้ว ระดับข้อจำกัดลดลง (ถ้ามีระดับต่ำกว่า) และการค้นหาโซลูชันลองดำเนินการใหม่อีกครั้งด้วยชุดข้อจำกัดใหม่
- ถ้าพบโซลูชันที่เป็นไปได้ ระยะการเพิ่มประสิทธิภาพจะเริ่ม ซึ่งจะพยายามหาโซลูชันที่ดียิ่งขึ้นจนกว่าจะหมดเวลาการเพิ่มประสิทธิภาพแล้ว หรือชุดทรัพยากรทั้งหมดหมดแล้ว
โปรแกรมแก้ปัญหาข้อจำกัดไม่ทราบข้อกำหนดของอัลกอริทึมการจัดกำหนดการ ซึ่งอยู่ในคำนิยามและการรวมกันของข้อจำกัดต่างๆ ที่ "มายากล" เกิดขึ้น
การกำหนดเวลาทำงาน
ข้อจำกัด (ภายใน) ส่วนใหญ่ในกลไกจัดการจะควบคุมเวลาการทำงานและกำลังการผลิตของทรัพยากร อย่างเช่น งานคือการข้ามช่องเวลาการทำงานสำหรับทรัพยากรจากจุดที่กำหนดในทิศทางที่กำหนด และค้นหาช่วงเวลาที่ยาวเพียงพอที่งานที่ต้องการความจุ (เวลา) สามารถบรรจุได้
เมื่อต้องการทำเช่นนี้ กลไกจัดการจำเป็นต้องทราบเวลาการทำงานของทรัพยากร ตรงกันข้ามกับข้อมูลแบบจำลองหลัก เวลาการทำงานจะถูก โหลดแบบขี้เกียจ หมายความว่ามีการโหลดเข้าไปในกลไกจัดการตามความจำเป็น เหตุผลสำหรับวิธีการนี้ คือมีเวลาการทำงานบ่อยครั้งใน Supply Chain Management สำหรับปฏิทินสำหรับรอบระยะเวลายาวมาก และโดยทั่วไปมีปฏิทินจำนวนมาก ดังนั้นข้อมูลจะมีขนาดใหญ่มากให้โหลดล่วงหน้า
ข้อมูลปฏิทินมีการร้องขอโดยกลไกจัดการในกลุ่ม โดยเรียกวิธีการคลาส X++ WrkCtrSchedulingInteropDataProvider.getWorkingTimes
คำขอมีไว้สำหรับรหัสปฏิทินที่ระบุในช่วงเวลาที่ระบุ ทั้งนี้ขึ้นอยู่กับสถานะของแคชในเซิร์ฟเวอร์ใน Supply Chain Management แต่ละคำขอเหล่านี้อาจสิ้นสุดลงในการเรียกฐานข้อมูลต่างๆ ซึ่งใช้เวลานาน (สัมพันธ์กับเวลาการคำนวณแบบบริสุทธิ์) นอกจากนี้ ถ้าปฏิทินมีข้อกำหนดเวลาการทำงานที่ซับซ้อนมากพร้อมกับช่วงเวลาการทำงานหลายช่วงต่อวัน ซึ่งจะเพิ่มเวลาที่ใช้ในการบรรทุกสินค้า
เมื่อข้อมูลเวลาการทำงานถูกโหลดในกลไกการจัดกำหนดการ การดำเนินการนี้จะถูกเก็บไว้ในแคชของภายในสำหรับปฏิทินที่ระบุ ซึ่งหมายความว่าถ้างานหรือทรัพยากรอื่นๆ ใช้ปฏิทินเดียวกัน จะทำให้การค้นหาครั้งถัดไปสามารถดำเนินการได้อย่างรวดเร็วจากหน่วยความจำ สาเหตุที่พบโดยทั่วไปของประสิทธิภาพที่แย่ประการหนึ่งคือ ถ้ามีการใช้รหัสปฏิทินแยกต่างหากสำหรับแต่ละทรัพยากร เนื่องจากข้อมูลจะต้องมีการร้องขอสำหรับแต่ละปฏิทิน ถึงแม้ว่าเนื้อหาของปฏิทินอาจเหมือนกัน
กำลังการผลิตมีจำกัด
เมื่อใช้กำลังการผลิตมีจำกัด ช่องเวลาการทำงานจากปฏิทินจะถูกแบ่ง และลดตามการจองกำลังการผลิตที่มีอยู่ การจองเหล่านี้จะถูกนำมาใช้โดยผ่านคลาส WrkCtrSchedulingInteropDataProvider
เดียวกันกับปฏิทิน แต่จะใช้วิธีการ getCapacityReservations
เมื่อจัดกำหนดการในระหว่างการวางแผนหลัก การจองสำหรับแผนหลักเฉพาะจะมีการพิจารณา และถ้าเปิดใช้งานในหน้า พารามิเตอร์การวางแผนหลัก จะมีการรวมการจองสินค้าจากใบสั่งผลิตที่ยืนยันด้วยเช่นกัน ในทำนองเดียวกัน เมื่อจัดกำหนดการใบสั่งผลิต นอกจากนี้คุณยังสามารถรวมการจองสินค้าจากแผนการใบสั่งที่มีอยู่ได้ด้วย
การใช้กำลังการผลิตจำกัดจะทำให้การจัดกำหนดการทำงานนานขึ้น เนื่องจากสาเหตุหลายประการดังต่อไปนี้
- การดึงข้อมูลกำลังการผลิตจากฐานข้อมูลเป็นการดำเนินงานที่ช้า และการแคชฝั่งฝั่งเซิร์ฟเวอร์ของข้อมูลกำลังการผลิตโดยทั่วไปจะไม่ดีเท่ากับเวลาการทำงาน เนื่องจากไม่ได้ใช้ร่วมกันระหว่างทรัพยากรต่างๆ เหมือนปฏิทินทั่วไป
- จำนวนช่องเวลาการทำงานที่จะดำเนินการเพิ่มขึ้นเนื่องจากการแบ่ง และช่องสำหรับรอบระยะเวลายาวต้องมีการตรวจสอบก่อนที่จะพบโซลูชัน
- หลังจากการจัดกำหนดการเสร็จสมบูรณ์แล้ว ต้องดำเนินการตรวจสอบความขัดแย้งของการจองสินค้า (โปรดดูที่หัวข้อ "การรันการจัดตารางการผลิตระดับ" แบบขนาน "สำหรับรายละเอียด)
การตรวจสอบชุดของทรัพยากร
ถ้าเวิร์กโฟลว์มีลิงค์ FinishStart
มาตรฐานเท่านั้น หมายความว่าฟอร์มจะเป็นกลุ่มอย่างง่ายโดยไม่มีสาขาใดๆ ผลลัพธ์ที่ดีที่สุด (เห็นจากใบสั่งเดียว ไม่ใช่ข้ามใบสั่ง) สามารถทำได้โดยหาทางออกที่ดีที่สุดสำหรับงานแรก แล้วเลื่อนไปหาทางออกที่ดีที่สุดสำหรับงานถัดไป วิธีการแก้ปัญหาที่ดีที่สุดสำหรับงานหมายถึงการค้นหาทรัพยากรที่จะได้รับวันที่เริ่มต้นและวันที่สิ้นสุดของงานที่ใกล้เคียงกับเป้าหมายของงาน (ในการจัดกำหนดการไปข้างหน้า ซึ่งหมายความว่าการได้รับวันที่สิ้นสุดของงานเร็วที่สุดเท่าที่จะเป็นไปได้) ในขณะที่ยังคงมีข้อจำกัด
เมื่อมีงานที่มีคู่ขนาน ให้ค้นหาวิธีการแก้ไขปัญหาอาจเกี่ยวข้องกับการตรวจสอบชุดข้อมูลที่แตกต่างกัน จำนวนของชุดทรัพยากรที่เป็นไปได้ คือผลิตภัณฑ์ของจำนวนของทรัพยากรที่ใช้ได้สำหรับงานคู่ขนานที่เชื่อมโยง โดยเฉพาะอย่างยิ่งเมื่อจัดกำหนดการใบสั่งย้อนหลังจากวันที่ของความต้องการ อาจใช้เวลาสักครู่เพื่อให้ตรรกะตระหนักว่าไม่มีวิธีการแก้ไขปัญหาที่จะทำให้งานคู่ขนานพอดีก่อนวันที่วันนี้ เนื่องจากจะต้องตรวจสอบชุดข้อมูลทั้งหมด เนื่องจากอาจมีทรัพยากรบางอย่างที่มีประสิทธิภาพสูงกว่าหรือปฏิทินอื่นที่อาจจะให้ผลลัพธ์ ซึ่งหมายความว่า ถ้าไม่ได้ตั้งค่าขีดจำกัดการหมดเวลาไว้ จะมีการรันเป็นเวลานานก่อนที่จะเปลี่ยนทิศทางไปข้างหน้า
ตรรกะแบบรวมนี้ยังหมายความว่าการเพิ่มทรัพยากรที่ใช้ได้มากขึ้นอาจทำให้กลไกจัดการทำงานช้าลง ถ้าเกิดปัญหาด้านประสิทธิภาพเมื่อมีการดำเนินงานและการจัดกำหนดการแบบขนานที่มีกำลังการผลิตมีจำกัด สามารถแก้ไขได้ส่วนหนึ่งโดยตัวออกแบบของกระบวนการผลิตจะมีการตัดสินใจว่าควรจะใช้ทรัพยากรใดบ้างและกำหนดทรัพยากรโดยตรงบนการดำเนินงาน (เนื่องจากกลไกจัดการในกรณีส่วนใหญ่จะมีการสิ้นสุดการเบิกทรัพยากรเดียวกัน เพราะฉะนั้นผลจะเหมือนกัน)
ฮาร์ดลิงค์
การตั้งค่าชนิดของลิงค์ระหว่างงานสองงานเป็นแบบฮาร์ด ให้ตรวจสอบให้แน่ใจว่าไม่มีช่องว่างระหว่างความสำเร็จของงานหนึ่งและจุดเริ่มต้นของหนึ่งงานถัดไป การทำเช่นนี้อาจเป็นประโยชน์อย่างมากในสถานการณ์ เช่ นเมื่อโลหะถูกทำให้ร้อนในงานหนึ่ง และดำเนินการต่อไปในงานถัดไปที่ไม่ต้องการให้มีโลหะเย็นลงในระหว่างนั้น
ด้วยลิงค์แบบนุ่มนวลมาตรฐานและการจัดกำหนดการแบบไปข้างหน้า ถ้ากระบวนการผลิตมีการจัดกลุ่มแบบง่ายๆ โดยไม่มีสาขาใดๆ ผลลัพธ์สามารถทำได้โดยการหาทางออกสำหรับงานแรกที่ตรงกับข้อจำกัดของตนเอง แล้วเลื่อนผ่านสายโซ่เผยแพร่เวลาสิ้นสุดจากงานก่อนหน้านี้ไปยังงานถัดไป ถ้างานปัจจุบันไม่พบกำลังการผลิตใดๆ เวลาเริ่มต้นสำหรับฟิลด์นี้จะถูกย้ายออกไปโดยไม่มีผลใดๆ สำหรับงานก่อนหน้านี้ที่อาจสร้างช่องว่างระหว่างงาน อย่างไรก็ตามการใช้ฮาร์ดลิงค์ (โดยเฉพาะอย่างยิ่งในการเชื่อมต่อที่มีกำลังการผลิตมีจำกัด) สำหรับสถานการณ์จำลองเดียวกัน ข้อเท็จจริงที่ว่างานหนึ่งในภายหลังในห่วงโซ่จะไม่พบกำลังการผลิต จะหมายถึงงานที่จัดกำหนดการไว้ก่อนหน้านี้ทั้งหมดจะต้อง "ลาก" ไปพร้อมๆ กันและจัดกำหนดการอีกครั้ง โดยเฉพาะอย่างยิ่งในสถานการณ์ที่มีการโหลดสูงสำหรับหลายทรัพยากร ฮาร์ดลิงค์อาจทำให้เกิดปฏิกิริยาลูกโซ่ที่งานจะมีผลกระทบต่อกัน และจำนวนของการเกิดซ้ำจะต้องดำเนินการก่อนที่จะทำให้ผลการปฏิบัติตามกำหนดเวลาที่เป็นไปได้
การรันกลไกการจัดกำหนดการควบคู่กัน
เมื่อดำเนินการจัดกำหนดการเป็นส่วนหนึ่งของการรันการวางแผนหลัก ซึ่งจะใช้ตัวช่วยซึ่งเธรดผู้ช่วยเหลือของการวางแผนหลักแต่ละเธรดยังสามารถเบิกงานการจัดกำหนดการใบสั่งผลิตได้ด้วย ซึ่งหมายความว่ากลไกการจัดกำหนดการหลายกลไกสามารถรันพร้อมกันได้ ในขณะที่ เธรดโดยทั่วไปมีผลประโยชน์ด้านประสิทธิภาพที่สำคัญสูง นอกจากนี้ยังมีเสียทำงานบางอย่างเมื่อเป็นเรื่องการจัดกำหนดการ
ใน MRP ใบสั่งผลิตทั้งหมดสำหรับระดับรายการวัสดุและส่วนประกอบ (BOM) ที่กำหนดจะมีการจัดกำหนดการในลำดับวันที่ความต้องการ ซึ่งหมายความว่าใบสั่งเหล่านั้นมีวันที่ความต้องการแรกสุดควรได้รับการจัดกำหนดการก่อน จึงจะมีโอกาสสูงสุดในการได้รับกำลังการผลิตของทรัพยากร อย่างไรก็ตาม การเบิกหลายกลไกจากรายการของใบสั่งที่ไม่มีกำหนดการไม่สามารถมั่นใจได้อีกต่อไป เนื่องจากการดำเนินการนี้อาจทำได้เร็วกว่าอีกครั้งหนึ่ง
นอกจากนี้ เมื่อจัดตารางการผลิตโดยใช้กำลังการผลิตมีจำกัด และเมื่ออินสแตนซ์กลไกจัดการพยายามจัดกำหนดการใบสั่งที่อาจใช้ทรัพยากรเดียวกันในช่วงเวลาเดียวกัน สภาวะการแย่งชิงอาจเกิดขึ้น จำนวนของเงื่อนไขการแย่งชิงดังกล่าวจะถูกบันทึกในฟิลด์ ความขัดแย้งในการจัดกำหนดการ บนหน้าประวัติการวางแผนหลัก ตรรกะการแก้ปัญหาความขัดแย้งมีดังต่อไปนี้
- จัดกำหนดการใบสั่ง (ล็อค-ฟรี) และรับการจองกำลังการผลิต
- ใช้ล็อค
- ตรวจสอบว่ามีการจองกำลังการผลิตใหม่อยู่สำหรับทรัพยากรที่จัดกำหนดการไว้ในช่วงเวลาหรือไม่
- ถ้าไม่มี ให้เขียนกำลังการผลิตและปล่อยล็อค
- ถ้าใช่ ให้ปล่อยล็อค และจัดกำหนดการใบสั่งใหม่ตั้งแต่เริ่มต้น
ดังนั้น เมื่อจัดกำหนดการกับอินสแตนซ์กลไกจัดการหลายรายการ ผลลัพธ์ไม่ถูกกำหนดโดยสมบูรณ์ เนื่องจากจะขึ้นอยู่กับช่วงเวลาที่แน่นอนของแต่ละเธรด
ประสิทธิภาพการจัดตารางการผลิตระดับการดำเนินงาน
ถึงแม้ว่าการจัดตารางการผลิตระดับการดำเนินงานก็เรียกอีกอย่างว่าการวางแผนกำลังการผลิตที่ตัดหยาบ ซึ่งมองเห็นจากมุมมองของกลไกจัดการ ก็อาจเป็นปัญหาหนักเพื่อแก้ไขถ้าใช้กำลังการผลิตมีจำกัดเป็นข้อมูลที่จำเป็นในการกำหนดความเป็นไปได้
กำลังการผลิตของกลุ่มทรัพยากรจะขึ้นอยู่กับว่ามีทรัพยากรใดบ้างและเท่าไหร่บ้างที่เป็นสมาชิกของกลุ่มทรัพยากร กลุ่มทรัพยากรในตัวเองไม่มีกำลังการผลิตใดๆเฉพาะเมื่อทรัพยากรเป็นสมาชิกของกลุ่มเท่านั้นที่จะมีกำลังการผลิตเท่านั้น เนื่องจากการเป็นสมาชิกของกลุ่มทรัพยากรอาจแตกต่างกันไปตามเวลาที่ต้องใช้กำลังการผลิตสำหรับแต่ละวัน
ในการจัดตารางการผลิตระดับการดำเนินงาน ปฏิทินของกลุ่มทรัพยากรจะใช้เพื่อกำหนดเวลาเริ่มต้นและเวลาสิ้นสุดสำหรับแต่ละการดำเนินงาน ซึ่งหมายความว่าปฏิทินของกลุ่มทรัพยากรวางขีดจำกัดเวลาการดำเนินงานที่สามารถจัดตารางการผลิตสำหรับการดำเนินงานหนึ่งวันในหนึ่งกลุ่มทรัพยากร ตรงข้ามปฏิทินสำหรับทรัพยากร ที่ระบุจะมีการละเว้นข้อมูลประสิทธิภาพของปฏิทินสำหรับกลุ่มทรัพยากร เนื่องจากจะแสดงถึงชั่วโมงที่เปิดค้างไว้และไม่มีกำลังการผลิตที่แท้จริง
ตัวอย่างเช่น ถ้าเวลาการทำงานสำหรับกลุ่มทรัพยากรในวันที่เฉพาะหนึ่งมีตั้งแต่ 8:00 ถึง 16:00 การดำเนินงานหนึ่งไม่สามารถใส่โหลดเพิ่มเติมบนกลุ่มทรัพยากรกว่าสิ่งที่สามารถพอดีกับ 8 ชั่วโมง ไม่ว่าจะมีกำลังการผลิตเท่าไรที่กลุ่มทรัพยากรมีอยู่ทั้งหมดในวันนั้น กำลังการผลิตที่พร้อมใช้งานอาจจำกัดจำนวนงานในศูนย์การผลิตต่อไป
จำนวนงานในศูนย์การผลิตจากการจัดตารางการผลิตระดับงานในทรัพยากรทั้งหมดที่รวมอยู่ในกลุ่มทรัพยากรในวันที่กำหนด จะถือว่ามีการคำนวณกำลังการผลิตที่พร้อมใช้งานสำหรับกลุ่มทรัพยากรในวันเดียวกัน สำหรับวันที่แต่ละวัน จะมีการคำนวณดังนี้
กำลังการผลิตของกลุ่มทรัพยากรที่พร้อมใช้งาน = กำลังการผลิตสำหรับทรัพยากรในกลุ่มตามจำนวนงานการจัดตารางงานตามปฏิทิน – ของทรัพยากรในการดำเนินงานของกลุ่ม – ที่จัดตารางจำนวนงานการผลิตทรัพยากรในการดำเนินการของกลุ่ม – ที่จัดกำหนดการจำนวนงานในกลุ่มทรัพยากร
บนแท็บ ความต้องการทรัพยากร บนขั้นตอนของกระบวนการผลิตคุณสามารถระบุความต้องการทรัพยากรโดยใช้ทรัพยากรหนึ่งๆ (ซึ่งกรณีที่การดำเนินงานจะได้รับการจัดตารางการผลิตโดยใช้ทรัพยากรนั้น) สำหรับกลุ่มทรัพยากร สำหรับชนิดของทรัพยากร หรือสำหรับความสามารถในการมีความสามารถทักษะหลักสูตรหรือใบรับรองหนึ่งรายการขึ้นไป ในขณะที่การใช้ตัวเลือกเหล่านี้ทั้งหมดให้ความยืดหยุ่นที่ดีในการออกแบบกระบวนการผลิต นอกจากนี้ยังทำให้ การจัดกำหนดการซับซ้อนสำหรับกลไกจัดการ เนื่องจากกำลังการผลิตต้องมีการลงบัญชีสำหรับแต่ละ "คุณสมบัติ" (ชื่อนามธรรมที่ใช้ในโปรแกรมสำหรับความสามารถทักษะและอื่นๆ)
กำลังการผลิตของกลุ่มทรัพยากรสำหรับความสามารถ คือผลรวมของกำลังการผลิตสำหรับทรัพยากรทั้งหมดในกลุ่มทรัพยากร ที่มีความสามารถในการสอบถาม ถ้าทรัพยากรในกลุ่มมีความสามารถ จะไม่มีการพิจารณาระดับของกำลังการผลิต
ในการจัดตารางการผลิตระดับการดำเนิน งานกำลังการผลิตที่พร้อมใช้งานสำหรับความสามารถบางอย่างสำหรับกลุ่มทรัพยากรจะถูกลดลง เมื่อมีการโหลดพร้อมกับการดำเนินงานที่จำเป็นต้องมีความสามารถในการสอบถาม ถ้าการดำเนินงานจำเป็นต้องมีมากกว่าหนึ่งความสามารถ กำลังการผลิตจะมีการลดสำหรับความสามารถที่จำเป็นทั้งหมด
สำหรับวันที่แต่ละวัน จะมีการคำนวณที่จำเป็นดังนี้
กำลังการผลิตที่พร้อมใช้งานสำหรับความสามารถ = กำลังการผลิตสำหรับงานความสามารถ – ที่จัดกำหนดการไว้สำหรับจำนวนงานบนทรัพยากรที่มีความสามารถเฉพาะซึ่งรวมอยู่ในการดำเนินงานของกลุ่มทรัพยากร – ที่จัดกำหนดการไว้สำหรับจำนวนงานบนทรัพยากรที่มีความสามารถเฉพาะซึ่งรวมอยู่ในการดำเนินงานของกลุ่มทรัพยากร – ที่จัดกำหนดการสำหรับจำนวนงานบนกลุ่มทรัพยากรเองด้วยตนเอง ซึ่งจำเป็นต้องใช้ความสามารถเฉพาะ
ซึ่งหมายความว่าถ้ามีโหลดบนทรัพยากรที่ระบุ จำนวนงานในศูนย์การผลิตจะถือว่าเป็นการคำนวณปริมาณการใช้กำลังการผลิตที่มีอยู่ของกลุ่มทรัพยากร เนื่องจากจำนวนงานในศูนย์การผลิตที่ระบุจะลดส่วนจัดสรรของกลุ่มทรัพยากรสำหรับความสามารถในการทำงานไม่ว่าจำนวนงานในศูนย์การผลิตที่ระบุจะสำหรับความสามารถนั้นหรือไม่ ถ้ามีโหลดในระดับกลุ่มทรัพยากร จะถือว่าเป็นการคำนวณกำลังการผลิตที่พร้อมใช้งานของกลุ่มทรัพยากรต่อความสามารถเฉพาะ เมื่อจำนวนงานในศูนย์การผลิตมาจากการดำเนินงานที่จำเป็นต้องใช้ความสามารถเฉพาะเท่านั้น
ตรรกะด้านบนซับซ้อน เนื่องจากเป็นแบบเดียวกันสำหรับแต่ละชนิดของ "คุณสมบัติ" เพื่อให้การใช้การจัดกำหนดการการดำเนินงานที่มีกำลังการผลิตจำกัดต้องมีการป้อนข้อมูลเป็นจำนวนมาก
ปรับปรุงประสิทธิภาพการทำงาน MRP
วิดีโอการประชุมทางเทคนิคต่อไปนี้แสดงเทคนิคต่างๆ เกี่ยวกับวิธีปรับปรุงประสิทธิภาพการวางแผนหลัก เมื่อคุณใช้งาน MRP กับกลไกจัดการการวางแผนหลักที่ไม่รองรับ: ช่วยด้วย MRP ช้า
การดูอินพุทและเอาท์พุทของกลไกจัดการการจัดกำหนดการ
เมื่อต้องการดูรายละเอียดเฉพาะของข้อมูลป้อนเข้าและผลลัพธ์ของกระบวนการจัดกำหนดการ ให้เปิดใช้งานการบันทึก โดยไปที่ การจัดการองค์กร > การตั้งค่า > การจัดกำหนดการ > ส่วนควบคุมการจัดกำหนดการการติดตาม
บนหน้านี้ ให้เลือก เปิดใช้งานการบันทึก ในบานหน้าต่างการดำเนินการก่อน จากนั้นรันการจัดตารางการผลิตที่ต้องการสำหรับใบสั่งผลิต เมื่อเสร็จสมบูรณ์ ให้กลับไปที่หน้า ส่วนควบคุมการติดตามการจัดกำหนดการ และเลือก ปิดใช้งานการบันทึก ในบานหน้าต่างการดำเนินการ รีเฟรชหน้า และรายการใหม่จะปรากฏในกริด เลือกรายการใหม่และเลือก ดาวน์โหลด บนบานหน้าต่างการดำเนินการ การทำเช่นนี้จะช่วยให้คุณมีโฟลเดอร์บีบอัด .zip ที่มีไฟล์ต่อไปนี้:
- Log.txt - นี่คือไฟล์บันทึกที่อธิบายขั้นตอนที่กลไกจัดการผ่าน ซึ่งมีความซับซ้อนมากและค่อนข้างน่ากังวล แต่เมื่อใช้เป็นส่วนหนึ่งของการทดลองกับการตั้งค่ากระบวนการผลิต เพื่อแก้ไขปัญหาประสิทธิภาพ การทำงานแรกที่จะค้นหา คือความแตกต่างในเวลาระหว่างรายการแรกและรายการสุดท้าย ซึ่งจะช่วยให้เวลาที่แน่นอนที่จะใช้กำหนดตารางทำงาน
- XmlModel.xml - ซึ่งประกอบด้วยแบบจำลองที่สร้างขึ้นใน X++ และที่กลไกจัดการดำเนินการ
JobId
ใช้ในไฟล์ที่สัมพันธ์กับRecId
จากตารางต้นทางที่มีงาน (ReqRouteJob
หรือProdRouteJob
) สิ่งทั่วไปในการค้นหาในไฟล์นี้ คือวันที่ที่กำหนดไว้ในConstraintJobStartsAt
และConstraintJobEndsAt
ตามที่คาดไว้ว่าคุณสมบัติJobGoal
ถูกตั้งค่าไว้อย่างถูกต้อง และมีการเชื่อมโยงกับงานที่เกี่ยวข้องกับแต่ละอื่นๆ ผ่านข้อจำกัดJobLink
- XmlSlots.xml - ซึ่งประกอบด้วยเวลาการทำงาน และการจองกำลังการผลิตทั้งหมดที่กลไกจัดการร้องขอ เวลาทำงานของปฏิทินและการจองจะถูกร้องขอโดยกลไกจัดการสำหรับรอบระยะเวลาที่พยายามจะวางงาน (และบัฟเฟอร์พิเศษ) ดังนั้นถ้าไฟล์มีเวลามากในอนาคต -ก็อาจเป็นการบ่งชี้ว่ามีปัญหาเกิดขึ้นกับการตั้งค่า โหนด
ResourceProperty
จะแสดงสำหรับทรัพยากรแต่ละกลุ่ม และความสามารถในการเชื่อมโยงกับแต่ละรอบระยะเวลา - Result.xm - ซึ่งประกอบด้วยผลลัพธ์ของการรันการจัดกำหนดการ
โปรดทราบว่าฟังก์ชันการสืบค้นกลับจะสามารถเพิ่มค่าประสิทธิภาพที่สำคัญได้ ดังนั้นจึงใช้สำหรับการตรวจสอบการจัดกำหนดการของใบสั่งเฉพาะในลักษณะที่ควบคุม ถ้ามีการเปิดใช้งานในระหว่างการวางแผนหลักรัน จะทำให้ทำงานได้อย่างรวดเร็วถึงขีดจำกัดของขนาดและหยุด
ประสิทธิภาพการแก้ไขปัญหา
ในขณะที่สามารถเข้าใจได้จากส่วนก่อนหน้านี้ทั้งหมด มีบางอย่างเมื่อมีการตั้งค่าการตั้งค่า และการใช้งานของกลไกจัดการการจัดกำหนดการ ซึ่งอาจทำให้เกิดปัญหาประสิทธิภาพการทำงาน รายการตรวจสอบต่อไปนี้สามารถใช้สำหรับการแก้ไขปัญหาดังกล่าว สิ่งสำคัญ คือต้องดูจุดทั้งหมด เนื่องจากจะเป็นการรวมกันของหลายปัจจัยที่นำไปสู่ปัญหา
การดำเนินการจัดกำหนดการเป็นส่วนหนึ่งของ MRP เมื่อไม่ต้องการ
ถึงแม้ว่าจะมีการใช้กระบวนการผลิตสำหรับวัตถุประสงค์ของการควบคุมการผลิต เช่น การคิดต้นทุน และการรายงานอาจไม่จำเป็นต้องพิจารณาในระหว่าง MRP ในบางกรณี การมีระยะเวลารอคอยสินค้าสำหรับการผลิตมาตรฐานที่ระบุไว้สำหรับสินค้าจะมีเพียงพอสำหรับการวางแผน เมื่อต้องการปิดการจัดกำหนดการกระบวนการผลิต ให้ตั้งค่ากรอบเวลากำลังการผลิตเป็นศูนย์ ถ้าการจัดกำหนดการควรจะทำแล้ว ควรตั้งค่ากรอบเวลากำลังการผลิตอย่างระมัดระวั งเนื่องจากไม่จำเป็นต้องคำนึงถึงกระบวนการผลิตสำหรับกรอบเวลาการครอบคลุมของ MRP
โปรดทราบว่าถ้าใบสั่งไม่มีการจัดกำหนดการในระหว่าง MRP แสดงว่าใบสั่งนี้จะต้องมีการจัดกำหนดการไว้เมื่อมีการยืนยันแผนการใบสั่ง ซึ่งหมายความว่ากระบวนการยืนยันจะใช้เวลานานขึ้น ทั้งนี้ขึ้นอยู่กับจำนวนของแผนการใบสั่งที่แนะนำที่ได้รับการยืนยัน ผลกำไรประสิทธิภาพการทำงานระหว่าง MRP อาจสูญเสียที่การยืนยันยอด
กระบวนการผลิตที่มีการดำเนินงานที่ไม่จำเป็น
เมื่อออกแบบกระบวนการผลิต จึงเป็นการดึงดูดให้ลองแบบจำลองโลกจริงอย่างแน่นอนโดยมีขั้นตอนทั้งหมดในการผลิตที่ผ่านไป ในขณะที่การดำเนินการนี้อาจเป็นประโยชน์ในบางกรณี ก็ไม่ดีสำหรับประสิทธิภาพเนื่องจากแบบจำลองกลไกจัดการต้องมีการทำงานในระดับที่ใหญ่ขึ้น (ทั้งในแง่ของงานและข้อจำกัด) และคำสั่ง SQL เพิ่มเติมจะถูกดำเนินการสำหรับการแทรก และการอัพเดตงาน และการจองกำลังการผลิต นอกจากนี้ ยังมีผลกระทบต่อเนื่องของความคืบหน้าของรายงานในครั้งสุดท้ายของงาน ซึ่งสามารถลดการลงรายการบัญชีอัตโนมัติได้ ถ้าไม่มีการใช้ข้อมูลสำหรับสิ่งใดก็ตาม จะมีการสร้างจำนวนงานในศูนย์การผลิตที่ไม่จำเป็น
เราขอแนะนำให้คุณสร้างการดำเนินงานที่จำเป็นสำหรับการจัดกำหนดการอย่างเคร่งครัดเท่านั้น (ซึ่งโดยทั่วไปจะเป็นทรัพยากรคอขวด) และ/หรือวัตถุประสงค์ของการคำนวณต้นทุน อีกทางหนึ่งคือ คุณควรจัดกลุ่มการดำเนินงานที่แตกต่างกันเล็กน้อยในการดำเนินงานที่มีขนาดใหญ่กว่า ซึ่งแสดงถึงส่วนใหญ่ของกระบวนการ
การดำเนินงานที่มีทรัพยากรที่ใช้ได้หลายอย่าง
จำนวนของทรัพยากรที่ใช้ได้สำหรับการดำเนินงานจะขึ้นอยู่กับความต้องการทรัพยากรที่ตั้งค่าไว้ในความสัมพันธ์ของการดำเนินงาน ความต้องการอาจเป็นสำหรับทรัพยากรเฉพาะ (บุคคล) หรืออาจยึดตามการเป็นสมาชิกของทรัพยากรของกลุ่มทรัพยากรหรือความสามารถ
ถ้าการจัดตารางการผลิตไม่ได้ดำเนินการโดยใช้กำลังการผลิตมีจำกัด และทรัพยากรที่ใช้ได้ทั้งหมดจะมีปฏิทินและประสิทธิภาพเดียวกัน กลไกจัดการกำหนดการจะสิ้นสุดการเลือกทรัพยากรเดียวกันสำหรับการดำเนินงาน แต่เฉพาะหลังจากลองใช้ทรัพยากรที่เกี่ยวข้องทั้งหมด เพื่อตรวจสอบว่ามีสิ่งที่ "ดีกว่า" นอกเหนือจากผู้อื่นหรือไม่ ในกรณีนี้ จำนวนงานในศูนย์การผลิตของการจัดกำหนดการอาจลดลงอย่างมาก เพียงแค่กำหนดทรัพยากรที่ระบุให้กับการดำเนินงานในเวลาที่ออกแบบกระบวนการผลิต
กระบวนการผลิตที่มีการดำเนินงานที่เกิดขึ้นควบคู่กัน
ในขณะที่การดำเนินงานที่เกิดขึ้นควบคู่กัน (หลัก/รอง) เป็นเครื่องมือที่มีประสิทธิภาพในการจำลองสถานการณ์จำลอง เช่น เมื่อเครื่องจักรและผู้ปฏิบัติงานมีทั้งสองอย่างที่จำเป็นในการดำเนินงานที่เฉพาะเจาะจง ยังเป็นแหล่งที่มาของปัญหาประสิทธิภาพการทำงานจำนวนมาก ถ้ามีการกำหนดความต้องการสำหรับแต่ละทรัพยากรให้กับทั้งการดำเนินงานหลักและรอง ซึ่งโดยปกติแล้วจะไม่มีปัญหา แต่ถ้ามีทรัพยากรที่เป็นไปได้หลายอย่างสำหรับการดำเนินงานแต่ละครั้ง ก็จะเพิ่มความซับซ้อนในการคำนวณที่สำคัญให้กับการจัดตารางการผลิต
อีกทางหนึ่งสำหรับการใช้การดำเนินงานแบบขนานอาจเป็นแบบจำลองคู่กับทรัพยากร "เสมือน" (ซึ่งจะแสดงถึงทีมงานที่อยู่ในระหว่างการดำเนินงานเสมอ) หรือไม่ใช่แบบจำลองอย่างใดอย่างหนึ่งของการดำเนินงาน ถ้าไม่ได้แสดงถึงคอขวด
กระบวนการผลิตที่มีปริมาณทรัพยากรสูงกว่า 1 รายการ
ถ้าการตั้งค่าปริมาณของทรัพยากรจำเป็นสำหรับการดำเนินงานที่สูงกว่าหนึ่งรายการนั้น ดังนั้นจะมีผลอย่างมีประสิทธิภาพเช่นเดียวกับการใช้การดำเนินงานหลัก/รอง เนื่องจากมีการส่งงานขนานหลายงานไปยังกลไกจัดการ อย่างไรก็ตาม สำหรับกรณีนี้ไม่มีตัวเลือกในการใช้การกำหนดทรัพยากรที่เฉพาะเจาะจง เนื่องจากปริมาณที่สูงกว่าหนึ่งต้องมีมากกว่าหนึ่งทรัพยากรที่ใช้ได้สำหรับการดำเนินงาน
การดําเนินงานรองที่มีปริมาณการใช้ทรัพยากรมากกว่าหนึ่งหมายความว่าต้องใช้ปริมาณที่ระบุของทรัพยากรรองต่อแต่ละทรัพยากรของการดําเนินงานหลัก ตัวอย่างเช่น ถ้าการดําเนินงานหลักมีปริมาณของทรัพยากรที่ตั้งค่าเป็นสองและการดําเนินงานรองมีการการตั้งค่าปริมาณทรัพยากรเป็นสาม ส่วนรวมของทรัพยากรหกทรัพยากรที่ต้องใช้ในการดําเนินงานรอง
การใช้ที่มากเกินไปของกำลังการผลิตที่มีจำกัด
การใช้กำลังการผลิตมีจำกัดต้องให้กลไกจัดการโหลดข้อมูลกำลังการผลิตจากฐานข้อมูล และสามารถมีค่าใช้จ่ายในการคำนวณได้ เนื่องจากจะทำงานได้ยากขึ้นโดยเฉพาะในสภาพแวดล้อมที่มีการจองทรัพยากรใกล้ถึงกำลังการผลิตสูงสุด ด้วยเหตุนี้ จึงมีความสำคัญในการประเมินอย่างรอบคอบว่าทรัพยากรจำเป็นต้องใช้กำลังการผลิตมีจำกัด หรือสามารถจองเกินเวลาได้หรือไม่ เนื่องจากอาจมีความแตกต่างระหว่างทรัพยากรกำลังการผลิตที่มีจำกัดในความสำคัญของการจองเกิน เราขอแนะนำให้ใช้ตัวเลือกคอขวดบนทรัพยากรร่วมกับค่าแยกต่างหากในแผน "กรอบเวลากำลังการผลิตสำหรับทรัพยากรคอขวด" การใช้แนวคิดคอขวดสามารถเปิดใช้งานได้ โดยกรอบเวลากำลังการผลิตแบบมีจำกัดโดยทั่วไปอาจลดลง
การตั้งค่าฮาร์ดลิงค์
ชนิดของลิงค์มาตรฐานของกระบวนการผลิตเป็นแบบ ชั่วคราว ซึ่งหมายความว่ามีช่องว่างในเวลาที่อนุญาตระหว่างเวลาที่เสร็จสิ้นของการดำเนินงานหนึ่ง และจุดเริ่มต้นของการดำเนินงานถัดไป การอนุญาตให้นี้อาจมีผลกระทบร้าย ซึ่งถ้าวัสดุหรือกำลังการผลิตไม่พร้อมใช้งานสำหรับการดำเนินงานอย่างใดอย่างหนึ่งสำหรับเวลานานมาก การผลิตอาจไม่ได้ใช้งานอยู่สักระยะ หมายความว่าการเพิ่มขึ้นของงานกำลังดำเนินการอยู่ การทำเช่นนี้จะไม่เกิดขึ้นกับการเชื่อมโยงแบบถาวร เนื่องจากจุดเสร็จสิ้นและเริ่มต้องจัดแนวเดียวกันอย่างสมบูรณ์ แต่การตั้งค่าการเชื่อมโยงแบบถาวรทำให้เกิดปัญหาการจัดกำหนดการยากขึ้น เนื่องจากต้องมีการคำนวณเวลาการทำงานและกำลังการผลิตสำหรับสองทรัพยากรของการดำเนินงาน ถ้ามีการดำเนินการที่เกี่ยวข้องกับการดำเนินงานแบบขนาน นี่จะเพิ่มเวลาการคำนวณที่สำคัญ ถ้าทรัพยากรของการดำเนินการทั้งสองมีปฏิทินที่แตกต่างกันที่ไม่ได้รับการทับซ้อนทั้งหมด ปัญหาคือ ไม่สามารถแก้ไขได้
เราขอแนะนำให้ใช้การเชื่อมโยงแบบถาวรเฉพาะเมื่อจำเป็นต้องใช้อย่างเด็ดขาด และควรพิจารณาอย่างถี่ถ้วนถ้าจำเป็นสำหรับการดำเนินงานของกระบวนการผลิตแต่ละครั้ง
เมื่อต้องการลดงานที่อยู่ระหว่างดำเนินการโดยไม่ใช้ลิงค์ถาวร คำแนะนำคือการจัดกำหนดการใบสั่งสองครั้งด้วยการเปลี่ยนไปใช้ทิศทางตรงกันข้ามสำหรับการผ่านที่สอง ถ้ากำหนดการแรกย้อนหลังจากวันที่จัดส่งแล้ว ควรจะทำการส่งต่อจากวันที่เริ่มต้นตามกำหนดการ การดำเนินการนี้จะทำให้งานถูกบีบอัดมากที่สุดเท่าที่จะเป็นไปได้ เพื่อให้งานระหว่างทำถูกย่อให้สั้นลง
ปฏิทินแยกต่างหากสำหรับแต่ละทรัพยากร
แหล่งข้อมูลหลักอย่างใดอย่างหนึ่งของข้อมูลสำหรับกลไกจัดการการจัดกำหนดการ คือข้อมูลปฏิทิน ซึ่งอาจมีราคาแพงกว่าโหลดจากฐานข้อมูล เนื่องจากมีการสร้างปฏิทินตามแม่แบบดังกล่าว ซึ่งจะถูกดึงดูดเพื่อสร้างปฏิทินสำหรับแต่ละทรัพยากร แล้วปรับปรุงข้อมูลในปฏิทินนี้ เมื่อทรัพยากรหยุดทำงานและมีปัญหาอื่นๆ อย่างไรก็ตาม การดำเนินการนี้จะจำกัดความสามารถของกลไกจัดการในการแคชข้อมูลของปฏิทิน เนื่องจากจะต้องมีการร้องขอข้อมูลใหม่สำหรับแต่ละทรัพยากร และอาจเป็นแหล่งที่มาของปัญหาประสิทธิภาพการทำงานจำนวนมาก แต่เราขอแนะนำให้คุณใช้ปฏิทินให้มากที่สุดเท่าที่จะเป็นไปได้ระหว่างทรัพยากร แล้วควบคุมการเปลี่ยนแปลงที่หยุดทำงาน โดยกำหนดรหัสปฏิทินอื่นสำหรับรอบระยะเวลา
จำนวนช่องเวลาการทำงานสูงสำหรับแต่ละวันในปฏิทิน
เนื่องจากกลไกจัดการทำงานโดยการตรวจสอบช่องเวลาทีละหนึ่งสำหรับกำลังการผลิต ซึ่งเป็นประโยชน์ในการลดจำนวนของช่องเวลาสำหรับแต่ละวันในปฏิทิน การดำเนินการนี้อาจทำได้เช่นเดียวกับ การพิจารณาว่ามีความสำคัญต่อกำหนดการผลลัพธ์เพื่อสะท้อนให้เห็นว่า ผู้ปฏิบัติงานมีเวลาหยุดพัก 5 นาทีทุกชั่วโมง
การหมดเวลาของการจัดกำหนดการมีขนาดใหญ่ (หรือไม่มี)
คุณสามารถปรับปรุงประสิทธิภาพของกลไกจัดการการจัดกำหนดการโดยใช้พารามิเตอร์ที่พบบนหน้า พารามิเตอร์การจัดกำหนดการ การตั้งค่า การหมดเวลาการจัดกำหนดการที่เปิดใช้งาน และ การหมดเวลาที่เปิดใช้งานการเพิ่มประสิทธิภาพ ควรตั้งค่าเป็น ใช่ เสมอ ถ้าตั้งค่าเป็น ไม่ การจัดกำหนดการอาจอาจรันอนันต์ถ้ามีการสร้างกระบวนการผลิตที่เป็นไปไม่ได้ที่มีหลายตัวเลือก
ค่าสำหรับ เวลาการจัดกำหนดการสูงสุดสำหรับแต่ละลำดับ ควบคุมจำนวนวินาทีที่สามารถใช้ในการค้นหาวิธีการแก้ไขสำหรับลำดับเดียว (ในกรณีส่วนใหญ่ลำดับจะตรงกับใบสั่งเดียว) ค่าที่จะใช้ที่นี่จะขึ้นอยู่กับความซับซ้อนของกระบวนการผลิต และการตั้งค่า เช่น กำลังการผลิตมีจำกัด แต่ค่าสูงสุดประมาณ 30 วินาทีเป็นจุดเริ่มต้นที่ดี
ค่าสำหรับ การเพิ่มประสิทธิภาพความพยายามในการเพิ่มประสิทธิภาพ ควบคุมจำนวนวินาทีที่ใช้มากที่สุดในการค้นหาวิธีการแก้ปัญหาที่ดีกว่าที่พบในครั้งแรก การดำเนินการนี้จะมีผลกระทบต่อกระบวนการผลิตที่ใช้การดำเนินงานขนาน เนื่องจากจำเป็นต้องใช้ในการทดสอบชุดต่างๆ
หมายเหตุ
ค่าที่ตั้งค่าไว้สำหรับการใช้การหมดเวลาจะถูกใช้ทั้งสำหรับการจัดกำหนดการของใบสั่งผลิตที่นำออกใช้ และแผนการใบสั่งเป็นส่วนหนึ่งของ MRP ด้วยเหตุนี้ การตั้งค่าที่มีค่าสูงมากอาจเพิ่มในเวลารันของ MRP อย่างมาก เมื่อรันแผนงานที่มีแผนการใบสั่งผลิตจำนวนมาก
คำติชม
https://aka.ms/ContentUserFeedback
เร็วๆ นี้: ตลอดปี 2024 เราจะขจัดปัญหา GitHub เพื่อเป็นกลไกคำติชมสำหรับเนื้อหา และแทนที่ด้วยระบบคำติชมใหม่ สำหรับข้อมูลเพิ่มเติม ให้ดู:ส่งและดูข้อคิดเห็นสำหรับ