Khái niệm cơ bản về giao thức ModbusSau các khái niệm cơ bản về các chuẩn chỉnh giao tiếp đồ lý cơ bản mà chúng ta hay thấy như RS232, RS485 (còn gọi là serial), hôm nay chúng ta cùng bàn bạc về giao thức Modbus, một giao thức được sử dụng rộng thoải mái trong công nghiệp. Nói một bí quyết dễ hiểu, bạn cũng có thể tưởng tượng RS232,RS485 là phần xác, còn giao thức như Modbus là phần hồn :).

Bạn đang xem: Mạng truyền thông công nghiệp modbus

Vậy, giao thức Modbus là gì?

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

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

Các vật dụng trên mạng MODBUS ko thể tạo thành kết nối; chúng chỉ có thể phản ứng. Nói biện pháp khác, bọn chúng “lên tiếng” chỉ lúc được “nói tới”. Một trong những nhà phân phối đang trở nên tân tiến các sản phẩm công nghệ lai ghép chuyển động như những tớ MODBUS, mặc dù chúng cũng có thể có “khả năng viết”, bởi vì đó tạo cho chúng trở thành các thiết bị nhà ảo.

*

Các chuẩn modbus nào đang được sử dụng phổ biến?

Hiện nay, tất cả 03 chuẩn modbus đang được sử dụng phổ cập trong công nghiệp - tự động hóa hóa là: Modbus RTU, Modbus ASCII, Modbus TCP

Vậy, 03 chuẩn chỉnh này tất cả gì giống với khác nhau?

Tất cả thông điệp được gửi dưới cùng một format. Sự không giống nhau duy độc nhất vô nhị giữa 3 các loại MODBUS là phương pháp thông điệp được mã hóa. Chũm thể:

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 phải 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 trễ nhất trong số 3 các loại protocol, nhưng lại tương thích khi modem điện thoại cảm ứng thông minh hay kết nối sử dụng sóng radio vày ASC II sử dụng những tính năng phân định thông điệp. Do kỹ 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ị dìm dịch sai thông tin. Điều này quan trọng đặc biệt khi nhắc đến các modem chậm, điện thoại di động, liên kết ồn hay các phương nhân thể truyền thông giận dữ khác.

Modbus TCP:MODBUS/TCP đơn giản dễ dàng là MODBUS qua Ethernet. Cố vì thực hiện thiết bị này mang đến việc kết nối với các thiết bị tớ, vì vậy các địa chỉ IP được sử dụng. Với MODBUS/TCP, tài liệu MODBUS được bắt lược đơn giản và dễ dàng trong một gói TCP/IP. Vày đó, bất cứ mạng Ethernet cung cấp MODBUS/ IP sẽ ngay lập tức cung cấp MODBUS/TCP.

Modbus gateway là gì?

Modbus gateway là 1 trong những thiết bị đến phép biến hóa qua lại giữa giao thức
Modbus RTU cùng Modbus TCP. Thông thường thiết bị sẽ sở hữu 01 cổng serial ( RS232/RS485) cùng 01 cổng Ethernet.

Tại sao lại là 2 giao thức này? bởi hai giao thức này phổ biến, đại diện cho 02 nhiều loại cổng đồ vật lý là serial (RS232/RS485) với ethernet (cổng RJ45). Thiết bị công nghiệp cần sử dụng ở hiện nay trường hiện nay nay, nhiều thiết bị chỉ hỗ trợ Modbus RTU, hoặc chỉ cung ứng Modbus TCP, hoặc cung cấp cả 2. Bởi vì đó, để kết nối các thiết bị ngôi trường này vào khối hệ thống modbus chung trong phòng máy, nhà máy sản xuất thì sẽ nên 01 trang bị phiên dịch được điện thoại tư vấn là Modbus Gateway.

MODBUS là gì?

