ตัวอย่างการใช้ Multi Threading ใน ScriptWorX2006

จากบทความก่อนหน้านี้ “สร้างสคริปต์ให้รันแบบ Multi-Thread ด้วยโมดูลใดของ GENESIS32 ดี?” บทความนี้จะแสดงตัวอย่างการใช้งาน Multi Thread โดยแยกแต่ละ Thread ให้สั่งงานสคริปต์แยกกัน

เปิด ScriptWorX 2006 สร้างโปรเจ็คใหม่หรือเพิ่ม Designer ใหม่เข้ามาในโปรเจ็คเดิมก็ได้ ในตัวอย่างนี้ผมเพิ่ม Designer เข้ามาใหม่ชื่อ opcwrite1 และสร้า Script ในDesignerดังกล่าวชื่อopcwrite โดยใช้ Trigger แบบเวลามาสั่งงานทุก 1 วินาทีโดยเลือกจากปุ่ม … (ถ้าต้องการสร้าง Trigger ใหม่ขึ้นมาก็ทำได้ใน UDM)

image

เมื่อเลือก Trigger แล้ว คลิ้ก Apply และคลิ้ก Edit VBA Code

จะเข้าหน้าโค้ด VBA ให้เลือก Tool > Reference เพื่อเอา GenClientWrapper มาใช้งานในการอ่าน/เขียน OPC tag ดังรูป

image

คลิ้ก OK

เข้าไปเขียน Script ใน Sub ชื่อ opcwrite ตามที่เราตั้งชื่อไว้ข้างต้น โดยเขียนScriptดังกรอบสีส้ม

image

จากรูปเป็นการวันลูป 4 รอบเพื่อเขียนค่าเลขสุ่มให้กับ OPC tag ชื่อ FLOAT1 ถึง FLOAT4 ซึ่งผมใช้ตัวแปร i มาวนรอบให้ทั้ง 4 ตัว

กลับไปสร้าง Designer ใหม่ในหน้าConfigของ ScriptWorX2006อีกดังรูป โดยคลิ้กขวาที่โปรเจ็คเลือก New > Designer/Thread

image

ตั้งชื่อเป็น opcwrite2 แล้วคลิ้ก Apply

image

สร้าง Script ใหม่ชื่อ opcwrite2 ในDesignerดังกล่าว

image

เข้าไปเขียนโค้ดเช่นเดิม เปลี่ยนแค่วนลูปเขียนค่าให้ FLOAT5 ถึง FLOAT8

image

จากนั้น Save แล้วกลับมาห้า Config แล้วคลิ้กไฟจราจรเพื่อสั่ง Run

image

ทดสอบดูค่า OPC tag คือ FLOAT1 ถึง FLOAT8 จะเห็นว่ามีการเปลี่ยนแปลงตามที่เราสุ่มค่าเข้าไป

image

การทำงานของแต่ละ Designer จะแยกกันโดยอิสระ เป็นการทำงานแบบ Multi-Thread

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s