2.5 Giao thức Modbus/RTU
2.5.1 Cơ chế giao tiếp
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 (ví dụ TCP/IP, Modbus Plus, MAP).
Mạng Modbus chuẩn:
Các cổng Modbus chuẩn trên các bộ điều khiển của Modicon cũng như một số nhà sản xuất khác sử dụng giao tiếp nối tiếp RS-232C. Các bộ điều khiển này có thể được nối mạng trực tiếp hoặc qua modem. Các trạm Modbus giao tiếp với nhau qua cơ chế chủ/tớ (Master/Slave), trong đó chỉ một thiết bị chủ có thể chủ động gửi yêu cầu, còn các thiết bị tớ sẽ đáp ứng bằng dữ liệu trả lại hoặc thực hiện một hành động nhất định theo như yêu cầu. Các thiết bị chủ thông thường là các máy tính điều khiển trung tâm và các thiết bị lập trình, trong khi các thiết bị tớ có thể là PLC hoặc các bộ điều khiển số chuyên dụng khác.
Một trạm chủ có thể thông báo yêu cầu tới riêng một trạm tớ nhất định, hoặc gửi thông báo đồng loạt tới tất cả các trạm tớ. Chỉ trong trường hợp nhận được yêu cầu riêng, các trạm tớ mới gửi thông báo đáp ứng trả lại trạm chủ. Trong một thông báo yêu cầu có chứa địa chỉ trạm nhận, mã hàm dịch vụ bên nhận cần thực hiện, dữ liệu đi kèm và thông tin kiểm lỗi.
Modbus trên các mạng khác:
Trong một số mạng như Modbus Plus và MAP sử dụng Modbus là giao thức cho lớp ứng dụng, các thiết bị có thể giao tiếp theo cơ chế riêng của mạng đó. Ví dụ trong giao tiếp ngang hàng (Peer-to-peer), mỗi bộ điều khiển có thể đóng vai trò là chủ hoặc là tớ trong các lần giao tiếp (một chu kỳ yêu cầu - đáp ứng) khác nhau. Một trạm có thể cùng lúc có quan hệ logic với nhiều đối tác, vì vậy nó có thể đồng thời đóng vai trò là chủ và tớ trong các giao tiếp khác nhau.
Nhìn nhận ở mức giao tiếp thông báo, giao thức Modbus trên các mạng khác vẫn tuân theo nguyên tắc chủ/tớ mặc dù phương pháp giao tiếp mạng cấp thấp có thể là ngang hàng. Khi một bộ điều khiển gửi một yêu cầu thông báo thì nó đóng vai trò là chủ và chờ đợi đáp ứng từ một thiết bị tớ. Ngược lại, một bộ điều khiển sẽ đóng vai trò là tớ nếu nó nhận được thông báo yêu cầu từ một trạm khác và phải gửi trả lại đáp ứng. Chu trình yêu cầu-đáp ứng: Giao thức Modbus định nghĩa khuôn dạng của thông báo yêu cầu cũng như của thông báo đáp ứng.
Một thông báo yêu cầu bao gồm các phần sau:
• Địa chỉ trạm nhận yêu cầu (0-247), trong đó 0 là địa chỉ gửi đồng loạt.
• Mã hàm gọi chỉ thị hành động trạm tớ cần thực hiện theo yêu cầu.
• Dữ liệu chứa các thông tin bổ sung mà trạm tớ cần cho việc thực hiện hàm được gọi.
• Thông tin kiểm tra lỗi giúp trạm tớ kiểm tra độ vẹn toàn của nội dung thông báo nhận được.
Thông báo đáp ứng cũng bao gồm các thành phần giống như thông báo yêu cầu. Địa chỉ ở đây của chính trạm tớ đã thực hiện yêu cầu và gửi lại đáp ứng. Trong trường hợp bình thường, mã hàm được giữ nguyên như trong thông báo yêu cầu và dữ liệu chứa kết quả thực hiện hành động, ví dụ nội dung hoặc trạng thái các thanh ghi. Nếu xảy ra lỗi, mã hàm quay lại được sửa để chỉ thị đáp ứng là một thông báo lỗi, còn dữ liệu mô tả chi tiết lỗi đã xảy ra. Phần kiểm lỗi giúp trạm chủ xác định độ chính xác của nội dung thông báo nhận được.