หากต้องการให้Alrm tagในAlarmWorX ServerของGENESIS32บางตัวทำงานเฉพาะบางช่วงเวลา (บางtagตรวจจับสัญญาณเฉพาะบางช่วงเวลา) เราสามารถทำได้ดังนี้
หลักการ Alarm Tag แต่ละตัวจะมีpropertyชื่อEnabledให้กำหนดได้ว่าจะให้tagนั้นทำงาน(ตรวจจับสัญญาณเงื่อนไข)หรือไม่ ถ้าเราใส่ตัวเลขอะไรที่ไม่ใช่0ก็จะทำให้tagนั้นทำงาน เราสามารถใช้OPC tagอื่นมาควบคุมpropertyนี้ได้ เช่น ใช้ScheduleWorXมาควบคุมให้OPC tag (ที่เราจะใช้ควบคุมEnabled)มีค่าเป็น1ในช่วงเวลาที่ต้องการ และกลับเป็น0เมื่อพ้นช่วงเวลานั้นไปเป็นต้น  ในGENESIS32เรายังสามารถใช้ScriptWorXมาจัดการแทนScheduleWorXได้ด้วย หรืออีกวิธีหนึ่งคือใช้สัญญาณวันเวลาจากOPCมาเป็นเงื่อนไขให้Enabledโดยตรงก็ได้ (ดูตอนท้ายบทความ) การสร้างTriggerในScriptWorX สำหรับวิธีที่ใช้ScriptWorX ให้สร้างPeriodic Triggerขึ้นมา2ตัวในScriptWorX32 - โดยตัวแรกทำงานเวลาที่ต้องการให้OPC tag(ที่ควบคุมEnabled)เป็น1
- และตัวที่สองทำงานเวลาที่ต้องการให้OPC tag(ที่เราจะใช้ควบคุมEnabled)เป็น 0
ตัวอย่างการสร้าง Periodic Trigger ใน ScriptWorX โดยให้ทำงานวันจันทร์และวันพุธ ณ เวลา 8:00 น. ตั้งชื่อTrigger NameและScriptNameเป็น Enabled_On แล้วคลิ้กApply  คลิ้กVBA Script Wizard เพื่อสร้างScript  หน้าต่างScript Wizardจะปรากฏขึ้นมา ให้เลือกScriptWorX > WriteOPCTag แล้วเลือกOPC tag  เช่นจากตัวอย่างล่างใช้OPC tagจากOPC Simulator ชื่อ Bit1  จะกลับมาที่หน้าScript Wizad ให้คลิ้ก Generate Script  จะมีหน้าต่างแจ้งว่าScriptสร้างเรียบร้อย คลิ้กYesเพื่อเข้าดูScript  ในScriptเพิ่มบรรทัด Value = 1 ดังรูปเพื่อสั่งให้OPC tagเป็น1 แล้วกด Ctrl + S บนแป้นพิมพ์เพื่อSave  กลับมายังหน้าหลักของScriptWorX สร้างTriggerขึ้นมาอีกตัวเช่นให้ทำงานที่วันจันทร์และวันพุธแต่เวลา 5 โมงเย็น ตั้งชื่อTrigger NameและScript Name เป็น Enabled_Off คลิ้ก Apply จากนั้นเข้าScriptWizard เหมือนเดิมแต่กำหนดให้ Value = 0 เพื่อสั่งOff กดCtrl+Sบนแป้นพิมพ์ กลับมายังหน้าScriptWorXคลิ้กเลือกไอคอน ”Make VBA DLL”  แล้วคลิ้กไอคอนไฟจราจรเพื่อให้ScriptWorXทำงาน เอาสัญญาณ OPC tag (เช่นในตัวอย่างนี้คือBIT1)ไปควบคุมAlarm Tagที่ต้องการเพื่อสั่งEnabled  เท่านี้Alarmนั้นก็จะทำงานเพื่อตรวจจับเหตุการณ์ตามช่วงเวลาที่เราระบุครับ เราสามารถใช้สัญญาณOPC tagเดียวกันเพื่อควบคุมAlarm tagอื่นให้Enableได้ถ้าใช้ช่วงเวลาเดียวกัน อีกวิธีหนึ่งใช้สัญญาณวันเวลาจากOPCมาเป็นเงื่อนไขโดยตรง  เราสามารถใช้ExpressionมากำหนดการทำงานของEnabledได้ จากตัวอย่างเป็น Expression ซึ่งหมายถึงถ้าเป็นวันจันทร์หรือพุธ และเวลาอยู่ในช่วง 8 โมงถึงเวลาไม่เกิน 5 โมงเย็น ให้ผลลัพธ์เป็น 1 (นอกเหนือจากนี้ให้เป็น 0)  x= if(
( {{Kepware.KEPServerEX.V5\_System._Date_DayOfWeek}} == 1
|| {{Kepware.KEPServerEX.V5\_System._Date_DayOfWeek}} == 3)
&& {{Kepware.KEPServerEX.V5\_System._Time_Hour24}} >= 8
&& {{Kepware.KEPServerEX.V5\_System._Time_Hour24}} <= 17
,1
,0
)
เมื่อ DayOfWeek 1= จันทร์, 2 = อังคาร, …
สามารถคัดลอกExpressด้านบนไปใช้กับPCที่มีKepware OPC Serverได้เลย(เดโมก็ใช้ได้) ซึ่งวิธีนี้ก็สะดวกมาก
ถ้าใช้Kepware KepServerEx V6ก็ให้เปลี่ยนจาก “V5”เป็น “V6” |