Я запрограммировал много весов, и обычно, если вы даже не получаете ответ на ENQ, это потому, что вы неправильно настроили SerialPort.Будьте на 100% уверены, что скорость передачи, биты данных, стоп-биты и четность установлены правильно.
Что бы я сделал, это загрузил LookRS232 .Это программа для связи через COM-порт.После установки откройте COM-порт с нашими настройками, а затем запишите ENQ непосредственно в COM-порт.Проще протестировать множество настроек, чтобы сначала он заработал здесь.Затем, когда вы заставите его работать, используйте те же самые настройки в вашей программе.
РЕДАКТИРОВАТЬ - ДОБАВЛЕННЫЕ НЕКОТОРЫЕ ТОЧКИ ОТ ПАССАНТА ГАНСА ЗДЕСЬ, ЧТО ЭТО ВАЖНО - БОЛЬШЕ ВАЖНО, ЧТО ENQ - ASCII VALUE 5,И НЕ СТРОКА
port.Write("ENQ");
ENQ, ACK и DC1 - это управляющие коды, а не строки.Используйте ASCII-таблицу, чтобы узнать код.Исправление:
port.Write(5);
Вы также должны включить аппаратные сигналы рукопожатия, многие устройства используют его, чтобы убедиться, что аппарат включен и готов к приему данных.Таким образом, они знают, что они получают реальные данные, а не шум.Исправление:
port.Open();
port.DtrEnable = true;
port.RtsEnable = true;
Проверка соединения с другой программой, такой как HyperTerminal или Putty, всегда хорошая идея, если у вас все еще есть проблемы.Сгенерируйте управляющие коды клавишей Ctrl на клавиатуре.ENQ - это Ctrl + E, DC1 - это Ctrl + Q.