SCADA 4 Fun : เขียนโปรแกรมควบคุม Remote IO, PLC จาก GENESIS32 SCADA ด้วย VB (2)

จากตอนที่แล้วเป็นการกล่าวถึงการอ่าน/เขียน OPC tag ด้วย VBA บน GENESIS32 ครับ ส่วนตอนนี้เราจะมาดูว่าในกรณีของสัญญาณ Boolean จะสามารถทำอะไรได้เหมือน Programming บน PLC ได้หรือไม่

ถ้าเราต้องการเอาสัญญาญมา And / Or กันเราก็สามารถทำได้อย่างในตัวอย่างไฟล์ ScriptToolKit.gdf เราจะเห็นว่าเมื่อ OPC tag BIT2 และ BIT3 เป็น ON (1) จะทำให้ BIT4 นั้น ON ด้วย

image

รูปที่ 1

เมื่อดูในโค้ดก็จะเห็นว่าเราเอาค่า bit2 และ bit3 มา or กัน เก็บไว้ที่ y ก่อนส่งให้ bit4

image

รูปที่ 2

ซึ่งใน GENESIS32 เราไม่ต้องเขียน VBA แบบนี้ก็สามารถส่งค่าการ or กันไปยัง OPC tag ผ่าน DataWorX ได้ โดยให้ Input เป็น Expression ของการ Or กัน ส่วน Output เป็น OPC tag ที่ต้องการรับค่า ดังรูปที่ 3 และ 4

image

รูปที่ 3

image

รูปที่ 4

ใน Expression Or ใช้เครื่องหมาย || ส่วน And ใช้ && (โดยเราจะ Or หรือ And ร่วมกันกี่สัญญาณก็ได้ ใช้วงเล็บได้ ใช้เครื่องหมาย Not คือ ! ได้ )

ส่วนใน VBA เราใช้ Not ได้เช่น ถ้าต้องการให้ Bit4 เป็นค่าตรงข้ามกับ Bit2

Dim y

y = ThisDisplay.getvl("bit2")

ThisDisplay.setvl "bit4", Not y

หรือ

ThisDisplay.setvl "bit4", Not ThisDisplay.getvl("bit2")

เป็นต้น

ถ้าเรามี DI จำนวนมากก็สามารถจัดระเบียบให้ดูง่ายก่อนเอามาใช้ใน Operation แบบต่าง ๆ เช่น

 

a = ThisDisplay.getvl("bit1")

b = ThisDisplay.getvl("bit2")

c = ThisDisplay.getvl("bit3")

d = (a and b) or c

ThisDisplay.setvl "bit4",   d

สิ่งที่พิเศษใน VBA เมื่อเทียบกับ Ladder ใน PLC ก็คือเราสามารถสร้างฟังกชั่นตามที่ต้องการได้ยืดหยุ่นกว่า เช่นฟังก์ชั่นทางคณิตศาสตร์ ฟังก์ชั่นเงื่อนไข ฯลฯ ยิ่งกว่านั้นเราจะเอาค่ามาจาก PLC ไหน ๆ มาสร้างเงื่อนไขการควบคุมรวมกันที่ SCADA ก็ได้

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