MODBUS là một trong những chuẩn giao thức truyền thông media công nghiệp được desgin và cải tiến và phát triển bởi MODICON vào năm 1979, và xác nhận thuộc về Schneider Electrics vào thời điểm năm 1996. MODBUS đã gấp rút trở thành biến hóa tiêu chuẩn truyền thông trong những ngành công nghiệp tự động hóa hóa vì tính ổn định, dễ dàng, dễ ợt và đặc trưng hơn nữa là MIỄN PHÍ với hiện được duy trì bởi tổ chức triển khai “modbus.org”.

Nguyên tắc buổi giao lưu của MODBUS

MODBUS chuyển động theo phương pháp “Master – Slave” hay còn gọi là “Chủ – Tớ”. Một Master hoàn toàn có thể kết nối được với một hay các “Slave”. “Master” thường xuyên là PLC, PC, DCS, RTU tốt SCADA. “Slave” thường là các thiết bị cấp hiện trường. Nói một cách dễ hiểu, nó là một phương pháp được áp dụng để truyền thông tin qua con đường dây tiếp liền giữa các thiết bị điện tử. Vật dụng yêu cầu thông tin được call là Modbus Master với thiết bị báo tin là Modbus Slaves. Vào mạng Modbus tiêu chuẩn, có một Master và về tối đa 247 Slave, mỗi Slave tất cả một địa chỉ Slave duy nhất từ ​​1 mang đến 247. Master cũng có thể ghi tin tức vào những Slave.

*

Phân loại chuẩn chỉnh MODBUS

Hiện nay, MODBUS được nghe biết và sử dụng thịnh hành trong công nghiệp có 3 chuẩn: MODBUS RTU, MODBUS TCP và MODBUS ASCII.

Modbus RTU

Dữ liệu được mã hóa theo hệ nhị phân, và chỉ việc một byte media cho một byte dữ liệu. Đây là giao thức media lí tưởng đối với RS232 giỏi RS485, vận tốc từ 1200 mang lại 115000 baud. Tốc độ phổ biến nhất là từ bỏ 9600 cho 19200 baud. MODBUS RTU là giao thức truyền thông công nghiệp được sử dụng rộng thoải mái nhất, do đó phần lớn trong nội dung bài viết này sẽ tập trung đề cập cho MODBUS RTU.

Modbus TCP

MODBUS TCP là MODBUS qua Ethernet (RJ45). Cùng với MODBUS TCP, dữ liệu MODBUS được cầm lược đơn giản và dễ dàng trong một gói TCP/IP. Nói một cách đối chọi giản, phía trên như là 1 trong những thông điệp của Modbus RTU được truyền bởi trình phủ quanh TCP/IP cùng được gửi qua mạng nắm vì các đường nối tiếp. đồ vật chủ không tồn tại Slave
ID vì nó sử dụng địa chỉ IP.

Trong đó:

TCP (Transmission Control Protocol) là giao thức điều khiển và tinh chỉnh đường truyền và IP (Internet Protocol) là giao thức Internet. Các giao thức này được áp dụng cùng nhau với là giao thức truyền sở hữu cho internet. Khi thông tin modbus được giữ hộ bằng các giao thức này, dữ liệu được gửi tới TCP khu vực thông tin bổ sung cập nhật được đi kèm và cấp cho IP. IP tiếp đến đặt dữ liệu trong một gói (hoặc gói dữ liệu) và truyền nó.

TCP đề xuất được tùy chỉnh thiết lập kết nối trước lúc truyền dữ liệu, vày nó là giao thức dựa vào kết nối. Master (hoặc Client trong Modbus TCP) tùy chỉnh kết nối cùng với Slave (hoặc Server). Server ngóng một kết nối đến từ Client. Sau khi kết nối được thiết lập, Server vẫn phản hồi các truy vấn tự Client cho đến khi Client ngắt kết nối.

Modbus ASCII

