Kỹ thuật

Góc kỹ thuật

2020.09.25
Công nghiệp

Modbus - Phần 1: Giới thiệu về giao thức Modbus

1. Giới thiệu chung

1.1. Truyền thông trong công nghiệp

        Trong công cuộc công nghiệp hóa - hiện đại hóa, truyền thông trong công nghiệp trở nên thiết yếu và đóng vai trò như xương sống của bất kỳ hệ thống tự động nào. Nó cung cấp cho người dùng phương tiện để trao đổi, kiểm soát dữ liệu cũng như linh hoạt hơn trong việc thiết lập kết nối giữa các thiết bị với nhau.

        Vậy mạng truyền thông công nghiệp là gì?

        Có thể hiểu đơn giản truyền thông công nghiệp là sự truyền nhận thông tin hoặc dữ liệu từ máy phát sang máy thu thông qua liên kết được thiết lập (Có thể bằng các dạng cáp vật lý như dây đồng, cáp đồng trục, cáp quang hoặc những phương tiện, cách thức khác được người dùng lựa chọn).

        Ngoài ra, mạng truyền thông công nghiệp hiện đại là một công cụ đặc biệt cho phép kiểm soát hoạt động của các thiết bị theo thời gian thực và bảo vệ sự toàn vẹn của dữ liệu. (Dữ liệu được kiểm soát có độ chính xác, đầy đủ… và được bảo mật tốt).

1.2. Một số giao thức được sử dụng trong công nghiệp

        Giao thức là gì?

        Giao thức là một tập hợp các quy tắc chuẩn dành cho việc biểu diễn dữ liệu, phát tín hiệu, chứng thực và phát hiện lỗi dữ liệu.

        Hiện nay, trong các nhà máy đã và đang sử dụng một số giao thức truyền thông phổ biến trong công nghiệp như Ethernet, DeviceNet, Modbus, ControlNet, ...

Hình 1: Các loại giao thức truyền thông phổ biến trong công nghiệp

        Bài viết này trình bày tổng quan về giao thức Modbus.

2. Lịch sử hình thành và phát triển

        Modbus là một chuẩn truyền thông được ra đời trong cuối những năm 70 thế kỉ trước. Năm 1979, công ty Modicon - hiện nay thuộc sở hữu của tập đoàn Schneider Electric’s Telemecanique - đã tạo ra Modbus để sử dụng với các bộ điều khiển PLC.

Hình 2. Modicon tạo ra chuẩn truyền thông Modbus vào năm 1979.

        Mỗi hãng sản xuất đều có các giao thức truyền thông và ngôn ngữ lập trình khác nhau, tùy theo thiết bị của nhà sản xuất. Điều này sẽ gây ra khó khăn trong việc kết hợp các thiết bị của các hãng với nhau trong một hệ thống. Chính vì thế, chuẩn truyền thông Modbus đã ra đời nhằm giải quyết vấn đề này.

        Với ưu điểm là một giao thức mở và hoàn toàn miễn phí, các thông số cũng như cách truyền nhận dữ liệu đều được công khai, có khả năng kết nối, tích hợp các thiết bị khác nhau, Modbus đã trở thành một giao thức truyền thông tiêu chuẩn và là phương tiện phổ biến để kết nối các thiết bị điện tử trong công nghiệp.

3. Khái niệm về giao thức Modbus

        Modbus là một giao thức giao tiếp sử dụng Tin nhắn (Message) thuộc lớp ứng dụng (Application), tầng 7 của mô hình OSI (*)  hay tầng 5 của mô hình TCP/IP.

        Modbus sử dụng kiểu giao tiếp Client/Server hay Master/Slave giữa các thiết bị thông qua Bus hay đường truyền mạng.

Hình 3: Mô hình giao tiếp Modbus

        Các thiết bị giao tiếp Modbus với nhau theo cách thức dưới dạng Tin nhắn (Yêu cầu/Trả lời - Request/Reply). Client sẽ gửi Request. Server sẽ cung cấp các dịch vụ hay thực hiện các chức năng tương ứng dựa vào các Mã chức năng (Function code) và gửi lại Reply chứa các thông tin cần thiết.

        Các Mã chức năng của Modbus là thành phần của PDU (Sẽ được giải thích rõ hơn ở bài viết số 2) của Tin nhắn trong quá trình Request/Reply của bên phát và bên thu (Sẽ được trình bày kỹ hơn trong phần 4. Mô tả chung của bài viết số 2).

        Các dạng Modbus thông dụng hiện nay:

