PLC LINGKONG LK3U/ZK3U มีพอร์ต RS485 มาให้ 2 พอร์ต และ RS232 อีก 1 พอร์ต ใช้งานพร้อมกันได้ทั้งหมด ทั้งสามพอร์ตเป็นพอร์ตโปรแกรมมิงเมื่อยังไม่ตั้งค่า แต่เปลี่ยนเป็น Modbus RTU หรือโปรโตคอลอิสระได้ผ่านรีจิสเตอร์ D8400 และ D8420 บทความนี้อธิบายการตั้งบิตทีละตำแหน่ง คำสั่ง ADPRW และตารางแปลงที่อยู่ที่จำเป็นเมื่อทำหน้าที่สเลฟ
ค่าเริ่มต้นและสิ่งที่เปลี่ยนได้
คู่มือระบุว่าพอร์ต RS485-1 และ RS485-2 มีค่าเริ่มต้นเป็นโปรโตคอลพอร์ตโปรแกรมมิงที่ 19200, 7 บิตข้อมูล, พาริตี้คู่ (Even), สต็อป 1 บิต เมื่ออยู่ในโหมดนี้จะเปลี่ยนได้เฉพาะบอดเรต ส่วนพารามิเตอร์อื่นเป็นค่าตายตัว หากต้องการใช้ Modbus RTU หรือโปรโตคอลอิสระ ต้องเขียนค่าลง D8400 (สำหรับพอร์ต 1) หรือ D8420 (สำหรับพอร์ต 2) และเมื่อ PLC หยุดรัน พอร์ตจะกลับเป็นโหมดโปรแกรมมิงอัตโนมัติ
ถอดรหัสบิตของ D8400 / D8420
| บิต | หน้าที่ | ค่า 0 | ค่า 1 |
|---|---|---|---|
| bit0 | ความยาวข้อมูล | 7 บิต | 8 บิต |
| bit1–bit2 | พาริตี้ | (0 0) ไม่มี · (0 1) คี่ | (1 1) คู่ |
| bit3 | สต็อปบิต | 1 บิต | 2 บิต |
| bit4–bit7 | บอดเรต | 0011=300 · 0100=600 · 0101=1200 · 0110=2400 · 0111=4800 | 1000=9600 · 1001=19200 · 1010=38400 · 1011=57600 · 1101=115200 |
| bit8–bit11 | ไม่ใช้ | ตั้งเป็น 0 | — |
| bit12–bit14 | เลือกโปรโตคอล | (000) พอร์ตโปรแกรมมิง FX · (001) RS แบบไม่มีโปรโตคอล · (010) RS2 แบบไม่มีโปรโตคอล | (011) MODBUS-RTU |
| bit15 | ไม่ใช้ | ตั้งเป็น 0 | — |
เมื่อเลือก MODBUS-RTU แล้ว ต้องระบุบทบาทของพอร์ตผ่าน D8401 (พอร์ต 1) หรือ D8421 (พอร์ต 2) — ค่า H0 คือทำหน้าที่มาสเตอร์ และค่า H10 (เท่ากับ K16) คือทำหน้าที่สเลฟ
คำสั่ง ADPRW และฟังก์ชันโค้ดที่รองรับ
| ประเภทคำสั่ง | ฟังก์ชันโค้ด | อุปกรณ์บิตที่ใช้ได้ | อุปกรณ์เวิร์ดที่ใช้ได้ |
|---|---|---|---|
| อ่านบิต | 1 (H1), 2 (H2) | X, Y, M, S, T, C, M พิเศษ | — |
| เขียนบิต | 5 (H5) | Y, M, S, T, C, M พิเศษ | — |
| อ่านรีจิสเตอร์ | 3 (H3), 4 (H4) | X, Y, M, S, T, C, M พิเศษ | D, T, C, D พิเศษ |
| เขียนรีจิสเตอร์ | 6 (H6) | Y, M, S, T, C, M พิเศษ | D, T, C, D พิเศษ |
| เขียนรีจิสเตอร์เป็นชุด | 16 (H10) | Y, M, S, T, C, M พิเศษ | D, T, C, D พิเศษ |
ข้อจำกัดที่ต้องจำ: ความยาวข้อมูลสูงสุดของ ADPRW คือ 520 คำ เกินกว่านั้นจะได้รหัส 6343 (พอร์ต 1) หรือ 6363 (พอร์ต 2) · การใช้รีจิสเตอร์อ่านบิต หนึ่งรีจิสเตอร์จะอ่านสถานะได้ 16 บิต และการใช้รีจิสเตอร์เขียนบิต หนึ่งรีจิสเตอร์จะกระทบสถานะ 16 บิตพร้อมกัน ต้องระวังไม่ให้เขียนทับบิตที่ไม่ตั้งใจ
เนื่องจากคำสั่ง ADPRW ใช้ร่วมกันทั้งสองพอร์ต จึงต้องสลับปลายทางด้วยรีเลย์ M8410 — เมื่อ OFF คำสั่งจะทำงานกับ RS485-1 และเมื่อ ON จะทำงานกับ RS485-2
รีจิสเตอร์ควบคุมและตรวจสอบฝั่งมาสเตอร์
| พอร์ต 1 | พอร์ต 2 | หน้าที่ | ช่วงค่า |
|---|---|---|---|
| D8409 | D8429 | เวลารอสเลฟตอบกลับ | 0–32767 (1 = 10 ms) · 0 = 3 วินาที |
| D8410 | D8431 | หน่วงเวลาก่อนตอบกลับ | 0–16382 (1 = 1 ms) ค่าเริ่มต้น 10 ms |
| D8412 | D8432 | จำนวนครั้งที่ลองใหม่ | 0–20 ครั้ง (เกิน 20 ถูกตัดเป็น 20) |
| D8414 | D8434 | หมายเลขสเตชันเมื่อเป็นสเลฟ | 1–247 |
| D8402 | D8422 | รหัสข้อผิดพลาดล่าสุด | อ่านอย่างเดียว |
| D8403 | D8423 | รายละเอียดข้อผิดพลาดล่าสุด | อ่านอย่างเดียว |
| D8404 | D8424 | สเต็ปโปรแกรมที่เกิดข้อผิดพลาด | อ่านอย่างเดียว |
| D8408 | D8428 | จำนวนครั้งที่ลองใหม่ในปัจจุบัน | อ่านอย่างเดียว |
| D8419 | D8439 | โหมดที่พอร์ตทำงานอยู่ | 0=พอร์ตโปรแกรม · 4=RS · 5=RS2 · 19=มาสเตอร์ · 29=สเลฟ |
รีเลย์ที่ควรมอนิเตอร์: M8401/M8421 คือกำลังสื่อสาร, M8402/M8422 คือเกิดข้อผิดพลาด, M8408/M8428 คือกำลังลองใหม่, M8409/M8429 คือหมดเวลารอ และ M8029 คือคำสั่ง ADPRW ทำงานเสร็จแล้ว
ตารางแปลงที่อยู่เมื่อ PLC ทำหน้าที่สเลฟ
เมื่อให้ SCADA หรือ HMI มาอ่านข้อมูล ต้องแปลงที่อยู่อุปกรณ์ของ PLC เป็นที่อยู่ Modbus ตามตารางนี้
| ที่อยู่ Modbus (บิต) | อุปกรณ์ PLC | อ่าน/เขียน |
|---|---|---|
| 0x0000–0x1DFF | M0–M7679 | อ่าน/เขียน |
| 0x1E00–0x1FFF | M8000–M8511 | อ่าน/เขียน |
| 0x2000–0x2FFF | S0–S4095 | อ่าน/เขียน |
| 0x3000–0x31FF | TS0–TS511 (หน้าสัมผัสตัวตั้งเวลา) | อ่าน/เขียน |
| 0x3200–0x32FF | CS0–CS255 (หน้าสัมผัสตัวนับ) | อ่าน/เขียน |
| 0x3300–0x33FF | Y0–Y377 | อ่าน/เขียน |
| 0x3400–0x34FF | X0–X377 | อ่านอย่างเดียว |
| ที่อยู่ Modbus (เวิร์ด) | อุปกรณ์ PLC | อ่าน/เขียน |
|---|---|---|
| 0x0000–0x1F3F | D0–D7999 | อ่าน/เขียน |
| 0x1F40–0x213F | D8000–D8511 | อ่าน/เขียน |
| 0xA140–0xA33F | TN0–TN511 (ค่าตัวตั้งเวลา) | อ่าน/เขียน |
| 0xA340–0xA407 | CN0–CN199 (ค่าตัวนับ 16 บิต) | อ่าน/เขียน |
| 0xA408–0xA477 | CN200–CN255 (ค่าตัวนับ 32 บิต) | อ่าน/เขียน |
| 0xA478–0xA657 | M0–M7679 (อ่านเป็นเวิร์ด) | อ่าน/เขียน |
| 0xA7A8–0xA7B7 | Y0–Y377 (อ่านเป็นเวิร์ด) | อ่าน/เขียน |
| 0xA7B8–0xA7C7 | X0–X377 (อ่านเป็นเวิร์ด) | อ่านอย่างเดียว |
เช็กลิสต์ก่อนเชื่อมต่อจริง
- ตั้งพารามิเตอร์อนุกรมให้ตรงกันทุกสถานี — บอดเรต ความยาวข้อมูล พาริตี้ และสต็อปบิต
- ตั้งหมายเลขสเตชันไม่ให้ซ้ำ ในช่วง 1–247
- ปิดปลายสาย RS485 ด้วยตัวต้านทาน 120 Ω ทั้งสองปลายของบัส
- ถ้าสายยาวเกิน 500 เมตร ให้ลดบอดเรตลงมาที่ 9600–19200
- ตั้ง D8409 ให้เผื่อเวลาตอบกลับที่ช้าที่สุดของอุปกรณ์ในบัส แล้วตั้ง D8412 เป็น 2–3 ครั้ง
- อ่าน D8419 เพื่อยืนยันว่าพอร์ตอยู่ในโหมดที่ต้องการจริง (19 = มาสเตอร์, 29 = สเลฟ)
ต้องการตัวแปลงสัญญาณหรือเกตเวย์เพื่อเชื่อม RS485 เข้าเครือข่ายอีเทอร์เน็ต ดูอุปกรณ์ที่มีในสต๊อกได้ที่หมวด อุปกรณ์เครือข่าย
สรุป
การตั้ง Modbus RTU บน LK3U/ZK3U ไม่ได้ใช้หน้าจอตั้งค่า แต่ใช้การเขียนบิตลงรีจิสเตอร์ ซึ่งกลับดีตรงที่เปลี่ยนพารามิเตอร์จากโปรแกรมได้แบบไดนามิก จำหลักสามข้อคือ ตั้งโปรโตคอลที่บิต 12–14 ของ D8400, กำหนดบทบาทมาสเตอร์หรือสเลฟที่ D8401 และสลับพอร์ตของ ADPRW ด้วย M8410 เท่านี้ก็เชื่อมต่อกับอินเวอร์เตอร์ มิเตอร์ หรือ HMI ในระบบได้ครบ

