Sửa chữa bảo dưỡng động cơ điện các loại

Cơ điện HUẾ HƯƠNG chuyên: - Quấn mới, sửa chữa động cơ điện, mô tơ điện các loại.... - Máy phát điện. - Nồi cơm điện, quạt điện.... - Nhận làm kích điện

Nhận làm mạch invert 12 ra 220V, mạch kích cá công suất theo yêu cầu

Công suất 1000W: Đánh bắt cá trên thuyền (sông, ao, hồ...).

Nhận lắp đặt tủ điện bảng điện

Sửa chữa thay thế lắp mới bảng điện tủ điện điều khiển động cơ

Bán Ronha kiểm tra roto

Ronha thiết bị không thể thiếu thợ điện cơ. Bán phân phối toàn quốc

Bán sách, sơ đồ quấn các loại động cơ, tài liệu

Sách kinh nghiệm ghi chép tất cả các sơ đồ động cơ, máy phát điện từ đơn giản đến phức tạp, sách được ghi từ số liệu thực tế, dữ liệu được scan lại

Hiển thị các bài đăng có nhãn mobus. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn mobus. Hiển thị tất cả bài đăng

Thứ Hai, 16 tháng 8, 2021

Tín hiệu Modbus RTU là gì ? Modbus RS485 Modbus RS232

 Tín hiệu Modbus RTU là gì ? Modbus RS485 Modbus RS232. Đây là các phượng thức truyền thông mới đang dần hình thành. Phương thức truyền thông bằng modbus đang ngày càng phổ biến bởi tín tiên lợi và dễ sử dụng.

Ngày xưa để truyền tín hiệu của 1 cảm biến thì phải dùng hai dây. Ngày nay truyền tín hiệu của 10 hoặc 20 cảm biến ta cũng cần dùng 2 dây. Điểm khác biệt ở đây là ngày xưa dùng 4-20mA hoặc 0-10v thì ngày nay dùng tín hiệu Modbus RTU Rs485.

Rs232 và Rs485 khá nhau gì ?

Như các bạn biết, RS232 có định nghĩa chuẩn giao diện cơ học ( giắc cắm), ở các máy tính PC đều có cổng truyền thông theo chuẩn RS-232 mà ta hay gọi là cổng COM. Còn RS485, thì ta hay thấy nó được truyền trên 2 dây, và khoảng cách xa hơn nhiều so với RS232. Vậy, sự khác nhau cơ bản giữa hai chuẩn này là gì?

Hình dưới sẽ cho chúng ta cái nhìn cơ bản sự khác nhau về mặt vật lý như: độ dài đường truyền, chế độ truyền thông, mức logic vật lý, dải tốc độ truyền thông,….

Ngoài ra, hai chuẩn này có một sư khác nhau cơ bản là ở phương thức truyền dẫn tín hiệu, hay hiểu nôm na là cách thức hoạt động:

  • RS-232 cho phép sử dụng tối thiểu 3 dây: Tx ( truyền), RX ( nhận) và GND ( đất). Trong đó, trạng thái logic của tín hiệu sử dụng mức chênh áp giữa TX và RX so với dây đất GND.
  • RS-485 sử dụng chênh lệch điện áp giữa 2 dây A và B để phân biệt logic 0 và 1,  chứ không so với đất. Đặc biệt, khi truyền tín hiệu xa, nếu có sụt áp thì đồng thời sụt trên cả 2 dây nên tín hiệu vẫn đảm bảo.

Chính vì vậy mà RS485 cho phép truyền tín hiệu xa hơn và tốc độ truyền cho phép cũng cao hơn RS232.

Thêm nữa, RS485 cho phép liên kết đa điểm, gồm nhiều thiết bị có thể truyền thông trong 1 mạng còn RS232 thì chỉ truyền theo phương thức điểm – điểm, tức là khi hai thiết bị đang trực tiếp kết nối truyền thông với nhau thì không thể có thiết bị thứ 3 cùng tham gia vào trao đổi dữ liệu được.

Tín hiệu Modbus RTU là gì ? Modbus RS485 Modbus RS232

Mục Lục:

  • 1 Tín hiệu Modbus RTU là gì ? Modbus RS485 Modbus RS232
    • 1.1 Cách chuyển 4-20mA sang Modbus RTU ?

Giao thức Modbus RTU là một giao thức mở, sử dụng đường truyền vật lý RS-232 hoặc RS485 và mô hình dạng Master-Slave. Đây là một giao thức được sử dụng rộng rãi trong nhiều lĩnh vực như BMS (Building Management Systems), tự động hóa, công nghiệp, điện lực,…. Chắc hẳn sẽ có bạn tự hỏi, tại sao giao thức Modbus này lại thông dụng như thế, đi đến đâu, đụng vào thiết bị gì thì hầu như cũng có giao thức này? Vâng, câu trả lời cho câu hỏi trên chắc chỉ cần gói gọn trong vài từ: Ổn định – Đơn giản – dễ dùng.

Modbus được coi là giao thức truyền thông hoạt động ở tầng “Application”, cung cấp khả năng truyền thông Master/Slave giữa các thiết bị được kết nối thông qua các bus hoặc network. Trên mô hình OSI, Modbus được đặt ở lớp 7. Modbus được xác định là một giao thức hoạt động theo “hỏi/đáp” và sử dụng các “function codes” tương ứng để hỏi đáp.

