ถ้าจะให้ “ใช้ได้จริงกับ PLC/เครื่องจักร” ควรเรียนเป็นลำดับ ไม่ใช่อ่านนิยามกระโดดไปมา
ลำดับนี้:
- Bit/Byte และเลขฐานสอง
- Serial communication
- RS232 / RS485
- Serial setting (9600,8,N,1)
- ASCII protocol
- Modbus RTU
- Modbus TCP
- การ debug หน้างาน
เริ่มบท 1 ก่อน
บท 1: Bit / Byte / Binary แบบช่าง PLC ต้องเข้าใจ
ทุกอย่างใน digital communication สุดท้ายคือ 0 กับ 1
คอมพิวเตอร์ PLC inverter HMI มองข้อมูลเป็นเลขฐานสอง
0 หรือ 1
เรียกว่า bit
8 bit = 1 byte
เช่น
10110010
นี่คือ 1 byte
ทำไมต้องมี 0 กับ 1 ?
เพราะวงจรอิเล็กทรอนิกส์แยกได้ง่าย
ไม่มีไฟ = 0
มีไฟ = 1
เช่น
0V = LOW
5V = HIGH
หรือ
0V = 0
24V = 1
ดังนั้น “ข้อมูล” จริง ๆ คือไฟเปิด–ปิดเร็วมาก
เลขฐานสองคืออะไร
ปกติเราใช้เลขฐานสิบ
583
แปลว่า
5×100 +
8×10 +
3×1 +
= 583
ฐานสองก็เหมือนกัน แต่ใช้กำลังของ 2
1011
แตกได้เป็น
1×8
0×4
1×2
1×1
รวม
11
ดังนั้น
1011(₂) = 11(₁₀)
จำค่าพวกนี้ให้ขึ้นใจ
1 = 00000001
2 = 00000010
4 = 00000100
8 = 00001000
16 = 00010000
32 = 00100000
64 = 01000000
128 = 10000000
นี่คือ “น้ำหนักบิต”
ถ้าจำได้ ชีวิต debug PLC ง่ายขึ้นเยอะ
ตัวอย่างจริงใน PLC
สมมติ input 8 ตัว
Start Bit → X0 X1 X2 X3 X4 X5 X6 X7
สถานะ:
Start Bit → ON OFF ON ON OFF OFF OFF ON
กลายเป็น
10001101 ← Start Bit
คิดค่า:
128 + 8 + 4 + 1
= 141
PLC บางตัวส่งข้อมูล input เป็น decimal แบบนี้
คุณต้องแปลกลับได้
bit masking (สำคัญมาก)
สมมติ inverter ส่ง status มา
ค่า
13
จริง ๆ อาจหมายถึง
00001101
แปลว่า
bit0 = 1
bit1 = 0
bit2 = 1
bit3 = 1
ตีความ:
bit0 = RUN
bit1 = FAULT
bit2 = READY
bit3 = ALARM
ดังนั้นสถานะคือ
RUN = true
FAULT = false
READY = true
ALARM = true
นี่คือเหตุผลที่ต้องอ่าน binary
Bit Masking (การมาสก์บิต) คือเทคนิคในเชิงโปรแกรมมิ่งและการสื่อสารข้อมูลที่ใช้ในการ “เลือก” หรือ “จัดการ” เฉพาะบางบิต (Bit) ภายในชุดข้อมูลไบนารี โดยที่บิตอื่น ๆ ที่ไม่ต้องการจะถูก “ปิด” หรือ “ซ่อน” ไป
เปรียบเทียบง่าย ๆ เหมือนการเอา “แผ่นกระดาษที่มีช่องเจาะรู” (Mask) ไปวางทับบนชุดตัวเลข เพื่อให้เรามองเห็นแค่เลขในตำแหน่งที่เจาะรูไว้เท่านั้น
ทำไมต้องใช้ Bit Masking?
- ประหยัดหน่วยความจำ: ในระบบ PLC การเก็บข้อมูล 8 สถานะ (เช่น Run, Stop, Fault, Alarm, Ready, Warning, Reset, Power) เราสามารถเก็บรวมไว้ใน 1 Byte ได้เลย แทนที่จะใช้ตัวแปร 8 ตัว
- ความเร็ว: การคำนวณ Bitwise ในระดับ CPU ทำได้เร็วมาก
- มาตรฐานสื่อสาร: โปรโตคอลอุตสาหกรรมส่วนใหญ่ (เช่น Modbus) มักจะส่งข้อมูลสถานะมาในรูปแบบนี้ เราจึงจำเป็นต้องใช้การมาสก์บิตเพื่อ “แกะ” ข้อมูลออกมาใช้งาน
สรุปสั้น ๆ: Bit masking คือวิธีการ “กรอง” เอาข้อมูลบิตที่สนใจออกมาจากกลุ่มข้อมูล เพื่อให้รู้ว่าอุปกรณ์หรือเครื่องจักร ณ ขณะนั้นมีสถานะเป็นอย่างไร
Hexadecimal (ฐาน 16)
อีกเรื่องที่ต้องรู้
เพราะ protocol ชอบใช้
เลขฐาน 16
0 1 2 3 4 5 6 7 8 9 A B C D E F
A=10
B=11
F=15
เช่น
0x41
แปลว่า
65 decimal
และคือ
01000001
ASCII ตัว A
ในงาน serial จะเจอบ่อยมาก