+ Modbus RTU (Serial): RS-232, RS-485, …
+ Modbus TCP/IP
+ Modbus ASCII

        Mỗi dạng Modbus đều có các đặc điểm khác nhau. Tùy theo thiết bị và yêu cầu của người sử dụng, các loại Modbus sẽ được lựa chọn.

        Sau đây là một vài đặc điểm của từng dạng Modbus:

- Modbus RTU

Dữ liệu được mã hóa theo hệ nhị phân, và chỉ cần một byte để biểu diễn cho một byte dữ liệu gốc. Đây là chuẩn giao tiếp lý tưởng đối với RS-232 hay mạng RS-485 đa điểm, tốc độ từ 1200 đến 115200 Baud/s. Tốc độ phổ biến nhất là 9600, 38400 hay 115200 Baud/s. Đây là chuẩn Modbus thông dụng nhất. Do Tin nhắn được mã hóa nhị phân nên không thể đọc được trong quá trình giám sát.

- Modbus TCP/IP

Modbus TCP/IP đơn giản là giao thức Modbus sử dụng mô hình TCP/IP. Trong đó, giao thức Modbus thuộc lớp ứng dụng, xác định dữ liệu cần truyền, TCP là lớp vận chuyển đảm bảo việc truyền nhận dữ liệu chính xác đến đúng địa điểm thông qua địa chỉ IP của thiết bị. Với Modbus TCP/IP, dữ liệu được đóng gói trong một gói tin TCP/IP (gồm dữ liệu và các header) và được truyền qua Ethernet.

- Modbus ASCII

Mọi thông tin dữ liệu được chuyển đổi sang dạng Hexadecimal (hệ thập lục phân), và sử dụng bảng mã ASCII. Việc chuyển đổi này khiến cho một byte dữ liệu gốc thực tế cần hai byte để biểu diễn, gấp đôi so với Modbus RTU hay Modbus TCP/IP.

Trái ngược với Modbus RTU, người dùng khi sử dụng Modbus ASCIIthì có thể đọc được nội dung tin nhắn trong quá trình giám sát.

Tuy nhiên, do Modbus ASCIImang nhiều thông tin mã hóa lệnh hơn nên ModbusASCIIcó tốc độ chậm hơn Modbus RTUModbus TCP/IP, vì vậy thường không được sử dụng nhiều trong thực tế.

- Modbus Gateway

Ngoài ra, khi sử dụng các thiết bị với giao thức Modbus, đặc biệt là Modbus RTU Modbus TCP, người dùng sẽ được hỏi về Modbus Gateway.

        Vậy Modbus Gateway là gì?

Modbus Gateway hay còn được gọi là Cổng giao tiếp Ethernet (Ethernet communication gateway). Đây là bộ chuyển đổi giữa Modbus RTU/ASCII và Modbus TCP/IP. Thông thường Modbus Gateway sẽ có 1 cổng RS-232/RS-485 dùng cho Modbus RTU/ASCII và 1 cổng Ethernet dùng cho Modbus TCP/IP.

Modbus TCP/IP có các ưu điểm vượt trội hơn so với Modbus RTU, ví dụ như việc sử dụng cáp Ethernet tiết kiệm chi phí hơn so với sử dụng cáp cho RS-232 hay RS-485, truyền được xa hơn và kết nối được nhiều Client hơn. Trong thực tế, nhiều thiết bị được điều khiển chỉ được hỗ trợ 1 loại Modbus RTU hoặc Modbus TCP/IP khiến cho việc kết hợp các thiết bị với nhau trở nên khó khăn. Modbus Gateway thường được sử dụng như một bộ phiên dịch kết nối các thiết bị vào hệ thống Modbus chung.

Các thông tin liên quan