Đầu cân DS1 + Bo số DSB3B-01 — Giao tiếp serial RS-485
Đọc Bo Số DSB3B-01 Trên Đầu Cân DS1: Giao Thức, Frame và Cách Giải Mã Dữ Liệu
DS1 là đầu cân hiển thị, còn DSB3B-01 là bo số kết nối với load cell và truyền dữ liệu về DS1 qua RS-485. Mỗi bo có địa chỉ riêng dạng S01, S02… để đầu cân có thể poll từng điểm đo trong hệ thống.
Dữ liệu quan sát được cho thấy giao tiếp giữa DS1 và DSB3B-01 là serial ASCII stream, không phải Modbus RTU. Frame có phần lệnh ASCII dễ đọc, sau đó là 4 byte payload nhị phân chứa status và raw count.
Bài viết này dùng dữ liệu capture thực tế trên COM4 để minh họa cách nhận diện frame, tách payload, giải mã raw count 24-bit little-endian và chuyển raw count thành giá trị hiển thị CAL.
ASCII Stream
Raw Count
DSB3B-01
Nội dung này là kết quả tìm hiểu kỹ thuật độc lập của KALA dựa trên dữ liệu capture thực tế và source code phân tích.
Đây không phải tài liệu chính thức từ nhà sản xuất DS1 hoặc DSB3B-01.
Một số thông số, công thức và ý nghĩa bit trạng thái vẫn cần tiếp tục xác minh trước khi áp dụng cho hệ thống thực tế, đặc biệt với hệ thống thương mại hoặc hệ thống yêu cầu kiểm định pháp lý.
1. Vì sao cần đọc trực tiếp bo số Digital Load Cell?
Trong hệ thống cân điện tử truyền thống, load cell analog gửi tín hiệu mV/V về đầu cân. Toàn bộ quá trình khuếch đại, lọc nhiễu, chuyển đổi A/D và tính toán giá trị cân thường được thực hiện bên trong đầu cân.
Với Digital Load Cell, mỗi cảm biến hoặc mỗi cụm cảm biến có thể có một bo xử lý riêng. Bo này đọc tín hiệu load cell, chuyển đổi A/D, lưu thông số hiệu chuẩn ban đầu và truyền dữ liệu về đầu cân qua RS-485, CAN hoặc giao thức nối tiếp khác.
Khi đọc trực tiếp dữ liệu từ bo số, kỹ sư không chỉ thấy giá trị kg cuối cùng. Họ có thể kiểm tra raw count, địa chỉ bo, payload truyền thông, trạng thái cảm biến và lỗi giao tiếp. Đây là thông tin rất hữu ích khi bảo trì trạm cân xe tải, cân bồn, cân silo hoặc hệ thống nhiều load cell.
| Dữ liệu đọc được | Ý nghĩa kỹ thuật |
|---|---|
| Địa chỉ bo S01, S02… | Giúp xác định từng bo số riêng lẻ trên bus RS-485. |
| Raw count | Cho biết giá trị đo thô trước khi quy đổi thành giá trị hiển thị. |
| Payload hex | Giúp phân tích frame, kiểm tra phần mềm và phát hiện lỗi truyền thông. |
| Status byte | Có thể chứa trạng thái bo, lỗi hoặc điều kiện vận hành đặc biệt. |
2. Cấu hình serial quan sát được
Dựa trên dữ liệu capture thực tế và tool đọc dữ liệu DS1, cấu hình serial quan sát được như sau:
| Thông số | Giá trị | Ghi chú |
|---|---|---|
| BaudRate | 9600 | Ghi nhận tại thời điểm capture. |
| DataBits | 8 | Định dạng serial phổ biến. |
| Parity | Even | Tương ứng cấu hình 8E1. |
| StopBits | 1 | Một stop bit. |
| Frame terminator | CR LF | Hex: 0D 0A. |
Tóm lại, trong ví dụ này bus serial đang hoạt động ở cấu hình 9600 8E1, frame kết thúc bằng CR LF.
3. Cấu trúc frame giao tiếp giữa DS1 và DSB3B-01
Frame quan sát được có dạng kết hợp giữa ASCII và binary. Phần đầu là chuỗi lệnh/poll dạng ASCII, còn phần payload sau địa chỉ bo là dữ liệu nhị phân. Đây là điểm quan trọng vì nếu đọc toàn bộ stream như text thuần, dữ liệu đo có thể bị mất hoặc hiểu sai.
| Thành phần | Ví dụ HEX | Ý nghĩa |
|---|---|---|
| Lệnh poll | 53 39 38 3B 4D 53 56 3F 31 3B | ASCII: S98;MSV?1; |
| Địa chỉ bo | 53 30 31 3B | ASCII: S01; |
| Payload | 00 xx yy zz | 4 byte binary: status + raw count. |
| Kết thúc frame | 0D 0A | CR LF. |
Ví dụ frame printable từ capture:
S98;MSV?1;S01;<00>12<00><0D><0A>
S98;MSV?1;S01;<00>22<00><0D><0A>
S98;MSV?1;S01;<00><F4><00><00><0D><0A>Hex tương ứng có thể đọc theo dạng:
53 39 38 3B 4D 53 56 3F 31 3B 53 30 31 3B 00 xx yy zz 0D 0A
S 9 8 ; M S V ? 1 ; S 0 1 ; ST b1 b2 b3 CR LF4. Quét nhiều bo số trên cùng bus
Khi hệ thống có nhiều bo DSB3B-01 trên cùng bus, đầu cân sẽ quét lần lượt các địa chỉ. Trong capture thực tế, có trường hợp nhiều token địa chỉ xuất hiện trong cùng một frame.
S06;S08;S98;MSV?1;S01;S02;S04;S05;<00><80><7B><E1>CR LFTrong ví dụ này, payload 00 80 7B E1 được xem là thuộc về S05, vì S05; là token địa chỉ cuối cùng ngay trước payload hợp lệ.
| Quy tắc | Cách hiểu |
|---|---|
| Pattern địa chỉ | Tìm chuỗi S + 2 chữ số + ;. |
| Payload hợp lệ | 4 byte ngay sau token địa chỉ, byte đầu là status và thường nhỏ hơn hoặc bằng 0x1F. |
| Bo sở hữu payload | Token S##; gần nhất ngay trước payload hợp lệ. |
5. Cấu trúc 4 byte payload
Mỗi bo DSB3B-01 trả về 4 byte sau token địa chỉ. Qua phân tích, payload có thể hiểu theo cấu trúc:
| Byte | Vai trò | Ghi chú |
|---|---|---|
| Byte 0 | Status | Capture thường thấy 0x00. Ý nghĩa từng bit chưa xác minh đầy đủ. |
| Byte 1 | Raw count LSB | Byte 1-3 tạo thành số nguyên signed 24-bit little-endian. |
| Byte 2 | Raw count middle byte | |
| Byte 3 | Raw count MSB |
Công thức giải mã raw count:
raw = byte1 | (byte2 << 8) | (byte3 << 16)
if (raw & 0x800000) != 0:
raw = raw - 0x1000000;
| Payload HEX | Raw count | Ghi chú |
|---|---|---|
00 AF 2D 00 | 11695 | Status = 0x00, raw = 0x002DAF. |
00 CE 49 01 | 84430 | Status = 0x00, raw = 0x0149CE. |
00 F4 00 00 | 244 | Raw thấp, tương ứng vùng âm sau hiệu chuẩn. |
6. Chuyển Raw Count thành giá trị hiển thị CAL
Raw count không phải giá trị kg trực tiếp. Đây là số đếm ADC đã được bo xử lý. Để chuyển sang giá trị hiển thị, cần áp dụng hệ số hiệu chuẩn của từng bo hoặc từng hệ thống.
CAL = (raw - zero_offset) / counts_per_unitTừ dữ liệu thực tế, có thể suy ra:
| Giá trị hiển thị | Payload HEX | Raw count |
|---|---|---|
| -268 | 00 F4 00 00 | 244 |
| 0 | 00 2F 32 00 | 12847 |
| +1732 | 00 5B 70 01 | 94299 |
counts_per_unit = (94299 - 244) / (1732 - (-268)) = 47.0275 counts / đơn vị
zero_offset = 244 - (-268 x 47.0275) ≈ 12847.37 Hai hệ số zero_offset và counts_per_unit phụ thuộc vào từng bo số, từng load cell và quá trình hiệu chuẩn. Không nên dùng cố định cho mọi hệ thống.
7. Ví dụ thực tế: DS1 Monitor đọc hai bo S01 và S02
Ảnh dưới đây minh họa phần mềm DS1 Monitor đang kết nối COM4, đọc hai bo số DSB3B-01 tại địa chỉ S01 và S02.

