มหากาพย์ความสับสนของ RS-232 / RS-232C / RS-422 / RS-485 (ตอนที่ 1)

สมพงษ์ วิศวกรโรงงานมือใหม่คนหนึ่ง เผชิญกับปัญหา Inverter ไม่ทำงาน เขาตรวจพบว่า สายเชื่อมต่อระหว่าง PLC กับ Inverter นั้นเสีย เขาเห็นว่าสายนั้นเป็นแบบ RS-232 ทั่วไป เขาจึงสั่งซื้อใหม่ เมื่อของมา เขาเอามาต่อ ปรากฏว่ามันก็ยังไม่ทำงาน เขาเหงื่อแตกพลักๆ เนื่องจากลูกพี่มายืนกดดัน และลูกค้าก็เร่งเนื่องจากเครื่องผลิตงานไม่ได้หลายวันแล้ว

เขาถ่ายรูปถาม ChatGPT เวอร์ชั่นฟรี แต่ก็ผิดหวังเล็กน้อย เมื่อแอพจำกัดการแช็ทแล้ว เขาจึงพิมพ์รุ่น PLC, Inverter ถาม AI ค่ายอื่นๆ

AI บอกว่า หัวต่อเป็น DB9 แต่สัญญาณสื่อสารที่ใช้เป็นไปได้หลายแบบ ให้เช็คคู่มือเครื่องจักร ว่าสัญญาณสื่อสารที่ใช้เป็นแบบใด เนื่องจากเครื่องจักรเป็นรุ่นเก่า ข้อมูลที่ได้จาก AI ไม่ค่อยชัดเจนนัก

เขาไปค้นเล่มคู่มือ ไล่ดูสักพัก เจอมันเขียนบอกว่าเป็น RS485 สมพงษ์ไม่รอช้า ค้นหาสายที่จะซื้อเป็น RS485 ที่เป็นหัว DB9 ใน Google ปรากฏว่ามันขึ้นมาเต็มไปหมด ไม่รู้ว่าต้องซื้อแบบไหน เพราะอุปกรณ์แต่ละตัวอาจใช้ไม่เหมือนกัน

หลายคนเป็นแบบสมพงษ์ ชอบมีปัญหากับเจ้าสาย RS-232 / RS-232C / RS-422 / RS-485 และสับสนกับ MODBUS RTU/TCP CC-LINK MC-Protocol …

วันนี้จะเอาให้หายงง หายสงสัย ได้กระจ่างแจ้ง ในสิ่งที่คาหัวมานาน


ก่อนที่จะถามว่า เครื่องจักรมันคุยกันยังไง ลองนึกภาพคนสองคนคุยกันก่อน

พูดออกเสียง → หูแปลงความถี่เสียงเป็นภาษา
ภาษาเดียวกัน → เข้าใจกัน (protocol)
เสียงดังพอ → ได้ยิน (voltage/signal level)
พูดทีละคน → ไม่ชนกัน (timing)
สายโทรศัพท์ → ช่องทางส่งข้อมูล (physical layer)

เครื่องจักรก็คุยกันคล้ายๆ คน

คนคุยกันด้วยความถี่เสียง เครื่องคุยกันด้วยสัญญาณ Digital

Digital communication (การสื่อสารดิจิทัล) คือ “การส่งข้อมูลแบบเลข 0 และ 1” ระหว่างอุปกรณ์ เช่น PLC, sensor, inverter, HMI, computer หรือ network ต่าง ๆ

ถ้าคุณทำ PLC/ระบบควบคุมเครื่องจักรอยู่ ให้มองว่า digital communication คือ “ภาษาคุยกันของอุปกรณ์” ว่าใครพูดอะไร เมื่อไร และผ่านสายอะไร

ในระบบดิจิทัล ข้อมูลจริง ๆ ถูกส่งเป็นบิต:

01010011

8 บิต = 1 byte

เช่นตัวอักษร A

A = 01000001

1. พื้นฐานที่สุด: Analog vs Digital

https://www.scimath.org/article-physics/item/4819-analog-digital

Analog

สัญญาณเปลี่ยนต่อเนื่อง

เช่น 0–10V

2.35V
2.36V
2.37V

ใช้ใน sensor, pressure, temperature

Digital

มีสถานะชัดเจน

0 = LOW
1 = HIGH

ตัวอย่าง

0V = OFF
24V = ON

แต่ในการสื่อสาร digital มันใช้ 0/1 หลายบิตเรียงขบวนเป็นข้อมูล


2. บิต (Bit) และไบต์ (Byte)

https://www.nsm.or.th/nsm/th/node/4324

Bit คือหน่วยเล็กสุด

0 หรือ 1

8 bit = 1 byte

ตัวอย่างเลขฐานสอง

00000001 = 1
00001010 = 10
11111111 = 255

ทำไม PLC ชอบพูดเรื่อง byte/register?

เพราะข้อมูลถูกเก็บเป็นกลุ่ม

เช่น

Temperature = 523

อาจถูกเก็บเป็น

00000010 00001011

(16-bit integer)


3. Serial vs Parallel

https://newhavendisplay.com/blog/serial-vs-parallel-communication/

Parallel communication

ส่งหลายบิตพร้อมกัน

เช่น

10101100

ส่งทีเดียว 8 เส้น

ข้อดี

  • เร็ว

ข้อเสีย

  • สายเยอะ
  • ไกลไม่ดี
  • noise ง่าย

จึงไม่ค่อยนิยมในโรงงานสมัยใหม่

Serial communication

ส่งทีละบิต

1 → 0 → 1 → 0 → 1

ใช้สายไม่กี่เส้น

นิยมมาก

เช่น

  • Modbus RTU
  • Ethernet
  • USB
  • RS232
  • RS485

