ทดสอบการสื่อสาร Modbus Protocol ด้วย QModBus

Modbus protocol ถือเป็นมาตรฐานโพรโทคอลการสื่อสารหนึ่งที่ได้รับความนิยมและใช้กันอย่างแพร่หลายในอุตสาหกรรมปัจจุบัน เนื่องจากตัว Modbus นั้นมีข้อดีอยู่หลายอย่างเช่นติดตั้งง่าย ใช้งานสะดวก การสื่อสารมีความเสถียร และที่สำคัญคือเป็น Open Protocol สำหรับผู้ใดที่ต้องการใช้งานก็สามารถนำไปพัฒนาต่อยอดได้โดยไม่มีค่าใช้จ่าย อีกทั้งสามารถเชื่อมต่ออุปกรณ์หรือเซ็นเซอร์ต่าง ๆ ได้มากถึง 247 ตัว โดยทั่วไปแล้ว Modbus นั้นจะมี Master อยู่ 1 ตัวเพื่อใช้ในการส่งคำสั่งไปยังอุปกรณ์ Slave ซึ่งสามารถมีไอดีได้ตั้งแต่ 1 – 247 โดยที่ Master นั้นจะทำการส่งคำสั่งอ่านหรือเขียนข้อมูลลงไปยัง Register ที่ใช้เก็บข้อมูลของอุปกรณ์ที่ต้องการได้เพียงแค่ระบุเลขไอดีเท่านั้น มาถึงตรงนี้แล้ว หากใครที่ยังสงสัย หรือต้องการข้อมูลเพิ่มเติมก็สามารถย้อนไปดูบทความที่ทาง บริษัท NDR Solution Co. Ltd. ของเราเขียนไว้ได้ ตั้งแต่เรื่องของ Fieldbus network เบื้องต้น และ Modbus Introduction หรือแม้แต่ มาทำความรู้จัก RS-485 กันเถอะ ซึ่งทางเรานั้นได้มีการเขียนบทความที่เกี่ยวข้องไว้หลากหลายบทความเลยทีเดียว … Read More

5 ปัญหาที่มักจะเกิดขึ้นกับการออกแบบ PCB

เรามาเรียนรู้แนวทางที่จะหลีกเลี่ยง 5 ปัญหาหรือข้อผิดพลาดกับการออกแบบ PCB ที่มักจะเกิดขึ้นระหว่างการออกแบบผลิตภัณฑ์ฮาร์ดแวร์บ่อยที่สุด Figure 1 Unassembled Mitayi Pico RP1 RP2040 boards from CIRCUITSTATE Electronics. PCB designed in KiCad and manufactured by PCBWay. Photo by Vishnu Mohanan  on Unsplash เมื่อเราพูดถึงการออกแบบผลิตภัณฑ์ฮาร์ดแวร์ มักจะมีข้อผิดพลาดเล็ก ๆ น้อย ๆ ที่จะพบเห็นซ้ำแล้วซ้ำเล่าอยู่เป็นประจำ โดยเฉพาะอย่างยิ่งข้อผิดพลาดเกี่ยวกับการออกแบบ PCB จากการเชื่อมต่อ (Net, Connection) และจุดยึดหรือจุดบัตกรีชิ้นส่วนอุปกรณ์อิเล็กทรอนิกส์ทั้งหมดเข้าไว้ด้วยกันบนบอร์ด เรามาตรวจสอบการออกแบบดูกันหน่อยว่า 5 ข้อผิดพลาดเกิดขึ้นกับ PCB ที่พบบ่อยที่สุด มีอะไรบ้าง 1 – Footprint หรือ Land Pattern ไม่ถูกต้อง … Read More

Teraterm Macro

Teraterm Macro เป็นสคริปต์ที่ใช้สำหรับการทำงานในโปรแกรม TeraTerm ซึ่งเป็นโปรแกรมเชื่อมต่อแบบพอร์ตซีเรียล (Serial Port) ที่ใช้สำหรับการควบคุมอุปกรณ์อิเล็กทรอนิกส์ต่างๆ ผ่านทางพอร์ตซีเรียล ซึ่ง TeraTerm Macro จะทำหน้าที่ส่งคำสั่งที่เขียนไว้ในสคริปต์ ไปยังอุปกรณ์ต่างๆ ผ่านทางพอร์ตซีเรียล โดยมีการตั้งค่าการเชื่อมต่อเป็นได้หลายแบบ เช่น Telnet, SSH, Serial, และอื่นๆ และ TeraTerm Macro ยังสามารถทำงานร่วมกับตัวแปร เงื่อนไข การวนซ้ำ การแสดงผล และคำสั่งอื่นๆ ที่ช่วยให้สามารถทำงานได้อย่างยืดหยุ่น ดังนั้น TeraTerm Macro จึงเป็นเครื่องมือที่ช่วยในการทำงานที่ซับซ้อนในสิ่งที่เกี่ยวข้องกับการควบคุมอุปกรณ์ทางอิเล็กทรอนิกส์ได้ง่ายขึ้น ตัวอย่าง ttl macro script ( Tera Term Language ) สำหรับการใช้งานเบื้องต้น เราสามารถใช้ free text editor เช่น notepad, notepad++ ในการเขียน macro script หรือจะใช้ … Read More