DS1 Monitor đọc dữ liệu S01 và S02 qua COM4, hiển thị Payload, Raw, CAL và trạng thái theo thời gian thực.
| Bo số | Payload HEX | Raw | CAL hiển thị | Status |
|---|---|---|---|---|
| S01 | 00 AF 2D 00 | 11695 | -25 | 0x00 |
| S02 | 00 CE 49 01 | 84430 | 1522 | 0x00 |
| Bo | Tính toán | Kết quả | Khớp hiển thị? |
|---|---|---|---|
| S01 | (11695 - 12847.37) / 47.0275 | -24.5 ≈ -25 | Có |
| S02 | (84430 - 12847.37) / 47.0275 | 1522.2 ≈ 1522 | Có |
8. Những điểm vẫn cần xác minh
Bài viết này mô tả những gì đã quan sát được từ capture và source code. Một số điểm dưới đây vẫn cần kiểm chứng thêm bằng logic analyzer hoặc tài liệu chính hãng:
| Điểm còn mở | Hiện trạng |
|---|---|
| Hướng phát lệnh TX/RX | Cần capture bằng logic analyzer để tách rõ frame nào do DS1 phát và frame nào do bo số trả về. |
| Ý nghĩa bit status | Capture chủ yếu thấy 0x00. Cần tạo trạng thái overload, mất tín hiệu, không ổn định để map từng bit. |
| Dấu thập phân và đơn vị | Chưa rõ nằm trong payload 4 byte hay thuộc frame/cấu hình khác. |
| Baud rate có cấu hình được không | Capture ghi nhận 9600 8E1, nhưng cần kiểm chứng trên nhiều thiết bị thực tế. |
9. Ứng dụng kỹ thuật
Việc đọc trực tiếp bo số Digital Load Cell không chỉ phục vụ mục đích lấy giá trị cân. Nó giúp kỹ sư hiểu sâu hơn tình trạng từng cảm biến trong hệ thống.
| Ứng dụng | Lợi ích |
|---|---|
| Giám sát từng load cell | Xem riêng Raw/CAL của từng bo thay vì chỉ nhìn tổng trọng lượng. |
| Corner calibration | So sánh sai lệch giữa các góc cân, hỗ trợ cân chỉnh nhanh hơn. |
| Chẩn đoán lỗi | Phát hiện bo mất tín hiệu, raw bất thường hoặc payload lỗi. |
| Phát triển phần mềm | Tích hợp dữ liệu vào phần mềm cân, PLC, SCADA hoặc MES. |
| Bảo trì hệ thống | Ghi log để so sánh trước và sau khi thay load cell hoặc bo số. |
10. Kết luận
Đọc bo số Digital Load Cell là một hướng nghiên cứu rất hữu ích cho kỹ sư cân điện tử. Thay vì chỉ nhìn giá trị kg trên đầu cân, phân tích dữ liệu ở mức frame và payload giúp hiểu rõ hơn cách từng load cell hoạt động trong hệ thống.
Qua ví dụ DS1 và DSB3B-01, có thể thấy một frame truyền thông gồm phần ASCII dễ đọc và phần binary payload chứa raw count. Khi giải mã đúng payload, áp dụng đúng zero offset và counts per unit, giá trị tính toán có thể khớp với giá trị hiển thị thực tế.
Đây là nền tảng quan trọng để phát triển công cụ giám sát, chẩn đoán lỗi, corner calibration và tích hợp hệ thống cân kỹ thuật số vào phần mềm quản lý hiện đại.
Tài liệu và source code tham khảo
| Tài nguyên | Loại | Nội dung |
|---|---|---|
| Đầu cân DS1 | Sản phẩm | Trang sản phẩm DS1 digital weighing indicator. |
| Video thực tế đọc bo số DSB3B-01 | Video | Minh họa kết nối và đọc dữ liệu từ bo số DSB3B-01 trên đầu cân DS1. |
| DS1-serial-protocol.md | Tài liệu kỹ thuật | Ghi chép giao thức serial DS1 từ capture thực tế. |
| Ds1Reader.cs | Source code C# | Tool đọc live giá trị từ DSB3B-01 qua cổng serial. |
| Ds1Monitor | Source code WinForms | Giao diện giám sát nhiều DSB3B-01 đồng thời. |
Bài viết liên quan
- Lắp đặt đầu cân DS8 với loadcell số KDB-D — bộ đầu cân và loadcell số chính hãng, kèm trình tự lắp đặt
- Tìm hiểu cảm biến lực Curiotec — dòng loadcell số RS-485/CAN có chẩn đoán ISN
KALA Technical Notes
Bài viết được biên soạn theo hướng chia sẻ kinh nghiệm phân tích giao thức Digital Load Cell. Nếu có thêm capture thực tế hoặc tài liệu kỹ thuật chính hãng, nên tiếp tục đối chiếu để hoàn thiện các điểm còn mở.
Genuine Products, Reliable Technical Support

