X

” Đọc ” Modbus TCP-IP với Modbus Poll Cho Người Mới Bắt Đầu

Trong bài viết này mình sẽ hướng dẫn cách kết nối và cách đọc modbus TCP-IP một cách chi tiết cho các anh em nào đang tìm hiểu về chuẩn truyền thông modbus RTU hoặc modbus TCP-IP. Lúc đầu mình tìm hiểu về cách giao tiếp của các chuẩn truyền thông khá là vất cả và cũng không có ai hướng dẫn cả. Tất nhiên các anh em chuyên lập trình PLC sẽ rất rành về các chuẩn truyền thông này nhưng mấy anh rất bận cũng như hiếm khi chia sẻ cho cộng đồng.

Hướng dẫn kết nối Modbus TCP-IP với Modbus poll thông qua R-KEY-LT
Hướng dẫn kết nối Modbus TCP-IP với Modbus poll thông qua R-KEY-LT

Bài viết này mình sẽ chia sẻ các kiến thức sau :

  • Cách kết nối Modbus RTU với Modbus TCP-IP
  • Cách đọc Modbus TCP-IP thông qua modbus poll
  • Cách đọc thanh ghi địa chỉ của modbus RTU – Modbus TCP-IP
  • Hướng dẫn cách cài đặt Modbus RTU và TCP-IP

Tôi nghĩ rằng sẽ có bạn nghĩ tại sao phải dùng chuẩn modbus RTU hay Modbus TCP-IP để đọc về PLC. Để hiểu rõ hơn về chuẩn truyền thông modbus RTU- Modbus TCP-IP chúng ta cần biết rằng tương lai modbus RTU đang dần dần thay thế cho các modul mở rộng của PLC bởi tính ưu việt về kết nối và giá thành canh tranh so với phương thức truyền thông cũ.

Kết nối modbus RTU với Modbus TCP-IP
Kết nối modbus RTU với Modbus TCP-IP

Hướng dẫn kết nối Modbus TCP-IP thông qua gateway R-KEY-LT

Tôi sẽ dùng gateway công nghiệp R-KEY-LT để đọc modbus RTU sau đó đọc các giá trị của tín hiệu đầu vào Digital, Analog từ modbus RTU. Trong bài chia sẻ này mình sẽ chỉ đọc tín hiệu analog từ Modbus RTU bởi Analog là tín hiệu tuyến tính và chúng ta dễ dàng nhận thấy hơn so với Digital.

Các thiết bị mà tôi sử dụng

  • R-Key-LT : gateway truyền thông Modbus RTU <=> Modbus TCP-IP
  • Z-8AI gồm 8 kênh đầu vào analog 4-20mA hoặc 0-10V : đọc tín hiệu 4-20mA từ cảm biến và giao tiếp modbus RTU với R-KEY-LT. Tôi sẽ dùng 2 cái Z-8AI cho 2 Slave khác nhau.
  • TEST-4 : phát dòng 4-20mA hoặc 0-10V. Tôi sẽ dùng chuẩn 4-20mA

Cách kết nối phầ cứng

Bước 1 : Đầu tiên tôi sẽ kết nối TEST-4 vào Z-8AI. Theo tài liệu của hãng thì tôi sẽ kết AI-1 của Z-8AI với TEST-4 vào chân 7 ( – )  và 8 ( + ). TEST-4 tôi sẽ chọn chế độ Current 4-20mA Active.

Bước 2 : Tôi sẽ kết nối Z-8AI với R-KEY-LT

  • Z-8AI sử dụng DIN RAIL Z-PC-DINAL2-17,5 để cấp nguồn và lấy tín hiệu ngõ ra Modbus RTU để giao tiếp với R-KEY-LT.
  • DIN RAIL Z-PC-DINAL2-17,5 có 6 terminal : 1 – GND, 2- B(-), 3-A(+), 4-SHD, 7-AC(+) nguồn 24V(+), 8-PE, 9 AC(-) nguồn 24V (-).
  • R-KEY-LT chỉ 7 Terminal để giao tiếp với RS232 và RS485. Trong đó : 1 A ( + ), 2 B ( – ), # GND, 4 RTS, 5 CTS, 7 Rx. Như vậy, để kết nối Modbus RTU RS 485 chúng ta sẽ dùng 2 Terminal 1 – A(+) và 2- B(-). Nguồn cấp 24Vdc vào 8-9.