Cấu trúc bản tin Modbus RTU

Một bản tin Modbus RTU bao gồm: 1 byte địa chỉ  –  1 byte mã hàm – n byte dữ liệu – 2 byte CRC như hình ở dưới:

Chức năng và vai trò cụ thể như sau:

  • Byte địa chỉ: xác định thiết bị mang địa chỉ được nhận dữ liệu (đối với Slave) hoặc dữ liệu nhận được từ địa chỉ nào (đối với Master). Địa chỉ này được quy định từ 0 – 254
  • Byte mã hàm: được quy định từ Master, xác định yêu cầu dữ liệu từ thiết bị Slave. Ví dụ mã 01: đọc dữ liệu lưu trữ dạng Bit, 03: đọc dữ liệu tức thời dạng Byte, 05: ghi dữ liệu 1 bit vào Slave, 15: ghi dữ liệu nhiều bit vào Slave …
  • Byte dữ liệu: xác định dữ liệu trao đổi giữa Master và Slave.
    • Đọc dữ liệu:
      • Master:  2 byte địa chỉ dữ liệu – 2 byte độ dài dữ liệu
      • Slave: 2 byte địa chỉ dữ liệu – 2 byte độ dài dữ liệu – n byte dữ liệu đọc được
    • Ghi dữ liệu:
      • Master: 2 byte địa chỉ dữ liệu  – 2 byte độ dài dữ liệu – n byte dữ liệu cần ghi
      • Slave: 2 byte địa chỉ dữ liệu – 2 byte độ dài dữ liệu
  • Byte CRC: 2 byte kiểm tra lỗi của hàm truyền. cách tính giá trị của Byte CRC 16 Bit

 

Sự khác nhau giữa Modbus RTU và Modbus TCP 

Sự khác nhau cơ bản giữa MODBUS RTU và MODBUS TCP ( còn được gọi là modbus IP, Modbus Ethernet hay Modbus TCP/IP) là Modbus TCP chạy ở cổng vật lý Ethernet và Modbus RTU thì chạy ở cổng vật lý serial nối tiếp ( RS232 hoặc RS485).

MODBUS RTU Memory Map

Modbus RTU
Data Type
Common
name
Starting address
Modbus CoilsBits, binary values, flags00001
Digital InputsBinary inputs10001
Analog InputsBinary inputs30001
Modbus RegistersAnalog values, variables40001

 

Sự khác nhau giữa Modbus RTU và Modbus ASCII

Đây là hai chế độ truyền dữ liệu cơ bản trong giao thức Modbus khi sử dụng đường truyền nối tiếp là: ASCII và RTU.  Mỗi một chuẩn sẽ có một cách mã hóa tin nhắn khác nhau, cho dù đều alf chuẩn Modbus chung. Ví dụ, Modbus ASCII cho phép người đọc có thể đọc trực tiếp tin nhắn trong bản tin. Nhưng với Modbus RTU, thì nội dung data đã được mã hóa nhị phân và không thể đọc được trong quá trình giám sát. Một điểm đặc biệt trong giao thức Modbus là trong một đường truyền dẫn Modbus, tất cả các giao thức phải là giống nhau, có nghĩa là Modbus ASCII không thể giao tiếp với modbus RTU và ngược lại.

Các tính chất của Modbus ASCII và Modbus RTU 

 MODBUS/ASCIIMODBUS/RTU
CharactersASCII 0…9 and A..FBinary 0…255
Error checkLRC Longitudinal Redundancy CheckCRC Cyclic Redundancy Check
Frame startcharacter ‘:‘3.5 chars silence
Frame endcharacters CR/LF3.5 chars silence
Gaps in message1 sec1.5 times char length
Start bit11
Data bits78
Parityeven/oddnoneeven/oddnone
Stop bits1212

 

Cách chuyển 4-20mA sang Modbus RTU ?

Do các hệ thống cũ phần lớn các thiết bị điều cho ra dạng Analog 4-20mA hoặc 0-10V chính vì nếu muốn truyền về dạng Modbus IP chúng ta cần một bộ chuyển tín hiệu analog 4-20mA / 0-10V sang Modbus RTU. Các bộ chuyển đổi Analog 4-20mA sang modbus này có thể nhận cùng lúc 4 ( Z-4AI ) hoặc 8 kênh ( Z-8AI ) analog 4-20mA / 0-10V truyền về tín hiệu Modbus IP.

bộ chuyển đổi 8 kênh analog 4-20ma ra modbus rtu

Bộ chuyển đổi 8 kênh analog 4-20mA ra Modbus RTU

Từ bộ chuyển đổi 8 kênh này chúng ta kết nối với một bộ Modbus Gateway có nhiệm vụ nhận tín hiệu Modbus RTU RS 485 thành RJ45 ( internet ).

modbus gateway internet - z-key

Modbus Gateway | Seneca Z-key

ứng dụng bộ chuyển đổi modbus RTU sang internet

Ứng dụng bộ chuyển đổi Modbus RTU sang Internet.

Với một bộ gateway Z-key chúng ta có thể truyền thông về PLC và cả PC cùng một lúc. Hai thiết bị này làm Master cho các thiết bị Slave như Z-8AI.

Với cách truyền như vậy chúng ta sẽ kết nối được rất nhiều Modul Analog vào internet với chi phí cực thấp so với việc dùng Modul Analog kết nối với PLC hoặc DCS.

