เนื้อหาวันที่ : 2010-10-20 17:25:19 จำนวนผู้เข้าชมแล้ว : 26776 views

การส่งข้อมูลระหว่างคอมพิวเตอร์กับ PLC ผ่านพอร์ต RS-232C ด้วยโปรแกรม Visual Basic

บทความนี้จะนำเสนอการส่งข้อมูลระหว่างเครื่อง PLC กับเครื่องคอมพิวเตอร์แบบ Host Link ผ่านพอร์ตอนุกรมภายในมาตรฐาน RS-232C ด้วยการเขียนโปรแกรมบน Visual Basic โดยได้ยกตัวอย่างเครื่อง PLC ของ OMRON รุ่น CPM1 ซึ่งในการส่งข้อมูลระหว่างเครื่อง PLC รุ่น CPM1 กับเครื่องคอมพิวเตอร์จะใช้การสื่อสารแบบอนุกรมภายใต้มาตรฐาน RS-232C เท่านั้นและสามารถทำการต่อสายที่พอร์ตของเครื่อง PLC และเครื่องคอมพิวเตอร์ได้

ดร. พานิช อินต๊ะ
panich_intra@yahoo.com

.

ในบทความฉบับนี้จะนำเสนอการส่งข้อมูลระหว่างเครื่อง PLC กับเครื่องคอมพิวเตอร์แบบ Host Link ผ่านพอร์ตอนุกรมภายในมาตรฐาน RS-232C ด้วยการเขียนโปรแกรมบน Visual Basic โดยในบทความนี้ได้ยกตัวอย่างเครื่อง PLC ของ OMRON รุ่น CPM1 ซึ่งในการส่งข้อมูลระหว่างเครื่อง PLC รุ่น CPM1 กับเครื่องคอมพิวเตอร์จะใช้การสื่อสารแบบอนุกรมภายใต้มาตรฐาน RS-232C เท่านั้นและสามารถทำการต่อสายที่พอร์ตของเครื่อง PLC และเครื่องคอมพิวเตอร์ได้ดังรูปที่ 1

.

รูปที่ 1 ลักษณะการเชื่อมต่อระหว่างเครื่อง PLC และเครื่องคอมพิวเตอร์ผ่าน RS-232C

.

การสื่อสารอนุกรมภายใต้มาตรฐาน RS-232C ระหว่างเครื่อง PLC กับเครื่องคอมพิวเตอร์ จะใช้วิธีอะซิงโครนัสในแต่ละไบต์จะประกอบด้วย บิตเริ่มต้น (Start Bit) บิตข้อมูล (Data Bit) บิตพาริตี้ (Parity Bit) และบิตจบ (Stop Bit) ซึ่งมีการจัดเฟรม (Framing) ดังนี้

.

1. บิตเริ่มต้นจะถูกใส่เพิ่มที่จุดเริ่มต้นของเฟรมเสมอ เพื่อเตือนอุปกรณ์ฝ่ายรับ (DCE) ว่าข้อมูลกำลังจะมาถึงและเพื่อเข้าจังหวะกลไกที่แยกแต่ละบิต บิตเริ่มต้นคือ SPACE หรือไบนารี 0

.

2. บิตข้อมูลมาตรฐานหรือโปรโตคอลการสื่อสารแบบอนุกรมสามารถส่งข้อมูลทั้งเจ็ดบิตและแปดบิต  ถ้าเป็นข้อมูลเป็นรหัส ASCII จะกำหนดจาก 0 ถึง 127 แต่ถ้าข้อมูลไม่ใช่แบบ ASCII จำเป็นจะต้องใช้ทั้งแปดบิตในหนึ่งไบต์ สำหรับเครื่อง PLC ข้อมูลจะรหัส ASCII ดังนั้นบิตข้อมูลจึงใช้เจ็ดบิตในหนึ่งไบต์

.

3. บิตพาริตี้ การตรวจสอบพาริตี้เป็นวิธีหนึ่งในการตรวจสอบว่าข้อมูลที่ส่งออกไปได้รับถูกต้องหรือไม่ DTE จะมีบิตพาริตี้อีกหนึ่งบิต ซึ่งจะเป็น 0 หรือ 1 ขึ้นอยู่กับบิตข้อมูลและ DCE จะตรวจสอบว่าบิตพาริตี้มีความสัมพันธ์ถูกต้องกับบิตอื่นหรือไม่ ถ้าไม่มีความสัมพันธ์ก็แสดงว่าเกิดความผิดพลาดขึ้นระหว่างการส่งข้อมูลพาริตี้ที่ใช้จะเลือกใช้พาริตี้คู่

.

