3.1 CÁC THÀNH PHẦN LIÊN QUAN
3.1.6 C HUẨN TRUYỀN THÔNG M ODBUS TCP/IP
Là giao thức truyền thông được phát triển lên từ modbus RTU và nền ethernet. Modbus là một giao thức do hãng Modicon (Sau này thuộc AEG và Schneider Automation) phát triển. Modbus định nghĩa một tập hợp rộng các dịch vụ phục vụ trao đổi dữ liệu quá trình, dữ liệu điều khiển và dữ liệu chẩn đoán.
Modbus mô tả quá trình giao tiếp giữa một bộ thiết bị điều khiển với các thiết bị khác thông quá cơ chế yêu cầu, đáp ứng. Truyền thông giữa các nút của Modbus thực hiện bằng cách gửi các thông điệp. Điều tốt của chuẩn Modbus là sự linh hoạt, và sự dễ thực hiện của nó. Không chỉ các thiết bị như Microcontroller, PLC...
có thể truyền thông với Modbus, mà còn các sensor thông minh cũng trang bị Modbus để gửi dữ liệu của chúng đến các host system. Trong thời gian ngắn hàng trăm nhà sản xuất tích hợp Modbus vào trong thiết bị của họ và Modbus trở thành chuẩn cho các mạng truyền thông công nghiệp.Trong mô hình tham chiếu ISO/OSI thì Modbus thực ra là một chuẩn giao thức và dịch vụ thuộc lớp ứng dụng. Do vậy, tầng vật lý của Modbus có thể tự do chọn lựa. Modbus ban đầu chạy trên RS-232, nhưng các thực hiện Modbus sau nhất dùng RS-485 vì nó cho phép khoảng cách lớn, tốc độ cao và khả năng của một mạng multi-drop thực sự.
Như đã phân tích, do là một lớp ứng dụng nên cơ chế giao tiếp ở Modbus phụ thuộc vào hệ thống truyền thông cấp thấp. Cụ thể, có thể phân chia ra hai loại là mạng Modbus chuẩn và Modbus trên các mạng khác (TCP/IP, Modbus Plus, MAP). Khi thực hiện Modbus trên các mạng khác, các thông báo Modbus được đưa vào các khung theo giao thức vận chuyển, liên kết dữ liệu cụ thể. Mạng Modbus sử dụng một trong 2 chế độ truyền là ASCII hoặc RTU.
Chế độ ASCII: Mỗi byte trong thông báo được gửi thành hai ký tự ASCII 7 bít, trong đó mỗi ký tự biểu diễn một chữ số hex. Ưu điểm của chế độ truyền này là nó cho phép một khoảng thời gian trống tối đa giữa 2 ký tự mà không gây ra lỗi. Cấu trúc một ký tự khung gửi đi được thể hiện như sau:
1 bit khởi đầu (Start bit).
LUẬN VĂN CAO HỌC
7 bit biểu diễn một chữ số HEX của byte cần gửi dưới dạng ký tự ASCII (0-F), trong đó bit thấp nhất được gửi đi trước.
1 bit Parity để kiểm tra chẳn lẽ nếu sử dụng parity.
1 bit kết thúc (Stop bit) nếu sử dụng parity hoặc 2 bit kết thúc nếu không sử dụng parity.
Chế độ RTU (Remote Terminal Unit): Mỗi byte trong thông báo được gửi thành một ký tự 8 bit. Ưu điểm chính của chế độ truyền này so với chế độ ASCII là hiệu suất cao hơn. Tuy nhiên, mỗi thông báo phải truyền thành một dòng liên tục.
Cấu trúc một ký tự khung gửi đi được thể hiện như sau:
1 bit khởi đầu (Start bit)
8 bit của byte thông báo cần gửi, bit thấp nhất được gửi đi trước
1 bit Parity để kiểm tra chẳn lẽ nếu sử dụng parity
1 bit kết thúc (Stop bit) nếu sử dụng parity hoặc 2 bit kết thúc nếu không sử dụng parity
Cấu trúc bức điện: Một thông báo Modbus bao gồm nhiều thành phần và có chiều dài có thể khác nhau. Trong một mạng Modbus chuẩn, nếu một trong hai chế độ truyền RTU hoặc ASCII đã đề cập ở trên được chọn, một thông báo sẽ được đóng khung. Mỗi khung bao gồm nhiều ký tự khung có cấu trúc như được mô tả ở phần trên. Các ký tự này có thể chuyền đi thành dòng liên tục ở chế độ RTU, hoặc có thể gián đoạn với thời gian tối đa một giây ở chế độ ASCII. Mục đích của việc đóng khung là để đánh dấu khởi điểm và kết thúc của một thông báo.
Tuy cách mã hóa thông tin và cấu trúc ký tự khung có sự khác nhau giữa 2 chế độ truyền nhưng về cơ bản, cấu trúc của một khung thông báo Modbus chuẩn như sau:
Địa chỉ (Address) : Các giá trị địa chỉ hợp lệ nằm trong khoảng 0-247.
Trong đó địa chỉ 0 dành riêng để gửi thông báo đồng loạt tới tất cả các trạm tớ.
Mỗi thiết bị chủ sử dụng ô địa chỉ để chỉ định thiết bị tớ nhận thông báo yêu cầu.
Mã hàm (Function code): Có giá trị hợp lệ nằm trong khoảng 1-255,
LUẬN VĂN CAO HỌC
trong đó các mã hàm trong thông báo yêu cầu chỉ được phép từ 1-127. Tuy nhiên, hầu hết các thiết bị chỉ hỗ trợ một phần nhỏ số hàm trên và phần còn lại được dự trữ dùng về sau này.
Dữ liệu (Data): Nội dung phần dữ liệu nói lên chi tiết hành động mà bên nhận cần phải thực hiện. Ví dụ trong một yêu cầu đọc các thanh ghi thì phần dữ liệu chứa thông tin về địa chỉ thanh ghi đầu tiên, số lượng các thanh ghi cần đọc và chiều dài thực tế của chính phần dữ liệu.
Bảo toàn dữ liệu (Checksum): Mạng Modbus chuẩn sử dụng hai biện pháp bảo toàn dữ liệu ở hai mức: Kiểm soát khung thông báo và kiểm soát ký tự khung. Đối với hai cế độ truyền ASCII hay RTU, có thể lựa chọn bit kiểm tra chẵn lẻ cho ký tự khung và việc kiểm tra chẵn lẽ này lại lặp lại một lần nữa ở khung thông báo bằng mã LRC (Ở chế độ ASCII) hoặc mã CRC (Chế độ RTU).
Modbus TCP/IP : Chính là sự kết hợp giữa mạng vật lý Ethernet, cấu trúc khung điện của Modbus và đóng gói chuyển dữ liệu giữa các thiết bị trong mạng bằng giao thức TCP/IP.
Modbus TCP/IP thừa kế lại phần Function code và Data từ cấu trúc khung điện của Modbus chuẩn và thêm vào đó phần MBAP (Modbus Application Protocol) Header gồm 4 trường như hình trên, có tổng chiều dài là 7 byte.
Transaction identifier : Mã giao dịch, phân biệt các giao dịch khác nhau của Modbus, có chiều dài 2 byte.
Protocol identifier: Mã nhận dạng giao thức. Khi sử dụng giao thức Modbus, giá trị này bằng 0.
Length: Chiều dài số byte theo sau. Khi Server hoặc client gửi thông báo yêu cầu thì sẽ gửi kèm theo giá trị này.
LUẬN VĂN CAO HỌC
Unit identifier: Mã nhận dạng thiết bị, dùng để nhận dạng thiết bị kết nối vào bus Sau khi đã được thêm phần MBAP, dữ liệu sẽ được gói vào gói dữ liệu TCP/IP và được truyền qua mạng Ethernet tới địa chỉ đích.