| เนื้อหานี้จะเป็นการอธิบายถึงการสื่อสารด้วยคำสั่งมาตราฐานที่มีการตกลงกัน(Protocal)ระหว่าง
หน่วยประมวลผลต้นทางกับหน่วยประมวลผลปลายทาง
เช่น PC กับ PC ,PC กับ Microcontroller ,PC
กับ Modem เป็นต้น
จากที่ผมได้เขียนโปรแกรม PC Remote Control
ติดต่อผ่าน TCP/IP และให้ Download ไปลองใช้กัน
ก็ได้มีผู้สนใจสอบถามถึงวิธีการเขียนโปรแกรม
รวมทั้งเรื่องการติดต่อกับไมโครคอนโทรลเลอร์
ซึ่งผู้ที่ไม่มีอุปกรณ์ประเภทไมโครคอลโทรลเลอร์ไว้ทดลองก็สามารถจะใช้
PC ของเรานี้ เขียนโปรแกรมจำลองเป็นฝ่ายไมโคคอนโทรลเลอร์ได้สำหรับทำความเข้าใจถึงวิธีติดต่อ
ส่งคำสั่งเพื่อไป ควบคุมหรือตรวจสอบสถานะของหน่วยประมวลปลายทางได้
ในส่วนของ
modem นั้นบริษัทผู้ผลิตจะมีคำสั่งมาตราฐานที่รู้จักกันคือ
AT Command แต่เราสามารถจะกำหนดเงื่อนไขคำสั่งในการติดต่อสื่อสารของเราเองก็ทำได้
โดยในที่นี้จะแนะนำการติดต่อสื่อสารผ่าน
Serial port ทั้งนี้แนวทางการเขียนโปรแกรมสามารถนำไปใช้ในแบบการติดต่อผ่าน
TCP/IP ได้เหมือนกัน
โปรโตคอล
ที่จะส่งนั้นในความหมายของผม คือข้อความ,รหัส
หรือ อักษร ซึ่งฝ่ายผู้รับปลายทางจะต้องรู้ว่ารับคำสั่งนั้นมาแล้วต้องไปทำอะไร
เช่น ส่งข้อความว่า "Check Time" โดยกำหนดว่าถ้ามีคำสั่งนี้มาถึงฝั่งผู้รับก็หน่วยประมวลผลฝั่งผู้รับส่งค่าเวลา
ณ ขณะนั้นไปให้ฝ่ายที่ส่งข้อความ เป็นต้น
แล้วเราจะเขียนโปรแกรมอย่างไร MScomm1.Output="Check Time"
โปรแกรมของฝ่ายรับโปรโตคอล
เขียนชุดคำสั่งนี้ใน
MSComm1_Oncomm() ซึ่งเมื่อ Com port มีรับข้อมูลมาจะเกิด
Event Massage ขึ้น ชื่อ comEvReceive โดยเราใช้
Properties ชื่อ CommEvent มาเป็นเงื่อนไขในการรับโปรโตคอล
และส่งหรือทำเงื่อนไขที่กำหนด
Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
Buffer = MSComm1.Input
' Properties สำหรับรับข้อมูล
' ตรวจสอบเงื่อนไขของโปรโตคอล
Select Case StrConv(Buffer, vbUnicode)
Case Is ="Check Time"
' หรือจะเขียนว่า Case "Check Time" ก็ได้
MSComm1.Output=Time ' ส่งค่าเวลากับไปยังฝ่ายส่งโปรโตคอล
End Select
End Select
โปรแกรมตัวอย่าง
ผมได้จัดทำโปรแกรมตัวอย่างสำหรับเพื่อนำไปประยุกต์ใช้งาน ซึ่งก็จะมีคำอธิบายไว้ด้วย
โดยให้คุณ Copy Code ด้านล่างทั้งหมดไป
Paste ลงใน Text Editor(Notepad สะดวกดี)
จากนั้น Save As เป็นไฟล์นามสกุล FRM เช่น
frmprotocal.frm เราก็จะได้ Visual
Basic Form หากเปิดฟอร์มใน Visual Basic
แล้วไม่มี MSComm 6 ให้คุณ Add Control
นี้ใหม่ นะครับ
สิ่งที่จะได้จากบทความนี้
1.
รู้ถึงวิธีเขียนโปรแกรมติดต่อสื่อสารแบบโปรโตคอล
2. นำไปประยุกต์ใช้กับงานควบคุมระยะไกล
หรือรับส่งข้อมูล
3. สามารถจำลองการทำงานของหน่วยประมวลผลปลายทางได้(เช่น
ไมโครคอลโทรลเลอร์,PLC ฯลฯ)
4. นำรูปแบบนี้ไปใช้กับการติดต่อสื่อสารวิธีอื่นๆได้
|