Mọi thông điệp được mã hóa bằng hexadecimal, áp dụng đặc tính ASCII 4 bit. Đối với mỗi một byte thông tin, cần phải có 2 byte truyền thông, gấp hai so cùng với MODBUS RTU tốt MODBUS TCP. Mặc dù nhiên, MODBUS ASCII chậm chạp nhất trong các 3 nhiều loại giao thức, nhưng mà lại phù hợp với modem smartphone hay kết nối sử dụng sóng radio vì ASCII sử dụng các tính năng phân định thông điệp. Nhờ tính năng phân định này, mọi vấn đề trong phương tiện đi lại truyền dẫn sẽ không còn làm thiết bị dìm dịch sai thông tin. Điều này rất quan trọng khi nói đến các giao thức media cho những modem yêu cầu độ đúng mực thông tin cao, smartphone di động, nhiễu music hay các phương tiện truyền thông chuyên dụng khác.

Mã HEXA (HEXADECIMAL)

Khi quy trình khắc phục sự cố, lúc xem dữ liệu thô thực tế đang được truyền. Những chuỗi lâu năm gồm tiên phong hàng đầu và số 0 rất khó khăn đọc, bởi vì vậy những bit được kết hợp và hiển thị ngơi nghỉ dạng thập lục phân. Từng khối 4 bit được màn biểu diễn bằng một trong những mười sáu ký tự tự 0 đến F.

0000 = 00100 = 41000 = 81100 = C
0001 = 10101 = 51001 = 91101 = D
0010 = 20110 = 61010 = A1110 = E
0011 = 30111 = 71011 = B1111 = F

Mỗi khối 8 bit (gọi là byte) được biểu diễn bằng 1 trong những 256 cặp ký tự trường đoản cú 00 đến FF.

ASCII là gì?

ASCII là viết tắt của “American Standard Code for Information Interchange”. Theo cách tương tự, cứ 4 bit rất có thể được kết hợp và màn trình diễn bằng một trong những mười sáu ký tự thập lục phân trường đoản cú 0 mang lại F, cứ 8 bit (mỗi byte) có thể được kết hợp và biểu diễn bằng một trong 256 ký tự ASCII, bao hàm các cam kết tự bàn phím chung. Ví dụ: một số giá trị cho những ký từ bỏ ASCII là …

decimal(base10)binary(base2)Hex(base16)ASCII(base256)
00000 000000null
10000 000101
340010 001022#
350010 001123$
360010 010024%
470010 11112F/
480011 0000300
490011 0001311
560011 1000388
570011 1001399
580011 10103A:
640100 000040

Địa chỉ tài liệu và thanh ghi theo chuẩn chỉnh MODBUS

Thông tin tài liệu được lưu trữ trong thứ Slave được chia trong 4 khoảng chừng giá trị khác nhau. Hai khoảng tầm lưu trữ các giá trị rời rạc on/off (coils) và hai khoảng lưu trữ giá trị số (register – thanh ghi). Từng coils và register đều có khoảng biến chuyển chỉ gọi (read-only) và trở nên đọc với ghi (read-write).

Mỗi khoảng có 9999 biến chuyển giá trị
Mỗi coil hoặc contact là 1 bit và được gán một địa chỉ dữ liệu trong khoảng từ 0000 mang lại 270EMỗi register là một trong word = 16 che = 2 bytes và cũng khá được gán một địa chỉ cửa hàng dữ liệu từ bỏ 0000 đến 270E
Coil/Register NumbersData AddressesTypeTable Name
1-99990000 lớn 270ERead-WriteDiscrete đầu ra Coils
10001-199990000 to 270ERead-OnlyDiscrete input đầu vào Contacts
30001-399990000 to 270ERead-OnlyAnalog input đầu vào Registers
40001-499990000 lớn 270ERead-WriteAnalog output đầu ra Holding Registers