4. บิตจบ ในส่วนท้ายของแต่ละเฟรม บิตจบจะถูกส่งออกมา บิตจบมีทั้งแบบหนึ่งบิต หนึ่งบิตครึ่ง หรือสองบิต (อย่างน้อยต้องมีหนึ่งบิตเสมอ) เพื่อเป็นการประกันได้ว่ามีแรงดันไฟลบอย่างน้อยเป็นช่วงเวลาหนึ่งก่อนที่เฟรมถัดไปจะมาถึง เพื่อให้สามารถแยกแยะเฟรมถัดไปได้ จากบิตเริ่มต้นที่เป็นบวกของมันบิตจบมากกว่าหนึ่งบิต

.

มาตรฐานหรือโปรโตคอลของการสื่อสารอนุกรมที่มีอยู่นี้ ได้กำหนดความยาวของบิตข้อมูลต่างกัน เช่น 7 บิต หรือ 8 บิต (ขึ้นอยู่กับรูปแบบข้อมูล) มีโปรโตคอลหลายมาตรฐานที่ถูกสร้างขึ้นเพื่อใช้จัดการกับซอฟต์แวร์แฮนด์เช็คกิ้ง แต่โปรโตคอลที่นิยมมากที่สุดคือ XON/XOFF ในการกำหนดค่าโปรโตคอล จะใช้ค่าพารามิเตอร์ต่าง ๆ จะเหมือนกับค่าทั่วไปที่ใช้สำหรับการส่งข้อมูลภายใต้มาตรฐาน RS-232C ค่ามาตรฐานดังแสดงไว้ในตารางที่ 1

.

ตารางที่ 1 การตั้งค่าพารามิเตอร์มาตรฐานของเครื่อง PLC รุ่น CPM1

.
การติดต่อกับเครื่อง PLC ด้วยโปรแกรม Visual Basic

โปรแกรมภาษาที่ใช้ในการพัฒนาซอฟต์แวร์บนระบบปฏิบัติการ Windows มีหลายโปรแกรม เช่น Visual Basic, Delphi, Visual C++ และ JAVA เป็นต้น แต่โปรแกรมภาษา Visual Basic เป็นโปรแกรมมีโครงสร้างภาษามาจากภาษา Basic ซึ่งเป็นภาษาที่เหมาะสำหรับบุคคลที่ยังไม่เคยพัฒนาโปรแกรมมาก่อนและภาษา Basic นี้ถือเป็นภาษาชั้นสูงในยุคต้น ๆ หลาย ๆ บริษัท โรงงานอุตสาหกรรม ธุรกิจ ที่เปิดกิจการมาเป็นระยะเวลานาน ๆ ยังคงใช้ภาษานี้เป็นพื้นฐานในการใช้งาน

.

ตลอดจนตัวอย่างการติดต่อสื่อสารระหว่างเครื่อง PLC กับเครื่องคอมพิวเตอร์ ในคู่มือของเครื่อง PLC ส่วนใหญ่เป็นภาษา Basic ในบทความนี้จึงเลือกใช้โปรแกรม Visual Basic ในการเขียนโปรแกรมเพื่อส่งข้อมูลให้กับเครื่อง PLC

.

การใช้โปรแกรมภาษา Visual Basic ในการส่งข้อมูลให้กับเครื่อง PLC นั้นจะให้โปรแกรมภาษา Visual Basic ส่งข้อมูลผ่านทางพอร์ตอนุกรม โดยเราสามารถตั้งค่าข้อมูลที่ทำการส่งได้ที่ส่วนของ Windows Editor หรือโค้ดโปรแกรม (Program Code) และกำหนดค่าพารามิเตอร์ของข้อมูลได้ที่ Microsoft Communication Control หรือ MSComm ซึ่งมีลักษณะเป็นไอคอนรูปโทรศัพท์ ซึ่ง MSComm เป็นคอนโทรลสำหรับการติดต่อสื่อ

.

สารอนุกรมผ่านทางพอร์ตอนุกรมของเครื่องคอมพิวเตอร์ โดย MSComm หนึ่งตัวสามารถควบคุมการทำงานของพอร์ตอนุกรมได้ 1 พอร์ต ถ้าในโปรแกรมที่ใช้งานต้องการติดต่อกับพอร์ตอนุกรมมากกว่า 1 พอร์ตจะต้องให้คอนโทรล MSComm มากกว่า 1 ตัวเพื่อควบคุมพอร์ตอนุกรมในแต่ละพอร์ต

.

การใช้งาน MSComm ทำได้โดยการเอาเมาส์ไปคลิกที่ไอคอนรูปโทรศัพท์ในส่วนของวินโดว์ทูลบ็อกซ์ แล้วนำมาวางในพื้นที่ของวินโดว์ฟอร์ม แต่ถ้าในวินโดว์ทูลบ็อกซ์ยังไม่มีไอคอนรูปโทรศัพท์ (MSComm1) ให้เลื่อนลูกศร (เมาส์) ไปอยู่ในพื้นที่วินโดว์ทูลบ็อกซ์แล้วคลิกเมาส์ด้านขวา จากนั้นทำการเลือก  Components -> Controls -> Microsoft Comm Control 6.0 ดังรูปที่ 2 แล้วคลิกที่ปุ่ม OK เสร็จแล้วจะสามารถเลือกใช้งาน Microsoft Communication Control ได้

