Sử dụng MODBUS cho điều khiển và tự động hóa quá trình

MODBUS là một protocol phổ biến bậc nhất được sử dụng hiện nay cho nhiều mục đích. MODBUS đơn giản, rẻ, phổ biến và dễ sử dụng. Được phát minh từ thế kỉ trước (gần 30 năm trước), các nhà cung cấp thiết bị đo và thiết bị tự động hóa trong công nghiệp tiếp tục hỗ trợ MODBUS trong các sản phẩm thế hệ mới. Mặc dù các bộ phân tích, lưu lượng kế, hay PLC đời mới có giao diện kết nối không dây, Ethernet hay fieldbus, MODBUS vẫn là protocol mà các nhà cung cấp lựa chọn cho các thiết bị thế hệ cũ và mới.

Một ưu điểm khác của MODBUS là nó có thể chạy hầu như trên tất cả các phương tiện truyền thông, trong đó có cổng kết nối dây xoắn, không dây, sợi quang, Ethernet, modem điện thoại, điện thoại di động và vi sóng. Có nghĩa là, kết nối MODBUS có thể được thiết lập trong nhà máy thế hệ mới hay hiện tại khá dễ dàng. Thực ra, nâng cao ứng dụng cho MODBUS là cung cấp truyền thông số trong nhà máy đời cũ, sử dụng kết nối dây xoắn hiện nay.

Trong bài viết này, chúng ta cùng tìm hiểu cách thức hoạt động của MODBUS và xem xét một số phương pháp thông minh mà MODBUS có thể được sử dụng trong các nhà máy.

MODBUS là gì?

MODBUS do Modicon (hiện nay thuộc Schneider Electric) phát triển năm 1979, là một phương tiện truyền thông với nhiều thiết bị thông qua một cặp dây xoắn đơn. Ban đầu, nó hoạt động trên RS232, nhưng sau đó nó sử dụng cho cả RS485 để đạt tốc độ cao hơn, khoảng cách dài hơn, và mạng đa điểm (multi-drop). MODBUS đã nhanh chóng trở thành tiêu chuẩn thông dụng trong ngành tự động hóa, và Modicon đã cho ra mắt công chúng như một protocol miễn phí.

Ngày nay, MODBUS-IDA (www.MODBUS.org) , tổ chức sử dụng và cung cấp MODBUS lớn nhất tiếp tục hỗ trợ protocol MODBUS trên toàn cầu.

MODBUS là một hệ thống “chủ - tớ”, “chủ” được kết nối với một hay nhiều “tớ”. “Chủ” thường là một PLC, PC, DCS, hay RTU. “Tớ” MODBUS RTU thường là các thiết bị hiện trường, tất cả được kết nối với mạng trong cấu hình multi-drop (hình1). Khi một chủ MODBUS RTU muốn có thông tin từ thiết bị, chủ sẽ gửi một thông điệp về dữ liệu cần, tóm tắt dò lỗi tới địa chỉ thiết bị. Mọi thiết bị khác trên mạng sẽ nhận thông điệp này nhưng chỉ có thiết bị nào được chỉ định mới có phản ứng.

MODBUS RTU có một chủ

Hình 1: Một mạng MODBUS RTU có một chủ, như PLC, PC, DCS và 247 thiết bị tớ được kết nối trong cấu hình multi-drop.

Các thiết bị trên mạng MODBUS không thể tạo ra kết nối; chúng chỉ có thể phản ứng. Nói cách khác, chúng “lên tiếng” chỉ khi được “nói tới”. Một số nhà sản xuất đang phát triển các thiết bị lai ghép hoạt động như các tớ MODBUS, tuy nhiên chúng cũng có “khả năng viết”, do đó làm cho chúng trở thành các thiết bị chủ ảo.

Ba phiên bản MODBUS phổ biến nhất được sử dụng ngày nay là:

- MODBUS ASCII

- MODBUS RTU

- MODBUS/TCP

Tất cả thông điệp được gửi dưới cùng một format. Sự khác nhau duy nhất giữa 3 loại MODBUS là cách thức thông điệp được mã hóa.