Coil/Register Numbers hoàn toàn có thể được coi như tên vị trị bởi chúng không mở ra trong các thông điệp thực tế. “Data Addressses” được sử dụng trong các thông điệp truyền download (truy xuất dữ liệu).

Ví dụ: Holding Register tất cả số là 40001, gồm “Data Address” là 0000. Sự khác biệt giữa hai quý giá này là độ lệch. Từng bảng gồm một độ lệch không giống nhau. 1, 10001, 30001 và 40001.

Function code

Byte máy hai được “Master” giữ hộ đi là “Function code”. Số lượng này cho “Slave” biết được rằng, add nào cần truy cập để phát âm hay ghi giá chỉ trị.

Function CodeActionTable Name
01 (01 hex)ReadDiscrete đầu ra Coils
05 (05 hex)Write singleDiscrete output đầu ra Coil
15 (0F hex)Write multipleDiscrete output Coils
02 (02 hex)ReadDiscrete input Contacts
04 (04 hex)ReadAnalog input Registers
03 (03 hex)ReadAnalog output Holding Registers
06 (06 hex)Write singleAnalog output đầu ra Holding Register
16 (10 hex)Write multipleAnalog đầu ra Holding Registers

Lệnh và phản hồi trong chuẩn chỉnh MODBUS

Click vào những liên kết trong bảng giúp xem ví dụ về những yêu mong và làm phản hồi

Data AddressesReadWrite SingleWrite Multiple
Discrete đầu ra Coils 0xxxxFC01FC05FC15
Discrete đầu vào Contacts 1xxxxFC02NANA
Analog input Registers 3xxxxFC04NANA
Analog đầu ra Holding Registers 4xxxxFC03FC06FC16

Kiểu dữ liệu

Ví dụ: FC03 cho thấy thêm register 40108 chứa AE41 chuyển sang 16 bit là 1010 1110 0100 0001.

Register 40108 hoàn toàn có thể được hiểu là bất kỳ kiểu dữ liệu 16 bit làm sao sau đây:

Register 40108 cũng hoàn toàn có thể được kết phù hợp với 40109 để tạo ra thành bất kỳ kiểu dữ liệu 32 bit làm sao sau đây:

Byte với Word trong chuẩn chỉnh MODBUS

Chuẩn Modbus không xác định chính xác cách tài liệu được lưu giữ trữ trong các thanh ghi. Do đó, một số trong những nhà cung ứng đã triển khai tích hợp chuẩn chỉnh modbus trong thiết bị của mình để lưu trữ và truyền byte cao hơn thứ nhất sau sẽ là byte tốt hơn. (AE trước 41). Ngoài ra, cũng đều có những nhà chế tạo khác tàng trữ và truyền byte thấp hơn trước đây và tiếp đến là byte cao hơn (41 trước AE).

Tương tự, khi các thanh ghi được kết hợp để sử dụng những kiểu tài liệu 32 bit. Một vài thiết bị tàng trữ và truyền 16 bit cao hơn (word cao) vào thanh ghi trước tiên và word thấp rộng trong thanh ghi máy hai (AE41 trước 5652) trong những khi những máy khác làm trái lại (5652 trước AE41)

Không quan trọng thứ trường đoản cú byte hoặc word được giữ hộ đi, miễn sao thiết bị nhận thấy được là làm phương pháp nào để hoạt động đúng mực theo yêu thương cầu.

Ví dụ: nếu như số 2.923.517.522 được gửi bên dưới dạng số nguyên 32 bit không dấu, nó rất có thể được sắp xếp theo ngẫu nhiên cách nào trong số bốn giải pháp này.

AE41 56525652 AE4141AE 52565256 41AE

Mở rộng lớn thanh ghi (Register) trong chuẩn MODBUS

Phạm vi của các thanh ghi giữ đầu ra giống như là 40001 đến 49999, nó ý niệm rằng ko thể có rất nhiều hơn 9999 thanh ghi. Tuy vậy điều này thường xuyên là đủ cho phần đông các ứng dụng, nhưng bao hàm trường hợp bắt buộc thêm nhiều địa chỉ cửa hàng thanh ghi nữa.