.

รูปที่ 2 การเพิ่มคอนโทรล MSComm

.

การเขียนโปรแกรม Visual Basic สำหรับส่งข้อมูลให้กับเครื่อง PLC

ในบทความนี้จะนำเสนอตัวอย่างการส่งข้อมูลอย่างง่ายให้กับเครื่อง PLC ด้วยโปรแกรมที่เขียนขึ้นโดย Visual Basic โดยมีขั้นตอนดังนี้

.

1. เปิดโปรแกรม Visual basic แล้วสร้าง Project ใหม่โดยคลิกที่ File -> New Project ให้เลือก Standard EXE เพื่อเปิดฟอร์มใหม่ขึ้นมา เมื่อมีฟอร์ม Form1 ปรากฏขึ้นมาแล้ว ให้ออกแบบฟอร์ม Form 1 ดังรูปที่ 3

.

รูปที่ 3 ฟอร์ม Form 1 ขณะออกแบบ

.

2. กำหนดคุณสมบัติต่าง ๆ ที่สำคัญดังตารางที่ 2

ตารางที่ 2 คุณสมบัติของคอนโทรล

.

3.  พิมพ์คำสั่งลงในส่วนของ Form1 ดังนี้

.

โดยโปรแกรมย่อย Private Sub Command1_Click () เป็นโปรแกรมย่อยที่ทำการรวมข้อมูลในรูป header_code & Text1.Text & frame_check_seq & "*" & vbCr โดยที่ header_code คือรหัสนำหน้าของเฟรมในที่คือ @00WP ซึ่งหมายถึงการเขียนโปรแกรม (write program)  

.

ส่วน Text1.Text คือข้อมูลที่ต้องการส่งให้กับเครื่อง PLC และตัวแปร frame_check_seq คือรหัส Frame check sequence (FCS) ซึ่งทำหน้าที่ตรวจสอบข้อมูลที่ต้องการส่งให้เครื่อง PLC และค่า FCS นี้ได้มาจากการใช้ข้อมูลจาก header_code + Text1.Text ซึ่งคำนวณจากฟังก์ชั่น fcs ในโปรแกรม

.

4. ทำการเชื่อมต่อเครื่องคอมพิวเตอร์กับเครื่อง PLC เข้าด้วยกันด้วยพอร์ตอนุกรม RS–232C ทำการลบโปรแกรมที่ค้างอยู่ในเครื่อง PLC แล้วทำการปรับโหมดของเครื่อง PLC ไว้ที่โหมดโปรแกรม จากนั้นทำการทดสอบการทำงานของโปรแกรมที่เขียนขึ้น โดยกดปุ่ม <F5> เพื่อรันโปรแกรมก็จะปรากฏผลดังแสดงไว้ในรูปที่ 4

.

รูปที่ 4 โปรแกรมขณะทำงาน

.

โดยจะยกตัวอย่างการเขียนโปรแกรมให้กับเครื่อง PLC ดังตารางที่ 3

ตารางที่ 3 คำสั่งและข้อมูลตัวอย่าง

.

รูปที่ 5 โปรแกรมขณะป้อนค่า

.

ทำการป้อนข้อมูลในตารางที่ 3 ลงในโปรแกรมดังรูปที่ 5 จากนั้นคลิกที่ปุ่ม “ส่ง” สังเกตที่ Programming Console ของเครื่อง PLC โดยการกดคีย์ลูกศรขึ้นและลง เพื่อตรวจสอบดูว่าเครื่อง PLC ได้รับข้อมูลหรือยัง หรืออาจสังเกตได้ว่าที่หลอดสัญญาณแสดงการติดต่อสื่อสารของเครื่อง PLC ช่อง COMM (ลักษณะทรงสี่เหลี่ยมสีส้ม) จะกระพริบทุกครั้งที่ทำการกดปุ่ม “ส่ง” ที่โปรแกรม 

.

ต่อไปจะเป็นตัวอย่างการเขียนโปรแกรมเพื่อปรับโหมดการทำงานให้กับเครื่อง PLC โดยสามารถปรับโหมดการทำงานได้ 3 โหมด คือ โหมดโปรแกรม (Program Mode) โหมดมอนิเตอร์ (Monitor Mode) และโหมดรัน (Run Mode) โดยขั้นตอนในการสร้างโปรแกรมมีดังนี้

.