Modbus คืออะไร

โลโก้ Modbus รูปจาก https://logos-download.com Modbus คืออะไร Modbus เป็นโปรโตคอลสื่อสารที่พัฒนาขึ้นโดยบริษัท Modicon (ปัจจุบันคือบริษัท Schneider Electric) เพื่อใช้สื่อสารอุปกรณ์ PLC ของทางบริษัทเอง โดยในปัจจุบันมี Modbus Organization คอยทำหน้าที่ในการดูแลมาตรฐานของตัวโปรโตคอลต่อจากทาง Schneider Electric ซึ่งในปัจจุบัน Modbus เป็นหนึ่งในโปรโตคอลที่นิยมเป็นอย่างมากสำหรับใช้ในการสื่อสารระหว่างอุปกรณ์ต่างๆในวงการอุตสาหกรรมเนื่องมาจากตัวโปรโตคอลมีความเรียบง่าย และตัวโปรโตคอลเองเปิดเป็นสาธารณะ (Royalty free) ทำให้ทุกคนสามารถพัฒนาอุปกรณ์ที่ใช้โปรโตคอล Modbus ได้โดยไม่เสียค่าใช้จ่าย โดยตัวโปรโตคอลมีลัษณะการทำงานแบบ Request/Reply โดยอุปกรณ์ที่ต้องการอ่านข้อมูลจะเรียกว่า Modbus Master/Client และอุปกรณ์ที่ถูกอ่านข้อมูลจะเรียกว่า Modbus Slave/Server โดยในเครื่อข่ายของอุปกรณ์ที่สือสารด้วยโปรโตคอล Modbus จะประกอบไปด้วย Master เพียงหนึ่งตัว แต่สามารถมี Slave ได้ตั้งแต่ 1 ตัวไปจนถึง 247 ตัว โดยแต่ละ Slave จะมี ID ประจำตัวตั้งแต่ … Read More

Introduction to Ltspice ตอนที่ 2

จากบทความก่อนหน้านี้ Introduction to Ltspice เราได้เรียนรู้การใช้งานเบื้องต้นเกี่ยวกับ Ltspice ไปบ้างแล้วถึงการใช้ Ltspice สำหรับทำการวิเคราะห์ของวงจร การสร้างวงจรใน Ltspice ง่ายมากเพียงแค่ดึง part ต่างๆ ที่อยู่ใน library ที่เค้าเตรียมไว้ให้มาต่อวงจรก็สามารถทำการวิเคราะห์ได้อย่างง่ายดาย เพียงแต่ part ที่เราดึงมาใช้นั้นโดยส่วนใหญ่ก็จะเป็น part ของ Linear Technology (ตอนนี้เปลี่ยนไปเป็นของ Analog Device แล้ว) ซึ่งก็แน่นอนหล่ะครับ เพราะว่า Ltspice นั้นเป็น tool ที่ให้ใช้ฟรีจาก Linear Technology ดังนั้น part ที่เค้าเตรียมไว้ให้เค้าก็ต้องเตรียมให้เฉพาะของเค้าเท่านั้น ซึ่งมาถึงจุดนี้ผู้อ่านบางท่านอาจมีคำถามว่าเราสามารถนำ part อื่นที่ไม่ใช่ของ Linear Techonlogy มาใช้วิเคราะห์ได้หรือเปล่า คำตอบคือได้ครับ วันนี้เราจะมาพูดถึงเรื่องนี้กันครับ กรณีเราจะใช้ part ที่ไม่มีให้เลือกใน Ltspice นั้นสามารถทำได้โดยการนำข้อมูลที่ทางผู้ผลิตจัดเตรียมไว้ให้มา import เข้า Ltspice … Read More

Fieldbus network เบื้องต้น