4. สิ่งที่ต้องเข้าใจก่อนคุยกันได้

มี 4 เรื่องหลัก

(1) Physical layer

“ส่งผ่านอะไร ใช้สายอะไร Hardware แบบไหน”

ตัวอย่าง

  • RS232
  • RS485
  • Ethernet

เปรียบเหมือน “ชนิดสาย”

https://blog.mbedded.ninja/electronics/communication-protocols/rs-232-protocol/

RS232

https://newhavendisplay.com/blog/rs232/

สั้น ใกล้ จุดต่อจุด

เช่น

PLC ↔ เครื่องชั่ง

RS485

https://www.eurotherm.com/us/communications-protocols-articles-us/serial-digital-communications-overview/

ไกลกว่า noise ทนกว่า

หลายเครื่องต่อ bus เดียวได้

โรงงานนิยมมาก

Ethernet

https://www.eufy.com/blogs/security-camera/cat-5-wiring

network แบบ LAN

เช่น

PLC → Switch → HMI → SCADA

(2) Protocol

https://instrumentationblog.com/communication-protocols/

“ภาษา”

ถึงสายเหมือนกัน แต่พูดคนละภาษา ก็ไม่เข้าใจ

ตัวอย่าง

RS485 เป็นแค่สาย

บนสายอาจใช้

  • Modbus RTU
  • ASCII
  • proprietary protocol

เหมือนใช้สายโทรศัพท์เดียวกัน แต่คนหนึ่งพูดไทย อีกคนพูดจีน


(3) Baud rate

https://newhavendisplay.com/blog/baud-rate/

ความเร็วส่งข้อมูล

เช่น

9600
19200
115200

หมายถึง bit/s โดยประมาณ

ถ้าตั้งไม่ตรงกัน → คุยไม่ได้

เช่น

PLC:

9600

เครื่อง:

19200

ผล:

ข้อมูลมั่ว


(4) Frame format

รูปแบบข้อมูล

เช่น

9600,8,N,1

แปลว่า

  • 9600 baud
  • 8 data bits
  • N = no parity
  • 1 stop bit

ถ้าไม่ตรง → อ่านไม่ออก


5. การส่ง serial แบบง่ายสุด

ส่งคำว่า A

ข้อมูลจริง:

01000001

แต่เวลาส่งจริงจะถูกห่อ

เช่น

Start bit
01000001
Stop bit

ประมาณนี้

0 01000001 1

เพื่อให้อีกฝั่งรู้ว่า

“เริ่มแล้วนะ” และ “จบแล้ว”


6. Asynchronous vs Synchronous

https://www.hackatronic.com/difference-between-synchronous-and-asynchronous-data-transmission/

Asynchronous

ไม่ใช้ clock กลาง

ใช้ start/stop bit

เช่น

  • RS232
  • RS485 Modbus RTU

นิยมมากในโรงงาน


Synchronous

มี clock sync

เร็วกว่า

เช่น

  • SPI
  • Ethernet (บางระดับ)

7. Master / Slave

ในโรงงานเจอบ่อย

ตัวอย่าง:

PLC อ่าน inverter

PLC = master

inverter = slave

PLC ถาม:

ความเร็วตอนนี้เท่าไร

inverter ตอบ:

1450 RPM

เช่นใน Modbus

PLC ส่ง request

อ่าน register 40001

slave ตอบกลับ


8. Address

เวลามีหลายเครื่องบน RS485

ต้องมีบ้านเลขที่

เช่น

Drive1 = 1
Drive2 = 2
Drive3 = 3

PLC ถาม:

device 2

เครื่องอื่นเงียบ


9. Error detection (CRC)

https://www.firgelliauto.com/es/blogs/engineering-calculators/crc-16-crc-32-checksum-generator-modbus?srsltid=AfmBOoqYr3Js60Pa84ZYl2qMB3wWi6t4ujxvrvCUDbndY4EWTNA3i7-B

ข้อมูลระหว่างทางอาจเพี้ยน

จึงมี checksum/CRC

เช็คว่า

ข้อมูลเสียไหม

ถ้าเสีย

ignore

หรือ request ใหม่


10. ลำดับการคิดเวลา debug หน้างาน

ถ้าคุยไม่ได้ อย่าเดาสุ่ม

เช็คตามนี้:

  1. สายถูกไหม
  2. Physical layer ถูกไหม (RS232/485) ต่อขาถูกไหม
  3. TX/RX ถูกไหม (ต้องสลับกัน)
  4. baud rate ตรงไหม
  5. parity ตรงไหม
  6. address ถูกไหม
  7. protocol ตรงไหม
  8. register ถูกไหม
  9. termination/bias resistor ถูกไหม
  10. มี CRC error ไหม

แผนที่ความรู้แบบย่อ:

Digital Communication
│
├─ Bit / Byte
├─ Serial vs Parallel
├─ Physical Layer
│    ├─ RS232 (3 สาย TX,RX,GND)
│    ├─ RS485 (2 สาย A,B)
│    └─ Ethernet 
│
├─ Protocol
│    ├─ Modbus RTU
│    ├─ Modbus TCP
│    └─ ASCII
│
├─ Communication Setting
│    ├─ Baud rate
│    ├─ Data bit
│    ├─ Parity
│    └─ Stop bit
│
├─ Address
├─ CRC
└─ Debug

ถ้าจะเรียนให้ “ใช้งาน PLC จริงได้” ขั้นต่อไปควรเรียน: RS232/RS485 → ASCII → Modbus RTU → Modbus TCP → Ethernet/IP หรือ Profinet ก่อน เพราะใช้ในโรงงานจริงมากที่สุด โดยเฉพาะงาน PLC/ตู้คอนโทรล

Scroll to Top