แหล่งข้อมูลและมาตรฐานอ้างอิง
- Catalog: LK3UZK3U-en.pdf — Lingkong LK3U/ZK3U Series PLC User Manual (หน้า RS485 Communication Port Description, ADPRW Special M/D Register, MODBUS-RTU Slave Element Address)
- SCADA Protocols — How to Configure Modbus RTU Over RS-485: Step-by-Step — ขั้นตอนตั้งค่าพารามิเตอร์อนุกรมและหมายเลขสเตชัน
- PLC Programming — Modbus RTU Tutorial: RS-485 Wiring, Frames & CRC — โครงสร้างเฟรม RTU และการปิดปลายสาย
- Industrial Monitor Direct — Modbus RTU Parity Settings: Even vs No Parity Configuration Guide — เหตุผลที่พาริตี้ไม่ตรงทำให้สื่อสารล้มเหลวแบบเงียบ ๆ

สนใจสั่งซื้อ PLC LINGKONG LK3U / ZK3U?
VR Automation จำหน่ายและให้บริการติดตั้ง พร้อมทีมช่างผู้เชี่ยวชาญ
โทรสอบถามราคา: 083-848-8314
อีเมล: [email protected]
Line: @vrautomation
สต๊อกกรุณาสอบถาม | รับประกันสินค้า | บริการหลังการขาย | ออกใบกำกับภาษีได้

