Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2012, 09:43   #1
Andybrain
 
Регистрация: 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 - младший байт
Это основная часть
Нужно считывать количество жидкости в числовом виде
Andybrain вне форума Ответить с цитированием
Старый 12.09.2012, 10:20   #2
raxp
Старожил
 
Регистрация: 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
raxp вне форума Ответить с цитированием
Старый 12.09.2012, 10:46   #3
Andybrain
 
Регистрация: 12.09.2012
Сообщений: 4
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
...CreateFile()/ReadFile(), читаем пакет, разбираем пакет, выдираем 4-6 байт. В чем конкретно проблема?

http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Проблема в неумении работать с такими видами данных
Можно хотя бы приблизительно, как должно выглядеть это в коде?
Занести полученные данные в массив и выбрать числовое значение, такой смысл реализован в имеющейся программе, но под совершенно другой протокол обмена.

Последний раз редактировалось Andybrain; 12.09.2012 в 11:01.
Andybrain вне форума Ответить с цитированием
Старый 12.09.2012, 11:30   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Можно хотя бы приблизительно, как должно выглядеть это в коде?
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx винапишней некуда.

...держите, тестируйте:


Если не заработает, то в архиве лежит сниффер COM-порта: приложите в теме реальный лог данных обмена в рабочем режиме ПИ «Просмотр параметров среды» с включенным отображением в HEX (кнопочка в меню).
Вложения
Тип файла: zip test_pmp200.zip (397.4 Кб, 19 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 12.09.2012, 13:35   #5
Andybrain
 
Регистрация: 12.09.2012
Сообщений: 4
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx винапишней некуда.

...держите, тестируйте:


Если не заработает, то в архиве лежит сниффер COM-порта: приложите в теме реальный лог данных обмена в рабочем режиме ПИ «Просмотр параметров среды» с включенным отображением в HEX (кнопочка в меню).
Огромнейшее спасибо!!!!! А возможно найти этот test_pmp200 в исходнике, я бы сразу решил все проблемы?

Последний раз редактировалось Andybrain; 12.09.2012 в 13:55.
Andybrain вне форума Ответить с цитированием
Старый 12.09.2012, 20:45   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...уже проверили, принимает данные с уровнемера?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 14.09.2012, 09:29   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...реверсингом занялись?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 20.09.2012, 09:39   #8
Andybrain
 
Регистрация: 12.09.2012
Сообщений: 4
По умолчанию

Огромная благодарность!!!! Все получилось. Работает.
А для ПМП 201 (они же, по-моему, 118) такой тестер бывает в природе?
Andybrain вне форума Ответить с цитированием
Старый 20.09.2012, 15:47   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

OFFTOP >
...для благодарностей есть кошельки на моем сайте (предпочтительно webmoney)


Цитата:
А для ПМП 201 (они же, по-моему, 118) такой тестер бывает в природе?
конечно бывает, как только я узнаю протокол обмена, сразу появляется запросчик-монитор.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с чтением из 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