Với MODBUS ASCII, mọi thông điệp được mã hóa bằng hexadeci-mal, sử dụng đặc tính ASCII 4 bit. Đối với mỗi một byte thông tin, cần có 2 byte truyền thông, gấp đôi so với MODBUS RTU hay MODBUS/TCP.

Tuy nhiên, MODBUS ASC II chậm nhất trong số 3 loại protocol, nhưng lại thích hợp khi modem điện thoại hay kết nối sử dụng sóng radio do ASC II sử dụng các tính năng phân định thông điệp. Do tính năng phân định này, mọi rắc rối trong phương tiện truyền dẫn sẽ không làm thiết bị nhận dịch sai thông tin. Điều này quan trọng khi đề cập đến các modem chậm, điện thoại di động, kết nối ồn hay các phương tiện truyền thông khó tính khác.

Đối với MODBUS RTU, dữ liệu được mã hóa theo hệ nhị phân, và chỉ cần một byte truyền thông cho một byte dữ liệu. Đây là thiết bị lí tưởng đối với RS 232 hay mạng RS485 đa điểm, tốc độ từ 1200 đến 115 baud. Tốc độ phổ biến nhất là 9600 đến 19200 baud. MODBUS RTU là protocol công nghiệp được sử dụng rộng rãi nhất, do đó hầu như trong bài viết này chỉ tập trung đề cập đến cơ sở và ứng dụng của nó.

MODBUS/TCP đơn giản là MODBUS qua Ethernet. Thay vì sử dụng thiết bị này cho việc kết nối với các thiết bị tớ, do đó các địa chỉ IP được sử dụng. Với MODBUS/TCP, dữ liệu MODBUS được tóm lược đơn giản trong một gói TCP/IP. Do đó, bất cứ mạng Ethernet hỗ trợ MODBUS/ IP sẽ ngay lập tức hỗ trợ MODBUS/TCP. Phiên bản MODBUS này sẽ được đề cập chi tiết trong bài viết lần sau với tiêu đề “MODBUS qua Ethernet”.

Nguyên tắc hoạt động của MODBUS RTU

Để kết nối với thiết bị tớ, chủ sẽ gửi một thông điệp có:

- Địa chỉ thiết bị

- Mã chức năng

- Dữ liệu

- Kiểm tra lỗi

Địa chỉ thiết bị là một con số từ 0 đến 247. Thông điệp được gửi tới địa chỉ 0 (truyền thông điệp) có thể dược tất cả các tớ chấp nhận, nhưng các con số từ 1-247 là các địa chỉ của các thiết bị cụ thể. Với ngoại lệ của việc truyền thông điệp, một thiết bị tớ luôn phản ứng với một thông điệp MODBUS do đó chủ sẽ biết rằng thông điệp đã được nhận.

Yêu cầu Mã chức năng
01 Đọc cuộn cảm
02 Đọc đầu ra rời rạc
03 Đọc bộ ghi phần
04 Đọc bộ ghi đầu vào
05 Viết cuộn cảm đơn
06 Viết bộ ghi đơn
07 Đọc trạng thái ngoại lệ
08 Chẩn đoán
...  
xx 255 mã chức năng, phụ thuộc vào thiết bị

Bảng các mã chức năng

Mã chức năng xác định yêu cầu thiết bị tớ thực hiện hoạt động như đọc dữ liệu, chấp nhận dữ liệu, thông báo trạng thái vv.

Mã chức năng là từ 1 – 255. Một số mã chức năng còn có các mã chức năng phụ.

Dữ liệu xác định địa chỉ trong bộ nhớ thiết bị hay chứa các giá trị dữ liệu được viết trong bộ nhớ thiết bị, hay chứa các thông tin cần thiết khác mang chức năng như yêu cầu.

Kiểm tra lỗi là một giá trị bằng số 16 bit biểu diễn kiểm tra dự phòng tuần hoàn (CRC). CRC được thiết bị chủ tạo ra và thiết bị tiếp nhận kiểm tra. Nếu giá trị CRC không thỏa mãn, thiết bị đòi hỏi truyền lại thông điệp này.

