GENESIS SCADA: รวบWordเป็นDWordใช้ในSCADA ประหยัดTag

ถ้าTagของSCADAไม่พอ งบน้อย เราสามารถรวบสัญญาณAnalogแบบWordเป็นDWordมาใช้ในOPC/SCADAเพื่อประหยัดTagของSCADAได้ วิธีการเป็นดังนี้

ชมเวอร์ชั่น VDO

ในOPC Server

ให้ใช้อ่านสัญญาณWordสองสัญญาณที่อยู่ใกล้กันมาเป็นแบบDWord จากตัวอย่างOPC Serverด้านล่างอ่านค่าModbus Registerที่Address 40001 (4xxxx Starting Address = 1) แล้วระบุData Type(Modbus Type)เป็นUInt32 (DWord)เพื่อให้ได้ทั้ง 40001 และ 40002 ที่อยู่ใกล้กัน ในที่นี้Word Lowคือ 400001 และ Word Hiคือ400002

image

แยกWordในGENESIS32 SCADA

เราจะแยกWord LowและWord Hiออกจากกัน

เปิดUnified Data Managerขึ้นมา แล้วสร้างExpressionเพื่อแยกWord Low (ในตัวอย่างนี้ตั้งชื่อเป็นW) ให้สร้างParameterเช่นตั้งชื่อเป็นt1เพื่อเป็นตัวแปรรับค่าOPC Tag Addressที่ต้องการแยกWord

image

คัดลอกExpressionด้านล่าง

x= bittest(<<t1>>,15) * pow(2,15) + bittest(<<t1>>,14) * pow(2,14) + bittest(<<t1>>,13) * pow(2,13)
+ bittest(<<t1>>,12) * pow(2,12) + bittest(<<t1>>,11) * pow(2,11) + bittest(<<t1>>,10) * pow(2,10)
+ bittest(<<t1>>,9) * pow(2,9) + bittest(<<t1>>,8) * pow(2,8) + bittest(<<t1>>,7) * pow(2,7)
+ bittest(<<t1>>,6) * pow(2,6) + bittest(<<t1>>,5) * pow(2,5) + bittest(<<t1>>,4) * pow(2,4)
+ bittest(<<t1>>,3) * pow(2,3) + bittest(<<t1>>,2) * pow(2,2) + bittest(<<t1>>,1) * pow(2,1)
+ bittest(<<t1>>,0)

เอาไปสร้างExpressionในแท็ปRead Expression

image

จากExpressionจะเป็นการแยกbitที่0ถึง15ออกมาจากt1ซึ่งเป็นตัวแปรรับOPC Tag Address จะได้ค่าของ Word Low

แยกWord Hiโดยสร้างExpressionขึ้นมาอีกตัวเพื่อแยกbit 16 ถึง 31ออกมาเป็นWord Hi ในตัวอย่างนี้ชื่อ W2

image

image

ท่านสามารถคัดลอกExpressionด้านล่างไปใช้ได้

x= bittest(<<t1>>,31) * pow(2,15) + bittest(<<t1>>,30) * pow(2,14) + bittest(<<t1>>,29) * pow(2,13)
+ bittest(<<t1>>,28) * pow(2,12) + bittest(<<t1>>,27) * pow(2,11) + bittest(<<t1>>,26) * pow(2,10)
+ bittest(<<t1>>,25) * pow(2,9) + bittest(<<t1>>,24) * pow(2,8) + bittest(<<t1>>,23) * pow(2,7)
+ bittest(<<t1>>,22) * pow(2,6) + bittest(<<t1>>,21) * pow(2,5) + bittest(<<t1>>,20) * pow(2,4)
+ bittest(<<t1>>,19) * pow(2,3) + bittest(<<t1>>,18) * pow(2,2) + bittest(<<t1>>,17) * pow(2,1)
+ bittest(<<t1>>,16)

เราสามารถเอาExpressionทั้งสองตัวไปใช้ในSCADAโดยใช้กับOPC tagต่างๆได้เลยไม่ต้องสร้างExpressionใหม่

