-
Thành viên cấp 6
Sử dụng MODBUS trong điều khiển tự động hóa
Không biết post ở đâu nên gửi ở đây vậy, vì thấy mục S7-200 anh em vào nhiều :-*
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.
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.
Hình 2. 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. (hình 2)
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.
Hình 3: 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
Hình 4: 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.
(Sưu tầm)
Email:
Hidden Content
Hidden Content
Hidden Content
Tel: 0989.999973
Cung cấp, thay thế tấm cảm ứng và LCD các loại màn hình
Cung cấp PLC: Mitsubishi, Siemens, Delta, Vigor, Xinje, Omron, Panasonic (Nais), ...
Cung cấp HMI Samkoon, Fuji Hakko, Proface, Hitech, Weintek, Mitsubishi, Siemens, Delta, Xinje, ...
Đọc password các loại PLC và HMI
-
The Following 2 Users Say Thank You to zippopham For This Useful Post:
-
- Cái này thật sự rất thông dụng trong các thiết bị tự động hóa hiện nay nhưng bản thân manual của các thiết bị đó lại nói rất ít và không chi tiết về modbus nên rất khó khăn trong việc lập trình truyền và nhận dữ liệu
- một mặt khác của modbus như mình thấy là nó hoạt động theo nguyên lý " hỏi tôi thì tôi trả lời " như vậy mất thêm một thời gian gọi thiết bị nữa nên nó bị hạn chế vầ số lượng bit truyền và thời gian truyền tín hiệu
-
-
Thành viên cấp 7
Thư viện modbus master CP341 cho các anh em sử dụng với PLC S7-300.
http://www.mediafire.com/?4f88srviw596epc
-
-
Thành viên Đồng
cho em hỏi 1 tí, thế dùng MODBUS có thế giao tiếp S7 200 với S7 300 không nhỉ ? ai đã làm chưa chia sẻ cho anh em vớin
-
-
Thành viên cấp 2
Theo mình biết là được nhưng chưa test thử.
-
-
Thành viên Đồng
em có con PLC 200 CPU 224 và PLC 300 314c2DP vậy có giao tiếp được không ạ, hay có cần thêm modul gì nữa không ?
-
-
Little PLC
module CP340 sử dụng cho truyền thông MODbus hay sao đó. Coi tra lại nhé Mr anh ^^.
-
-
Thành viên cấp 6
Gửi bởi
anhlv.ddt
em có con PLC 200 CPU 224 và PLC 300 314c2DP vậy có giao tiếp được không ạ, hay có cần thêm modul gì nữa không ?
Lấy con Modul Profibus-DP EM 277 đi Việt Anh ui \:D/
Email:
Hidden Content
Hidden Content
Hidden Content
Tel: 0989.999973
Cung cấp, thay thế tấm cảm ứng và LCD các loại màn hình
Cung cấp PLC: Mitsubishi, Siemens, Delta, Vigor, Xinje, Omron, Panasonic (Nais), ...
Cung cấp HMI Samkoon, Fuji Hakko, Proface, Hitech, Weintek, Mitsubishi, Siemens, Delta, Xinje, ...
Đọc password các loại PLC và HMI
-
-
Bác zipo ơi Profibus và modbus là hai chuẩn khác nhau hoàn toàn mà bác
Không biết bác làm thử chưa nhưng em thấy dùng modul profibus để truyền thông modbus thì em chưa làm
em cũng làm qua cả 2 chuẩn này rồi nếu bác đã sử dụng được modul EM277 rồi thì chia sẻ cho anh em chút kinh nghiệm nhé
Thank anh
-
-
Thành viên Đồng
ý zippo nói mình mua modul EM 277 là do con 300 có DP. hihi, cái này làm rồi, giờ muốn làm với modbus, nó khác profibus nhé zippo :D
-
Tag của Chủ đề này
Quyền viết bài
- Bạn Không thể gửi Chủ đề mới
- Bạn Không thể Gửi trả lời
- Bạn Không thể Gửi file đính kèm
- Bạn Không thể Sửa bài viết của mình
-
Nội quy - Quy định
Back to Top
Múi giờ GMT +7. Bây giờ là 04:38 AM.
Phiên bản 4.2.5
Phát triển bởi thành viên PLCVietNam®.
Đánh dấu