Đọc dữ liệu và kết nối RS485

 https://www.youtube.com/watch?v=wdEdVuWGSp8&t=36s

Đọc dữ liệu và kết nối RS485

Đọc dữ liệu  kết nối RS485, hướng dẫn phần mềm RS485, tìm hiểu về tín hiệu RS485. Cách kết nối giao tiếp RS485, tín hiệu RS485 là gì, phần mềm đọc RS485.

Bài viết này sẽ không nói chuyên sâu, mà sẽ nói khái quát và dể hiểu nhất cho những ai chưa biết về kết nối RS485. Ai cao thủ rồi đọc thì đừng cười nhé. Chỉ chia sẻ những gì đã biết cho những người chưa biết.

Tín hiệu RS485 là gì?

Là tên của một chuẩn kết nối có dây giữa thiết bị với máy tính, với PLC. Mà từ đó ta có thể đọc được thông tin của các thiết bị. Để từ đó ta có thể giám sát thiết bị từ xa hoặc điều khiển thiết bị từ xa.

>>Tham khảo: Cảm biến quang.

Các thiết bị có tích hợp truyền thông RS485 thì các thông tin sẽ lưu trong bộ nhớ. Lấy một điển hình là cảm biến đo nhiệt ẩm RS485 thì giá trị nhiệt độ và độ ẩm sẽ thay đổi liên tục và lưu trên hai vùng nhớ. Lừ đó máy tính sẽ đọc hai vùng nhớ này, mà ta có thể từ xa biết được nhiệt độ và độ ẩm khu vực. Từ đó giá trị sẽ được lưu trữ lại và in report.

Vì sao gọi là giám sát hệ thống từ xa?

Từ thiết bị có kết nối RS485 với hai dây mắc song song đến máy tính có chiều dài lên đến 1500m. Đủ xài cho một nhà máy, ngồi trong phòng điều khiển có thể quan sát được trạng thái thiến bị.

Thông số của một thiết bị có kết nối RS485.

Để kết nối được thì ta cần biết về thông số RS485 trên thiết bị nó như thế nào.

Thường chúng ta sẽ quan tâm đến nghi thức giao tiếp.

Hướng dẫn phần mềm Đọc dữ liệu và kết nối RS485

Thông số nghi thức RS485.

Đây là thông số ví dụ của cảm biến đo nhiệt ẩm, nghi thức giao tiếp là Modbus RTU.

>>Tham khảo: Bộ điều khiển nhiệt độ

Đọc dữ liệu và kết nối RS485 Modbus RTU.

Đối với kết nối Đọc dữ liệu và kết nối RS485 thì có thể kết nối nhiều thiết bị nên mỗi thiết bị sẽ được quy định một cái tên gọi là ID và là một số tự nhiên, ID=1…ID=255.

Vậy chúng ta quy định bằng cách nào. Đối với các thiết bị có hiển thị thì thường ta cài ID bằng nút nhấn. Còn đối với các thiết bị không có hiển thị thì thường chọn ID bằng Switch hoặc bằng phần mềm của hãng.

>>Tham khảo: Ổ cắm công nghiệp

Hướng dẫn phần mềm Đọc dữ liệu và kết nối RS485

Chọn ID khác nhau và tốc độ cho cảm biến thì giống nhau.

Đây là một loại cảm biến đo nhiệt ẩm, ID và tốc độ được chọn thông qua các switch. Nói tới tốc độ truyền thì cũng nói thêm luôn là trên cùng một hệ thống thì ta nên cài đặt các thiết bị cùng tốc độ với nhau.

Hướng dẫn phần mềm Đọc dữ liệu và kết nối RS485.

Để kết nối cảm biến đo ẩm RS485 thì ta cần có thêm một sợi cáp. Nó kết nối thiết bị bằng hai dây rồi đưa về máy tính qua cổng USB, trên thị trường ta có thể mua dễ dàng và tên gọi của nó là cáp RS485 sang USB.

>>Tham khảo: Ống khí nén.

Kết nối với thiết bị như thế nào?

Lấy một cảm biến đo ẩm RS485 thì nó chỉ có 4 dây. Hai dây cấp nguồn và hai dây kết nối thường có ký hiệu A+, B- hoặc TRX+, TRX-. Trên sọi cáp cũng có những ký hiệu này, và chỉ cần kết nối hai chân này là đủ.

Đọc dữ liệu và kết nối RS485.

Mạng Kết nối RS485.

Về phần kết nối dây nhợ đã xong, tiếp đến là phần quang trọng nhất là phần mềm.

Ai có như cầu mua cáp chất lượng RS485 thì click vào hình nhé.

Cáp chuyển đổi RS485 sang USB, cáp kết nối RS485

Cáp chuyển đổi RS485 sang USB, cáp kết nối RS485.

Phần mềm kết nối RS485 Kepserver Đọc dữ liệu và kết nối RS485.

Phần mềm Đọc dữ liệu và kết nối RS485, có thể kết nối với nhiều thiết bị. Các loại PLC của nhiều hãng, nó là trung gian giữa PLC Siemens với Wincc. Phần này bạn nào muốn nghiên cứu sâu thì tìm hiểu. Trong bài này chỉ hướng dẫn cách kết nối đơn giản và cơ bản nhất thôi.

