Kristof là đúng, nhưng để xây dựng thêm một chút:
Khi giao tiếp với RS232 bạn chỉ cần có hai thiết bị đầu cuối, máy tính của bạn và thiết bị bên ngoài. Bạn giao tiếp với thiết bị bằng cách gửi lệnh hoặc thậm chí có thể gửi chúng bất kể. Nó có thể là văn bản ASCII đơn giản hoặc mã nhị phân/hex. Cách nó giao tiếp giữa hai thiết bị được gọi là giao thức - và ứng dụng của bạn phải thực hiện giao thức này để có thể 'nói chuyện' với thiết bị.
RS485 khác với RS232, trong đó bạn có thể tạo chuỗi nhiều thiết bị trên cùng một cổng nối tiếp được kết nối với PC của bạn. Tùy thuộc vào thiết bị của bạn, nó sẽ có giao thức riêng của nó mà nó hiểu được bạn sẽ cần phải học và trở nên quen thuộc. Điều này sẽ được cung cấp cùng với các thiết bị bạn đang kết nối.
Thông thường, các giao thức sẽ có (ít nhất) các thông tin sau:
- Device Địa chỉ - nó sử dụng này để phân biệt thiết bị nào bạn muốn nói chuyện, thường có thể được thiết lập bởi công tắc bật tắt phần cứng hoặc như
- lệnh - lệnh thực tế mà bạn muốn gửi tới các đơn vị
- dữ liệu - Mọi dữ liệu thêm bạn có thể cần phải vượt qua cho các lệnh cụ thể
vì vậy, một kỳ thi lệnh ple bạn có thể gửi cho đơn vị sẽ trông giống như (lưu ý đây chỉ là một ví dụ):
$01FF9A
đâu:
01
là module hoặc các thiết bị địa chỉ duy nhất FF
là loại lệnh 9A
là dữ liệu
Vì vậy, ở đây, mô-đun có địa chỉ thiết bị 01
sẽ đọc lệnh và suy ra 'này bạn đang nói chuyện với tôi' và sau đó xử lý thông tin lệnh. Tất cả các thiết bị khác cũng sẽ nhận được dữ liệu, nhưng sẽ nhận ra rằng nó không phải là mệnh cho chính nó.
Thông thường thiết bị RS485 giao tiếp bằng dữ liệu Hex, vì vậy ứng dụng của bạn sẽ cần gửi lệnh hex tới thiết bị bên ngoài và xử lý chuyển đổi từ cho bất kỳ phản hồi có liên quan nào. Bạn có thể cần xem Serial.Write(byte[], int,int)
để gửi dữ liệu hex những thiết bị.
Để có giải thích chi tiết hơn về lớp cổng nối tiếp .NET, hãy tham khảo http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx
Điều này không trả lời câu hỏi của anh ấy. –