เอาExpressionไปใช้ในSCADA

เอาExpressionไปใช้ได้ทุกที่ของSCADA เช่นในGraphWorXเอาProcess Pointมาวางแล้วเข้าไปเลือกExpressionจากUDM(Unified Dataa Manager)

image

คลิ้กOKเพื่อกลับมายังหน้าProperty Inspector

แล้วเปลี่ยนตัวแปรt1เป็นOPC Tag Address

image

เช่นเป็น

exp:W(“{{ICONICS.ModbusOPC.3\Modbus.V1}}”)

คลิ้กOK

สร้างProcess PointอีกตัวโดยอาจจะCopy Process Point เดิมมา แล้วเปลี่ยนData Sourceเป็น

exp:W2(“{{ICONICS.ModbusOPC.3\Modbus.V1}}”)

เพื่อแยกค่าWord Hiออกมา

ทดสอบRunการทำงานจะได้ผลดังรูป

image

 

ด้วยวิธีการเช่นนี้ทำให้สามารถเพิ่มสัญญาญWordจากอุปกรณ์มาใช้ในSCADAแบบ2 Signal : 1 scada tag โดยสามารถนำExpressionที่สร้างในUDMไปใช้กับOPC tagใดๆได้เลยไม่ต้องสร้างExpressionขึ้นใหม่อีก

ถ้าต้องการแบบ 4 Signal : 1 SCADA Tag เพื่อรวบ4Wordที่อยู่ใกล้กันให้ใช้OPC TagแบบUInt64

image

แล้วสร้างExpressionแยกบิต 32-47 และ 48-63 เพิ่มเติมในUDM

บิต32-47

x= bittest(<<t1>>,47) * pow(2,15) + bittest(<<t1>>,46) * pow(2,14) + bittest(<<t1>>,45) * pow(2,13)
+ bittest(<<t1>>,44) * pow(2,12) + bittest(<<t1>>,43) * pow(2,11) + bittest(<<t1>>,42) * pow(2,10)
+ bittest(<<t1>>,41) * pow(2,9) + bittest(<<t1>>,40) * pow(2,8) + bittest(<<t1>>,39) * pow(2,7)
+ bittest(<<t1>>,38) * pow(2,6) + bittest(<<t1>>,37) * pow(2,5) + bittest(<<t1>>,36) * pow(2,4)
+ bittest(<<t1>>,35) * pow(2,3) + bittest(<<t1>>,34) * pow(2,2) + bittest(<<t1>>,33) * pow(2,1)
+ bittest(<<t1>>,32)

48-63

x= bittest(<<t1>>,63) * pow(2,15) + bittest(<<t1>>,62) * pow(2,14) + bittest(<<t1>>,61) * pow(2,13)
+ bittest(<<t1>>,60) * pow(2,12) + bittest(<<t1>>,59) * pow(2,11) + bittest(<<t1>>,58) * pow(2,10)
+ bittest(<<t1>>,57) * pow(2,9) + bittest(<<t1>>,56) * pow(2,8) + bittest(<<t1>>,55) * pow(2,7)
+ bittest(<<t1>>,54) * pow(2,6) + bittest(<<t1>>,53) * pow(2,5) + bittest(<<t1>>,52) * pow(2,4)
+ bittest(<<t1>>,51) * pow(2,3) + bittest(<<t1>>,50) * pow(2,2) + bittest(<<t1>>,49) * pow(2,1)
+ bittest(<<t1>>,48)

หลักการนี้ใช้ได้กับPLC/RTUที่มีโปรโตคอลอื่นๆที่ไม่ใช่Modbusได้ด้วย เช่นOMRON, Mitsubishi, Siemens เป็นต้น

ถ้าWordไม่ได้อยู่ชิดกัน

ถ้าWordในPLCไม่ได้อยู่ชิดกัน ให้ใช้LadderในPLCเพื่อMoveค่าWordที่กระจัดกระจายกันมาเก็บในWordที่อยู่ชิดกัน แล้วให้OPC Serverอ่านค่ามาใช้

บทความที่เกี่ยวข้อง

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