Link: tải phần mềm và lập trình mẫu

Sau khi tải về thì bạn cài đặt bình thường như bao phần mềm khác, đôi khi có báo lỗi thì bỏ qua. Không sao cả, cài xong mở phần mềm lên chiến thôi.

Viết và trình bày trên đây thì không biết bao nhiêu cho đủ. Xem cái clip này cho nó nhanh.

Ai muốn thử Đọc dữ liệu và kết nối RS485 thì có thể mua cảm biến đo nhiệt ẩm bên mình có sẵn giá rẻ về test hoặc làm đề tài nghiên cứu.

Trên đây là những gì mình biết và chia sẻ cho mọi người học hỏi, có thể cũng có nhiều thiếu sót, nhưng mà tôi đã làm được, và kết nối được, đọc được dữ liệu của các thiết bị RS485.

Giải pháp chống nhiễu khi đưa tín hiệu 4-20ma về modbus


giải pháp chống nhiễu tín hiệu analog 4-20ma

Ở bài chia sẻ này; tôi sẽ khái quát về tín hiệu analog 4-20ma. Làm sao để tín hiệu dòng điện analog 4-20ma không bị nhiễu trong khi truyền ? Và giải pháp kèm theo cho từng trường hợp. Đặc biệt là các giải pháp đo lường tự động hóa điều khiển từ xa hoặc là các cách thức chuyển nhiều tín hiệu analog 4-20ma 0-10v về 1 tín hiệu modbus rtu/ modbus rs485 ?

Sau đây chúng ta cùng tìm hiểu và giải quyết các vấn đề trên:

Tín hiệu analog 4-20ma là gì ?

Tín hiệu 4-20ma là một tín hiệu dòng điện chuẩn; trong công nghiệp thường coi đó là tín hiệu analog 4-20ma

Chúng ta thường thấy tín hiệu analog 4-20ma được sử dụng rất nhiều trong các thiết bị lập trình PLC; cảm biến nhiệt độ; cảm biến đo áp suất hay các đồng hồ đọc nhiệt độ …

Ví dụ cụ thể về tín hiệu analog 4-20ma:

tín hiệu 4-20ma
tín hiệu 4-20ma

Giả sử bạn muốn dùng cảm biến áp suất dãy đo 0-10bar gắn vào bơm tăng áp 8kg/cm3. Thì chắc chắn tín hiệu đo của cảm biến khi xuất ra là 4-20ma. Bạn kết nối với một bộ đọc hay bộ hiển thị thì tín hiệu này sẽ chuyển thành thông số áp suất cảm biến đang đo.

Tùy vào nhu cầu người dùng 0-10bar hay 0-100bar,… thì nhà sản xuất cũng chế tạo đều xuất ra tín hiệu dòng 4-20ma.

Chỉ khác nhau 0-10bar dùng cho bơm dưới 8kg, 0-100bar dùng cho bơm dưới 85kg

Nếu bạn dùng cảm biến 0-100bar gắn bơm 8kg chắc chắn xảy ra sai số lớn

Chi tiết cảm biến analog 4-20ma xem tại:

Cảm biến áp suất sr1 hãng Georgin xuất xứ pháp

Đặc biệt lưu ý đối với cảm biến áp suất hay đồng hồ áp suất :

Dãy đó thực tế trên thiết bị phải gần với dãy đo thực tế tại khu vực đo như ví dụ trên. Mục đích để đảm bảo độ chính xác cao trong khi đó

Tại sao nên dùng tín hiệu 4-20ma mà không dùng tín hiệu 0-20ma / 0-10v?

Sau đây là những ưu điểm nổi trội của dòng tín hiệu này so với các dòng tín hiệu khác

Ưu điểm của tín hiệu analog 4-20ma:

Tín hiệu dòng điện 4-20ma truyền được xa hơn các tín hiệu khác

Bị ảnh hưởng ít bởi các tín hiệu xung quanh

Đặc biệt analog 4-20ma không bị mất đi khi truyền xa

Dùng 4-20ma sẽ giảm thiểu chi phí về dây dẫn và các kết nối phức tạp

Thêm vào đó các thiết kế bộ đọc hay plc; bộ hiển thị…. Đều đọc được dòng analog này

Đó là những lý do vì sao hiện nay người dùng đều hướng đến tín hiệu dòng 4-20ma sử dụng chung cho các thiết bị điện

Đường truyền tín hiệu analog 4-20ma xa bao nhiêu ?

đường truyền tín hiệu 4-20ma khi dùng cảm biến nhiệt
đường truyền tín hiệu 4-20ma khi dùng cảm biến nhiệt

Đây là câu hỏi rất nhiều bạn sinh viên thường hỏi tôi trong các khóa học bổ trợ về tự động hóa thiết bị trong công nghiệp

Tôi xin chia sẻ luôn với bạn đọc về đường truyền tín hiệu dòng analog này

Khoảng cách xa nhất mà tín hiệu 4-20ma truyền được là dưới 1km; Với mức độ truyền này tín hiệu dòng 4-20ma vẫn không bị suy giảm trong khi các tín hiệu khác lại giảm theo chiều dài đường truyền.

Và hầu hết tất cả các tín hiệu đều bị nhiễu trong khi truyền đi xa

Giải pháp khắc phục nhiễu tín hiệu đã được tôi chia sẻ phía dưới

Lưu ý:

Nguồn cấp hay còn gọi nguồn nuôi cho tín hiệu dòng điện 4-20ma không làm ảnh hưởng đến đường truyền tín hiệu

Tín hiệu dòng điện 4-20mA active và 4-20ma passive khác nhau ra sao ?

Chỉ có những kỹ sư làm việc lâu năm hay những người tinh ý thì sẽ để ý đến sự khác biệt giữa 2 loại tín hiệu này

Ta chỉ hiểu đơn giản

4-20ma Active là loại tín hiệu 3 dây được cấp nguồn áp 24 cho nó để nó hoạt động. Trong đó 2 dây dùng cho nguồn cấp và 1 dây đưa về 4-20ma Active

4-20ma passive là loại 2 dây không nguồn. Ví dụ như trong các bộ chuyển đổi nhiệt độ, bộ chuyển đổi tín hiệu analog; bộ chuyển đổi tín hiệu modbus rtu rs 485; bộ chuyển đổi tín hiệu 4-20ma 0-10v….

Điểm khác biệt nữa là tín hiệu 4-20ma passive có khả năng ít bị nhiễu hơn tín hiệu 4-20ma Active trong khi truyền. Nhưng ngược lại các bộ đọc hay thiết bị lập trình plc lại không đọc được tín hiệu dòng passive

Giải pháp ở đây là chúng ta chỉ cần cấp một nguồn áp 24Vdc là có thể xử lý tốt vấn đề này

Giải pháp cách ly chống nhiễu cho tín hiệu analog 4-20ma ?

Để chống nhiễu tín hiệu dòng analog 4-20ma hiệu quả đảm bảo tín hiệu truyền xa không bị nhiễu; tăng thêm độ chính xác cho các thiết bị đo. Tôi xin đưa ra một vài giải pháp trong các trường hợp cụ thể để bạn đọc và người dùng dễ hình dung

nhiễu tín hiệu analog 4-20ma
nhiễu tín hiệu analog 4-20ma

Trường hợp:

Người dùng muốn tín hiệu đầu vào dao động 0-30v và tín hiệu đầu ra 0-10v/ 0-5v/ 1-5v hay 4-20ma/0-20ma… Thì ta nên dùng K109S hoặc K109UI:

giải pháp chống nhiễu tín hiệu 4-20ma
giải pháp chống nhiễu tín hiệu 4-20ma

>>bộ cách ly chống nhiễu nguồn cấp dòng đầu vào đầu ra<<<

Người dùng muốn chia trực tiếp tín hiệu analog thành 2 tín dòng tín hiệu: 1 dòng 4-20ma và 1 dòng 0-10v hoặc cùng lúc 2 dòng 4-20ma hay cùng lúc 2 dòng 0-10v truyền đi theo 2 hướng độc lập ta nên dùng bộ cách ly chống nhiễu chia tín hiệu z170reg:

Bộ chuyển đổi tín hiệu cách ly

Hoặc là muốn đưa về 1 tín hiệu analog ( 4-20ma hay 0-10v)  và 1 tín hiệu relay người dùng có thể tham khảo cách thức chia của bộ z109reg

>>> Cách chia tín hiệu ra 1 analog và 1 relay <<<

Cách đưa tín hiệu analog 4-20ma về tcp/ip thông qua modbus rtu rs485 hiệu quả?

Việc đưa nhiều tín hiệu dòng 4-20ma 0-10v về tín hiệu modbus rtu rồi tìm cách đưa tín hiệu modbus rtu sang tín hiệu tcp/ip để quản lý kiểm soát các vấn đề tự động hóa thiết bị từ xa trong nhà máy đang là vấn đề thiết thực chung cho các doanh nghiệp trong thời điểm hiện đại hóa ngành công nghiệp 4.0 

Có rất nhiều giải pháp đưa 4-20ma về tcp-ip. Nhưng để mà tiết kiệm chi phí doanh nghiệp; giảm bớt các kết nối phức tạp, tăng khoảng không gian cho các tủ điện. Đồng thời tín hiệu truyền ổn định và chính xác thì là cả một vấn đề

Vì vậy; tôi xin giới thiệu một vài bộ chuyển đổi tín hiệu analog sang modbus rtu rs485 tiết kiệm chi phí nhất và hầu như theo tôi được biết. Hiện nay; chỉ có duy nhất 1 hãng sản xuất làm được điều này để bạn đọc tham khảo:

chuyển đổi tín hiệu analog 4-20ma sang tín hiệu modbus rtu rs485
chuyển đổi tín hiệu analog 4-20ma sang tín hiệu modbus rtu rs485

Cách đưa cùng 1 lúc 8 tín hiệu analog 4-20ma 0-10v về tín hiệu modbus rtu rs485

Cách đưa cùng một lúc 4 tín hiệu nhiệt độ cảm biến rtd về tín hiệu modbus không cần thông qua tín hiệu 4-20ma

Cách đưa 4 tín hiệu can nhiệt cùng một lúc về modbusrtu

Xem chi tiết tại : Những cách thức xử lý đưa tín hiệu analog, tín hiệu nhiệt, độ tín hiệu can nhiệt về modbus rtu

Xem thêm một trong những giải pháp truyền tự động hóa từ xa tại đây:

Bộ chuyển đổi tín hiệu internet