1. เปิดฟอร์มใหม่ขึ้นมา เมื่อมีฟอร์ม Form2 ปรากฏขึ้นมาแล้ว ให้ออกแบบฟอร์ม Form 2 ดังรูปที่ 6

รูปที่ 6 ฟอร์ม Form 2 ขณะออกแบบ

.

2. กำหนดคุณสมบัติต่าง ๆ ที่สำคัญดังตารางที่ 4

ตารางที่ 4 คุณสมบัติของคอนโทรล

.

3. พิมพ์คำสั่งลงในส่วนของ Form2 ดังนี้

.

4. ทำการทดสอบการทำงานของโปรแกรมที่เขียนขึ้น โดยกดปุ่ม <F5> เพื่อรันโปรแกรมก็จะปรากฏผลดังแสดงไว้ในรูปที่ 7 ทดสอบการปรับโหมดการทำงานของเครื่อง PLC โดยการใช้เมาส์คลิกที่ปุ่ม โปรแกรม มอนิเตอร์ และ รัน แล้วสังเกตการเปลี่ยนแปลงหลอดไฟฟ้าแสดงสถานการณ์ทำงานของเครื่อง PLC ซึ่งถ้าเลือกที่โหมดโปรแกรม

.

โปรแกรมจะส่งค่า @00SC0050* ออกไปให้กับเครื่อง PLC เพื่อทำการเปลี่ยนโหมดให้อยู่ในโหมดโปรแกรม โดย SC หมายถึงการเขียนสถานะ (STATUS WRITE) ส่วนในโหมดอื่นก็จะมีลักษณะที่คล้ายกัน

.

รูปที่ 7 โปรแกรมขณะทำงาน

.
สรุป

ในบทความนี้ได้นำเสนอการส่งข้อมูลระหว่างเครื่อง PLC กับเครื่องคอมพิวเตอร์แบบ Host Link ผ่านพอร์ตอนุกรมภายในมาตรฐาน RS-232C ด้วยการเขียนโปรแกรมบน Visual Basic โดยยกตัวอย่างเครื่อง PLC ของ OMRON รุ่น CPM1 ซึ่งเนื้อหาในบทความนี้จะเป็นประโยชน์สำหรับผู้ที่สนใจการเชื่อมต่อเครื่องคอมพิวเตอร์กับเครื่อง PLC หรือสามารถนำไปประยุกต์ใช้ในการพัฒนาโปรแกรมคอมพิวเตอร์สำหรับการเขียนโปรแกรมคอมคุมเครื่อง PLC ต่อไป

.

เอกสารอ้างอิง

1. พานิช อินต๊ะ, โปรแกรมจำลองการทำงานของเครื่อง พี แอล ซี, รายงานฉบับสมบูรณ์เสนอต่อ ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ สำนักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ กระทรวงวิทยาศาสตร์ เทคโนโลยีสิ่งแวดล้อม, 2544.
2. พานิช อินต๊ะ, โปรแกรมจำลองการทำงานของเครื่อง PLC, วารสาร Electrical & Control, ปีที่ 3, ฉบับที่ 15, หน้า 61–65, กันยายน–ตุลาคม 2547.
3. พานิช อินต๊ะ, การติดต่อสื่อสารข้อมูลของเครื่อง PLC, วารสาร Industrial Technology Review, ปีที่ 12, ฉบับที่ 157, หน้า 110–113, ตุลาคม 2549.
4. พานิช อินต๊ะ, โปรแกรมสนับสนุนการเขียนโปรแกรมควบคุมการทำงานเครื่อง PLC ด้วยภาษาแลดเดอร์ไดอะแกรม, วารสาร Industrial Technology Review, ปีที่ 12, ฉบับที่ 157, หน้า 125–130, พฤศจิกายน 2549.
5. CPM1 Programming Manual, Omron, 1993.
6. C200HE Programming Manual, Omron, 1993.

สงวนลิขสิทธิ์ ตามพระราชบัญญัติลิขสิทธิ์ พ.ศ. 2539 www.thailandindustry.com
Copyright (C) 2009 www.thailandindustry.com All rights reserved.

ขอสงวนสิทธิ์ ข้อมูล เนื้อหา บทความ และรูปภาพ (ในส่วนที่ทำขึ้นเอง) ทั้งหมดที่ปรากฎอยู่ในเว็บไซต์ www.thailandindustry.com ห้ามมิให้บุคคลใด คัดลอก หรือ ทำสำเนา หรือ ดัดแปลง ข้อความหรือบทความใดๆ ของเว็บไซต์ หากผู้ใดละเมิด ไม่ว่าการลอกเลียน หรือนำส่วนหนึ่งส่วนใดของบทความนี้ไปใช้ ดัดแปลง โดยไม่ได้รับอนุญาตเป็นลายลักษณ์อักษร จะถูกดำเนินคดี ตามที่กฏหมายบัญญัติไว้สูงสุด