Back to Top

เทคนิคการให้ PLC สั่งเปลี่ยนหน้าจอ HMI ได้

 |  Technical Information - Siemens

เทคนิคการให้ PLC สั่งเปลี่ยนหน้าจอ HMI ได้

News & Articles

ปกติแล้วการเชื่อมต่อระหว่าง HMI กับ PLC นั้นจะถือว่า HMI เป็น Master (หรือ Client ในระบบ Ethernet) และ PLC เป็น Slave (หรือ Server ในระบบ Ethernet) นั่นคือ โดยปกติแล้วจอ HMI จะสามารถอ่านเขียนข้อมูลใน PLC ได้ แต่ในทางกลับกัน PLC จะไม่สามารถทำอะไรกับ HMI ได้เลย

ดังนั้นด้วยการเชื่อมต่อระหว่าง PLC กับ HMI โดยพื้นฐานแล้ว PLC จะไม่สามารถทำการเขียนหรือสั่งงานให้ HMI เปลี่ยนหน้าจอได้เลยหาก HMI ไม่ได้มีการเตรียมพื้นที่พิเศษเพื่อการนี้โดยเฉพาะ

.


เทคนิคการให้ PLC สามารถสั่งเปลี่ยนหน้าจอนั้นทำได้หลายวิธีดังที่จะกล่าวในบทความนี้ โดยจะถือว่าผู้ใช้งานสามารถสร้าง Connection ระหว่างจอ HMI ไปหา PLC ได้แล้ว หรือก็คือจอสามารถสื่อสารกับ PLC ได้แล้วนั่นเอง

ChangeScreen_01

บทความนี้จะถือว่า HMI Connection ได้ถูกสร้างเอาไว้แล้ว


วิธีแรก : ทำการ link PLC tag กับ HMI tag โดยตรง

1. ที่ PLC ให้ทำการสร้าง PLC tag ที่จะใช้เปลี่ยนหน้าขึ้นมาก่อน
ChangeScreen_02.png

2. ทำการ link tag นี้ไปหา HMI tag แล้วตั้ง Properties ให้ Acquisition mode เป็นแบบ Cyclic continuous

ChangeScreen_03.png

เหตุผลที่ต้องตั้ง Acquisition mode เป็น Cyclic continuous ก็เพราะเราต้องการให้ tag นี้ถูก update ค่าตลอดเวลา แม้ว่าจะไม่มีค่าของ tag นี้วางไว้ที่หน้าจอก็ตาม

3. จากนั้นให้ตั้ง Event ของ tag นี้ให้เป็นแบบ Value change -> ActivateScreenByNumber แล้วเลือก tag ที่ใช้เปลี่ยนหน้าจอในส่วนของ Screen number
ChangeScreen_04

ด้วยวิธีนี้ เมื่อ tag MyScreenData มีการเปลี่ยนค่า ก็จะส่งผลให้หน้าจอเปลี่ยนไปยังหน้านั้นๆด้วยเช่นกัน แต่หากค่าที่เปลี่ยนนั้นเป็นค่าที่ไม่มีหน้าจออยู่จริง ก็จะไม่กระทบอะไรกับหน้าจอโดยจอจะค้างอยู่ที่หน้าล่าสุดเอาไว้

ChangeScreen_05.png
ChangeScreen_06.png

และหากหน้าจอมีการเปลี่ยนหน้าโดยการที่เรากดหน้าจอตามปกติ ค่าของหน้าจอปัจุจุบันก็จะไม่ส่งผลถึง tag ที่เราตั้งเอาวไว้  (MyScreenData) ใดๆทั้งสิ้น

จึงเห็นได้ว่าวิธีนี้ใช้งานได้ค่อนข้างง่าย แต่จะเปลี่ยนหน้าได้ก็ต่อเมื่อ tag ที่ใช้มีการเปลี่ยนแปลงค่าเท่านั้นเพราะเราใช้ Event ที่เป็น Value change

ตัวอย่างที่จะไม่เกิดการเปลี่ยนหน้าคือสมมติว่าตอนนี้ tag เปลี่ยนค่าเป็น 3 ก็จะทำให้หน้าจอเปลี่ยนไปหน้า 3 จากนั้นเราทำการกดเปลี่ยนหน้าที่หน้าจอไปหน้าอื่นๆแล้ว PLC จะไม่สามารถสั่งให้ HMI กลับมาหน้า 3 ได้อีกเพราะค่าล่าสุดของ PLC ยังค้างอยู่ที่หน้า 3 นั่นเอง Event Value change จึงไม่เกิดขึ้นและจึงไม่สามารถสั่งเปลี่ยนหน้าจอได้


วิธีที่สอง : การใช้ Area pointer

จริงๆแล้ววิธี Area Pointer นี้เป็นวิธีที่เป็นทางการที่สุดเพื่อที่จะให้ PLC สามารถเปลี่ยนหน้าจอ HMI ได้ แต่ก็ต้องมีการตั้งค่าและทราบถึงเงื่อนไขการใช้งานมากกว่าวิธีแรกด้วย

