Кристофа правильно, но разработать немного больше:
При общении с RS232 вы просто две конечные точки, ваш компьютер и внешние устройства. Вы общаетесь с устройством, отправляя его командам или даже отправляете их независимо. Это может быть простой текст ASCII или двоичный/шестнадцатеричный коды. Способ, которым он обменивается между двумя устройствами, известен как протокол - и ваше приложение должно реализовать этот протокол, чтобы иметь возможность «разговаривать» с устройством.
RS485 отличается от RS232 тем, что вы можете подключить несколько устройств к одному и тому же последовательному порту, который подключен к вашему ПК. В зависимости от вашего устройства у него будет свой собственный протокол, который он понимает, что вам нужно будет изучить и стать знакомым. Это должно поставляться с устройствами, к которым вы подключаетесь.
Как правило, протокол будет (по крайней мере) следующую информацию:
- Адрес устройства - он использует это, чтобы различать, какое устройство вы хотите поговорить, как правило, могут быть установлены с помощью аппаратных средств тумблеров и тому как
- Command - собственно команда, которую вы хотите отправить в блок
- Data - Любые дополнительные данные, которые вы, возможно, потребуется пройти для конкретных команд
Итак, экзамен PLE команда, которую вы могли бы послать в устройство будет выглядеть (обратите внимание, что это только пример):
$01FF9A
Где:
01
является модуль или устройства уникальный адрес FF
тип команды 9A
является данные
Итак, модуль с адресом устройства 01
будет читать команду и выводить «эй, вы говорите со мной», а затем обрабатывать информацию о команде. Все остальные устройства также получат данные, но поймут, что они не предназначены для себя.
Обычно устройства RS485 обмениваются данными с использованием данных Hex, поэтому вашему приложению необходимо будет отправлять шестнадцатеричные команды внешним устройствам и обрабатывать преобразование для использования для любых соответствующих ответов и т. Д. Возможно, вам нужно будет посмотреть Serial.Write(byte[], int,int)
, чтобы отправить шестнадцатеричные данные в устройств.
Для более подробного объяснения класса .NET последовательного порта, обратитесь к http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx
Это не отвечает на его вопрос. –