Các thanh ghi 40001 đến 49999 khớp ứng với showroom dữ liệu tự 0000 cho 270E. Nếu chúng ta sử dụng các địa chỉ cửa hàng dữ liệu sót lại từ 270F đến FFFF, thì số thanh ghi tất cả sẵn đang gấp hơn sáu lần, tổng số là 65536. Điều này sẽ khớp ứng với các địa chỉ thanh ghi từ bỏ 40001 mang lại 105536.

Chú ý: các trình tinh chỉnh phần mền sử dụng modbus (PC Master) được viết cùng với giới hạn add từ 40001 đến 49999 với không thể truy vấn các địa chỉ thanh ghi không ngừng mở rộng trong những thiết “Slave”. Và nhiều thiết bị “Slave” không cung ứng sử dụng các địa chỉ cửa hàng thanh ghi mở rộng. Phương diện khác, một số thiết bị “Slave” cung cấp các thanh ghi không ngừng mở rộng này và một vài phần mềm “Master” hoàn toàn có thể truy cập được nó, đặc biệt nếu phần mềm được viết bên trên nền tảng hoàn toàn có thể tùy chỉnh.

Địa chỉ “Slave” 2-byte

Bởi một byte đơn thường được áp dụng để xác định showroom “Slave” cùng mỗi “Slave” trên mạng yêu cầu một showroom duy nhất, đề xuất số “Slave” trên mạng được số lượng giới hạn ở 256. Số lượng giới hạn được khẳng định trong modbus thậm chí còn thấp rộng và ở mức 247.

Để quá qua số lượng giới hạn này, rất có thể thực hiện nay một sửa đổi đối với giao thức để áp dụng hai byte mang đến địa chỉ. “Master” với “Slave” đều yêu cầu được hỗ trợ sửa thay đổi này. Khi đó hoàn toàn có thể chỉ định mở rộng giới hạn về số lượng “Slave” vào mạng lên 65535 do hai byte mang đến địa chỉ.

Theo mang định, đa số phần mềm cung cấp Modbus sử dụng showroom 1 byte. Lúc một địa chỉ cửa hàng lớn hơn 255 được nhập vào, phần mềm sẽ tự động chuyển sang định địa chỉ 2 byte và giữ nguyên ở chế độ này cho tất cả các add cho cho đến lúc tắt định add 2 byte theo cách thủ công.

Ứng dụng chuẩn chỉnh MODBUS

Modbus là 1 trong những giao thức mở, điều này có nghĩa là các nhà cung cấp hoàn toàn hoàn toàn có thể tích hợp chuẩn chỉnh Modbus vào thiết bị của mình miễn chi phí mà chưa hẳn trả tiền bạn dạng quyền. Nó đang trở thành một tiêu chuẩn giao thức media trong công nghiệp với đang là phương tiện phổ biến nhất hiện gồm để kết nối các thiết bị năng lượng điện tử công nghiệp. Nó được sử dụng rộng rãi bởi các nhà sản xuất trong tương đối nhiều ngành công nghiệp. Modbus thường được thực hiện để truyền dấu hiệu từ thiết bị đo đạc và tinh chỉnh trở lại bộ điều khiển và tinh chỉnh chính hoặc khối hệ thống thu thập dữ liệu, ví dụ như khối hệ thống đo ánh nắng mặt trời và độ ẩm và truyền công dụng tới thứ tính. Modbus hay được thực hiện để kết nối máy tính thống kê giám sát với thiết bị đầu cuối từ xa (RTU) trong hệ thống điều khiển đo lường và thống kê và thu thập dữ liệu (SCADA). Các phiên bản của giao thức Modbus phổ cập cho các đường nối liền (Modbus RTU cùng Modbus ASCII) và mang đến Ethernet (Modbus TCP).

