Allen Bradley PLC

Produce-Consumed Tag

นอกจากคำสั่ง MSG แล้ว เรายังสามารถใช้ Produce-Consumed Tag ส่งข้อมูลระหว่าง PLC ได้โดยไม่ต้องเขียนโปรแกรมให้วุ่นวาย

โดย Produce tag คือ Tag ที่สามารถแชร์ข้อมูลให้กับ PLC ตัวอื่นๆ เข้ามาอ่านข้อมูลจากตัวมันได้ (Broadcast) ส่วน Consumed tag คือ Tag ที่อ่านค่ามาจาก Produce tag นั่นเองซึ่ง Data type ของ Produce กับ Consumed tag จะต้องตรงกัน เช่น DINT ก็ DINT เหมือนกันและอยู่ใน Controller scope  เท่านั้น

ช่วงเวลาการอัพเดจข้อมูลนั้นขึ้นอยู่กับค่า RPI ที่เรากำหนด สำหรับ ControlLogix PLC Produce-consumed tag และใช้ได้เฉพาะ ControlNet กับ Ethernet Network แค่สองชนิด

Setup Produce-Consumed Tag

1. คลิ๊กขวาที่ Ethernet module ของ PLC1 แล้วเลือก New Module เพื่อเพิ่ม Ethernet moduleของ PLC2

2. คลิ๊กขวาที่ Ethernet module ของ PLC2 แล้วเลือก New Module เพื่อเพิ่ม Controller ของ PLC2

3. สร้าง Produce tag จาก Tag editor โดยใช้ชื่อว่า Write_PLC2_Buffer จากนั้นคลิ๊กขวาที่ Tag แล้วเลือก Edit Properties

4. เลือก Type เป็น Produced แล้วคลิ๊กปุ่ม Connection จากนั้นให้ใส่ค่า Max Consumer เท่ากับจำนวน Controller ที่รับข้อมูลจาก Produce tag นี้ เสร็จแล้วคลิ๊กปุ่ม OK (ถ้าต้องการ Produce ไปให้ Controller เดียว แบบ 1 ต่อ 1 ให้เลือก Allow Unicast consumer connections เพื่อลด traffic ของระบบ Network)

5. สร้าง Consumed tag จาก Tag editor โดยใช้ชื่อว่า Read_PLC2_Buffer จากนั้นคลิ๊กขวาที่ Tag แล้วเลือก Edit Properties

6. เลือก Type เป็น Consumed แล้วคลิ๊กปุ่ม Connection จากนั้นเลือก PLC ต้นทางที่ส่งข้อมูลซึ่งก็คือ PLC2 และใส่ค่า Remote Data เป็น PLC2_Buffer เสร็จแล้วคลิ๊กปุ่ม OK

Rung0 -> Read_PLC2_Buffer[0].0Timer เป็น Consumed Tag จาก PLC2 ใช้เช็คการเชื่อมต่อระหว่าง PLC1 และ PLC2 ถ้าตัวมันไม่เป็น True ภาย 5 วินาทีจะทำให้ Heartbeat_timer.DN บิต มีค่าเป็น True

Rung1 -> ถ้า Heartbeat_timer.DN บิต มีค่าเป็น True ทำให้เราทราบว่า การเชื่อมต่อระหว่าง PLC1 และ PLC2 มีปัญหา โดยไปเช็ต Flag “Loss_communication”    วิธีนี้เรียกว่า “Heartbeat” เหมือนที่ใช้ในคำสั่ง MSG

Rung2 -> ใช้รีเซ็ต Read_PLC2_Buffer[0].0

Rung3 -> เอาค่า Tag  PSH_123 ชนิด Boonlean ลง Produce Tag เพื่อส่งไปให้ PLC2 (ถ้า Tag เป็นชนิด Real ให้ใช้คำสั่ง MOV ในการเอาค่าลง Produce Tag)

Rung4 -> เอาค่าจาก Consumed Tag ชื่อ Read_PLC2_Buffer[1].0 มาใช้งาน

หากมีข้อสงสัย อีเมลล์มาถามได้ที่ thaicontrol01@gmail.com หรือ Fan Page https://www.facebook.com/thaicontrol01 ครับ

Leave a comment