ความสัมพันธ์
Decimal
65
Binary
01000001
Hex
41
คือข้อมูลเดียวกันคนละรูปแบบ
แบบฝึกหัด (ลองตอบเองก่อน)
00000101
เท่ากับเลขอะไร?
00001111
เท่ากับเท่าไร?
Decimal 10
เขียนเป็น binary ได้ไหม?
Hex
0x0A
คือ decimal อะไร?
ตอบ 4 ข้อนี้ก่อน แล้วจะต่อบท 2 เรื่อง Serial Communication ที่เริ่มเข้าโลก RS232/RS485 จริง ๆ
บท 2: Serial Communication — อุปกรณ์คุยกันยังไง
ก่อนอื่นเข้าใจภาพนี้ก่อน
PLC ไม่ได้ส่งคำว่า
สปีด = 1450
แต่มันส่งเป็น “ชุดบิต”
เช่น
0101010101100010
แล้วอีกฝั่งแปลความหมาย
Serial communication คือ “การส่งข้อมูลทีละบิตเรียงกัน”
แทนที่จะส่งพร้อมกันหลายเส้น
1. Parallel vs Serial
Parallel
ส่งหลายบิตพร้อมกัน
เช่น 8 บิต
1 0 1 0 1 1 0 0
ใช้สาย 8 เส้น
ภาพแบบง่าย
bit0 ──────────
bit1 ──────────
bit2 ──────────
bit3 ──────────
bit4 ──────────
bit5 ──────────
bit6 ──────────
bit7 ──────────
ข้อเสีย:
- สายเยอะ
- ไกลไม่ดี
- timing เพี้ยนง่าย
- noise ง่าย
จึงไม่เหมาะโรงงาน
Serial (สิ่งที่ใช้จริง)
ส่งทีละบิต
1 → 0 → 1 → 0 → 1 → 1
ใช้สายไม่กี่เส้น
เช่น
TX
RX
GND
หรือ
A
B
สำหรับ RS485
นี่คือเหตุผลที่โรงงานใช้ serial แทบหมด
2. Serial ทำงานยังไง
สมมติจะส่งตัว A
A = ASCII 65
Binary:
01000001
แต่ส่งจริงไม่ใช่แค่ 8 บิตดื้อ ๆ
มันมีการ “แพ็กข้อมูล”
รูปแบบทั่วไป:
Start + Data + Stop
เช่น
0 01000001 1
อธิบาย:
0 = Start bit
01000001 = Data
1 = Stop bit
อีกฝั่งจึงรู้ว่า
อ๋อ เริ่มส่งแล้ว
จบแล้ว
3. Baud rate คืออะไร
สำคัญมาก
Baud rate = ความเร็วส่งข้อมูล
เช่น
9600
19200
38400
115200
ถ้า 9600
หมายถึงประมาณ
9600 bit/s
ตัวอย่างจริง
PLC:
9600
เครื่องชั่ง:
19200
ผล?
ข้อมูลมั่ว
เช่น
แทนที่จะได้
123.45
ได้
§□×A¥
หรือ timeout
เพราะฟังกันคนละจังหวะ
เหมือนคนหนึ่งพูดเร็ว x2
4. สิ่งที่ต้องตรงกัน
เวลาคุย serial
ต้องตรงกัน 4 เรื่อง
(1) Baud rate
เช่น
9600
(2) Data bits
มักเป็น
8
หมายถึงข้อมูล 8 บิต
(3) Parity
ใช้ตรวจ error เล็กน้อย
มี
N = None
E = Even
O = Odd
ส่วนใหญ่:
N
(4) Stop bit
มักเป็น
1
ดังนั้นจึงเห็นรูปแบบนี้
9600,8,N,1
อ่านว่า
9600 baud
8 data bits
No parity
1 stop bit
ถ้าไม่ตรง = คุยไม่ได้
5. TX RX คืออะไร
TX = transmit
ส่งข้อมูล
RX = receive
รับข้อมูล
เช่น
PLC → เครื่องชั่ง
ต้องไขว้
PLC TX → Device RX
PLC RX ← Device TX
หลายคนต่อผิดตรงนี้
แล้วงงว่า
ทำไมไม่ติด
6. Half duplex / Full duplex
Full duplex
คุยพร้อมกันได้
เหมือนโทรศัพท์
พูดพร้อมกันได้
เช่น RS232
Half duplex
พูดทีละคน
เหมือนวิทยุสื่อสาร
พูดจบ เปลี่ยน
เช่น RS485
Master ถามก่อน
Slave ค่อยตอบ
7. Timing สำคัญยังไง
Serial ไม่มีคนมาคอยบอกว่า
เริ่มตอนนี้นะ
อีกฝั่งจึงอาศัย baud rate เป็นนาฬิกา
เช่น
9600 baud
ทุก bit ต้องใช้เวลาประมาณเท่ากัน
ถ้า clock เพี้ยนมาก
ข้อมูลแตก
8. ภาพจริงในงาน PLC
ตัวอย่าง
PLC อ่านเครื่องชั่ง
ลำดับคือ
PLC ส่งคำสั่ง
"R"
แปลว่า
Request weight
เครื่องชั่งตอบ
"12.35kg"
ทุกอย่างส่งทีละ bit หมด
9. ทำไม serial ชอบมี timeout
เพราะ communication เป็นลำดับ
ตัวอย่าง
PLC ส่ง:
อ่านค่า
รอ 100 ms
ไม่มีตอบ
timeout
อาจเกิดจาก
- baud rate ผิด
- TX RX ผิด
- address ผิด
- protocol ผิด
- สายขาด
- parity ไม่ตรง
สิ่งที่ช่าง PLC ต้องจำ
เวลาคุยไม่ได้ อย่ามั่ว
เช็คตามนี้
1 สายถูกไหม
2 TX/RX ถูกไหม
3 baud rate ตรงไหม
4 parity ตรงไหม
5 stop bit ตรงไหม
6 protocol ตรงไหม
7 timeout เท่าไร
บทต่อไปจะเริ่มเข้า “ของจริงในโรงงาน”:
RS232 vs RS485 แบบลึก + วิธีต่อสาย + termination resistor + noise + ระยะสาย + multi-drop + debug หน้างาน
ตรงนี้สำคัญมาก เพราะคนทำ PLC พลาดกันบ่อยสุด และเกี่ยวกับงาน Modbus โดยตรง
บท 3: RS232 vs RS485 — ของจริงในโรงงาน
คนจำนวนมากสับสนตรงนี้:
“Modbus RTU ใช้ RS485 ใช่ไหม?”
ตอบ: ไม่เสมอ
ต้องแยกก่อนว่า
- RS232 / RS485 = วิธีส่งสัญญาณไฟฟ้า (physical layer)
- Modbus RTU = ภาษา (protocol)
เหมือน
ถนน = RS485
ภาษา = Modbus
ใช้ถนนเดียวกัน แต่พูดได้หลายภาษา
1. RS232 คืออะไร
RS232 เป็น serial communication แบบเก่า แต่ยังใช้เยอะมาก
ใช้กับ:
- PLC ↔ เครื่องชั่ง
- PLC ↔ barcode scanner
- PLC ↔ printer
- PLC ↔ อุปกรณ์เก่า
จุดเด่น:
- ง่าย
- point-to-point
- ตั้งค่าง่าย
ข้อเสีย:
- ระยะสั้น
- noise ไม่ทน
- ต่อหลายเครื่องไม่ได้
โครงสร้าง
คุยกัน 1 ต่อ 1
PLC ←→ Device
สายหลัก
ทั่วไปใช้
TX
RX
GND
ความหมาย:
TX = ส่ง
RX = รับ
GND = reference
ต่อยังไง
ต้องไขว้
PLC TX → Device RX
PLC RX ← Device TX
GND ↔ GND
จำง่าย:
ส่งไปเข้ารับ
ปัญหาคลาสสิก
ต่อแบบนี้
TX → TX
RX → RX
แล้วไม่ติด
เพราะต่างคนต่างพูด ไม่มีคนฟัง
RS232 เหมาะกับอะไร
เช่น
PLC อ่านเครื่องชั่งข้างตู้
สาย 2–5 เมตร
โอเคมาก
แต่ถ้า 50 เมตรในโรงงาน?
เริ่มเสี่ยง
2. RS485 คืออะไร
RS485 คือพระเอกโรงงาน
เพราะ:
- ไกล
- noise ทน
- หลายเครื่องต่อได้
- เสถียร
จึงใช้กับ
- inverter
- meter
- PLC remote IO
- sensor network
- Modbus RTU
ต่างจาก RS232 ยังไง
RS232 ใช้แรงดันเทียบ GND
RS485 ใช้ “ความต่างแรงดัน”
เรียกว่า differential signaling
มีสาย
A
B
ไม่ใช่ TX/RX
แนวคิด differential
RS485 ไม่สนค่า absolute voltage
มันดูส่วนต่าง
เช่น
กรณี 1
A = 5V
B = 1V
ส่วนต่าง:
+4V
= logic หนึ่งค่า
กรณี 2
noise มา
A = 7V
B = 3V
ส่วนต่างยัง
+4V
อ่านได้เหมือนเดิม
นี่คือเหตุผลว่า
RS485 ทน noise
มากกว่า RS232 มาก
topology (รูปแบบการจัดวางโครงสร้างหรือการเชื่อมต่อ)
RS232
PLC ←→ Device
RS485
แบบ bus
PLC ─── Drive1 ─── Drive2 ─── Meter
ต่อพ่วงได้หลายตัว
เรียก multi-drop
Address สำคัญมาก
เพราะหลายเครื่องอยู่เส้นเดียวกัน
ต้องมีเลขบ้าน
เช่น
Drive1 = 1
Drive2 = 2
Meter = 3
PLC ถาม
device 2
เครื่องอื่นเงียบ
3. A/B กลับขั้ว
ปัญหายอดฮิตอันดับหนึ่ง
บางยี่ห้อเขียน
A+
B-
บางยี่ห้อ
D+
D-
บางยี่ห้อกลับกันอีก
เอกสารไม่ตรงด้วย
ดังนั้น
ถ้าไม่ติด ลองสลับ A/B ก่อน
แต่ทำอย่างมีเหตุผล ไม่ใช่สุ่มทุกอย่าง
4. Termination resistor คืออะไร
เวลาเดินสายยาว
ปลายสายมี reflection
เหมือนเสียงสะท้อน
ทำให้ data เพี้ยน
จึงใส่ resistor
มักเป็น
120Ω
ที่ “ปลาย bus”
แบบนี้
120Ω
|
PLC ─── D1 ─── D2 ─── D3
|
120Ω
สำคัญ:
ใส่เฉพาะหัว–ท้าย bus
ไม่ใช่ทุกตัว
มือใหม่ชอบเปิดทุกตัว
แล้วงงว่าทำไม communication แปลก
5. Bias resistor
(หรือบางครั้งเรียกว่า Pull-up/Pull-down Resistor)
ใช้ดึง line ให้มีสถานะนิ่ง
ตอนไม่มีคนส่ง
ลด noise
บาง PLC มี built-in
บาง converter มี DIP switch
6. Star topology = ตัวปัญหา
ห้ามต่อแบบดาว ถ้าเลี่ยงได้
ไม่ดี
แบบผิด:
Drive1
|
PLC ------+------ Drive2
|
Meter
เพราะ reflection เยอะ
ควร daisy chain
แบบนี้
PLC ─── Drive1 ─── Drive2 ─── Meter
7. ระยะสาย
คร่าว ๆ
RS232
ใกล้
RS485
หลายร้อยเมตร
แต่ยิ่งเร็ว
ระยะยิ่งสั้น
เช่น
115200 baud
อาจไม่ควรลากยาวมาก
8. Debug หน้างานจริง
คุยไม่ได้
ไล่แบบนี้
1 Power device ติดไหม
2 A/B ถูกไหม
3 baud rate ตรงไหม
4 address ถูกไหม
5 parity ตรงไหม
6 protocol ถูกไหม
7 เปิด termination เกินไหม
8 star wiring หรือเปล่า
9 timeout สั้นไปไหม
10 มี noise จาก VFD ไหม
ตัวอย่างจริง
PLC อ่าน inverter ไม่ได้
เช็ค:
9600,N,8,1
แต่ inverter:
19200,E,8,1
จบเลย
ไม่มีทางติด
ตอนนี้คุณเริ่มเข้าใจ “สาย” แล้ว
บทต่อไปจะเป็น ASCII protocol ซึ่งสำคัญมากสำหรับเครื่องชั่ง, barcode, serial device เฉพาะทาง และเป็นสะพานก่อนเข้า Modbus RTU เพราะคุณเคยถามเรื่องแปลง Modbus TCP → ASCII มาก่อนด้วย