Khi thiết bị tớ thực hiện các chức năng theo yêu cầu, nó sẽ gửi thông điệp cho chủ. Thông điệp chứa địa chỉ của tớ và mã chức năng, dữ liệu theo yêu cầu, và một giá trị kiểm tra lỗi.

Bản đồ bộ nhớ MOSBOUS

Mỗi thiết bị MODBUS có bộ nhớ chứa dữ liệu quá trình. Thông số kỹ thuật của MODBUS chỉ ra cách dữ liệu được gọi ra như thế nào, loại dữ liệu nào có thể được gọi ra. Tuy nhiên, không đặt ra giới hạn về cách thức và vị trí mà nhà cung cấp đặt dữ liệu trong bộ nhớ. Dưới đây là ví dụ về cách thức mà nhà cung cấp đặt các loại dữ liệu biến thiên quá trình hợp lí.

Các đầu vào và cuộn cảm rời rạc có giá trị 1 bit, mỗi một thiết bị lại có một địa chỉ cụ thể. Các đầu vào analog (bộ ghi đầu vào) được lưu trong bộ ghi 16 bit. Bằng cách sử dụng 2 bộ ghi này, MODBUS có thể hỗ trợ format điểm floating (nổi) IEEE 32 bit. Bộ ghi Holding cũng sử dụng các bộ ghi bên trong 16 bit hỗ trợ điểm floating.

Địa chỉ Loại Tên
1 - 9999 Đọc hoặc viết Cuộn cảm
10001 - 19999 Chỉ đọc Đầu vào rời rạc
30001 - 39999 Chỉ đọc Bộ ghi đầu vào
40001 - 49999 Đọc hoặc viết Bộ ghi Holding

Bảng hướng dẫn xử dụng của hầu hết các thiết bị tương thích MODBUS như bộ truyền nhiệt TMZ của Moore Industries, công bố địa chỉ của các chỉ số biến thiên quan trọng trong bộ nhớ MODBUS. Địa chỉ TMZ tuân theo các thông số kỹ thuật của MODBUS.

Dữ liệu trong bộ nhớ được xác định trong thông số kỹ thuật MODBUS. Giả sử rằng nhà cung cấp tuân theo tiêu chuẩn kỹ thuật MODBUS (không phải tất cả), mọi dữ liệu có thể được truy cập dễ dàng bởi chủ, thiết bị tuân theo các thông số kỹ thuật. trong nhiều trường hợp, nhà cung cấp thiết bị công bố vị trí của bộ nhớ, tao điều kiện cho nhân viên lập trình dễ dàng để kết nối với thiết bị tớ.

Đọc và viết dữ liệu

MODBUS có tới 255 mã chức năng, nhưng 1 (cuộn cảm đọc), 2 (đầu vào rời rạc đọc), 3 (bộ ghi Holding đọc), và 4 (bộ ghi đầu vào đọc) là các chức năng đọc được sử dụng phổ biến nhất để thu thập dữ liệu từ các thiết bị tớ. Thí dụ, để đọc 3 từ 16 bit dữ liệu analog từ bản đồ bộ nhớ của thiết bị 5, chủ sẽ gửi một yêu cầu như sau:

5 04 2 3 CRC

Trong đó, 5 là địa chỉ thiết bị, 4 đọc bộ ghi đầu vào, 2 là địa chỉ khởi đầu (địa chỉ 30,002). 3 có nghĩa là để đọc 3 giá trị dữ liệu kề nhau xuất phát từ đại chỉ 30,002, và CRC là giá trị kiểm tra lỗi thông điệp này. Thiết bị tớ, ngoài việc nhận dữ liệu này, sẽ gửi lại một trả lời như sau:

5 04 aa bb cc CRC

Kết nối dây “home run” so với MODBUS

Hình 2: Kết nối dây “home run” so với MODBUS

Trong hầu hết các nhà máy, các thiết bị đo hiện trường kết nối với hệ thống điều khiển với từng cặp dây xoắn “home run” (dưới). Khi các công cụ đo được kết nối dây với hệ thống I/O phân tán như NCS của Moore Industries (giữa), có nhiều thiết bị sẽ được bổ sung, nhưng chỉ có một cặp dây xoắn đơn cần để truyền tất cả dữ liệu.