Hy vọng những chia sẻ trên sẽ mang lại nguồn kiến thức vô tận cho các bạn sinh viên muốn tìm hiểu về ngành kỹ thuật

Đồng thời là giải pháp tối ưu chi phí nhất cho các doanh nghiệp; các khu công nghiệp nhà máy.

Tìm hiểu Modbus RTU, đi nhanh vào ứng dụng.

 Chào các bạn, trong series bài viết về Modbus RTU mình sẽ bỏ qua các lí thuyết hàn lâm mà các bạn dễ tìm hiểu qua wikipedia (https://en.wikipedia.org/wiki/Modbus...) mà chủ yếu tập trung vào cung cấp code, phần cứng và chỉ các bước để các bạn giao tiếp được từ arduino với các thiết bị có hỗ trợ truyền thông Modbus RTU như các đồng hồ điện, đồng hồ nước, các cảm biến trong công nghiệp...

1. Modbus RTU là gì?

 

  • Modbus là một giao thức truyền thông nối tiếp ban đầu được Modicon (nay là Schneider Electric) trình làng năm 1979 để sử dụng với các bộ điều khiển logic lập trình (PLC). Modbus đã trở thành một giao thức truyền thông tiêu chuẩn thực tế và hiện là phương tiện phổ biến để kết nối các thiết bị điện tử công nghiệp.

  • Giao thức Modbus RTU là một giao thức mở, sử dụng đường truyền vật lý RS-232 hoặc RS485 và mô hình dạng Master-Slave. Đây là một giao thức được sử dụng rộng rãi trong nhiều lĩnh vực tự động hóa, công nghiệp.... vì những ưu điểm  ổn định - đơn giản - dễ dùng. 

  • Modbus được coi là giao thức truyền thông hoạt động ở tầng "Application", cung cấp khả năng truyền thông Master/Slave giữa các thiết bị được kết nối thông qua các bus hoặc network. Trên mô hình OSI, Modbus được đặt ở lớp 7. Modbus được xác định là một giao thức hoạt động theo "hỏi/đáp" và sử dụng các "function codes" tương ứng để hỏi đáp.

​Ưu điểm của modbus RTU (dùng RS485) là gì?

  • Đơn giản về kết nối vì chỉ với 2 dây chúng ta có thể giao tiếp master với nhiều node.
  • Khoảng cách xa (1200m).
  • Phần cứng giá rẻ, hệ sinh thái tốt, dùng phổ biến trong công nghiệp.​

​Cấu trúc frame truyền Modbus RTU

Một frame truyền Modbus RTU bao gồm: 1 byte địa chỉ  -  1 byte mã hàm - n byte dữ liệu - 2 byte CRC như hình ở dưới:

 

Chức năng và vai trò cụ thể như sau:

  • Byte địa chỉ: xác định thiết bị mang địa chỉ được nhận dữ liệu (đối với Slave) hoặc dữ liệu nhận được từ địa chỉ nào (đối với Master). Địa chỉ này được quy định từ 0 - 254

  • Byte mã hàm: được quy định từ Master, xác định yêu cầu dữ liệu từ thiết bị Slave. Ví dụ mã 01: đọc dữ liệu lưu trữ dạng Bit, 03: đọc dữ liệu tức thời dạng Byte, 05: ghi dữ liệu 1 bit vào Slave, 15: ghi dữ liệu nhiều bit vào Slave ...

  • Byte dữ liệu: xác định dữ liệu trao đổi giữa Master và Slave.

    • Đọc dữ liệu:  

      • Master:  2 byte địa chỉ dữ liệu - 2 byte độ dài dữ liệu            

      • Slave: 2 byte địa chỉ dữ liệu - 2 byte độ dài dữ liệu - n byte dữ liệu đọc được

    • Ghi dữ liệu:   

      • Master: 2 byte địa chỉ dữ liệu  - 2 byte độ dài dữ liệu - n byte dữ liệu cần ghi     

      • Slave: 2 byte địa chỉ dữ liệu - 2 byte độ dài dữ liệu  

  • Byte CRC: 2 byte kiểm tra lỗi của hàm truyền. cách tính giá trị của Byte CRC 16 Bit

 

Ngoài Modbus RTU còn có nhiều loại Modbus khác như Modbus TCP, Modbus ASCII, Modbus UDP, Modbus Plus, Pemex Modbus, Enron Modbus.

Modbus TCP - Sự khác nhau cơ bản giữa MODBUS RTU và MODBUS TCP ( còn được gọi là modbus IP, Modbus Ethernet hay Modbus TCP/IP) là Modbus TCP chạy ở cổng vật lý Ethernet và Modbus RTU thì chạy ở cổng vật lý serial nối tiếp ( RS232 hoặc RS485). 

Modbus ASCII - cho phép người đọc có thể đọc trực tiếp tin nhắn trong bản tin. Modbus ASCII không thể giao tiếp với modbus RTU và ngược lại.

Modbus UDP. - Một số người đã thử nghiệm sử dụng Modbus qua UDP trên mạng IP, loại bỏ các thủ tục cần thiết cho TCP.

Modbus Plus - (Modbus +, MB + hoặc MBP) - Modbus Plus là độc quyền của Schneider Electric và không giống như các biến thể khác, nó hỗ trợ liên lạc ngang hàng giữa nhiều chủ. Nó đòi hỏi một bộ đồng xử lý chuyên dụng để xử lý xoay vòng mã thông báo giống như HDLC nhanh . Nó sử dụng cặp xoắn với tốc độ 1 Mbit / s và bao gồm cách ly máy biến áp ở mỗi nút, làm cho nó chuyển đổi / kích hoạt cạnh thay vì kích hoạt điện áp / cấp độ.

Pemex Modbus - Đây là một phần mở rộng của Modbus tiêu chuẩn, nó được thiết kế cho công ty dầu khí Pemex để sử dụng trong kiểm soát quá trình và không bao giờ được áp dụng rộng rãi.

Enron Modbus - Đây là một phần mở rộng khác của Modbus tiêu chuẩn được phát triển bởi Enron Corporation.

Sơ qua về Modbus RTU là vậy, các bạn có thể tự tìm hiểu thêm.  Chúng ta sẽ qua phần 2 với những thông tin hưu dụng hơn.

 

2. Cách giao tiếp Modbus RTU.

Modbus RTU có mô hình dạng Master-Slave, dùng đường truyền vật lí RS485 nên để giao tiếp được giữa master và slave ta phải cài đặt các thông số về tốc độ truyền baudrate (4800.9600.115200...), số data bit (7-8), bit stop (0-1-2) ,  Flag Parity kiểm tra chẵn lẻ (None, Event, Odd). Ngoài các thông số trên phản giống nhau giữa master và slave, thì bên master phải biết được ID của slave cần giao tiếp. 

Mỗi thiết bị trong mạng modbus được cung cấp một địa chỉ duy nhất. Trong  mạng modbus chỉ có 1 node được gán là Master (ta gọi là Master, các node còn lại gọi là Node) mới có thể khởi tạo lệnh. Trong frame truyền có chứa địa chỉ của thiết bị slave  (1 đến 247), chỉ thiết bị có ID  tương ứng mới đáp ứng, mặc dù các thiết bị khác có thể nhận được nó (một ngoại lệ là các lệnh có thể phát được cụ thể được gửi đến nút 0, được thực hiện nhưng không được xác nhận). Tất cả các lệnh Modbus chứa thông tin tổng kiểm tra (check sum CRC) để cho phép người nhận phát hiện lỗi truyền. Master sẽ đọc và ghi các dữ liệu vào thanh ghi của thiết bị slave. 

Cách đấu nối

A-      (Master) <------> A-      (Slave)

B+     (Master) <------> B+     (Slave)

GND (Master) <-------> GND (Slave)

Dây GND cần nối trong trường hợp khu vực đấu nối ở vùng nhiều sấm sét, máy móc hoạt động dòng lớn, nhiễu phức tạp...để tránh bị phá hỏng thiết bị hoặc tín hiệu thu được bị sai. Điện thế chênh lệch giữa GND hai bên tối đa là 7V.

Nếu thiết bị cần đọc là một đồng hồ điện (ví dụ Select MFM383A) thì mạch arduino của chúng ta sẽ làm master để truy xuất vào đọc thanh ghi của nó. Các thông số baud rate, data bit, bit stop, parity chúng ta phải cài đặt đồng bộ giữa mastter và slave. Thông thường với các slave là đồng hồ điện, đồng hồ nước, cảm biến..chúng ta sẽ xem chúng ở màn hình cài đặt hay ở manual, datasheet của thiết bị. Ở phần code arduino chúng ta sẽ chỉnh sửa các thông tin đó cho giống trên thiết bị hoặc với các thiết bị có LCD đa số chúng ta đều set được các thông số đó cho salve. Nếu cần đọc các thanh ghi chứa dữ liệu của slave chúng ta sẽ dùng các function code 01, 02, 03, 04.

  • FC01: Đọc trạng thái coil, một coil là một giá trị output. S coil numbers kéo dài từ 0 00001 đến 0 65536 , 
  • FC02: Đọc trạng thái input, số discrete input kéo dài từ 1 00001 đến 1 65536,
  • FC04: Đọc các input register, số input register trải dài từ 3 00001 đến 3 65536,
  • FC03: Đọc các holding register, số holding register trải dài từ 4 00001 đến 4 65536.

Khi xem manual ta thường chú ý tới địa chỉ thanh ghi nào chứa dữ liệu gì. 

 

Nhìn vào hình này chúng ta sẽ thấy địa chỉ 30002 chứa giá trị điện áp V2N , vậy ta sẽ hiểu địa chỉ ở đây là 0x02, Function code là 04, kiểu dữ liệu là float, độ dài thanh ghi là 2. Để tránh nhầm lẫn giữa function code và địa chỉ thanh ghi người ta quy định độ dài FC+ADDRESS là 6, ở hình trên ta thấy độ dài của 30002 là 5 ta sẽ hiểu rằng 030002, vậy FC là 03, addr là 2.  Mỗi thanh ghi sẽ là 2 byte, ở đây theo ví dụ trên thì dữ liệu có độ dài 2 thanh ghi nghĩa là 4 byte. Gọi 4 byte đó là A,B,C,D vậy có thể dữ liệu được lưu trong thanh ghi sẽ là ABCD với AB lưu ở thanh ghi địa chỉ thấp, CD lưu ở thanh ghi địa chỉ cao. Hoặc cũng có thể là CDAB... Vì vậy chỉ biết kiểu dữ liệu thôi là chưa đủ, chúng ta cần phải biết dữ liệu đang được lưu dạng nào. 

Một chú ý khi chúng ta làm việc với các device hỗ trợ truyền thông modbus là ở các device dữ liệu sẽ nằm trong các thanh ghi có địa chỉ tờ 1 tới 10000, nhưng ở trong frame truyền (Modbus message) các điịa chỉ được dùng giữa 0 tới 9999 vì vậy ở đây chúng ta sẽ phải ofset nếu muốn đọc/ghi tới chính xác địa chỉ cần làm việc. Ví dụ các bạn muốn đọc thanh ghi 30069 (FC04, địa chỉ 69 DEC) thì trong frame truyền chúng ta sẽ chỉ định giá trị là 68. .

Ở phần này mình chỉ note một vài ý chính để phục vụ cho bào viết sau, vì kiến thức bản thân có hạn nên mình không tình bày hết được về modbus mà chỉ chủ yếu tập trung giúp các bạn nắm các phần cơ bản để đẻ có khái niệm về modbus rtu. 3. Độ phổ biến và các ứng dụng với modbus RTU thường gặp.

Ở cộng đồng arduino chúng ta thì việc sử dụng modbus rtu chưa nhiều nhưng ở mảng điện công nghiệp chúng ta sẽ rất dễ bắt gặp các thiết bị như cảm biến nhiệt, áp suất, PLC, đồng hộ điện, đồng hồ nước....sử dụng modbus RTU. Cuộc cách mạng 4.0 đã được khởi xướng, cộng đồng IoT, IIoT ngày càng lớn mạnh nên chúng ta sẽ ngày càng thấy nhiều thiết bị điện tử của các anh em chúng ta dần lấn sân sang điện công nghiệp vốn từ lâu chỉ là sân chơi của các thiết bị của các hãng tên tuôi như Mitsu, ABB, Simen, Sneighder, Omron, IFM.... Một vài ứng dụng  thường gặp như:

-VD1: Điều khiển hệ thống mạng lưới các quạt làm mát trong trang trại, phân xưởng sản xuất. Với yêu cầu này theo các truyền thống chúng ta sẽ kéo từng cặp dây nguồn từ tủ điện trung tâm tới quạt.  Thử tưởng tượng số lượng quạt lên tới 30 cái thì chúng ta phải kéo 30 dây nguồn tới 30 cái quạt mới có thể điều khiển đôc lập bật/tắt từng cái, hoặc nếu chỉ kéo một dây nguồn nhưng lại sử dụng 30 công tắc để cấp nguồn cho từng quạt thì mỗi khi muốn bật/tắt quạt nào chúng ta phải tới vị trí từng quạt đó rất mất thời gian. Vậy giải pháp tối ưu nhất là ta chỉ cần kéo dây 4 lõi với 2 dây A,B của truyền thông modbus rtu và 2 dây nguồn là đã có thể đáp ứng đủ yêu cầu bật tắt từng mà không cần kéo từng dây nguồn từ tủ điện tới từng quạt. Tại mỗi quạt ta có một node slave, với 30 quat ta sẽ có 30 slave id từ 1 tới 30. Vì vậy sẽ tiết kiệm được thời gian triển khai dự án, đỡ nguy hai khi kéo một lưới điện âm sàn, âm tường, hay treo như một mạng nhện trên đầu, tiềm ẩnn nguy cơ chập cháy. Ngoài tiết kiệm thời gian, công sức thi công chúng ta còn tiết kiệm được một lượng lớn dây điện đủ để bù vào chi phí tạo ra các node modbus rtu. Mở rộng ra với ứng dụng vào các device như hệ thống van nước trong vườn, đồng hồ điện năng tiêu thụ từng phòng, từng nhà trong building....

-VD2: Đưa các giá trị từ PLC về trung tâm giám sát và điều khiển. Việc sử dụng mạng internet ở các nhà máy, khu công nghiệp thường hay bị chặn các port vì vậy từ PLC rất khó để đưa các dữ liệu ra ngoài ở một khu vực các xa đó. Vì vậy giải pháp thường dùng là sử dụng GPRS, 3G, 4G của các nhà mạng di động như Viettel, Vinaphone, Mobiphone..chúng ta sẽ đỡn tránh rắc rối trong việt NAT port, xin phép, thủ tục....Vậy với các mạch điện tử của anh em chúng ta vốn chỉ có các cổng uart làm sao để có thể giao tiếp với PLC? Câu trả lời đơn giản là dùng module chuyển đổi giao tiếp UART to RS485 và sau đó sử dụng giao thức modbus rtu để giao tiếp với PLC. Việc này đòi hỏi PLC phải có cổng giao tiếp modbus RTU nhưng các bạn yêu tầm là đa số các PLC đều có cổng giao tiếp này và nó ngày càng phổ biến thay thế dần các cổng RS232. 

Lan man lí thuyết vậy mình nghĩ đủ rồi, ở bài viết sau chúng ta sẽ đi nhanh vào ứng dụng dùng con arduino esp32 để đọc giá trị chứa trong các thanh ghi của đồng hồ điện select mfm383a.

Nếu bạn nào không có sẵn các thiết bị hỗ trợ chuẩn truyền thông modbus rtu thì chúng ta vẫn thực hành được bằng cách dùng tool mô phỏng  modbus device bằng chính laptop/PC của chúng ta.

Hi vọng bài viết có ích cho bạn đọc.