Chúng ta sẽ kết nối 2- B(-) của DIN RAIL Z-PC-DINAL2-17,5 với 2 B ( – ) của R-KEY-LT và  3-A(+) của DIN RAIL Z-PC-DINAL2-17,5  với 1 A ( + )  của R-KEY-LT.

Nguồn cấp 24Vdc sẽ cấp vào 7-AC(+) nguồn 24V(+), 8-PE, 9 AC(-) của DIN RAIL Z-PC-DINAL2-17 8-9 của R-KEY-LT.

Cài đặt Z-8AI và R-KEY-LT

  • Chúng ta sẽ dùng phần mềm Easy setup của hãng Seneca để cài đặt Z-8AI với Z-8AI số 1 là Slave 1 với input đầu vào là 4-20mA. Và Z-8AI số 2 với slave là 9 và input đầu vào cũng là 4-20mA.
  • Cài đặt R-KEY-LT bằng phần mềm SDD của hãng Seneca. Tại SDD chúng ta sẽ thay đổi được địa chỉ của R-KEY-LT để giao tiếp với Modbus Poll.

Cách cài đặt Gateway R-KEY-LT

Chúng ta lưu ý rằng gateway R-KEY-LT là một gateway 2 chiều có thể chuyển đổi được Modbus RTU sang Modbus TCP-IP và ngược lại. Cách cài đặt như sau :

  1. Ngắt nguồn R-Key-LT
  2. SW2 bật hết lên ON
  3. Cấp nguồn lại cho R-Key-LT
  4. Đưa SW2 của R-Key-LT về OFF
  5. Sau đó các bạn sử dụng phần mềm seneca Discovery diviceđể tìm địa chỉ IP của cảm biến.
  6. Kết nối cổng RJ45 với Hud mạng Internet của bạn.
Dùng phần mềm SDD của Seneca để quét IP của R-key-lt
Dùng phần mềm SDD của Seneca để quét IP của R-key-lt

Phần mềm SDD sẽ quét ra địa chỉ IP mà Gateway đang kết nối. Sau đó, bạn bấm Stop để dừng việc tìm kiếm.

Chọn vào Assign IP để thay đổi địa chỉ của R-KEY-LT tùy ý. Lưu ý là chúng ta chỉ thay đổi cái ô nhớ cuối cùng và không được trùng với các địa chỉ IP khác trong mạng LAN.

Đổi địa chỉ IP của gateway R-key-lt
Đổi địa chỉ IP của gateway R-key-lt

Chúng ta thấy rằng ban đầu Gateway có IP là 192.168.1.2 chúng ta có thể tùy ý đổi IP của gateway thành một địa chỉ IP mới thành 192.168.1.197. Chúng ta lưu ý là chỉ có thể đổi địa chỉ IP cuối cùng thôi nhé.

Sau đó, chúng ta nhập địa chỉ IP mới vào thanh tìm kiếm chrome để cài đặt cấu hình cho gateway R-KEY-LT.

Truy cập web server của R-key-lt
Truy cập web server của R-key-lt

Tài khoản đăng nhập và password mặc định của R-KET-LT là “admin”. Sau khi đăng nhập vào chúng ta sẽ thấy

  • IP mới tại Actual IP Server : 192.168.1.197
  • Mask : 255.255.255.0
  • Actual Gateway address : 192.168.1.1

Các thống số này đều là mặc định theo IP của hệ thống mạng chỉ có IP của gateway là chúng ta có thể thay đổi được.

Cài đặt R-key-lt
Cài đặt R-key-lt

Tại phần cài đặt của R-KEY-LT chúng ta có vị trí cần chú ý :

Cài đặt Modbus RTU sang modbus TCP-IP
Cài đặt Modbus RTU sang modbus TCP-IP
  1. DHCP: chọn dùng IP động từ DCHP hoặc IP tĩnh. Mình chọn Disabled để dùng IP tĩnh
  2. STATIC IP: thiết lập địa chỉ IP. Chỗ này mình để với IP Assign ban đầu
  3. Working mode: chỗ này chọn cách làm việc RS485 sang Modbus TCP\IP hoặc ngược lại. Ethernet to Serial nghĩa là Ethernet là master còn Serial là Slave
  4. Chọn chọn giao thức Modbus: chọn RTU.
  5. Chọn baud rate, mình chọn giống với bộ A-8AI là 9600.
  6. Bấm Apply bên dưới để xác nhận.

