|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.09.2012, 09:43 | #1 |
Регистрация: 12.09.2012
Сообщений: 4
|
Проблема с чтением и преобразованием данных с COM порта
Я не профи работы с COM портами, помогите пожалуйста разобраться.
Есть исходные данные: 17. ПРОТОКОЛ ПЕРЕДАЧИ ИНФОРМАЦИИ ПО ИНТЕРФЕЙСУ RS-232. 17.1. Общие данные ПИ соединяется по последовательному интерфейсу RS-232 с устройством пользова- теля (PC-компьютером, имеющим COM- порт, или контроллером пользователя). Скорость передачи 19.2 Kbod. Формат байта: 1 стартовый бит, 8 бит данных, 1 стопо- вый бит. ПИ работает только на передачу. Передача осуществляется информационными паке- тами. Каждый пакет содержит информацию об одном канале. ПИ работает в 2-х режимах передачи: - «ИНИЦИАЛИЗАЦИЯ» - передача постоянных (запрограммированных) параметров преобразователей ПМП и резервуаров – происходит только после подачи питания на ПИ (во время индикации «бегущей строки» на индикаторе ПИ). За это время происходит троекрат- ная передача 16-ти (по числу каналов) информационных пакетов: «1,2,…16 ® 1,2,…16 ®1,2,…16» - «ИЗМЕРЕННЫЕ ПАРАМЕТРЫ» - передача измеренных параметров – происходит в рабочем режиме ПИ «Просмотр параметров среды». Период передачи всех информацион- ных пакетов - 5 … 20 с в зависимости от числа каналов, установленных на контроль. Формат информационных пакетов: <SB>< ADDR><NBB><CMD><D1><D2>...<Dn><CHKS >, где: SB - стартовый байт (0xB5); ADDR - адрес преобразователя ПМП-200 (1…16); NBB - количество байт данных D1...Dn в пакете; CMD - команда пакета; D1... Dn – данные, в зависимости от команды; CHKS - контрольная сумма от ADDR и до последнего байта данных (сложение без переноса) 17.3. Данные, передаваемые в режиме «ИЗМЕРЕННЫЕ ПАРАМЕТРЫ» NBB = 16 CMD = 0x05 D1 - заполнение резервуара в % (от 0…100%). Если D1 = 0xFFh, то это означает обрыв связи с ПМП. Если D1 = 0xFEh, то это означает неисправность датчика уровня жидкости ПМП. D2, D3 - заполнение резервуара в единицах объема (от 0 до 9999) (на индикаторе ПИ это число индицируется в виде от 00,00 до 99,99). D2 - старший байт, D3 - младший байт Это основная часть Нужно считывать количество жидкости в числовом виде |
12.09.2012, 10:20 | #2 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
...CreateFile()/ReadFile(), читаем пакет, разбираем пакет, выдираем 4-6 байт. В чем конкретно проблема?
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
12.09.2012, 10:46 | #3 | |
Регистрация: 12.09.2012
Сообщений: 4
|
Цитата:
Можно хотя бы приблизительно, как должно выглядеть это в коде? Занести полученные данные в массив и выбрать числовое значение, такой смысл реализован в имеющейся программе, но под совершенно другой протокол обмена. Последний раз редактировалось Andybrain; 12.09.2012 в 11:01. |
|
12.09.2012, 11:30 | #4 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
...держите, тестируйте: Если не заработает, то в архиве лежит сниффер COM-порта: приложите в теме реальный лог данных обмена в рабочем режиме ПИ «Просмотр параметров среды» с включенным отображением в HEX (кнопочка в меню).
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
12.09.2012, 13:35 | #5 | |
Регистрация: 12.09.2012
Сообщений: 4
|
Цитата:
Последний раз редактировалось Andybrain; 12.09.2012 в 13:55. |
|
12.09.2012, 20:45 | #6 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
...уже проверили, принимает данные с уровнемера?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
14.09.2012, 09:29 | #7 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
...реверсингом занялись?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
20.09.2012, 09:39 | #8 |
Регистрация: 12.09.2012
Сообщений: 4
|
Огромная благодарность!!!! Все получилось. Работает.
А для ПМП 201 (они же, по-моему, 118) такой тестер бывает в природе? |
20.09.2012, 15:47 | #9 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
OFFTOP >
...для благодарностей есть кошельки на моем сайте (предпочтительно webmoney) Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблемы с чтением из COM-порта | Dmitry_B | Visual C++ | 2 | 31.08.2012 23:40 |
База Данных с использованием Д.П. Pascal Проблема с чтением из файла | Diabolis | Помощь студентам | 0 | 23.04.2012 15:38 |
получение данных с COM порта Delphi (проблема) | IIUH | Помощь студентам | 6 | 08.11.2011 12:22 |
Проблема с автоматическим преобразованием типа данных в Excel | kovalevskivf | Microsoft Office Excel | 0 | 20.05.2010 01:25 |
проблема с преобразованием строки в число в С++ | Lorden | Помощь студентам | 21 | 03.04.2009 14:05 |