GENESIS64 SCADA : ใช้เวลาเป็นเงื่อนไขDisable/Enableอ็อปเจ็ค เช่นปุ่มสั่งการ

หากต้องการใช้วันเวลาเป็นตัวกำหนดว่าอ็อปเจ็คนั้นๆเช่นปุ่มสั่งการนัั้นๆจะยอมให้มีการใช้งานหรือไม่สามารถทำได้โดยใช้Expressionดังตัวอย่างนี้

ตัวอย่างเช่นเราสามารถใช้Dynamic “Disable” มาสั่งปิดกั้นไม่ให้ใช้งานปุ่มที่มีCommandอยู่ข้างใน(จากตัวอย่างปุ่มจะมีPick Actionเพื่อสั่งการอยู่ข้างในปุ่ม)

Expressionทีใช้ใน”Disable”

({{:ServerLocalTime}} > bday({{:ServerLocalTime}}) + totimespan("7:00:00"))
&&
(
{{:ServerLocalTime}} < bday({{:ServerLocalTime}}) + totimespan("8:30:00")
)

ความหมายของExpressionคือการเอาค่าวันเวลาปัจจุบัน(ServerLocalTime)มาเปรียบเทียบว่าอยู่ระหว่างเวลา 7:00ถึง8:30น. หรือไม่ ถ้าไม่เป็นไปตามเงื่อนไขนี้ก็ให้Disableปุ่มนี้

ความหมายของฟังก์ชั่น bday() คือแปลงค่าวันเวลาให้เป็นเวลา0นาฬิกาของวันนั้น ดังนั้น bday({{:ServerLocalTime}}) ก็จะได้ค่าวันที่ ณ เวลา0:00:00น. จากนั้นจึงเอาค่าวันเวลานี้บวกไป7ชั่วโมง และ8.5ชั่วโมง ด้วยการบวกกับ totimespan(“7:00:00”)) และtotimespan(“8:30:00”) ตามลำดับเพื่อใช้ในการเปรียบเทียบเงื่อนไข ดังตัวอย่างExpressionข้างต้น

อีกตัวอย่างหนึ่งเป็นการกำหนดเงื่อนไขให้ปุ่มสามารถใช้งานได้เฉพาะวันจันทร์ ช่วงเวลา 7:00 – 9:30 น. เท่านั้น โดยมีการเพิ่มฟังก์ชั่น weekday() เข้ามาตรวจสอบว่าวันนั้นเป็นวันจันทร์หรือไม่ ซึ่ง 0=อาทิตย์, 1=จันทร์, …, 6=เสาร์ ตามลำดับ

แทนที่เราจะใช้Dynamic “Disable” เรายังสามารถใช้ “Hide”แทนได้ ในกรณีที่ต้องการซ่อนอ็อปเจ็คไม่ให้ผู้ใช้มองเห็นในช่วงเวลาที่เราไม่ต้องการ ทั้งนี้เราสามารถใช้หลักการนี้กับGroupของอ็อปเจ็คได้เช่นกันเพื่อซ่อนกลุ่มของอ็อปเจ็คไปเลยทั้งหมดแทนที่จะเป็นอ็อปเจ็คเดี่ยวๆ แต่เราต้องGroupอ็อปเจ็คเหล่านี้เป็นกลุ่มเดียวกันเสียก่อน

ดาวน์โหลดตัวอย่าง

นอกจากนี้ยังมีฟังก์ชั่นอื่นๆที่สามารถใช้งานในการเปรียบเทียบอีกมากเช่น emonth() ซึ่งจะได้ค่าวันที่วันสุดท้ายของเดือนนั้น ถ้าเราใช้ emonth({{:ServerLocalTime}}) ก็จะได้ค่าวันที่สุดท้ายของเดือนนี้ หากต้องการวันที่สุดท้ายของสัปดาห์ก็ใช้ eweek({{:ServerLocalTime}})

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 )

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