หน้าเว็บ

วันอังคารที่ 9 ธันวาคม พ.ศ. 2557

GENESIS SCADA:รันสคริปต์ตามลำดับไม่ซ้ำเวลากัน

ในScriptWorXเราสามารถให้สคริปต์รันแบบตามลำดับกันได้เพื่อประโยชน์ในการลดโหลดของแอพลคิชั่นที่เกี่ยวข้อง ยกตัวอย่างเช่นสลับกันอ่านค่าOPC tagคนละกลุุ่มเพื่อลดภาระของOPC Serverเป็นต้น

 

จากรูป Scriopt1 และ Script2 ทำงานห่างกัน5 วินาที และจะทำงานเป็นระยะทุก 15 วินาที เป็นอย่างนี้ไปเรื่อย ๆ

image

หากต้องการให้Sriptต่าง ๆ ทำงานเป็นลำดับดังข้างต้น ให้กำหนดเวลาเริ่มต้นในการทำงานของScriptแต่ละตัวให้ถัดกันไป นั่นคือเราาต้องใช้Time Triggerที่เริ่มทำงาน ณ เวลาที่ต่างกันแต่มีความถี่เท่ากัน จากรูปเป็นScriptซึ่งถูกสั่งการจากTriggerที่ทำงานทุก 10วินาที เราจะต้องเข้าไปดูรายละเอียดของTriggerตัวนี้ในUDM(Unified Data Manager)ว่าเริ่มงานณเวลาใด

image

จากรายละเอียดของTriggerดังแสดงจะพบว่าเริ่มทำงานที่วินาทีที่ 0 (Start time)

image

ดังนั้นถ้าเราจะให้Scriptตัวถัดไปทำงานห่างจากScriptแรก 5 วินาที แต่ทำงานซ้ำ ๆ ทุก 10 วินาทีเช่นเดียวกัน เราจะต้องสร้างTriggerขึ้นมาใช้งานอีกตัวหนึ่งแต่ต้องเปลี่ยนStart timeเป็น 00:00:05 ดังรูป (เราสามารถ Copy เดิมแล้วแก้ค่าStart timeได้)

image

จากนั้นนำTriggerที่สร้างขึ้นใหม่ไปใช้ควบคุมScriptที่ต้องการให้ทำงานถัดกันไป 5 วินาที แต่ยังคงทำงานทุก 10 วินาที ก็จะทำให้Scriptทั้งสองตัวทำงานไม่ตรงกันแต่มีรอบในการทำงานเท่ากัน ซึ่งช่วยให้ระบบทำงานได้ดีขึ้น และผู้ออกแบบสามารถจัดการลำดับการทำงานของScriptที่สัมพันธ์กันได้เช่นScriptที่ต้องรอผลลัพธ์จากScriptก่อนหน้าก่อน เป็นต้น

บทความโดย สุทธิพงษ์ เสนาถี

ไม่มีความคิดเห็น:

แสดงความคิดเห็น