จะให้AlarmServerตรวจจับAlarmเฉพาะบางช่วงเวลาอย่างไร?

หากต้องการให้Alrm tagในAlarmWorX ServerของGENESIS32บางตัวทำงานเฉพาะบางช่วงเวลา (ตรวจจับสัญญาณเฉพาะบางช่วงเวลา) เราสามารถบทำได้ดังนี้

หลักการ

Alarm Tag แต่ละตัวจะมีpropertyชื่อEnabledให้กำหนดได้ว่าจะให้tagนั้นทำงาน(ตรวจจับสัญญาณเงื่อนไข)หรือไม่ ถ้าเราใส่ตัวเลขอะไรที่ไม่ใช่0ก็จะทำให้tagนั้นทำงาน เราสามารถใช้OPC tagอื่นมาควบคุมpropertyนี้ได้ เช่นใช้ScheduleWorXมาควบคุมให้OPC tag(ที่เราจะใช้ควบคุมEnabled)มีค่าเป็น1ในช่วงเวลาที่ต้องการและกลับเป็น0เมื่อพ้นช่วงเวลานั้นไปเป็นต้น

image

ใน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 แล้วคลิ้กApplyimage

คลิ้กVBA Script Wizard เพื่อสร้างScript

image

หน้าต่างScript Wizardจะปรากฏขึ้นมา ให้เลือกScriptWorX > WriteOPCTag แล้วเลือกOPC tag

image

เช่นจากตัวอย่างล่างใช้OPC tagจากOPC Simulator ชื่อ Bit1

image

จะกลับมาที่หน้าScript Wizad ให้คลิ้ก Generate Script

image

จะมีหน้าต่างแจ้งว่าScriptสร้างเรียบร้อย คลิ้กYesเพื่อเข้าดูScript

image

ในScriptเพิ่มบรรทัด Value = 1 ดังรูปเพื่อสั่งให้OPC tagเป็น1 แล้วกด Ctrl + S บนแป้นพิมพ์เพื่อSave

image

กลับมายังหน้าหลักของScriptWorX

สร้างTriggerขึ้นมาอีกตัวเช่นให้ทำงานที่วันจันทร์และวันพุธแต่เวลา 5 โมงเย็น ตั้งชื่อTrigger NameและScript Name เป็น Enabled_Off คลิ้ก Apply  จากนั้นเข้าScriptWizard เหมือนเดิมแต่กำหนดให้ Value = 0 เพื่อสั่งOff กดCtrl+Sบนแป้นพิมพ์

กลับมายังหน้าScriptWorXคลิ้กเลือกไอคอน ”Make VBA DLL”

image

แล้วคลิ้กไอคอนไฟจราจรเพื่อให้ScriptWorXทำงาน

เอาสัญญาณ OPC tag (เช่นในตัวอย่างนี้คือBIT1)ไปควบคุมAlarm Tagที่ต้องการเพื่อสั่งEnabled

image

เท่านี้Alarmนั้นก็จะทำงานเพื่อตรวจจับเหตุการณ์ตามช่วงเวลาที่เราระบุครับ

เราสามารถใช้สัญญาณOPC tagเดียวกันเพื่อควบคุมAlarm tagอื่นให้Enableได้ถ้าใช้ช่วงเวลาเดียวกัน

 

อีกวิธีหนึ่งใช้สัญญาณวันเวลาจากOPCมาเป็นเงื่อนไขโดยตรง

image

เราสามารถใช้ExpressionมากำหนดการทำงานของEnabledได้

จากตัวอย่างเป็น Expression ซึ่งหมายถึงถ้าเป็นวันจันทร์หรือพุธ และเวลาอยู่ในช่วง 8 โมงถึงเวลาไม่เกิน 5 โมงเย็น ให้ผลลัพธ์เป็น 1 (นอกเหนือจากนี้ให้เป็น 0)

image

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”

Advertisements
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s