โปรแกรมสำหรับสร้างไซโคลแกรมของการก่อสร้างต่อเนื่องแบบออนไลน์ การสร้างไซโคลแกรมสำหรับโมดูลเครื่องจักร การคำนวณผลผลิตแบบวงจรและตัวประกอบภาระ ข้อกำหนดในการรายงาน
หน้าหนังสือ
18
ขอแนะนำให้คำนวณระยะเวลาและพารามิเตอร์การไหลอื่นๆ ทั้งหมดโดยใช้เมทริกซ์ตามลำดับต่อไปนี้ ตรงกลางเซลล์ของเมทริกซ์ดังแสดงในรูปที่ 1 5.9 บันทึกระยะเวลาการทำงานของทีมงานในการจับกุม
การคำนวณดำเนินการตามลำดับต่อไปนี้ ขั้นแรก ในตอนท้ายของแต่ละคอลัมน์ ให้ระบุระยะเวลาการทำงานของทีม Σtผม(ซึ่งสรุประยะเวลาการทำงานในทุกอาชีพ ดังนั้นสำหรับกองพลที่ 1 ระยะเวลานี้คือ 8 หน่วยสำหรับหน่วยที่ 2 - 12 เป็นต้น
ถัดไปที่มุมซ้ายบนของเซลล์แรกจะมีการป้อนเวลาเริ่มต้นของทีมที่ 1 ในการยึดครั้งที่ 1 (โดยปกติจะเป็นศูนย์) และที่มุมล่างขวาคือจุดสิ้นสุดของการทำงานของทีมซึ่งเท่ากับ เวลาเริ่มงานบวกระยะเวลาของงาน
เนื่องจากเวลาสิ้นสุดของการทำงานในอาชีพแรกถือเป็นจุดเริ่มต้นของการทำงานของทีมนี้ในครั้งที่สอง เวลานี้จะถูกถ่ายโอนโดยไม่มีการเปลี่ยนแปลงที่มุมซ้ายบนของเซลล์ที่สองของคอลัมน์เดียวกัน (ดูรูปที่ 5.9) เมื่อรวมเวลานี้เข้ากับระยะเวลาการทำงานบนด้ามจับ II เวลาสิ้นสุดของงานจะถูกกำหนด เวลานี้ถูกบันทึกไว้ที่มุมขวาล่างของเซลล์ที่สอง ด้วยวิธีนี้จะคำนวณจุดเริ่มต้นและจุดสิ้นสุดของงานในทุกอาชีพของกลุ่มที่ 1 การคำนวณเพิ่มเติมตามคอลัมน์จะดำเนินการขึ้นอยู่กับระยะเวลาการทำงานของทีม หากระยะเวลาการทำงานของทีมถัดไปนานกว่าระยะเวลาการทำงานของทีมก่อนหน้า การคำนวณจะดำเนินการจากบนลงล่าง และถ้าน้อยกว่า การคำนวณจะดำเนินการจากล่างขึ้นบน
ข้าว. 5.9. เมทริกซ์พร้อมผลลัพธ์ของการคำนวณการไหลแบบหลายจังหวะ
เนื่องจากระยะเวลารวมของการทำงานของกองพลที่ 2 ในตัวอย่างที่พิจารณานั้นมากกว่าระยะเวลาของการทำงานของกองพลที่ 1 (12>8) ดังนั้นการคำนวณจุดเริ่มต้นและจุดสิ้นสุดของการทำงานของกองพลที่ 2 บน การชักเริ่มต้นจากด้านบนคือ จากช่วงเวลาที่ฉันถูกจับกุมอย่างอิสระ เมื่อต้องการทำเช่นนี้ จากมุมล่างของเซลล์แรกของคอลัมน์แรก เวลาที่แสดงถึงการสิ้นสุดงานในอาชีพแรกจะถูกโอนไปที่มุมซ้ายบนของเซลล์แรกของคอลัมน์ที่สอง การคำนวณต่อไปนี้คล้ายกับการคำนวณครั้งก่อน
เนื่องจากระยะเวลาการทำงานของกองพลที่ 3 น้อยกว่าระยะเวลาการทำงานของกองพลที่ 2 (4<12), то расчет начал и окончаний работ 3-й бригады следует вести снизу вверх. Для этого вначале в левый угол последней клетки третьей графы переносят время окончания работ 2-й бригады на последней захватке. Одновременно это время переносят в правый нижний угол вышележащей клетки, где это время соответствует окончанию работы 3-й бригады на предыдущей захватке. Начало работы бригады на этой захватке определяют как разность между этим временем и продолжительностью работы бригады на захватке. Аналогичным образом заполняют все клетки матрицы. Цифра в нижнем углу последней клетки матрицы показывает общую продолжительность выполнения работ. В нашем примере она равна 20 ед. времени.
หลังจากคำนวณพารามิเตอร์การไหลโดยใช้เมทริกซ์แล้ว แนะนำให้สร้างไซโคลแกรมการไหลเพื่อความชัดเจน (รูปที่ 5.10)
การคำนวณพารามิเตอร์ของการไหลที่ไม่ใช่จังหวะโดยใช้เมทริกซ์นั้นคล้ายคลึงกับการคำนวณการไหลแบบเฮเทอโรริธึมยกเว้นว่าในกระบวนการคำนวณจำเป็นต้องกำหนดสำหรับแต่ละคู่
ข้าว. 5.10. คำนวณไซโคลแกรมของการไหลแบบหลายจังหวะ
โดยใช้เมทริกซ์
กลุ่มที่อยู่ติดกันซึ่งเป็นสถานที่ของการบรรจบกันที่สำคัญของพวกเขาซึ่งสามารถอยู่ที่ใดก็ได้ไม่เหมือนกับกระแสเฮเทอโรริทมิก
ตัวอย่างเช่น ลองคำนวณพารามิเตอร์ของข้อมูลการไหลที่ไม่ใช่จังหวะ
ซึ่งนำเสนอในเมทริกซ์ (รูปที่ 5.11) ในขั้นตอนแรกของการคำนวณ จะมีการกำหนดสถานที่ของการบรรจบกันที่สำคัญของแต่ละคู่ของทีมที่อยู่ติดกัน (กระแสส่วนตัว) ในการดำเนินการนี้ ให้ค้นหาระยะเวลาการทำงานที่ยาวนานที่สุดบนด้ามจับของทั้งสองทีม โดยสรุประยะเวลาการทำงานของพวกเขาบนด้ามจับ โดยมีเงื่อนไขว่าการบรรจบกันที่สำคัญจะเกิดขึ้นที่ด้ามจับ I ก่อน จากนั้นจึงไปที่ด้ามจับ II เป็นต้น ผลลัพธ์การรวมจะถูกเขียนในแถวสุดท้ายของเมทริกซ์เป็นคอลัมน์ ตัวอย่างเช่น สำหรับกลุ่มที่ 1 และ 2 ระยะเวลาเหล่านี้จะเท่ากับค่าต่อไปนี้: โดยมีเงื่อนไขว่าแนวทางวิกฤตอยู่ที่การจับครั้งแรก - 3+1+2+2+2=10;
บน II--3+1+2+2+2=10; ในวันที่ 111-3+1+1+2+2=9 และสุดท้ายในวันที่ IV --3+1+1+1+2=8 ค่าที่ใหญ่ที่สุดของผลรวมที่ได้รับคือ 10 ซึ่งหมายความว่าการบรรจบกันที่สำคัญของทั้งสองกลุ่มที่อยู่ระหว่างการพิจารณาอยู่ที่การจับ I และ II ในทำนองเดียวกันจะพบสถานที่ของการบรรจบกันที่สำคัญของกลุ่มอื่น ๆ ทั้งหมด (กระแสเอกชน)
หลังจากกำหนดตำแหน่งของแนวทางวิกฤตแล้ว การคำนวณจะเริ่มต้นด้วยเซลล์เหล่านั้นของเมทริกซ์ซึ่งเป็นที่กำหนดแนวทางวิกฤต การคำนวณนั้นไม่แตกต่างจากที่กล่าวไว้ข้างต้นสำหรับการไหลแบบเฮเทอโรริธึม
ไซโคลแกรมของการไหลที่ไม่ใช่จังหวะซึ่งคำนวณบนเมทริกซ์ (รูปที่ 5.11) จะแสดงในรูปที่ 1 5.12.
คุณภาพของโฟลว์ที่ออกแบบได้รับการประเมินโดยใช้เกณฑ์ต่างๆ ซึ่งรวมถึง: ระยะเวลาของโฟลว์; ระดับของการผสมผสานงาน ระดับจังหวะการใช้ทรัพยากร ระดับความสม่ำเสมอของการก่อสร้าง
เกณฑ์ ระยะเวลาการไหลเป็นสิ่งสำคัญเนื่องจากระยะเวลาส่งผลต่อประสิทธิภาพการก่อสร้าง
ข้าว. 5.11. เมทริกซ์พร้อมผลลัพธ์ของการคำนวณการไหลที่ไม่ใช่จังหวะ
การเพิ่มประสิทธิภาพของกระแสที่ไม่ใช่จังหวะเมื่อเวลาผ่านไป
ระยะเวลาของโฟลว์ขึ้นอยู่กับความเข้มข้นของแรงงานรวมของงาน จำนวนทีม และสำหรับโฟลว์ที่ไม่ใช่จังหวะ รวมถึงลำดับของการรวมไว้ในงานของพื้นที่ที่โฟลว์ดำเนินการด้วย การคำนวณแสดงให้เห็นว่าความแตกต่างระหว่างระยะเวลาการทำงานในการไหลที่ไม่ใช่จังหวะโดยมีลำดับการรวมพื้นที่ทำงาน (พื้นที่) น้อยที่สุดและมีเหตุผลมากที่สุดถึง 15-20%
การค้นหาตัวเลือกที่เป็นไปได้ทั้งหมดอย่างสมบูรณ์เพื่อรวมการจับภาพ (ส่วน) ในงานซึ่งระยะเวลาของการไหลน้อยที่สุดนั้นเป็นงานที่แทบไม่สมจริงเลย เนื่องจากจำนวนตัวเลือกถึงค่ามหาศาล - แฟกทอเรียลของจำนวน จับภาพ (ส่วน) ตัวอย่างเช่นมีเพียง 12 ด้ามจับเท่านั้น
ทีมงานกำลังทำงานจำนวนตัวเลือกถึง 479,001,600 ดังนั้นเมื่อจัดระเบียบกระแสที่ไม่ใช่จังหวะงานจึงเกิดขึ้นในการพัฒนาอัลกอริทึมสำหรับการแจงนับโดยตรงของลำดับการรวมอาชีพ (ส่วน) ในงาน
แรกชอบธรรม อัลกอริธึมการค้นหาโดยตรงเสนอในปี 1954 สาระสำคัญอยู่ที่การลดระยะเวลาการใช้งานของโฟลว์ที่ประกอบด้วยสองโฟลว์เฉพาะเนื่องจากการเปลี่ยนจากลำดับการพัฒนาแบบสุ่มของแนวงานไปเป็นลำดับที่สั่ง การจัดลำดับนั้นทำได้โดยความจริงที่ว่าส่วนหน้างานสำหรับโฟลว์ลำดับที่ 1 นั้นถูกจัดเรียงในเมทริกซ์ตามลำดับระยะเวลาการทำงานจากน้อยไปมาก และสำหรับลำดับที่ 2 - จากมากไปน้อย ในการดำเนินการนี้ ให้พิจารณาแถวทั้งหมดของเมทริกซ์ที่ประกอบด้วยสองคอลัมน์ (เธรดส่วนตัว) และระบุงานที่มีระยะเวลาสั้นกว่า (หากมีหลายรายการ การดำเนินการเพิ่มเติมจะเริ่มต้นด้วยรายการใดรายการหนึ่ง) หากงานนี้อยู่ในคอลัมน์แรก (ซ้าย) ของเมทริกซ์ เช่น เป็นของเธรดส่วนตัวที่ 1 แถวทั้งหมดที่มีองค์ประกอบนี้และองค์ประกอบด้านขวาที่อยู่ติดกันจะถูกย้ายไปยังตำแหน่งแรกของเมทริกซ์ที่สร้างขึ้น หากงานที่มีระยะเวลาขั้นต่ำอยู่ในคอลัมน์ที่สอง (ขวา) เช่น เป็นของเธรดส่วนตัวที่ 2 แถวทั้งหมดที่มีสิ่งนี้และองค์ประกอบด้านซ้ายที่อยู่ติดกันจะถูกโอนไปยังตำแหน่งสุดท้ายของเมทริกซ์ที่สร้างขึ้น การดำเนินการซ้ำกับแถวที่เหลือของเมทริกซ์ดั้งเดิมจนกว่าจะมีการสร้างใหม่ทั้งหมด
การพัฒนาชีวิตของคุณหลังจากฝึกฝนทักษะการบริหารเวลาขั้นพื้นฐานหมายถึงการทำงานในองค์ประกอบหลักสี่ประการของวันดีๆ (มหัศจรรย์!):
การเพิ่มประสิทธิภาพเวลาเป็นระยะทางการออกกำลังกาย
ในการฝึกระยะทาง การปรับเวลาให้เหมาะสมที่สุดประกอบด้วยงานต่อไปนี้:
1) มีการสร้างการวิเคราะห์“ ธุรกิจ - บริการ - ความว่างเปล่า”
2) ฉันเห็นความบันเทิงของฉัน ได้มีการตัดสินใจแล้ว
3) ฉันแปลความว่างเปล่าเป็นการบริการ บริการเป็นธุรกิจ
4) ฉันชอบจัดกิจกรรมคู่ขนาน
ดูตัวอย่างวิธีทำแบบฝึกหัดได้ที่:
โปรดให้เครดิตฉันด้วยแบบฝึกหัด "การเพิ่มประสิทธิภาพเวลา" 1) มีไฟล์ที่มีการบันทึกเวลาและพิจารณาอย่างน้อย 3 วันต่อสัปดาห์ (ในเวอร์ชันรวม: เช้าของวันหนึ่ง วันของอีกวันหนึ่ง เย็นวันที่สาม และอื่นๆ) 2) เธอ ให้คำมั่นสัญญาว่า “ข้าพเจ้าสามารถบันทึกตนเองใน “ความว่างเปล่า” ได้อย่างชัดเจน โดยปราศจากการหลอกลวงตนเอง ความจริง: “เป็นไปไม่ได้ที่จะแก้ไขตนเองในความว่างเปล่าเนื่องจากความว่างเปล่านั้นแทบจะหมดสิ้นไป” 3) ข้าพเจ้าให้คำมั่นสัญญาว่า “ฉันเปลี่ยน “ความว่างเปล่า” เป็น “การบริการ” อย่างน้อย 70% ของเวลา” เนื่องจากขาดความว่างเปล่า 4) ฉันกำหนดงานต่อไปนี้ให้กับตัวเอง - การวางแผนเวลาและการโอนบริการไปสู่การปฏิบัติ
ไฟล์ "การเพิ่มประสิทธิภาพเวลา" ช่วยให้มั่นใจได้ว่าการพักผ่อนจะใช้เวลาส่วนหนึ่งอย่างเหมาะสม ในขณะเดียวกัน ปรากฎว่าการพักผ่อนสำหรับฉันอาจเป็นทั้งการบริการและธุรกิจ ตัวอย่างเช่น: เพียงก้าวออกจากคอมพิวเตอร์แล้วสนทนากับเพื่อนของคุณ - บริการ; ใช้เวลาเดินเพียง 15 นาทีไปที่ร้านก็ได้ (ฉันซื้อของชำสำหรับมื้อกลางวันและที่บ้าน) นี่คือการค้นพบที่ขยายความเป็นไปได้
ฉันกำลังแนบภาพประกอบ: สถิติ 3 วัน โดยกลุ่ม ธุรกิจ/บริการ/ว่าง และสถิติที่สมบูรณ์ 1 วัน แน่นอนว่าสถิตินั้นเป็นค่าประมาณเนื่องจากงานบางอย่างสามารถนำมาประกอบกับทั้งงานงานและงานด้านการศึกษา (เช่น หมายเหตุเกี่ยวกับเกม “Balloon เป็นทั้งงานสร้างสรรค์ของ SPP และสรุปผลการฝึกอบรมในที่ทำงาน” ). ขณะเดียวกันสถานการณ์โดยรวมก็ยังมีความชัดเจนมากขึ้น
หากคุณต้องการคงเอกสารเดิมไว้ Natalya Dvorkina จะให้แบบฟอร์มสำเร็จรูปพร้อมสูตรการคำนวณในตัว
การเพิ่มประสิทธิภาพเวลานั้นฉลาด แต่เป็นผู้หญิง
เป้าหมาย: 1) วิเคราะห์ทิศทางหลักของการสิ้นเปลืองทรัพยากรเวลา หวาดกลัว และเริ่มใช้ชีวิตอย่างชาญฉลาดและมีสติ ดังที่นิโคไล อิวาโนวิชผู้ยิ่งใหญ่และเป็นที่รักสอน 2) ลดการมีส่วนร่วมในเรื่องไร้สาระโดยสิ้นเชิง
OZR: 1) สัปดาห์ที่ 1: การติดตามเฉยๆ ว่าที่ไหน ทำไม ด้วยผลลัพธ์อะไร กับความรู้สึกใดที่ฉันใช้ช่วงเวลาอันมีค่าของชีวิตที่มีค่าไม่น้อยไปกว่ากัน บนพื้นฐานนี้ ให้พัฒนางบประมาณเวลาสำหรับสัปดาห์ที่ 2 และ 3 2) 2-3 สัปดาห์: พอดีกับงบประมาณเวลาที่พัฒนาแล้ว ลดเวลาที่เสียให้เป็นศูนย์ ระบุปัญหาคอขวดและพัฒนาแนวทางแก้ไข
โหมดการทำงาน:กระตือรือร้น เวลาที่อยู่ในระยะไกลคือเวลาแห่งความตื่นตัว
การจดบันทึก:ทุกวัน บันทึกทันทีหลังจากเกิดเหตุการณ์จริง (ช่วงเวลา - ทุกๆ 15 นาที)
1. เวลาส่วนใหญ่ถูกครอบครองไม่ว่าคุณจะมองอย่างไรก็ตามโดยการนอนหลับ (ความพยายามที่จะลดเวลาลงทำให้ประสิทธิภาพของกิจกรรมตอนกลางวันลดลง) อันดับที่สอง – “การพัฒนา” (การเรียนรู้ภาษาชนชั้นกลางเป็นสิ่งจำเป็นสำหรับชีวิตสูงสุด) อันดับที่สาม - เหตุการณ์ปัจจุบันทุกประเภท (ช้อปปิ้ง ทำอาหาร ทำความสะอาดอพาร์ทเมนท์ ซักผ้าและรีดผ้าทุกประเภท ฯลฯ) เมื่อฉันคุ้นเคยกับกิจกรรมเอเลี่ยนสำหรับฉัน เวลาก็เริ่มลดลงอย่างเห็นได้ชัด นอกจากนี้ ปรากฎว่าคุณสามารถปอกมันฝรั่งและพึมพำคำกริยาที่ผิดปกติกับตัวเองได้ ซึ่งทำให้ทั้งจิตใจและท้องของคุณมีความสุข J
2. คำว่า "ฉัน" หมายถึงกิจกรรมของผู้หญิงทุกประเภท เช่น การวาดภาพตัวเองบนใบหน้า การไปพบนักจิตบำบัดส่วนตัว (ช่างทำผม) การหมุนร่างกายที่สวยงามทุกส่วนหน้ากระจก ฯลฯ สำหรับฉันดูเหมือนว่าจำเป็นอย่างยิ่งที่จะต้องลดเวลาสำหรับกิจกรรมที่สำคัญอย่างยิ่งเหล่านี้ซึ่งเป็นอันตรายและไร้ความหมาย
3. รายการ “อื่นๆ” มีความสำคัญมาก นี่คือการสนทนากับญาติ (ส่วนใหญ่เป็นลักษณะทางจิตบำบัดที่เกี่ยวข้องกับเหตุการณ์ล่าสุด)
4. เมื่อวิเคราะห์เวลาที่ใช้ในการเล่นกีฬาและเล่นตลก ฉันต้องเล่นกีฬาให้มากขึ้น และไม่ทำกิจกรรมที่เป็นประโยชน์อื่นๆ ให้น้อยลง แล้วทำไมไม่สำเร็จล่ะ!
กล่าวอีกนัยหนึ่ง แบบฝึกหัดนี้ดูเหมือนเป็นประโยชน์สำหรับฉัน อย่างน้อยฉันก็เริ่มคิดบ่อยขึ้นเกี่ยวกับคำถาม: ตอนนี้ฉันกำลังทำอะไรอยู่และทำไม; ฉันคาดหวังผลลัพธ์แบบไหนหากฉันใช้เวลาทั้งวันอ่านมุขตลกบนอินเทอร์เน็ตหรือร้องเพลงในแชทตลอดทั้งคืน) ทำไมไม่ลงมือทำธุรกิจตอนนี้ แทนที่จะเสียเวลาชีวิตไปอย่างโง่เขลา
สิ่งเดียวที่ดีคือมันไม่ต้องใช้เวลามากในการทำเรื่องไร้สาระเลย แม้ว่านิโคไล อิวาโนวิชจะคิดแตกต่างออกไป...
ขั้นแรก เราจะแสดงบนไซโคลแกรมถึงระยะเวลาของการดำเนินการครั้งแรกเป็น 200 นาทีนับตั้งแต่นั้น การดำเนินการครั้งแรกจะยาวนานที่สุด นอกจากนี้เรายังจะทำเครื่องหมายเวลาการผลิตของชุดการขนส่งแต่ละชุดด้วย (รูปที่ 3.6) จำนวนชุดการขนส่งทั้งหมดในตัวอย่างของเรา n/p=10/2=5 ชุด
ต่อไป เราจะอธิบายการประมวลผลชุดการขนส่งชุดแรกเป็นการดำเนินการ 2, 3 และ 4 บนไซโคลแกรม จุดเริ่มต้นของการประมวลผลชุดการขนส่งชุดแรกในการดำเนินการครั้งที่สองเกิดขึ้นพร้อมกับการสิ้นสุดการประมวลผลในชุดแรก (รูปที่ 3.7)
ข้าว. 3.7
ข้าว. 3.8
ข้าว. 3.9
ข้าว. 3.10
ข้าว. 3.11
ดังนั้นไซโคลแกรมของวงจรเทคโนโลยีระหว่างการประมวลผลชิ้นส่วนแบบขนานจะมีลักษณะดังนี้ (รูปที่ 3.12)
ข้าว. 3.12. Cyclogram ของศูนย์การค้าสำหรับการประมวลผลชิ้นส่วนแบบขนาน
การคำนวณพีซีระหว่างการประมวลผลชิ้นส่วนแบบขนาน:
การกำหนดระยะเวลาของวงจรการผลิตและวงจรเทคโนโลยีด้วยรูปแบบการเคลื่อนไหวต่อเนื่องแบบขนาน
มาเริ่มกำหนดระยะเวลาของรอบโดยการคำนวณวงจรทางเทคโนโลยี
การคำนวณ TC สำหรับการประมวลผลชิ้นส่วนตามลำดับแบบขนาน:
มาคำนวณการทับซ้อนบางส่วนของเวลาดำเนินการของการดำเนินการที่อยู่ติดกันแต่ละคู่กัน
ระยะเวลา TC(สุดท้าย)=650นาที
การคำนวณระยะเวลาของ TC สำหรับการประมวลผลชิ้นส่วนตามลำดับ - แบบขนาน:
Τts(นาร์-โนสล) = 650 – (120 + 80 + 80) = 370 นาที = 6.17 ชั่วโมง
การสร้างไซโคลแกรมของวงจรเทคโนโลยี
ขั้นแรกเราจะอธิบายระยะเวลาของการดำเนินการครั้งแรก 200 นาทีบนไซโคลแกรม (รูปที่ 3.13.)
ข้าว. 3.13.
ข้าว. 3.14.
ข้าว. 3.15.
ข้าว. 3.16.
ข้าว. 3.17.
ข้าว. 3.18.
ข้าว. 3.19.
ดังนั้นไซโคลแกรมของวงจรเทคโนโลยีสำหรับการประมวลผลชิ้นส่วนตามลำดับแบบขนานจะมีลักษณะดังนี้ (รูปที่ 3.20)
3.20. Cyclogram ของศูนย์การค้าสำหรับการประมวลผลชิ้นส่วนแบบขนาน
การคำนวณศูนย์ประมวลผลสำหรับการประมวลผลชิ้นส่วนตามลำดับแบบขนาน:
ลองคำนวณระยะเวลาของวงจรการผลิตโดยการแทนที่ข้อมูลในสูตร (5):
ออกกำลังกาย
ตามตัวเลือกงาน คำนวณวงจรเทคโนโลยีและการผลิต สร้างไซโคลแกรมของวงจรเทคโนโลยี ศึกษาอิทธิพลของระยะเวลาของวงจรการผลิตที่มีต่อพารามิเตอร์ขององค์กรของกระบวนการทางเทคโนโลยี สรุปข้อสรุปเกี่ยวกับการจัดองค์กรกระบวนการผลิตที่เหมาะสมที่สุดตามเงื่อนไขที่กำหนด
สั่งงาน
ในการทำงานให้เสร็จสิ้นคุณต้องมี:
ก) ทำซ้ำกฎความปลอดภัยเมื่อทำงานกับอุปกรณ์คอมพิวเตอร์
b) ศึกษาหัวข้อ "การจัดกระบวนการผลิต" ของหลักสูตรการบรรยายตลอดจนส่วนทางทฤษฎีของการสอนระเบียบวิธีนี้
c) ทำการคำนวณตามวิธีการที่อธิบายไว้ในวรรค 3 ตามตัวเลือกงาน
d) สรุปผลตามผลลัพธ์ที่ได้รับ
e) ตามข้อกำหนดที่กำหนดในส่วนที่ 6 ให้จัดทำรายงานห้องปฏิบัติการ
e) ปกป้องงานในห้องปฏิบัติการ
ข้อกำหนดในการรายงาน
รายงานห้องปฏิบัติการจะต้องมี:
1) หน้าชื่อเรื่อง;
2) ชื่องานห้องปฏิบัติการ วัตถุประสงค์
3) การคำนวณวงจรเทคโนโลยีและการผลิต ไซโคลแกรมของวงจรเทคโนโลยีพร้อมคำอธิบายและความคิดเห็น
4) ข้อสรุปเกี่ยวกับงานที่ทำ
ตัวเลือกงาน
ตัวเลือก | ||||||||
จำนวนวันตามปฏิทิน | ||||||||
จำนวนวันทำการ | ||||||||
ระยะเวลาของกะการทำงาน h | 7,8 | 7,8 | 7,9 | 7,85 | 7,9 | 7,85 | 7,9 | 7,85 |
อัตราการเปลี่ยนแปลง | ||||||||
เวลาระหว่างการปฏิบัติงานโดยเฉลี่ย tmo | 45นาที | 1ชม | 15 นาที | 30นาที | 45นาที | 1ชม | 15 นาที | 30นาที |
ระยะเวลาของกระบวนการทางธรรมชาติtе | 30นาที | 12ชม. | 3ชม. | 30นาที | 6ชม. | 12ชม | 3ชม | 6ชม |
ขนาดล็อตชิ้นส่วน | ||||||||
ขนาดล็อตโอน |
ส่วน ก
พารามิเตอร์กระบวนการทางเทคโนโลยีสำหรับการผลิตชิ้นส่วน A แสดงไว้ในตาราง เอ1,เอ2
ตาราง A1
กระบวนการทางเทคโนโลยีสำหรับการผลิตชิ้นส่วน A
ยังไม่มีความคิดเห็น | ชื่อการดำเนินงาน | ตัวเลือก | |||||||||||
มาตรฐานเวลา นาที | |||||||||||||
มิลลิ่ง | |||||||||||||
การหมุน | |||||||||||||
น่าเบื่อ | |||||||||||||
การขุดเจาะ | |||||||||||||
การบด |
การเพิ่มประสิทธิภาพโปรแกรม เรียกการเปลี่ยนแปลงดังกล่าวที่ทำให้มีประสิทธิภาพมากขึ้นเช่น ทำให้หน่วยความจำมีประสิทธิภาพมากขึ้นและ/หรือเร็วขึ้นในการทำหน้าที่เดียวกันกับก่อนการเปลี่ยนแปลงการปรับให้เหมาะสม
เกณฑ์การปรับให้เหมาะสมโดยเฉพาะสองประการ - โดยทั่วไปเวลาดำเนินการของโปรแกรมและจำนวนหน่วยความจำที่ใช้นั้นขัดแย้งกัน เช่นเดียวกับการเขียนโปรแกรมที่มีประสิทธิผลจะมาพร้อมกับการทำงานของโปรแกรมเมอร์ที่เพิ่มขึ้น เป็นที่ทราบกันดีว่าตามกฎแล้วการลดเวลาการทำงานของโปรแกรมสามารถทำได้โดยการเพิ่มจำนวนหน่วยความจำที่ใช้และในทางกลับกัน ในกรณีนี้เมื่อเลือกเกณฑ์ที่ต้องการการพิจารณาฮิวริสติกของโปรแกรมเมอร์จะมีผลใช้บังคับโดยให้ความสำคัญกับหนึ่งในนั้น โดยทั่วไปแล้ว สถานการณ์เฉพาะจะกำหนดความสำคัญของการปรับโปรแกรมให้เหมาะสมในแง่ของเวลาหรือหน่วยความจำ ตัวอย่างเช่น หากโปรแกรมทำงานแบบเรียลไทม์ จะต้องให้ผลลัพธ์ตรงเวลา
การเพิ่มประสิทธิภาพบางส่วนของโปรแกรมสามารถทำได้โดยนักแปล (คอมไพเลอร์) ที่เพิ่มประสิทธิภาพ แต่โดยพื้นฐานแล้วกระบวนการสร้างสรรค์นี้ขึ้นอยู่กับคุณสมบัติของโปรแกรมเมอร์และเป็นไปไม่ได้ที่จะให้อัลกอริทึมที่ปรับโปรแกรมให้เหมาะสมที่สุด คุณสามารถให้ความสนใจเฉพาะประเด็นที่มีการซ่อนการสำรองการปรับให้เหมาะสมเท่านั้น และแสดงตัวอย่างด้วย
พื้นที่การปรับให้เหมาะสมนั้นเข้าใจเป็นส่วนหนึ่งของโปรแกรมเช่น ชุดของตัวดำเนินการซึ่งการปรับการแปลงให้เหมาะสมที่สุดจะดำเนินการโดยอิสระจากตัวดำเนินการโปรแกรมอื่น โดยเฉพาะอย่างยิ่งพื้นที่การปรับให้เหมาะสมสามารถเป็นทั้งโปรแกรมได้
มีสองวิธีในการเพิ่มประสิทธิภาพโปรแกรม: "การทำความสะอาด"และ การเขียนโปรแกรมใหม่ทั้งสองวิธีมีทั้งข้อดีและข้อเสีย
แนวทางแรกคือการแก้ไขความเลอะเทอะที่ชัดเจนในโปรแกรมต้นฉบับ ข้อดีคือวิธีนี้ใช้เวลาไม่นาน อย่างไรก็ตามการเพิ่มประสิทธิภาพมักจะไม่มีนัยสำคัญ
แนวทางที่สองคือการปรับปรุงโปรแกรมต้นฉบับใหม่ คุณสามารถทำซ้ำส่วนของโปรแกรมที่ใช้เวลานานที่สุด เช่น วิธีนี้มักจะให้ผลลัพธ์ที่ดีที่สุด แต่ก็มีราคาแพงที่สุดเช่นกัน เป็นที่ยอมรับได้หากโปรแกรมที่กำลังปรับให้เหมาะสมมีการเปลี่ยนแปลงที่สำคัญ
ในแต่ละกรณีโดยเฉพาะ การเพิ่มประสิทธิภาพของโปรแกรมขึ้นอยู่กับปัจจัยหลายประการ เช่น ค่าใช้จ่ายในการปรับปรุงโปรแกรม ความถี่ในการใช้งาน ความเร็วสัมพัทธ์ของการดำเนินการต่างๆ ในเครื่อง วิธีการรวบรวมการดำเนินการต่างๆ ฯลฯ
ขอแนะนำให้พัฒนาชุดกฎที่จะอำนวยความสะดวกในการสร้างโปรแกรมที่มีประสิทธิภาพมากขึ้นซึ่งไม่จำเป็นต้องมีการเพิ่มประสิทธิภาพในอนาคต
มาดูเทคนิคพื้นฐานที่ไม่ขึ้นกับเครื่องจักรสำหรับการเพิ่มประสิทธิภาพโปรแกรม
1) ส่วนหัวของข้อความ . หากข้อความส่วนใหญ่มีช่องว่าง (หรืออักขระซ้ำอื่น ๆ ) ดังนั้นเพื่อประหยัดหน่วยความจำคอมพิวเตอร์คุณควรใช้คำสั่งที่เติมช่องว่าง (อักขระ) ในส่วนนี้ของข้อความ
2)
การเริ่มต้นตัวแปร
.
หากค่าเริ่มต้นถูกกำหนดให้กับตัวแปร (หรือค่าคงที่) ในเวลาเดียวกันกับตัวแปร
การประกาศจะช่วยประหยัดทั้งหน่วยความจำและเวลาดำเนินการ
โปรแกรมเพราะว่า ในกรณีนี้ตัวแปรจะได้รับค่าเริ่มต้น
ค่า ณ เวลาคอมไพล์โปรแกรม ไม่ใช่ที่รันไทม์
การดำเนินการ
ในขณะเดียวกัน เอกสารภายในของโปรแกรมก็ง่ายขึ้น และหลีกเลี่ยงข้อผิดพลาดในกรณีที่ไม่ได้กำหนดตัวแปรเป็นค่าเริ่มต้น
3) คุณ ตัวแปรน้อยลง.
ใช้จ่าย "ชั่วคราว"
ตัวแปรในส่วนของโปรแกรม (เช่น ตัวควบคุม
ตัวแปรลูป) ยังคงครอบครองพื้นที่หน่วยความจำและ
ในระหว่างการดำเนินการส่วนที่เหลือของโปรแกรม
จะต้องถูกลบออก (ทำความสะอาด)
เนื่องจากตามกฎแล้วตัวระบุตัวแปรจะหมายถึงเซลล์หน่วยความจำเฉพาะ ผลลัพธ์ของการดำเนินการตามขั้นตอนที่เป็นปัญหาคือการกำหนดจำนวนเซลล์ขั้นต่ำที่จำเป็นในการจัดเก็บผลลัพธ์ระดับกลาง
มีหลายกรณีที่ตัวแปรที่กำหนดค่าไว้จะไม่ถูกใช้ที่ใดในอนาคต หรือไม่มีการใช้ตัวแปรนั้นเพียงครั้งเดียวระหว่างสองคำจำกัดความของตัวแปรตัวเดียว เราเรียกคำจำกัดความของตัวแปรดังกล่าวว่าไม่ได้ใช้ ขั้นตอนการเพิ่มประสิทธิภาพในกรณีนี้คือการลบการกำหนดค่าที่ไม่จำเป็นให้กับตัวแปรที่ไม่ได้ใช้ออกจากโปรแกรม
การเพิ่มจำนวนตัวแปรชั่วคราวและตัวแปรที่ไม่ได้ใช้มักเกิดขึ้นกับโปรแกรมเมอร์มือใหม่และโปรแกรมเมอร์ที่เลอะเทอะ ข้อผิดพลาดทั่วไปของพวกเขาคือการเลือกโครงสร้างข้อมูลแรกที่นึกถึง ถือเป็นรูปแบบการเขียนโปรแกรมที่ดีหากไม่มีตัวแปรที่ไม่จำเป็นในโปรแกรม
4) การเลือกประเภทข้อมูล
.
ตัวแปรของข้อมูลประเภทต่างๆ
คอมพิวเตอร์ได้รับการประมวลผลด้วยระยะเวลาและหน่วยความจำที่แตกต่างกัน ใน
ในกรณีนี้ จำเป็นต้องมีความเข้าใจคุณสมบัติเพียงเล็กน้อย
โปรแกรม
ตัวอย่างเช่น ถ้าองค์ประกอบอาร์เรย์ A(1) เป็นจำนวนเต็ม ดังนั้นในตัวดำเนินการ FOR I :=l THEN 1000 DO A (I ):= 0.0; จะมีการแปลง 1,000 ประเภทจากจำนวนจริงเป็นจำนวนเต็ม ที่นี่คุณต้องเขียน: A(1):= 0;.
5) การลบตัวดำเนินการมอบหมายงานที่ไม่จำเป็นออก
.
ขั้นตอนที่เป็นปัญหาประกอบด้วยการลบบางส่วนออก
ผู้ดำเนินการมอบหมายและทดแทนในผู้ดำเนินการอื่นบางราย
(การกำหนดหรือการข้ามแบบมีเงื่อนไข) ตัวแปรที่ด้านซ้ายของตัวดำเนินการที่ถูกลบ นิพจน์ที่เป็นส่วนด้านขวาของตัวดำเนินการที่ถูกลบ นั่นคือ ตัวดำเนินการจะถูกรวมเข้าด้วยกัน ตัวอย่างเช่น คำสั่งมอบหมายงานสี่รายการต่อไปนี้
C1:= 5. + B 1*D **2;
C2:= B+ บาป (R);
C3:= 5.+ ก(1)*ก(2);
C:= (C1 + C2)*NW;
สามารถแทนที่ได้ด้วยอันหนึ่ง
C: = (5 + B 1*D **2 + B + SIN (R))*(5 + A(1)*A (2));
เมื่อแทนที่ตัวดำเนินการมอบหมายเพียงตัวเดียวตัวแปรที่เป็นส่วนด้านซ้ายของตัวดำเนินการที่ถูกลบด้วยนิพจน์ที่เป็นส่วนขวาของตัวดำเนินการที่ถูกลบ ผลการปรับให้เหมาะสมเชิงบวกจะเกิดขึ้นเสมอ เนื่องจากในกรณีนี้ จำนวนการดำเนินการถ่ายโอนข้อมูลจะลดลงเพียงเล็กน้อย .
สันนิษฐานว่าตัวแปรที่อยู่ด้านซ้ายของคำสั่งที่ถูกลบจะไม่ถูกใช้ในคำสั่งอื่น
6) การระบุตัวแปร
.
หากโปรแกรมมี
โอเปอเรเตอร์ของรูปแบบ A: = B จากนั้นในคำสั่งต่อๆ ไปทั้งหมดของโปรแกรม คุณสามารถแทนที่ตัวแปร A ด้วยตัวแปร B หรือค่าตัวเลขของตัวแปร B และลบโอเปอเรเตอร์ A: = B
หากตัวแปร A เป็นตัวแปรที่มีการจัดทำดัชนี คำสั่ง A: = B จะยังคงอยู่ในโปรแกรม และตัวแปร A จะถูกแทนที่ด้วยตัวแปร B ในบางคำสั่ง
7)
การลบข้อความแสดงตัวตน
.
สาระสำคัญของขั้นตอนนี้
ประกอบด้วยการลบโอเปอเรเตอร์ที่เหมือนกันออกจากโปรแกรม เช่น
ตัวดำเนินการในรูปแบบ A: = A ตัวดำเนินการดังกล่าวสามารถปรากฏได้
โปรแกรมอันเป็นผลมาจากการเพิ่มประสิทธิภาพและอื่น ๆ
การเปลี่ยนแปลง
8) การกำจัดงบที่ล้มเหลว . ในโปรแกรมจริง อาจมีส่วนที่มีคำสั่งที่ไม่สามารถเรียกทำงานได้ นั่นคือ คำสั่งที่ไม่ได้ถูกดำเนินการสำหรับชุดข้อมูลเริ่มต้นใดๆ
ลักษณะที่ปรากฏของตัวดำเนินการดังกล่าวสามารถอธิบายได้ด้วยเหตุผลสองประการ:
1) ค. ในกระบวนการดีบั๊กโปรแกรมหรือแก้ไขโปรแกรมเมอร์อาจลืมเกี่ยวกับคำสั่งดังกล่าวหรือไม่ต้องการค้นหาหรือไม่สามารถติดตามผลที่ตามมาทั้งหมดที่เกิดจากการแก้ไขบางส่วนของโปรแกรมได้
2) ความซับซ้อนเชิงตรรกะหรือข้อมูลขนาดใหญ่ของโปรแกรมไม่อนุญาตให้โปรแกรมเมอร์ "เห็น" ข้อความดังกล่าวหรือแม้แต่ส่วนที่ไม่สามารถเรียกใช้งานได้ทั้งหมดของโปรแกรม
ความหมายของขั้นตอนที่เป็นปัญหาคือการลบคำสั่งที่ไม่สามารถเรียกใช้งานได้ออกจากโปรแกรม
9) การใช้งาน I/O การดำเนินการ I/O ใช้เวลานานและควรลดลงเหลือน้อยที่สุด ไม่จำเป็นต้องป้อนข้อมูลที่สามารถคำนวณภายในโปรแกรมได้!
คำสั่ง I/O สองคำสั่งที่ต่อเนื่องกันสำหรับอุปกรณ์เดียวกันสามารถรวมเป็นคำสั่งเดียวได้ ซึ่งจะช่วยลดจำนวนการเรียกรูทีน I/O ของระบบ ซึ่งจะลดเวลาการทำงานของโปรแกรมลง
หลังจากดีบั๊กโปรแกรมแล้ว อย่าลืมลบคำสั่ง I/O ที่ไม่จำเป็น (โดยปกติจะเป็นการดีบั๊ก) ออกทั้งหมด
โดยทั่วไป I/O ที่ไม่ได้ฟอร์แมตจะเร็วกว่า I/O ที่ฟอร์แมตแล้ว สามารถใช้งานได้หากป้อนข้อมูลลงในหน่วยความจำภายนอกแล้วอ่านอีกครั้งโดยโปรแกรมเดิมหรือโปรแกรมอื่น ในกรณีนี้ ไม่จำเป็นต้องแปลงข้อมูลจากแบบฟอร์มการแสดงภายในไปเป็นรูปแบบภายนอกและในทางกลับกัน วิธี I/O นี้แม่นยำกว่าเพราะ... ตัวเลขที่สำคัญอาจหายไประหว่างการแปลงรูปแบบของข้อมูล
10) การระบุขั้นตอน (ฟังก์ชัน)
.
หากโปรแกรมมี
ลำดับของตัวดำเนินการที่เหมือนกันซึ่งแตกต่างกัน
เฉพาะตัวระบุและค่าคงที่ที่แตกต่างกันเท่านั้น
อาจมีประโยชน์ในการแยกออกเป็นขั้นตอน (หรือฟังก์ชัน) นี้
ลดข้อความโปรแกรมลงอย่างมาก แต่ช้าลง
การนำไปปฏิบัติเพราะว่า การเข้าและออกจากโพรซีเดอร์เป็นการดำเนินการที่ต้องใช้แรงงานมาก และการทำงานกับพารามิเตอร์จะช้ากว่าการทำงานกับตัวแปรในเครื่อง
จะดีกว่าถ้าใช้ไม่ใช่ขั้นตอน แต่แยกโมดูล
11) การลดจำนวนขั้นตอน (ฟังก์ชัน)
ความสัมพันธ์ระหว่างขั้นตอน
(ฟังก์ชั่น) พร้อมโปรแกรมหลักที่จัดทำโดยผู้ปฏิบัติงาน
โทรเข้าโปรแกรมหลักที่ทำให้โปรแกรมช้าลง
เมื่อเกณฑ์การปรับให้เหมาะสมคือเวลาในการคำนวณของโปรแกรม คุณต้องคิดให้รอบคอบก่อนที่จะแยกส่วนของโปรแกรมออกเป็นขั้นตอน (ฟังก์ชัน) ที่แยกจากกัน
หากมีการดำเนินการคำสั่งจำนวนมากหลายครั้งและในที่ต่างกันในโปรแกรม แน่นอนว่าจะต้องแยกคำสั่งเหล่านั้นออกเป็นขั้นตอนแยกต่างหาก แต่มันไม่ฉลาดเลยที่จะเรียกขั้นตอนเล็กๆ สอง (สาม...?) ครั้ง
การลดจำนวนของโพรซีเดอร์ (ฟังก์ชัน) ทำได้โดยการแทนที่ตัวดำเนินการเรียกด้วยเนื้อหาของโพรซีเดอร์ (ฟังก์ชัน) เหล่านี้ และแทนที่
พารามิเตอร์ที่เป็นทางการพร้อมกับพารามิเตอร์จริงที่สอดคล้องกัน แต่ข้อความของโปรแกรมจะเพิ่มขึ้นตามจำนวนคำสั่งที่สอดคล้องกัน
ขั้นตอนที่อธิบายไว้เป็นตัวอย่างว่าเกณฑ์การปรับให้เหมาะสมสองเกณฑ์ - เวลาในการคำนวณของโปรแกรมและจำนวนหน่วยความจำที่โปรแกรมใช้ - ขัดแย้งกันอย่างไร
12) ทางเลือก เมื่อจำเป็นต้องเปรียบเทียบตัวแปรตัวหนึ่งกับหลายค่า โปรแกรมเมอร์บางคนเขียนสิ่งนี้ (รูปแบบการเขียนโปรแกรมที่แย่มาก):
ที่ปรึกษาทางการเงิน= 1แล้ว... ;
IFA=2แล้ว... ;
ที่ปรึกษาทางการเงิน= 3แล้ว... ;
ในกรณีนี้ แม้ว่า A = 1 คำสั่ง IF แบบมีเงื่อนไขทั้งหมดจะถูกดำเนินการ
เมื่อใช้โครงสร้าง ELSE การเปรียบเทียบจะหยุดทันทีที่พบเงื่อนไขที่แท้จริง:
ถ้า A=1 แล้ว...
มิฉะนั้นถ้า A=2 แล้ว...
มิฉะนั้นถ้า A =3 แล้ว ...;
การปรับปรุงประสิทธิภาพด้านเวลาเพิ่มเติม (ซึ่งอาจส่งผลให้โปรแกรมอ่านได้ไม่ดี) คือการจัดอันดับเงื่อนไขที่น่าจะเป็นจริงมากที่สุดก่อน (มีความน่าจะเป็นสูงสุดที่จะเป็นจริง) จากนั้นจึงจัดอันดับเงื่อนไขที่เหลือตามลำดับความน่าจะเป็น จริง.
หมายเหตุเดียวกันนี้ใช้กับโครงสร้างการเลือก (CASE)
13) การดำเนินการทางคณิตศาสตร์ การดำเนินการทางคณิตศาสตร์จะดำเนินการด้วยความเร็วที่ต่างกัน
ให้เราแสดงรายการตามลำดับเวลาดำเนินการที่เพิ่มขึ้น:
1) การบวกและการลบ;
2) การคูณ;
3) การแบ่ง;
4) การยกกำลัง
บางครั้งมันก็สมเหตุสมผลที่จะแทนที่การดำเนินการหนึ่งด้วยการดำเนินการอื่น ตัวอย่างเช่น 3*1 สามารถแทนที่ด้วย I +I +I หรือ X**2 สามารถแทนที่ด้วย X*X นอกจากนี้ การขึ้นสู่อำนาจมักต้องใช้โปรแกรมห้องสมุด
การแทนที่การยกกำลังด้วยการคูณหลายๆ ครั้งจะช่วยประหยัดทั้งหน่วยความจำและเวลา ถ้าเลขชี้กำลังเป็นจำนวนเต็มเล็ก
การคูณทำได้เร็วกว่าการหารเกือบสองเท่า
แทนที่จะเป็น A/5 คุณสามารถเขียน 0.2*A;
แทนที่จะเป็น A1 = B /D /E + C คุณสามารถเขียน A1 = B /(D *E) + C;
SQRT(A); ดำเนินการได้รวดเร็วและแม่นยำมากกว่า A**0.5;
14) การแปลงนิพจน์ . การเปลี่ยนแปลงเบื้องต้น (การทำให้เข้าใจง่าย) ของนิพจน์สามารถนำไปสู่การกำจัดการดำเนินการทางคณิตศาสตร์หลายอย่าง
ตัวอย่างเช่น X: = 2*Y + 2*T; สามารถแทนที่ได้ด้วย X: = 2*(Y + T);
การแปลงครั้งล่าสุดกำจัดการดำเนินการคูณเพียงครั้งเดียว
15) การเพิ่มประสิทธิภาพการแสดงออก สาระสำคัญของขั้นตอนคือการแทนที่นิพจน์ย่อยที่เทียบเท่าทางความหมายที่ซับซ้อนทั้งหมดด้วยนิพจน์ย่อยแบบง่ายอันเดียว
นิพจน์ย่อยจะถือว่าเทียบเท่ากันทางความหมายหากเทียบเท่ากันในเชิงพีชคณิต (กล่าวคือ สามารถแปลงเป็นนิพจน์ย่อยได้โดยใช้การแปลงพีชคณิต) และตัวถูกดำเนินการที่สอดคล้องกันจะมีค่าตัวเลขเหมือนกัน
ผลการปรับให้เหมาะสมในกรณีนี้คือการลดเวลาการทำงานของโปรแกรมและลดจำนวนหน่วยความจำที่ใช้
16) การประเมินล่วงหน้าของนิพจน์ย่อยทางคณิตศาสตร์ แทน เช่น:
ตอบ: = (M *B *C)/(D -E);
K: = D -E -B *C *M ;
คุณสามารถเขียน:
ต: = ยังไม่มี *B *C ;
U:=D-E;
ตอบ: = T/U;
K: = U -T ;
ข้อความของโปรแกรมและเวลาดำเนินการจะลดลงโดยการลดจำนวนการดำเนินการที่ทำ แต่บางทีหน่วยความจำของ T และ U ก็เพิ่มขึ้นเล็กน้อย
17) การกำจัดวงเล็บเพิ่มเติม . สาระสำคัญของขั้นตอนนี้คือการกำจัดวงเล็บคู่ในนิพจน์ทางคณิตศาสตร์หรือตรรกะที่ซ้ำซ้อนอย่างมีความหมาย
18) การกำจัดเครื่องหมายที่ไม่จำเป็น . ด้วยเหตุผลหลายประการ โปรแกรมจึงมีเครื่องหมายอยู่หน้าข้อความซึ่งไม่มีการถ่ายโอนการควบคุม
เครื่องหมายดังกล่าวไม่จำเป็นและควรลบออกจากโปรแกรม
19) กำจัดตัวดำเนินการกระโดดที่ไม่จำเป็น หลังจากการปรับเปลี่ยนโปรแกรมให้เหมาะสมที่สุดหลายครั้ง ตัวดำเนินการจัมเปอร์แบบไม่มีเงื่อนไข (GO TO) อาจปรากฏขึ้น ซึ่งถ่ายโอนการควบคุมไปยังตัวดำเนินการที่ไม่มีป้ายกำกับอยู่ พวกเขาจะต้องถูกลบออก
20) การดำเนินงานโดยนัย การดำเนินการ T: = M(1) ต้องใช้เวลาและหน่วยความจำมากกว่า T: = A; 1.5-2 เท่า และถ้า M เป็นพารามิเตอร์หรือฟังก์ชัน ก็จะมากกว่า 2.5-3 เท่า โดยที่มักใช้ M(1) คุณสามารถใช้ตัวแปรอย่างง่าย MI: = M(I) ฯลฯ
แต่ถ้าดัชนี I เป็นค่าคงที่ การจัดทำดัชนีจะไม่ดำเนินการ: ในระหว่างการแปล จะมีการคำนวณออฟเซ็ตขององค์ประกอบที่สัมพันธ์กับจุดเริ่มต้นของอาร์เรย์ และในระหว่างการทำงานของโปรแกรม จะถือเป็นตัวแปรอย่างง่าย
21) รอบการทำความสะอาด
เล็กน้อยเกี่ยวกับความทรงจำ โดยปกติแล้วโปรแกรมเมอร์
ไม่สนใจเกี่ยวกับหน่วยความจำจนกว่าจะเกินขนาดของมัน
แล้วจะเห็นได้ชัดว่าความทรงจำไม่ได้ไร้มิติ มีการคาดการณ์ว่าอีกไม่นานเราจะมีความจำเพียงพอในการแก้ปัญหาใดๆ แต่ขนาดของปัญหาที่ต้องแก้ไขก็เพิ่มขึ้นตามขนาดของหน่วยความจำคอมพิวเตอร์ที่เพิ่มขึ้น
หากโปรแกรมเมอร์ใช้เวลามากมายในการพยายามปรับปรุงประสิทธิภาพของโปรแกรมโดยการปรับปรุงคำสั่งที่ดำเนินการเพียงครั้งเดียว ก็เหมือนกับการพยายามลดน้ำหนักด้วยการตัดเล็บ
เวลาดำเนินการของโปรแกรมส่วนใหญ่ขึ้นอยู่กับเวลาดำเนินการของส่วนที่ทำซ้ำซ้ำ ๆ - ในรอบ ดังนั้นจึงต้องให้ความสำคัญกับรอบเป็นหลัก
ขั้นตอนการทำความสะอาดลูปจะช่วยลดเวลาดำเนินการของลูป (และโปรแกรมด้วย) โดยการลบนิพจน์ทางคณิตศาสตร์ของเนื้อความหรือส่วนต่างๆ ของลูปที่ไม่ขึ้นอยู่กับตัวแปรควบคุมลูป
นิพจน์ที่ไม่เปลี่ยนค่าในเนื้อความของลูปจะต้องได้รับการประเมินก่อนการวนซ้ำ สิ่งนี้ไม่เปลี่ยนความยาวของโปรแกรม แต่จะปรับปรุงความเร็วของการดำเนินการ
สำหรับฉัน: = 1 ถึง 100 ทำเพื่อ J: = 1 ถึง 10 ทำ X: = Y*Z + C;
ในที่นี้ Y *Z จะได้รับการประเมินพันครั้ง แต่ในตัวอย่างต่อไปนี้จะได้รับการประเมินเพียงครั้งเดียว:
YZ: = Y*Z;
สำหรับฉัน: = 1 ถึง 100 ทำเพื่อ J: = 1 ถึง 10 ทำ X: = YZ + C;
ยกเว้นนิพจน์ที่ไม่แปรเปลี่ยน การวนซ้ำจะมีค่าธรรมเนียมเล็กน้อยในรูปแบบของหน่วยความจำส่วนหนึ่งที่จำเป็นในการจดจำและใช้ผลลัพธ์ของนิพจน์ที่ไม่แปรผันซ้ำๆ
รูปแบบที่น่าสนใจของการทำความสะอาดลูปคือการเปลี่ยนลำดับของลูป:
วงจรสำหรับฉัน: = 1 ถึง N ทำเพื่อ J: = 1 ถึง M ทำ...
ที่ N< М выполняется быстрее, чем цикл
สำหรับฉัน: = 1 ทอมทำเพื่อฉัน: = 1 ตันทำ...
เพราะ ในกรณีแรกจะดำเนินการจัดการปั่นจักรยาน M *N + N และในกรณีที่สอง - M *N + M
22) การใช้ลูป . ลูปต้องใช้หน่วยความจำเพิ่มเติมเพื่อเริ่มต้น ทดสอบ เปลี่ยนตัวแปรควบคุม และตั้งค่าคงที่ทั้งหมด
บางครั้งการหลีกเลี่ยงการใช้ลูปก็มีประโยชน์
ลำดับของคำสั่งที่ไม่มีการทำซ้ำซ้ำๆ และจำเป็นต้องมีการจัดระเบียบลูปที่ซับซ้อน มักจะสามารถเขียนในโปรแกรมตามลำดับ (เชิงเส้น) แทนที่จะวนซ้ำ
23) วงจรรวม . เมื่อแปลวงจรใดๆ จากภาษาระดับสูงเป็นรหัสเครื่อง การดำเนินการจะปรากฏในโปรแกรมอ็อบเจ็กต์ที่ใช้ส่วนหัวของวงจร กล่าวคือ การเพิ่มตัวแปรควบคุมของวงจรตามค่าของขั้นตอน การเปรียบเทียบตัวแปรควบคุมกับค่าขอบเขต การถ่ายโอนการควบคุม
ขั้นตอนการรวมรอบจะรวมหลายรอบที่มีส่วนหัวเดียวกันเป็นหนึ่งเดียว ตัวอย่างเช่น:
สำหรับฉัน: = 1 ถึง 500 ทำ X[I]: = 0;
สำหรับ J: = 1 ถึง 500 ใช่ [J]: = 0;
สามารถรวมเป็นวงเดียวซึ่งจะช่วยลดทั้งเวลาการทำงานของโปรแกรมและหน่วยความจำ:
สำหรับฉัน: = 1 ถึง 500 ให้เริ่มต้น X[I]: = 0; คุณ: = 0 จบ;
24) การนำกิ่งก้านออกจากวง
.
ให้วงเดิมประกอบด้วย
สองส่วนและขึ้นอยู่กับความสมบูรณ์ของสิ่งใดสิ่งหนึ่ง
ตามเงื่อนไขข้อใดข้อหนึ่งต่อไปนี้
สำหรับฉัน = 1 ถึง 200 DO
ถ้าเค = 2 แล้ว A(I) = B(I)*C(I) มิฉะนั้น A (I) =ข(ฉัน) + 2;
จากนั้นสามารถแทนที่ลูปดั้งเดิมด้วยสองลูปที่สอดคล้องกับสองส่วนของลูปดั้งเดิม:
ถ้า K = 2 ดังนั้น สำหรับ 1=1 ถึง 200 DO A(I) = B(I)*C(I);
อย่างอื่นสำหรับ 1=1 ถึง 200 DO A (I) = B (I) + 2...
ผลจากการลบสาขาออกจากลูป เวลาในการคำนวณของโปรแกรมจะลดลงเนื่องจากจำนวนการตรวจสอบที่ลดลงสำหรับการปฏิบัติตามเงื่อนไข
25) การลบรอบที่ว่างเปล่า
สาระสำคัญของขั้นตอนนี้คือ
การลบลูปว่างออกจากโปรแกรม
ลูปดังกล่าวสามารถปรากฏในโปรแกรมอันเป็นผลมาจากความประมาทเลินเล่อของโปรแกรมเมอร์ และส่วนใหญ่มักเป็นผลมาจากการปรับให้เหมาะสมและการเปลี่ยนแปลงอื่น ๆ
อย่างไรก็ตาม ควรสังเกตว่าในบางกรณี ลูปว่างถูกใช้เป็นเทคนิคการเขียนโปรแกรมพิเศษ เช่น ในโปรแกรมเรียลไทม์เพื่อสร้างความล่าช้า
โดยทั่วไป การดำเนินการตามขั้นตอนการกำจัดลูปว่างจะช่วยประหยัดเวลาในการทำงานของโปรแกรมและจำนวนหน่วยความจำที่ใช้
26) การบีบอัดวงจร
.
ในบางกรณีในร่างกายของวงจรก็มีอยู่
เงื่อนไขที่สามารถจำกัดช่วงการเปลี่ยนแปลงของตัวแปรควบคุมลูป
สำหรับฉัน = A แล้ว B ทำถ้าฉัน<= С THEN R(I) = P(I);
ขั้นตอนการบีบอัดแบบวนซ้ำจะถ่ายโอนข้อจำกัดต่อไปนี้ไปยังส่วนหัวของลูป:
DO I = A แล้ว C DO R(I) - P(I);
ในที่นี้จะถือว่า A<: С < В.
จากผลของการดำเนินการขั้นตอนการบีบอัดวงจร ตัวดำเนินการการเปลี่ยนแปลงแบบลอจิคัลจะถูกลบออกจากเนื้อความของลูป และจำนวนการดำเนินการของเนื้อความของลูปจะลดลง
27) การจัดการโดยทางเลือก . ในคำสั่ง select กลุ่มคำสั่งแรกที่เงื่อนไขการเลือกเป็นจริงจะถูกดำเนินการ
ดังนั้นเพื่อเพิ่มความเร็วของการทำงานของโปรแกรมจึงจำเป็นต้องจัดเรียงกลุ่มคำสั่งในคำสั่งการเลือกตามลำดับความถี่ของความน่าจะเป็นในการใช้งานจากมากไปน้อย
กล่าวอีกนัยหนึ่ง ในคำสั่งการเลือก จำเป็นต้องวางกลุ่มคำสั่งที่ต้องดำเนินการบ่อยที่สุดก่อน กลุ่มที่สองคือกลุ่มคำสั่งที่ดำเนินการบ่อยที่สุดถัดไป และอื่นๆ กลุ่มของคำสั่งที่ถูกดำเนินการน้อยมากควรปรากฏอยู่ในคำสั่งสุดท้าย
ไซโคลแกรมคือกราฟที่สะท้อนลำดับการเคลื่อนที่ขององค์ประกอบ กลไก และอุปกรณ์ทั้งหมดที่อยู่ในระบบเครื่องมือกล แกนนอนจะแสดงเวลาในระดับหนึ่ง และแกนตั้งจะแสดงรายการการกำหนดองค์ประกอบที่เกี่ยวข้องกับงาน เช่น การเคลื่อนย้ายองค์ประกอบที่ใช้เวลาพอสมควร วัตถุประสงค์ของการก่อสร้างคือการได้รับมูลค่าของระยะเวลาวงจรการทำงาน (TC) ของอุปกรณ์ (ในกรณีของเราคือ AFM ทั้งหมด) สำหรับการพิจารณาประสิทธิภาพของโมดูลในภายหลัง รวมถึงความเป็นไปได้ในการปรับวงจรให้เหมาะสมโดยการลด เวลาที่ใช้ในการเปลี่ยนผ่าน
มันสะท้อนถึงลำดับการทำงานของกลไก (องค์ประกอบ) ทั้งหมดของโมดูลภายในระยะเวลาที่กำหนดของรอบการประมวลผลที่สมบูรณ์ของชิ้นส่วน ในการสร้างไซโคลแกรมจำเป็นต้องทราบความเร็วของการเคลื่อนที่เชิงมุมและเชิงเส้นของตัวผู้บริหารของหุ่นยนต์อุตสาหกรรมตลอดจนค่าของมันตามรูปแบบที่พัฒนาขึ้น
ในรูป รูปที่ 2.74 แสดงไซโคลแกรมของการทำงานของ AFM โดยใช้ PR รุ่น MP20.40.01 พร้อมด้วยอุปกรณ์จับยึดเชิงกล (มือจับ) ก่อนที่จะสร้างไซโคลแกรม ตารางจะถูกรวบรวมซึ่งระบุลักษณะของการเคลื่อนไหว หมายเลขรอบ และเวลาของการดำเนินการตามโปรแกรมที่มอบให้กับหุ่นยนต์ เวลาในการทำงานของเครื่อง CNC สามารถระบุเป็นส่วนทั่วไปได้ โดยไม่ต้องแยกย่อยออกเป็นช่วงการเปลี่ยนผ่านทางเทคโนโลยีส่วนบุคคล เนื่องจากเป็นที่รู้จักและคำนวณในส่วนเทคโนโลยีของโครงการ สะดวกที่สุดในการตั้งเวลาเป็นวินาที การคำนวณและสร้างช่วงเวลาควรทำด้วยความแม่นยำเพียงพอเท่ากับ 0.1 วินาที
ช่วงเวลาจะถูกพล็อตบนแกนนอนของกราฟและคำนวณสำหรับการเปลี่ยนแต่ละครั้ง ในกรณีนี้ ก็เพียงพอแล้วที่จะทราบความเร็วของการเคลื่อนที่ (ทราบจากคุณลักษณะทางเทคนิค) และปริมาณของการเคลื่อนไหว (ขนาด) ซึ่งระบุไว้ในเชิงโครงสร้างภายในขีดจำกัดของการเคลื่อนไหวที่เป็นไปได้สำหรับหุ่นยนต์ของรุ่นที่เลือก
ระยะเวลาในการ “จับยึดและปล่อย” อุปกรณ์จับยึด (มือจับ) ซึ่งคำนวณได้ยาก สามารถใช้เวลาประมาณ 1 วินาที จำเป็นต้องจัดเตรียมเวลาเสริมสำหรับการติดตั้งและการรักษาความปลอดภัยชิ้นส่วนโดยผู้ปฏิบัติงาน หากใช้ในโมดูลเครื่องจักรเวอร์ชันที่ไม่ใช่แบบอัตโนมัติ
ในตาราง 2.13 แสดงเนื้อหาของการเปลี่ยนแปลงทางเทคโนโลยีที่ดำเนินการโดยองค์ประกอบของกระบวนการวิศวกรรมชลศาสตร์และวิศวกรรมเครื่องกล และเวลาที่ใช้ในการนำไปใช้งาน
โต๊ะ 2.13. เนื้อหาของการเปลี่ยนแปลงทางเทคโนโลยีที่ดำเนินการโดยองค์ประกอบ AFM
หมายเลขรอบ | เนื้อหาของคำสั่งที่ดำเนินการ | รอบเวลา, s |
เสื้อ 1 | ลดแขนหุ่นยนต์ในแนวตั้งลง 0.1 ม | 0,5 |
เสื้อ 2 | ||
เสื้อ 3 | หมุนแขน 90° และหมุนเข็มนาฬิกา 90° ทวนเข็มนาฬิกาไปพร้อมๆ กัน | 1,5 |
เสื้อ 4 | 1,5 | |
เสื้อ 5 | การเคลื่อนตัวนับ-สปินเดิลของเครื่องไปทางซ้ายและการหนีบชิ้นงานด้วยปากจับของหัวจับกำลัง | 1,5 |
เสื้อ 6 | การกระตุ้นให้กริปเปอร์ PR “คลายแคลมป์” | |
เสื้อ 7 | 1,5 | |
เสื้อ 8 | การยืดแขนในแนวนอนไปข้างหน้าตามแนวแกน OX 0.79 ม | 1,5 |
ที 9 | การเรียกกริปเปอร์ไปที่ “แคลมป์” | |
เสื้อ 10 | การคลายขากรรไกรของหัวจับกำลัง | |
เสื้อ 11 | การหดแขนในแนวนอนตามแนวแกน OX ถอยหลัง 0.79 ม | 1,5 |
เสื้อ 12 | หมุนแขน 135° และหมุนเข็มทวนเข็มนาฬิกา 90° ไปพร้อมๆ กัน | 2,25 |
เสื้อ 13 | การกระตุ้นให้กริปเปอร์ “คลายแคลมป์” | |
เสื้อ 14 | หมุนแขน OL 45° และยกแขนในแนวตั้งพร้อมกัน 0.1 ม | 0,75 |