1. ในหัวข้อ Connections ของหน้าจอ ให้เรา Enable Job mailbox ในส่วนของ Area pointer แล้วเลือกตั้ง Address มาตัวหนึ่งโดยสังเกตว่า Job mailbox จะมี Length = 4 นั่นหมายความว่าหากเราเลือก address เป็น %MW80 ดังรูป จะกินพื้นที่ทั้งหมด 4 words คือ %MW80, %MW82, %MW84 และ %MW86 นั่นเอง
ChangeScreen_07.png

2. จริงๆแล้วหากต้องการเข้าใจว่า Job mailbox ใช้ทำอะไรทั้งหมดได้บ้าง เราต้องศึกษาจากหัวข้อ Area pointer อย่างละเอียดเสียก่อน แต่กรณีนี้เพื่อความรวดเร็วขออนุญาตข้ามรายละเอียดส่วนอื่นไปก่อน  โดยหากเราต้องการใช้ Job mailbox เพื่อเปลี่ยนหน้า ให้เรากำหนด word แรกเป็นค่า 51 เท่านั้น  และ word ถัดไปจะเป็นตัวระบุเพื่อเปลี่ยนหน้านั่นเอง
ChangeScreen_08.png

3. เมื่อเราทำการใส่ค่าให้ตัวแปรให้เหมาะสมตามเงื่อนไขดังที่กล่าวมาแล้ว หน้าจอ HMI ก็จะเปลี่ยนไปหน้าที่เราต้องการได้นั่นเอง

ChangeScreen_09.png

สังเกตว่า word แรกจะ fix ค่าที่ 51 และ word ที่สองใช้เป็นตัวเปลี่ยนหน้า

ChangeScreen_10.png

ข้อดีของการใช้วิธีนี้คือเมื่อเราทำการใส่ค่าให้กับ Job mailbox ทั้ง 2 word แล้ว ค่าของทั้ง 2 word จะเปลี่ยนกลับเป็น 0 เมื่อทำการเปลี่ยนหน้าสำเร็จ นั่นหมายความว่าจะไม่เกิดเหตุการณ์ที่ไม่สามารถเปลี่ยนหน้าจอได้ดังกรณีแรก เพราะเมื่อค่าในทั้ง 2 word เป็น 0 แล้ว เราก็สามารถใส่ค่าใดๆให้ 2 word นี้อีกครั้งทำให้สามารถเปลี่ยนไปหน้าใดก็ได้ แม้ว่าหน้าจอจะถูกเปลี่ยนหน้าจากการกดที่หน้าจอไปแล้วก็ตาม

แต่ข้อเสียของวิธีนี้คือ เราจำเป็นต้องมีการจองพื้นที่ใช้งาน Job mailbox ถึง 4 word และต้องมีการศึกษาการใช้งาน Job mailbox ด้วยว่าทำอย่างไรจึงจะใช้งาน Job mailbox ให้เปลี่ยนหน้าได้


 

การอ่านหน้าจอปัจจุบันไปยัง PLC

จากการที่เราใช้งานให้ PLC มาสั่งเปลี่ยนหน้าจอ HMI ทั้งสองแบบแล้วนั้น เราสามารถสั่งให้ HMI เปลี่ยนหน้าได้ก็จริง แต่จะเห็นว่าตอนนี้ PLC จะยังไม่รู้เลยว่าตอนนี้ HMI อยู่ที่หน้าไหนแล้ว ซึ่งในส่วนนี้ต้องอาศัยการตั้งค่าเพิ่มเติมด้วยเช่นเดียวกัน

โดยการตั้งค่านี้จะอยู่ในส่วนของ Connections -> Global area pointer of HMI device แล้วทำการตั้งค่าในส่วนของ Screen number

  • • ในส่วนของคอลัมน์ Connection ให้เราเลือก HMI Connection ที่ไปลิ้งค์กับ PLC ที่ต้องการ
  • • ในส่วนของคอลัมน์ Access mode ให้เราเลือกว่าจะลิ้งค์ไปหา tag PLC แบบใช้ symbolic access หรือจะระบุ address ตรงๆแบบ absolute access
  • • ในส่วนของคอลัมน์ Address ให้เราเลือก tag ของ PLC กรณีใช้ symbolic access หรือจะระบุ address ตรงๆหากใช้แบบ absolute access
  • • ในส่วนของคอลัมน์ Length เราไม่สามารถเปลี่ยนอะไรได้ จะเห็นว่าการใช้งาน Screen number จะกินพื้นที่ 5 words ด้วยกัน โดยกรณีดังรูปจะกินพื้นที่ %MW90, %MW92, %MW94, %MW96 และ  %MW98 นั่นเอง

ChangeScreen_11.png

รายละเอียดของการใช้งาน Screen number ทั้ง 5 word แสดงดังรูปข้างล่างนี้
ChangeScreen_12.png

แม้ว่าจะกินพื้นที่ 5 words แต่หากเราต้องการดูหน้าจอปัจจุบัน เราจะดูแค่ word ที่ 2 ก็พอ ดังนั้นจากการตั้งค่าของเราที่เริ่มที่ %MW90 ค่าหน้าจอปัจจุบันจะอยู่ที่ %MW92 นั่นเอง

  • กรณีหน้าจออยู่ในหน้าที่ 1
    ChangeScreen_13

 

  • กรณีหน้าจออยู่หน้าที่ 3
    ChangeScreen_14

 

thx to siemens

click1 click2 click3

 PLC, HML, TIA, Siemens, Technical Information, IOT

« Back
© Developed by CommerceLab