Home Solution(ถาม-ตอบ) Super Tip : ใช้ 1 tag ของ GENESIS32 SCADA เพื่อติดต่อ DI/DO ถึง 16 ตัว

EDA International ตัวแทนจำหน่ายเป็นทางการ ICONICS, PRElectronics, M-System, Graphon, ABB

ซอร์ฟแวร์ตรวจสอบ/บริหารงานอุตสาหกรรม วิศวกรรม SCADA/HMI (ICONICS GENESIS32/64), Report Solution, Cloud, อุปกรณ์วัดคุม แสดงผล เทอร์มินัล อุปกรณ์ป้องกันทางอิเล็คทรอนิกส์ 

Super Tip : ใช้ 1 tag ของ GENESIS32 SCADA เพื่อติดต่อ DI/DO ถึง 16 ตัว
clip_image001

หลายครั้งเกิดปัญหาจำนวนไลเซนส์จำนวน tag ของ SCADA Software ไม่พอจะติดต่อกับ DI/DO ของ PLC วันนี้ผมขอเสนอทางออกด้วยความสามารถของ GENESIS32 ครับ

ทางออกนี้ใช้ได้กับ PLC หรือ Remote I/O ทั่วไป ที่สามารถส่งข้อมูล DI(Digital Input) และ DO(Digital Output) เป็นกลุ่มได้ เช่น ปกติแล้วเมื่อเราอ้างถึง Address ของ OMRON PLC รุ่น CQM1 ที่เป็น DI เราจะอ้างถึง Address ประเภท IR เช่น

- IR001.00 หมายถึง DI ตัวแรก

- IR001.01 หมายถึง DI ตัวที่สอง

- IR001.15 หมายถึง DI ตัวที่ 16

เป็นต้น

เช่นเดียวกับกรณีของ DO เช่น IR100.00 จนถึง IR100.15

ในกรณีที่เราต้องการอ้างถึง DI หรือ DO ทั้ง 16 ตัวนี้เราสามารถใช้ Address IR001 และ IR100 โดยสร้าง OPC Tag เพียงสองตัวขึ้นที่ OPC Server จากนั้นเมื่อเราต้องการอ้างถึง DI หรือ DO ตัวที่เท่าใดเราสามารถระบุใน Expression ของ GENESIS32 ได้ดังรูปที่ 1

clip_image002

รูปที่ 1 เลือก bittest()

clip_image003

รูปที่ 2 คลิ้กเลือก Tags

clip_image004
รูปที่ 3 เลือก OPC Tag

clip_image005
รูปที่ 4 ระบุ Bit ที่ต้องการ

จากรูปที่ 1-4 เราสามารถใช้ฟังก์ชั่น bittest(Number, BitPos) เพื่อแสดงค่าของบิตที่ต้องการของ OPC tag ได้ โดย

- Number ในที่นี้คือ OPC tag

- BitPos คือตำแหน่งบิตที่ต้องการแสดง

ยกตัวอย่างเช่น

bittest({{KEPware.KEPServerEx.V4\Channel2.Device1.IR001}},0)

หมายถึงเอาเฉพาะบิต 0 มาแสดง (DI ตัวที่ 1)

bittest({{KEPware.KEPServerEx.V4\Channel2.Device1.IR001}},15)

หมายถึงเอาเฉพาะบิต 15 มาแสดง (DI ตัวที่ 16)

วิธีการนี้ทำให้เราสามารถใช้ OPC tag 1 ตัวเพื่อแสดงค่า DI/DO ได้ถึง 16 สัญญาณ (GENESIS32 จะนับจำนวน tag ที่ใช้เป็น 1 tag เท่านั้นแม้ว่าเราจะใช้ Expression ถึง 16 ตัวเพื่อดูค่าบิตต่าง ๆ) นั่นหมายถึง 4 tag ก็สามารถติดต่อได้ 64 I/O

เราสามารถใช้วิธีการเช่นนี้กับ PLC และ Remote I/O รวมถึงอุปกรณ์ต่าง ๆ ที่มี OPC Server สนับสนุน เช่น PLC ที่ใช้ Modbus หลายรุ่นสามารถใช้ Address เช่น 40001 เพื่อรวมกลุ่มของ DI หรือ DO ได้ 16 I/O เป็นต้น

แบบนี้คงทำให้ท่านสามารถประหยัดงบประมาณและใช้งาน GENESIS32 ได้อย่างคุ้มค่านะครับ

 

 กรณีDI/DOไม่ได้เรียงกัน

กรณีที่DIหรือDOไม่เรียงกันก็จะทำให้สัญญาณไม่ได้อยู่ในWordเดียวกัน กรณีเช่นนี้จะมีวิธีการแก้ไขดังนี้

-  เขียนโปรแกรมในPLCเพื่อคัดลอกข้อมูลDI/DOที่กระจายกันอยู่ไปเก็บไว้ในWordเดียวกัน

เช่นคัดลอกสถานะของอินพุต0.00ไปไว้ในW10.00

|        000.00     
|----------||---------[_SET W10.00 ]
|

ทำแบบนี้อีกโดยคัดลอกสถานะสัญญาณDigitalอื่นไปไว้ในW10.01 ไปจนครบถึง W10.15 ก็จะได้W10เพื่อนำไปใช้ในOPC ServerและในGENESIS SCADAได้