Fieldbus network คือ image: e.lapp.com/jp/ เรามาเริ่มกันด้วยพื้นฐานกันก่อนเลยครับ Fieldbus คือ ระบบ bus ที่เชื่อมต่อกับอุปกรณ์จำพวกเซ็นเซอร์ เครื่องวัด หรืออุปกรณ์ที่ใช้สำหรับควบคุมต่างๆ ภายในโรงงาน เพื่อแลกเปลี่ยนข้อมูล Fieldbus นั้นจะมีโพรโทคอลที่มีรูปแบบการสื่อสารเป็นของตัวเอง (กำหนดขึ้นเอง) ซึ่งจะทำให้อุปกรณ์ที่เชื่อมต่อ เช่น เซ็นเซอร์ อุปกรณ์ควบคุม เป็นต้น สามารถแลกเปลี่ยนข้อมูลได้โดยไม่มีสัญญาณแปลกปลอม และ Fieldbus ส่วนใหญ่นี้ มักจะใช้ระบบที่มี master-slave ในการทำงานครับ ประโยชน์ของฟิลด์บัส การพัฒนาเทคโนโลยี Fieldbus ขึ้นมานั้น ทำให้มีข้อได้เปรียบมากมายในโลกของการสื่อสารเชิงอุตสาหกรรมโรงงาน ซึ่งมีทั้งเรื่องของประสิทธิภาพและราคา ประโยชน์ของเจ้า Fieldbus มีอะไรบ้าง เราไปดูกันเลยครับ 1.ลดข้อกำหนดการเดินสาย image: Flaticon.com ประโยชน์ที่โดดเด่นที่สุดของระบบ Fieldbus มีลักษณะการต่อสายโดยพื้นฐานรูปแบบอนุกรม ความต้องการในการเดินสายที่ลดลง และการอนุญาตให้อุปกรณ์หลายร้อยรายการเชื่อมต่อกับจุดเชื่อมต่อและคอนโทรลเลอร์จุดเดียว จำนวนสายเคเบิ้ลที่ต้องใช้ในเครือข่ายจึงลดลงอย่างมากเมื่อเทียบกับการกำหนดค่าการเดินสายแบบขนาน นอกจากการลดจำนวนสายเคเบิลที่ต้องการแล้ว ความยาวของสายเคเบิลที่จำเป็นในระบบ Fieldbus ยังลดลงอีกด้วย ความซับซ้อนในการเดินสายเคเบิ้ลของระบบจึงลดลงอย่างมาก 2.ลดต้นทุน … Read More

มาทำความรู้จัก RS-485 กันเถอะ

RS-485 หรือที่รู้จักในชื่อ TIA-485(-A) หรือ EIA-485 เป็นมาตรฐานการสื่อสารแบบดิจิทัลที่ใช้งานกันอย่างแพร่หลายในงานอุตสาหกรรม โดยการสื่อสารสามารถ รับ/ส่ง ได้ในระยะทางที่ไกลถึง 1200 เมตร Data rate ก็มากถึง 50Mbps และเชื่อมต่อกันได้หลายตัวด้วยการต่ออนุกรมกันตั้งแต่ 2 ตัวไปจนถึงหลัก 256 ตัว หรือมากกว่านั้นแล้วแต่คุณสมบัติของ IC และระบบ สามารถ Support ระบบไฟเลี้ยงได้ทั้ง 5V และ 3.3V การสื่อสาร RS-485 ไม่ใช่ Protocol จึงมีการนำ Protocol มาใช้งานบนการสื่อสาร RS-485 เช่น Modbus เป็นต้น รูปข้างล่างคือกราฟเปรียบเทียบความยาวสายเคเบิล vs Data rate กับมาตรฐานการสื่อสารอื่นๆ Network Topology การเชื่อมต่อ RS-485 นั้นมีหลากหลายแบบ แต่ละแบบก็มีข้อดีข้อเสีย ควรเลือกใช้งานตามความเหมาะสม แต่จะแนะนำให้ต่อแบบ Daisy chain … Read More

Basic Thermal Resistance (EP.2)

Junction Temperature ในปัจจุบันเทคโนโลยีการผลิตชิพ IC ต่างๆนั้นมีการพัฒนาอย่างต่อเนื่องทำให้ผลิตภัณฑ์ชิพที่ออกมามีคุณสมบัติการใช้งานเพิ่มขึ้นแต่ในขณะเดียวกันตัวชิพกลับมาขนาดเล็กลง ซึงทำให้ชิ้นส่วน Semiconductor เหล่านี้เผชิญกับปัญหาด้านความร้อนในระหว่างการทำงาน ดังนั้นการออกแบบจึงต้องคำนึงถึงอุณหภูมิย่านการทำงานที่ยอมรับได้หรือที่เรียกว่า Junction Temperature (TJ) หากอุณหภูมิขณะการทำงานของตัว IC เกินกว่าค่า TJ จะส่งผลเสียหลายๆด้านต่อตัว IC เช่น ยังสามารถทำงานได้แต่อายุการใช้งานสั้นลง, อาจเกิดความเสียหายขณะใช้งาน และใน IC บางชนิดจำพวก MCU อาจมีการปิดการใช้งานเพื่อป้องกันความเสียหายกับตัว IC  โดยทั้งนี้ Thermal resistance จะมีความสำคัญในการคำนวนหาอุณหภูมิย่านการทำงาน (TJ) ข้างต้น หน่วยวัดความร้อนทั่วไปที่ใช้สำหรับการคำนวน Junction Temperature หน่วยวัดความร้อนที่มักใช้เป็นประจำนั้นได้แก่ Thermal Resistance และ thermal characterization parameter แต่จะมีแบ่งแยกย่อยออกมาดังตัวอย่างข้อมูลค่าหน่วยความร้อนของชิพ LMR14030 ในตารางด้านล่าง ตัวแปร Thermal Resistance เช่น RθJA และ RθJC เป็นตัวแปรที่มักถูกใช้มากที่สุดในหน่วยวัดอุณภูมิซึ่งจะพบเห็นได้ในเอกสารข้อมูล Specification … Read More