Sự khác hoàn toàn giữa RTU và TCP

Một title 7 byte new được gọi là MBAP Header (Modbus Application Header) được cấp dưỡng đầu thư. Tiêu đề này có dữ liệu sau:

Mã định danh (Transaction ID): 2 byte vị Client để để nhận dạng từng yêu mong duy nhất. Các byte này được tái diễn bởi vps vì những phản hồi của nó rất có thể không được trao theo lắp thêm tự như các yêu cầu.

Định dạng giao thức (Protocol ID): 2 byte do Client đặt, luôn luôn = 00 00

Độ nhiều năm (Length): 2 byte xác minh số byte trong thông điệp đề nghị theo dõi.

Định dạng đơn vị chức năng (Unitl
D): 1 byte được đặt vày Client và được Server tái diễn để xác minh một Slave từ bỏ xa được kết nối trên đường truyền tiếp liền hoặc trên những bus khác.

*

Yêu cầu tương đương với ví dụ như về Modbus RTU này:

11 03 006B 0003 7687

Trong đó:

11: Địa chỉ Slave
ID (17 = 11 hex)03: Function code (đọc thanh ghi giữ đầu ra tương tự như (Analog đầu ra Holding Registers))006B: add dữ liệu của thanh ghi trước tiên được yêu cầu. (40108-40001 = 107 = 6B hex)0003: tổng thể thanh ghi được yêu cầu. (đọc 3 thanh ghi 40108 mang lại 40110)7687: CRC (kiểm tra dự phòng theo chu kỳ) để soát sổ lỗi.

Xem thêm: 60+ Hình Ảnh Mèo Đẹp Nhất - Những Hình Ảnh Con Mèo Đẹp Dễ Thương Nhất

Modbus TCP tương tự sẽ là:

0001 0000 0006 11 03 006B 0003

Trong đó:

0001: mã định danh0000: định dạng giao thức0006: độ nhiều năm tin nhắn (6 byte)11: định dạng đơn vị (17 = 11 hex)03: Function code (đọc thanh ghi giữ lại đầu ra giống như (Analog output đầu ra Holding Registers))006B: showroom dữ liệu của thanh ghi thứ nhất được yêu thương cầu. (40108-40001 = 107 = 6B hex)0003: tổng số thanh ghi được yêu cầu. (đọc 3 thanh ghi 40108 đến 40110)

Sự khác biệt giữa ASCII với RTU

Ví dụ: cùng bình luận yêu ước hiển thị các byte tài liệu của Registers 40108 mang đến 40110 từ showroom 17 của Slave

11 03 00 6B 00 03

Yêu ước từ Modbus ASCII hoàn chỉnh được thực hiện bằng cách thêm các ký tự phân định thông điệp trước. Dấu hai chấm được thêm vào đầu thông điệp, LRC, ký kết tự xuống dòng và mối cung cấp cấp tài liệu dòng được thêm vào thời điểm cuối thông điệp như sau:

: 1 1 0 3 0 0 6 B 0 0 0 3 7 E CR LF

Mỗi ký tự hiện thời được xem như là một ký tự ASCII cùng được sửa chữa thay thế bằng quý hiếm hex của nó để lấy ra thông điệp cuối cùng.

Kích thước yêu ước Modbus ASCII này là 17 byte (170 bit)

Thông điệp Modbus RTU tương đương sẽ là:

11 03 00 6B 00 03 76 87

Kích thước yêu mong Modbus RTU này là 8 byte (80 bit)

Trên đây, acpro.edu.vn đã share rất cụ thể cho chúng ta về chuẩn truyền thông Modbus. Chúng tôi hy vọng rằng, với những kiến thức về Modbus mà các bạn có được thông qua nội dung bài viết này để giúp đỡ ích cho các bạn trong quá trình nghiên cứu, học tập và làm cho việc. Xin cảm ơn!