Home
จะให้AlarmServerตรวจจับAlarmเฉพาะบางช่วงเวลาอย่างไร? PDF Print E-mail
Written by Administrator   
Tuesday, 08 January 2019 16:49

หากต้องการให้Alrm tagในAlarmWorX ServerของGENESIS32บางตัวทำงานเฉพาะบางช่วงเวลา

(บางtagตรวจจับสัญญาณเฉพาะบางช่วงเวลา) เราสามารถทำได้ดังนี้

หลักการ

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 แล้วคลิ้กApply

image

คลิ้ก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”

Last Updated ( Wednesday, 09 January 2019 07:58 )
 

สิ่งที่น่าสนใจ

PR Temp Transmitter 5331A  2-Wire, RTD, TC, Ohm, or mV input

Extremely high measurement accuracy

1.5 kVAC galvanic isolation, Programmable sensor error value

**สงวนลิขสิทธิ์ทั้งหมด โดย EDA International LTD.
สงวนลิขสิทธิ์ทั้งหมด ทุกข้อความ รูปภาพ งานกราฟฟิค และภาพเคลื่อนไหว ที่ปรากฎอยู่บนหน้าเว็บไซต์ อยู่ภายใต้การสงวนลิขสิทธิ์และได้รับการคุ้มครองตามกฎหมาย ไม่อนุญาต ให้ทำซ้ำ คัดลอก ดัดแปลง ส่วนหนึ่งส่วนใดหรือทั้งหมด โดยมิได้รับอนุญาตเป็นลายลักษณ์อักษรจากบริษัทฯ