Stack กับ Heap คืออะไรกันนะ?

ในการเขียนโค้ดในภาษาใดก็ตาม ไม่ว่าจะเป็น C, Python หรือภาษาอื่น ๆ แทบจะทุกภาษาล้วนจะต้องมีการประกาศตัวแปรชนิดต่าง ๆ เช่น int double หรือพวกตัวแปรที่มีความซับซ้อนมากขึ้นมาอย่าง array หรือ struct รวมถึงการจองพื้นที่ไว้ส่วนหนึ่งเพื่อเอาไว้เก็บค่าบางอย่างเพื่อใช้ในโปรแกรม โดยปกติแล้ว เมื่อประกาศตัวแปร พื้นที่ภายในหน่วยความจำจะถูกจองเอาไว้ใช้สำหรับตัวแปรที่เราประกาศ หรือพื้นที่ที่เราจองไว้ แต่ว่าพื้นที่ภายในหน่วยความจำพวกนี้ถูกจองอยู่ตรงไหนของระบบ แล้วถูกจองด้วยวิธีแบบไหนกันนะ? มาทำความรู้จักส่วนประกอบภายในหน่วยความจำกันเล็กน้อยค่ะ ภายในหนึ่งโปรแกรมจะมีการจองพื้นที่หนึ่ง ๆ ไว้สำหรับใช้งานภายในโปรแกรม โดยพื้นที่ตรงนี้จะมีโครงสร้างตามรูปด้างล่างนี้ค่ะ Process Memory Layout สำหรับภาษา C   รูปนี้จะจำลองตัว Process Memory Layout ที่ใช้กันภายในภาษา C และ C++ ค่ะ ในภาษาอื่นๆ อาจจะแตกต่างกันเล็กน้อย ภายใน Process Memory Layout จะแบ่งออกเป็นสองส่วนหลักๆ คือ Static Memory Layout โดยในส่วนนี้จะใช้ในการเก็บโค้ดที่มีการแปลงเป็น Machine … Read More

ทำความรู้จักกับ VS Code extensions: Todo Tree กัน

โปรแกรมแก้ไขข้อความ หรือเท็กซ์อิดิเตอร์ (Text editor) คือสิ่งที่นักพัฒนาซอฟต์แวร์หลาย ๆ คนใช้เป็นเครื่องมือในการปรับปรุงและพัฒนาโปรแกรม หรือพูดง่าย ๆ ก็คือโปรแกรมที่นักพัฒนาใช้ในการเขียนโปรแกรมนั่นเอง เนื่องด้วยเท็กซ์อิดิเตอร์นั้นมีฟีเจอร์ต่าง ๆ ที่ช่วยให้นักพัฒนาสามารถแก้ไขโปรแกรมได้อย่างมีประสิทธิภาพ แยกสัดส่วนของโปรแกรมที่เขียนขึ้นมาได้อย่างเป็นสัดส่วน มี User Interface (UI) ที่น่าใช้งาน รวมถึงมีฟีเจอร์พื้นฐานช่วยเน้นข้อความเป็นสีต่าง ๆ ทำให้สามารถแยกแยะโค้ดได้อย่างชัดเจนอีกด้วย ในปัจจุบันเท็กซ์อิดิเตอร์มีให้เลือกใช้มากมายหลายแพลตฟอร์ม ตัวอย่างเช่น Eclipse, Atom, Sublime Text, Vim หรือโปรแกรมพื้นฐานอย่าง Notepad++ ก็ตาม แต่มีเท็กซ์อิดิเตอร์หนึ่งที่ไม่มีใครไม่รู้จัก นั่นคือ “Visual Studio Code” หรือ “VS Code” ที่เรารู้จักกันนั่นเอง VS Code นั้นถือเป็นเท็กซ์อิดิเตอร์ที่ถูกพัฒนาขึ้นโดยบริษัทยักษ์ใหญ่อย่าง Microsoft สามารถติดตั้งใช้งานได้ทั้งระบบปฏิบัติการ Windows, Linux รวมถึง macOS ก็ได้เช่นกัน VS Code นั้นเป็นที่นิยมสูงอันดับต้น ๆ … Read More