ถ้าตอ้งการรันสคริปต์ VBA แบบ Service ด้วย GENESIS32 ก็สามารถทำได้ครับ นอกจากนั้นยังสามารถกำหนด Schedule การทำงานได้ด้วย
ใน ScriptWorX2006 ซึ่งมีอยู่ใน GENESIS32 V9 นั้น สามารถรันสคริปต์ได้แบบ Services นอกจากนั้นยังสามารถกำหนด Schedule ได้ด้วย
รูปที่ 1 ScriptWorX2006
ใน ScriptWorX2006 เราสามารถเปิดโปรเจ็คตัวอย่างได้โดยเลือก File> Open เช่นเปิดไปที่ C:\Prgram Files (x86)\ICONICS\GENESIS32\Examples\ScriptWorX2006\DBLogger แล้วเลือกไฟล์ DBLogger_SWXConfig.mdb (ไฟล์โปรเจ็คอยู่ในรูปแบบ mdb)
รูปที่ 2
ใน ScriptWorX2006 จะพบกิ่ง Projects ซึ่งมีโปรเจ็คชื่อ DBLoggerProj ในโปรเจ็คนี้มีDesignerชื่อ DBLoggerDes และในDesignerนี้มี Scriptชื่อ AccessDBLoggerScript ซํึ่งเป็น Script ตัวอย่างเก็บข้อมูล OPC Tag ลงใน MS Access
รูปที่ 3 (ถ้าต้องการดูโค้ดหรือจัดการโค้ด ให้คลิ้กที่ Edit VBA Code)
จากรูปที่ 3 เราสามารถกำหนด Trigger ให้ Script ได้ ซึ่งTriggerคือตัวScheduleหรือเงื่อนไขควบคุมการทำงานของ Script นั่นเอง เราสามารถเลือก Trigger โดยคลิ้ก … ข้างช่อง Trigger Name หรือถ้าต้องการสร้าง Trigger ขึ้นมาใหม่ให้คลิ้ก New…
รูปที่ 4 Trigegr ที่มีให้ใช้
จากรูปที่ 4 จะมี Trigger ให้เราเลือก เช่น 5min หมายถึง Trigger ทำงานทุก 5 นาที ดังนั้นเวลาเอา Trigger ตัวนี้ไปใช้ควบคุม Script ก็จะทำให้ Script ทำงานทพุก 5 นาที แต่ถ้าเราเลือก New… ก็จะเปิดไปที่ Unified Data Manager ให้เราสามารถสร้าง Trigger ขึ้นมาใหม่
รูปที่ 5 ตัวอย่างการสร้าง Time Trigger
เราจะสร้าง Trigger แบบ Daily / Weekly / Monthly / Yearly ก็ได้ นอกจากนั้นสามารถสร้างและใช้ Trigger แบบอื่น ๆ นอกจากแบบ DateTime ได้ด้วย
รูปที่ 6 ตัวอย่างการสร้าง Trigger
เมื่อต้องการให้ ScriptWorX2006 ทำงานแบบ Service (ทำงานพร้อมวินโดวส์และอยู่เบื้องหลังแบบ Background คือไม่ปรากฏหน้าต่างโปรแกรมให้เห็น) ก็สามารถกำหนดใน GENESIS Tool Tray ได้
รูปที่ 7 GENESIS32 Tray
โดยหลังจากเปิด GENESIS32 Tray ขึ้นมาแล้วให้คลิ้กขวา เลือก ScriptWorX 2006 > NT Service
รูปที่ 8
จากนั้นคลิ้กขวาเลือก Configure ที่ GENESIS32 Tray เพื่อเข้าไปกำหนดการเริ่มทำงานพร้อม Windows
รูปที่ 9
เท่านี้ก็จะทำให้ Script ของเราทำงานอยู่เบื้องหลัง และทำงานตาม Schedule ได้
เราสามารถสร้าง Script ได้หลาย ๆ ตัวตามต้องการ โโยแต่ละScriptจะใช้Trigger ตัวเดียวกันหรือต่างกันก็ได้ครับ
Pingback: สร้างสคริปต์ให้รันแบบ Multi-Thread ด้วยโมดูลใดของ GENESIS32 ดี? |