Upload
others
View
90
Download
3
Embed Size (px)
Citation preview
คูมื่อการใช้งาน Modbus RTU Relay8 / In8
ETT CO.,LTD. หน้า 1
Modbus RTU Relay8 / In8
Modbus RTU Relay8 / In8 เป็นชดุบอร์ด Relay ขนาด 2ชอ่ง และ Input opto-Isolate 8ชอ่ง
สําหรับใช้สั<งงานควบคมุ และอา่นคา่สถานะ Input ผา่นทางพอร์ตสื<อสารอนกุรมโดยใช้การเชื<อมตอ่สื<อสาร
ผา่นสญัญาณ RS485 แบบ Half Duplex ด้วย Protocol การสื<อสารแบบ Modbus RTU รองรับการ
เชื<อมตอ่สื<อสารระยะไกลแบบ Multi-drop ตามมาตรฐาน RS485 สามารถเชื<อมตอ่อปุกรณ์ร่วมกนัในระบบ
บสัเดียวกนัได้มากถึง UV อปุกรณ์ โดยสามารถกําหนดคา่ Slave Address ได้อิสระจากคําสั<ง มีคําสั<ง
รองรับการทํางานของ Relay แบบ PLC ในลกัษณะ ON/OFF ผา่นฟังก์ชั<น Write Single Coil (0x05)ใน
การควบคมุรีเลย์ทีละชอ่ง หรือ Write Multiple Coils(0x0F) ในการควบคมุรีเลย์หลายชอ่ง และคําสั<งอา่น
คา่สถานะของ Input ผา่นฟังก์ชั<น Read Discrete Inputs(0x02)
คูมื่อการใช้งาน Modbus RTU Relay8 / In8
ETT CO.,LTD. หน้า 2
คุณสมบัต ิ
ใช้กบัแหลง่จา่ยไฟ 12VDC
สื<อสารด้วย RS485 Half Duplex กําหนด Slave Device ID ได้อิสระจากคําสั<ง
8 Output Relay 2 Contact (NO / COMMON / NC)
o AC Contact Rating 10A / 220VAC
o DC Contact Rating 10A / 30VDC
8 Input Opto-Isolate 12V แบบ Sink Input
การเชื<อมตอ่สื<อสารผา่นสญัญาณแบบ RS485 Half Duplex ด้วย Modbus RTU Protocol
o สามารถกําหนดคา่ Slave Address ได้อิสระจาก คําสั<ง
o Baudrate 9600bps, Data 8Bit, None Parity, 1 Stop Bit
มีคําสั<งรองรับการทํางานแบบ
o Write Single Coil(0x05) สําหรับสั<ง ON/OFF
o Read Discrete Inputs(0x02) สําหรับสั<งอ่านสถานะ Input
ขนาด ความกว้าง 6.7ซม. x ความยาว mn.o ซม.
คูมื่อการใช้งาน Modbus RTU Relay8 / In8
ETT CO.,LTD. หน้า 3
ข้อกาํหนดในการสื(อสาร
ข้อกําหนดในการตดิตอ่สื<อสาร จะใช้การสื<อสารแบบอนกุรม ผา่นระบบสญัญาณ RSn2o แบบ
Half Duplex ด้วย Modbus RTU โดยในการสื<อสารจะมีข้อกําหนดของคา่พารามิเตอร์ของการสื<อสาร
อนกุรมเป็นดงันี p
Baudrate qrssBPS
Data 2Bit
None Parity
m Stop Bit
รูปแสดง ตาํแหน่ง จุดเชื(อมต่อ RS485
คูมื่อการใช้งาน Modbus RTU Relay8 / In8
ETT CO.,LTD. หน้า 4
การกาํหนดค่า Slave Deice Address
ตามปรกติดแล้วค่า Slave Device Address จะถกูกําหนดค่ามาตรฐานเป็น 0x01 ไว้
เมื<อต้องการใช้งานบอร์ดร่วมกนัมากกว่า mบอร์ดมีความจําเป็นต้องกําหนดค่า Slave Address
ใหม่ไม่ให้ซํ pากนั ให้โดยใช้คําสั<งของ Function16(0x10) ในการกําหนดและต้องกระทําใน
ขณะที<ทําการเชื<อมต่อบอร์ดไว้ในบสั RS485 เพียง mบอร์ดเท่านั pน ไม่เช่นนั pนแล้วบอร์ดทกุบอร์ด
จะถกูกําหนดให้มีค่าเหมือนกนัทกุบอร์ด
เราสามารถใช้ Function 0x03(Read Holding Register) ในการอ่านค่า Slave Device
Address ของบอร์ดได้ดงัตวัอย่าง
ตวัอย่างการสั<งอ่านค่า Slave Device Address
Tx : 00 03 00 00 00 01 85 DB // Read Holding Register จาก Address : 0x0000 จํานวน 1ตําแหน่ง
Rx : 00 03 02 00 01 44 44 // คา่ Slave Device Address = 01
ตวัอย่างการสั<งเปลี<ยนค่าตําแหน่ง Slave Device Address จาก 0x01 เป็น 0x09
Tx : 01 10 00 00 00 01 02 00 09 66 56
01 = Slave 01 10 = Function 16(0x10) : Write Multiple Registers 00 00 = Start Address Hi:Lo(0x0000) = เริ:มจากตําแหนง 0x0000 00 01 = จํานวนตําแหน่งที:เขยีน Hi:Lo(0x0001) = 1ตําแหน่ง 02 = Data Byte Count = 2ไบต ์ 00 09 = Data 2 Byte(00 09) ซึ:งคอืคา่ กําหนดตําแหน่ง = 0x0009 66 56 = CRC(0x66, 0x56)
Rx : 01 10 00 00 00 01 01 C9 01 = Slave 01 10 = Function16(0x10) : Write Multiple Registers 00 00 = Start Address Hi:Lo(0x0000) = เริ:มจากตําแหนง 0x0000 00 01 = จํานวนตําแหน่งที:เขยีน Hi:Lo(0x0001) = 1ตําแหน่ง 01 C9 = CRC(0x01, 0xC9)
คูมื่อการใช้งาน Modbus RTU Relay8 / In8
ETT CO.,LTD. หน้า 5
การควบคุม RELAY
การควบคมุการทํางานของ Relay ในบอร์ด Modbus RTU Relay8 / In8 จะใช้คําสั<ง
ของ ฟังก์ชั<น Write Single Coil (0x05) และ Write Multiple Coils(0x0F) ในการสั<งงาน โดย
Function 0x05 จะใช้สั<งงานรีเลย์แบบทีละช่อง ส่วน Function 0x0F จะใช้สั<งงานรีเลย์พร้อม
กนัทั pง 8ช่อง
Function 0x05(Write Single Coils) เฟรมคําสั<งจะประกอบไปด้วยข้อมลูจํานวน 2ไบท์
จะใช้ตําแหนง่ Start Address ของเฟรมคําสั<งเป็นตวักําหนดหมายเลขรีเลย์ 1-8 โดย Address 0x0000 ใช้
อ้างถึงรีเลย์m และ Address 0x0007 ใช้อ้างถึงรีเลย์8 ซึ<งมีรูปแบบดงันี p
Byte No 1 2 3 4 5 6 7 8 Modbus Slave ID Function Address Data CRC Check Function Device ID Function Relay(0..3) Command ON/OFF CRC Check ON RELAY1 00-FF 05 00 00 01/FF 00 2 Byte CRC ON RELAY2 00-FF 05 00 01 01/FF 00 2 Byte CRC ON RELAY3 00-FF 05 00 02 01/FF 00 2 Byte CRC ON RELAY4 00-FF 05 00 03 01/FF 00 2 Byte CRC ON RELAY5 00-FF 05 00 04 01/FF 00 2 Byte CRC ON RELAY6 00-FF 05 00 05 01/FF 00 2 Byte CRC ON RELAY7 00-FF 05 00 06 01/FF 00 2 Byte CRC ON RELAY8 00-FF 05 00 07 01/FF 00 2 Byte CRC OFF RELAY1 00-FF 05 00 00 00 00 2 Byte CRC OFF RELAY2 00-FF 05 00 01 00 00 2 Byte CRC OFF RELAY3 00-FF 05 00 02 00 00 2 Byte CRC OFF RELAY4 00-FF 05 00 03 00 00 2 Byte CRC OFF RELAY5 00-FF 05 00 04 00 00 2 Byte CRC OFF RELAY6 00-FF 05 00 05 00 00 2 Byte CRC OFF RELAY7 00-FF 05 00 06 00 00 2 Byte CRC OFF RELAY8 00-FF 05 00 07 00 00 2 Byte CRC
ตารางแสดงคําสั:ง Write Single Coils
Function 0x0F(Write Multiple Coils) จะกําหนด Start Address:0x0000 และ Byte Count เป็น1 Byte คงที:แลว้ใช ้Data 8บติในการกําหนดคา่ ON/OFF Relay โดยบติขอ้มลูที:มีคา่เป็น 1 = ON และ 0 = OFF
Byte No 1 2 3 4 5 6 7 8 9 10 Modbus Slave Function Address Relay Count Byte Data 2 Byte CRC Relay
ON/OFF Slave 00..FF
0x0F 0x00,0x00 0x00,0x08 0x01 0x00..FF 0:OFF,1:ON
2 Byte CRC
ตารางแสดงคําสั:ง Write Multi Coils
คูมื่อการใช้งาน Modbus RTU Relay8 / In8
ETT CO.,LTD. หน้า 6
ตวัอยา่งการสั:งงาน Relay ครั bงละ 1ชอ่ง ของ Device ID = 01
ON RELAY1 Tx : 01 05 00 00 FF 00 8C 3A Rx : 01 05 00 00 FF 00 8C 3A
ON RELAY2 Tx : 01 05 00 01 FF 00 DD FA Rx : 01 05 00 01 FF 00 DD FA
ON RELAY3 Tx : 01 05 00 02 FF 00 2D FA Rx : 01 05 00 02 FF 00 2D FA
ON RELAY4 Tx : 01 05 00 03 FF 00 7C 3A Rx : 01 05 00 03 FF 00 7C 3A
ON RELAY5 Tx : 01 05 00 04 FF 00 CD FB Rx : 01 05 00 04 FF 00 CD FB
ON RELAY6 Tx : 01 05 00 05 FF 00 9C 3B Rx : 01 05 00 05 FF 00 9C 3B
ON RELAY7 Tx : 01 05 00 06 FF 00 6C 3B Rx : 01 05 00 06 FF 00 6C 3B
ON RELAY8 Tx : 01 05 00 07 FF 00 3D FB Rx : 01 05 00 07 FF 00 3D FB
OFF RELAY1 Tx : 01 05 00 00 00 00 CD CA Rx : 01 05 00 00 00 00 CD CA
OFF RELAY2 Tx : 01 05 00 01 00 00 9C 0A Rx : 01 05 00 01 00 00 9C 0A
OFF RELAY3 Tx : 01 05 00 02 00 00 6C 0A Rx : 01 05 00 02 00 00 6C 0A
OFF RELAY4 Tx : 01 05 00 03 00 00 3D CA Rx : 01 05 00 03 00 00 3D CA
OFF RELAY5 Tx : 01 05 00 04 00 00 8C 0B Rx : 01 05 00 04 00 00 8C 0B
OFF RELAY6 Tx : 01 05 00 05 00 00 DD CB Rx : 01 05 00 05 00 00 DD CB
OFF RELAY7 Tx : 01 05 00 06 00 00 2D CB Rx : 01 05 00 06 00 00 2D CB
OFF RELAY8 Tx : 01 05 00 07 00 00 7C 0B Rx : 01 05 00 07 00 00 7C 0B
คูมื่อการใช้งาน Modbus RTU Relay8 / In8
ETT CO.,LTD. หน้า 7
ตัวอยา่งการสั:งงาน Relay แบบหลายชอ่ง ของ Device ID = 01
Tx : 01 0F 00 00 00 08 01 00 FE 95
01 = Slave 01 0F = Function15(0x0F): Write Multiple Coils 00 00 = Start Address Hi:Lo = เริ:มจากตําแหน่ง 0x0000 00 08 = จํานวนตําแหน่งที:เขยีน Hi:Lo(0x0008) = 8ตําแหน่ง(รเีลย ์1-8) 01 = Data Byte Count = 1ไบต ์ 00 = Data (00000000) = OFF Relay 1-8
Rx : 01 0F 00 00 00 08 54 0D
Tx : 01 0F 00 00 00 08 01 FF BE D5
01 = Slave 01 0F = Function15(0x0F): Write Multiple Coils 00 00 = Start Address Hi:Lo = เริ:มจากตําแหน่ง 0x0000 00 08 = จํานวนตําแหน่งที:เขยีน Hi:Lo(0x0008) = 8ตําแหน่ง(รเีลย ์1-8) 01 = Data Byte Count = 1ไบต ์ FF = Data (11111111) = ON Relay 1-8
Rx : 01 0F 00 00 00 08 54 0D
Tx : 01 0F 00 00 00 08 01 81 3E F5
01 = Slave 01 0F = Function15(0x0F): Write Multiple Coils 00 00 = Start Address Hi:Lo = เริ:มจากตําแหน่ง 0x0000 00 08 = จํานวนตําแหน่งที:เขยีน Hi:Lo(0x0008) = 8ตําแหน่ง(รเีลย ์1-8) 01 = Data Byte Count = 1ไบต ์ 81 = Data (10000001) = ON Relay 1 และ 8, OFF Relay2-7
Rx : 01 0F 00 00 00 08 54 0D
Tx : 01 0F 00 00 00 08 01 01 3F 55
01 = Slave 01 0F = Function15(0x0F): Write Multiple Coils 00 00 = Start Address Hi:Lo = เริ:มจากตําแหน่ง 0x0000 00 08 = จํานวนตําแหน่งที:เขยีน Hi:Lo(0x0008) = 8ตําแหน่ง(รเีลย ์1-8) 01 = Data Byte Count = 1ไบต ์ 01 = Data (00000001) = OFF Relay2-8, ON Relay 1
Rx : 01 0F 00 00 00 08 54 0D
คูมื่อการใช้งาน Modbus RTU Relay8 / In8
ETT CO.,LTD. หน้า 8
การสั( งอ่านค่า สถานะ ON/OFF ของรีเลย์
ในการตรวจสอบสถานะของการ ON/OFF ของรีเลย์จะใช้ Function 0x01(Read Coils)
ในการตรวจสอบ ซึ<งบอร์ดจะตอบรับคําสั<งกลบัมาด้วยข้อมลูขนาด mไบต์ ซึ<งเป็นค่าสถานะ
ของรีเลย์ทั pง 2ช่อง โดยใช้บิต D0 แทนค่าของ รีเลย์m และ D1 แทนค่าของรีเลย์2 ไล่เรียงไป
จนถึง D7 แทนค่าของ Relay8 ตามลําดบั ซึ<งค่าบิตข้อมลูที<มีค่า 0 หมายถึง Relay OFF และ
ค่าบิตข้อมลูที<เป็น 1 หมายถึง Relay ON ดงัตวัอย่าง
ตัวอย่างการสั( งอ่านสถานะ ON/OFF ของ Relay
Tx : 01 01 00 00 00 08 3D CC
01 = Slave 01 01 = Function 0x01(Read Coils) 00 00 = Start Address Read Hi:Lo = 0x0000(เริ:มจากตําแหน่ง 0x0000) 00 08 = จํานวนที:ตอ้งการอา่น Hi:Lo = 0x0008(8 ตําแหน่ง) 3D CC = CRC(0x3D,0xCC)
Rx : 01 01 01 01 90 48
01 = Slave 01 01 = Function 0x01(Read Coils) 01 = Data Byte Count = 1 Byte 01 = Data Relay Status(00000001) = Relay2-8:OFF, Relay1:ON 90 48 = CRC(0x90,0x48)
Tx : 01 01 00 00 00 08 3D CC
01 = Slave 01 01 = Function 0x01(Read Coils) 00 00 = Start Address Read Hi:Lo = 0x0000(เริ:มจากตําแหน่ง 0x0000) 00 08 = จํานวนที:ตอ้งการอา่น Hi:Lo = 0x0008(8 ตําแหน่ง) 3D CC = CRC(0x3D,0xCC)
Rx : 01 01 01 0F 11 8C
01 = Slave 01 01 = Function 0x01(Read Coils) 01 = Data Byte Count = 1 Byte 0F = Data Relay Status(00001111) = Relay5-8:OFF, Relay1-4:ON 11 8C = CRC(0x11,0x8C)
คูมื่อการใช้งาน Modbus RTU Relay8 / In8
ETT CO.,LTD. หน้า 9
การต่อใช้งานสัญญาณ Input Opto-Isolate
วงจร Input Opto-Isolate ของบอร์ด Modbus RTU Relay8/In8 เป็นแบบ Sink Input
โดยการต่อสญัญาณที<ขั pวต่อ IN1-IN8 ผ่านหน้าสมัผสัสวิตช์ หน้าสมัผสัรีเลย์ หรือเซนเซอร์ต่างๆ
แล้วลง GND ที<ขั pวต่อ P(-) ของบอร์ดดงัตวัอย่าง
รูปแสดง ลักษณะการต่อใช้งาน Input Opto-Isolate
คูมื่อการใช้งาน Modbus RTU Relay8 / In8
ETT CO.,LTD. หน้า 10
ในกรณีที<ต้องการใช้งานวงจร Input แบบ Isolate โดยการแยกแหล่งจ่ายไฟเลี pยงบอร์ด
และไฟเลี pยง Input ออกจากกนั ให้ทําการถอด Jumper เลือกสญัญาณ P(+) และ P(-) ออก
แล้ว ต่อแรงดนั +12V กบั GND จากภายนอกเข้าที<ขั pวต่อ P(+) และ P(-) ดงัรูป
ในกรณีที<ต้องการใช้แหล่งจ่ายไฟของบอร์ดและวงจร Input ร่วมกนั ให้ต่อ Jumper
เลือก P(+) กบั 12V และต่อ P(-) กบั GND โดยไม่ต้องต่อแรงดนั 12V External จากภายนอก
ให้กบับอร์ดทางขั pวต่อ P(+) และ P(-) ดงัรูป
คูมื่อการใช้งาน Modbus RTU Relay8 / In8
ETT CO.,LTD. หน้า 11
การสั( งอ่านค่า Input(Read Discrete Inputs)
ในการอ่านค่า Input ทั pง 8ช่อง นั pนจะใช้ฟังก์ชั<น 0x02(Read Discrete Inputs) ในการ
อ่านค่า โดยสญัญาณ Input ทั pง 2ช่อง สามารถรับสญัญาณภายนอกขนาด 12V โดยใช้การต่อ
Input ผ่านหน้าสมัผสัสวิตช์ หรือหน้าสมัผสัรีเลย์มายงั (P-) สามารถใช้งาน Input ได้ทั pงแบบ
Opto-Isolate โดยแยกแหล่งจ่ายไฟ Input(P+,P-) จากภายนอกแยกต่างหากจากบอร์ด หรือใช้
แบบ 12V Input GND ร่วมกนักบัแหล่งจ่าย 12V ของบอร์ด ถ้าจะต่อ Input ที<มีระดบั
สญัญาณสงูกว่า mVV ต้องทําการต่อตวัต้านทานจํากดักระแสให้กบัแรงดนัในส่วนที<สงูกว่า mVV
เพิ<มเติมด้วย สําหรับการสั<งอ่านค่า Input ทําได้ ดงัตวัอย่าง
ตัวอย่างการสั( งอ่านค่า Input จาก Device ID = 01
TX : 01 02 00 00 00 08 79 CC
01 Slave-01 02 Function Code : Read Discrete Input 00 00 : Start Address Hi:Lo = 0x0000 00 08 : 8 Address Read 79 CC : CRC(0x79, 0xCC)
RX : 01 02 01 83 E0 29
01 : Slave 01 02 : Function Code : Read Discrete Input 01 : 1 Byte Result 83 : Result 0x83(D7-D6-D5-D4-D3-D2-D1-D0 : 10000011)
o 0x83(10000011) : Input 8,2,1:ON, Input3-7: OFF E0 29 : CRC(0xE0, 0x29)