Tại đây, bạn mới chỉ có cài đặt xong Modbus TCP-IP thông qua R-KEY-LT. Để đọc được các giá trị modbus TCP-IP bạn cần một thiết bị đọc làm Master như PLC, Controller hoặc một phần mềm. Ở đây mình sẽ dùng một phần mềm Modbus Poll đọc tín hiệu modbus TCP-IP thông qua R-KEY-LT.

Hướng dẫn đọc tín hiệu modbus TCP-IP thông qua modbus poll

Việc đầu tiên bạn cần làm là download modbus poll về. Bạn vào google tìm kiếm và tải modbus poll về nhé.

Sau khi tải xong bạn mở Modbus poll lên. Sau đó vào phần Connection nằm phía trên thanh công cụ modbus poll. Tại đây, bạn chọn Modbus TCP-IP. Sau đó gõ địa chỉ IP của Gateway R-KEY-LT là 192.168.1.197 và TCP/IP PORT là 502.

Cài đặt kết nối modbus TCP-IP với modbus poll
Cài đặt kết nối modbus TCP-IP với modbus poll

Lưu ý rằng : địa chỉ IP và PORT phải giống với cấu hình của gateway R-KEY-LT thì mới giao tiếp được. Sau khi chọn kiểu kết nối Modbus TCP-IP xong chúng ta cần chọn Slave sao cho đúng với địa chỉ slave của Z-8AI.

Khi bạn kết nối chưa đúng thì Modbus poll sẽ thông báo No connection ở trên hoặc nổi bảng thông báo Modbus Connection Failed. Modbus timeout.

Cài đặt địa chỉ Slave IP cho modbus poll
Cài đặt địa chỉ Slave IP cho modbus poll

Khi kết nối Modbus TCP-IP giữa R-KET-LT và Modbus poll thành công thì thông báo No Connection biến mất.

Mình có 02 bộ Z-8AI với hai địa chỉ lần lượt là Slave 1 và 9. Để đọc bộ số 01 chúng ta vào phần Setup để chọn để chọn Read/Write Definition.

Tại bảng hiện ra chúng ta sẽ chọn Slave ID là 1 tương ứng với Z-8AI số1. Còn nếu muốn đọc còn Z-8AI thứ 2 với địa chỉ Slave ID là 9 tương ứng với Z-8AI số 2.

Đọc giá trị từ TEST-4 thông qua Z-8AI tới modbus poll
Đọc giá trị từ TEST-4 thông qua Z-8AI tới modbus poll

Bước này nếu bạn chọn Slave ID không đúng với Slave của Z-8AI thì phần mềm Modbus Poll sẽ không có thông báo gì cho chúng ta biết. Vì thế chúng ta phải chắc chắn biết được địa chỉ Slave của Z-8AI là bao nhiêu. Nếu các bạn dùng các thiết bị khác thì cũng tương tự.

Sau khi kết nối thành công giữa modbus poll và gateway R-KEY-LT chúng ta dùng TEST-4 phát tín hiệu 4-20mA vào Z-8AI tại thanh ghi số 2.

Bộ TEST-4 có độ phân giải rất cao nên khi phần mềm modbus poll đọc cũng sẽ hiển thị 3 số lẻ phía sau của TEST-4 khi phát vào Z-8AI. Đôi khi số giữa TEST-4 phát ra và Modbus poll hiển thị sẽ bị lệch 0,001-0,004 là điều bình thường bởi độ phân giải này là 1/1000mA.

Tương tự, để đọc con Z-8AI số 2 bạn chỉ cần đổi Slave ID là 9 thì phần mềm Modbus Poll sẽ đọc được con Z-8AI thứ 2 như con số 1.

Như vậy, tôi đã hướng dẫn kết nối modbus TCP-IP với phần mềm giả lập Modbus Poll một cách đơn giản để đọc các giá trị từ thiết bị đo truyền về.

Chúc các bạn thành công !

Kỹ Sư  Cơ – Điện Tử

Nguyễn Minh Hòa

Mobi : 0937.27.55.66

Mail : [email protected]