Текущий архив: 2008.04.27;
Скачать: CL | DM;
Вниз
Прибор через COM порт... Найти похожие ветки
← →
serko © (2007-01-23 22:31) [0]Всем привет!
У меня есть прибор по измерению вибрации. В результате проведения измерений в памяти этого прибора создаются файлы с нужными мне данными...
Есть программа, которая прилагалась к этому прибору, она же считывает данные с прибора.
Мне хочется другую программу, с большими возможностями (не только считывание данных).
Как произвести считывание данных с прибора через COM порт?
Где можна изучить этот вопрос?
← →
Сергей М. © (2007-01-24 09:14) [1]
> Как произвести считывание данных с прибора через COM порт?
>
> Где можна изучить этот вопрос?
>
Для начала изучить документацию производителя прибора в части протокола инф.обмена с этим прибором.
← →
tesseract © (2007-01-24 11:13) [2]Павел Агуров "программирование последовательных интерфейсов ПК" Практическое руковводство.
← →
serko © (2007-01-24 22:46) [3]
> Для начала изучить документацию производителя прибора в
> части протокола инф.обмена с этим прибором.
Изучать нечего, нет ничего по этому поводу в документации... Видимо считают, что такая инфа не распространяется...
> Павел Агуров "программирование последовательных интерфейсов
> ПК" Практическое руковводство.
Книжечка? надо бы посотреть.... для начала найти бы ее...
← →
medved_68 © (2007-01-25 09:32) [4]
> Книжечка? надо бы посотреть.... для начала найти бы ее..
> .
Нет проблем :)))http://www.natahaus.ru/2005/09/08/posledovatelnye_interfeysy_pk_.html
> Есть программа, которая прилагалась к этому прибору, она
> же считывает данные с прибора.
serko Ты возможно не поверишь, но этого, вкупе с девайсом, более чем достаточно для анализа протокола. :)))
← →
Сергей М. © (2007-01-25 10:19) [5]
> Изучать нечего, нет ничего по этому поводу в документации
Тогда начни с анализа передаваемых/принимаемых данных с целью выяснения подробностей этого "секретного" протокола, возможно он достаточно прост и тебе повезет. Для перехвата ввода/вывода воспользуйся любой удобной готовой шпионской утилиткой (коих в Тырнете навалом), мониторящей СОМ-порты.
Ранее чем ты проделаешь эту работу переходить к вопросу о разработке собственного приложения попросту бессмысленно.
← →
serko © (2007-01-26 21:50) [6]
> medved_68 © (25.01.07 09:32) [4]
Спасибо тебе за ссылочку. Теперь займусь изучением книжечки.
Скажите а какие это ПОДРОБНОСТИ нужно узнать у протокола?
← →
serko © (2007-01-28 19:00) [7]А книжечка действительно прикольная!
В ней есть ссылки на диск который должен прилагаться с этой книжкой. Можна ли где-то его скачать?
← →
medved_68 © (2007-01-29 10:21) [8]
> Скажите а какие это ПОДРОБНОСТИ нужно узнать у протокола?
serko каждый прибор имеет ему одному и программе обслуживающей его изыестный протокол. Например начиная со скорости передачи и до всякой "фигни" по типу такого:Baud rate 9600 bps, 8 bits, none parity
Здесь, например, (из мануала идущего с прибором) четко сказано что скорость передачи такая то, дано описание формата передачи (т.е. что за чем в какой последовательности байт следует), и т.д. Если у тебя такого мануала к прибору нет, то для работы с ним без использования стандартной (идущей с ним в комплекте) программы тебе необходимо разобраться сначала как сказал Сергей М.
FORMAT of MESSAGE:
|marker : 0xAA - 1 byte|
|machine number ASCII ("nnnnnn")- 6 bytes|
|command - 1byte ("a".."z")|
|INFORMATION with var lenght in range 0x20 .. 0x8F|
|2 bytes crc: arithmetic sum, including marker, 1 byte :
0xHL, confirm to 2 bytes ASCII: 0x3H, 0x3L|
|LF : 0x0A|
> Тогда начни с анализа передаваемых/принимаемых данных с
> целью выяснения подробностей этого "секретного" протокола,
>
и уяснив для себя как им управлять и обрабатывать то, что он передает - можно приступить к написанию своей оболочки под этот девайс. :)))
← →
serko © (2007-01-29 22:31) [9]А вообще можна ли нанести какой то вред прибору (из-за моей не опытности бывает всякое) при общении с ним через СОМ порт? Имеется ввиду только считывание инфы с прибора...
А прибор то дорогой 7000 баксов весит...
← →
medved_68 © (2007-01-30 09:05) [10]
> А вообще можна ли нанести какой то вред прибору (из-за моей
> не опытности бывает всякое) при общении с ним через СОМ
> порт?
serko Ну для этого надо очень сильно постараться. Например угадать команды протокола + их последовательность для перепрошива внутреннего ЕЕПРОМ прибора. Обычно хорошие приборы от такой бяки залочены и кроме как программатором с полным стиранием памяти их не возьмешь. Поэтому не стоит тревожиться, в лучшем случае поймаешь какой-нибудь ответ, в худшем - тишина. :))) Максимум - если неправильное подключение к КОМ могут выхода сгореть, но судя по цене прибор должен быть укомплектован под "самые помидоры" кабелем для коннекта с компом. :)))
З.Ы. При такой стоимости и отсутствие мануала......
← →
serko © (2007-01-30 20:05) [11]
> З.Ы. При такой стоимости и отсутствие мануала......
Это ты правильно подметил! я сам удивляюсь... И главное на мои запросы они не отвечают...
Нашел в инструкции только то, что ШТЕКЕРА RS-232. И ничего более подходящего...
Ну чтож будем копать....
А прилагающаяся программа самая примитивная - имеет 3 кнопки подключиться, считать данные и отключиться... Видно что на делфи делали...(а может я и ошибаюсь...)
← →
serko © (2007-01-30 22:26) [12]Могу с уверенность сказать шо эта прога сделана в Delphi...
Открыл я этот файлик с помощью проги Dede, которая пытается востанавливать код проекта... (на асемблере получается, в нем я совсем не шарю)
Так вот с ее помощью я узнал что:
Comport.BauldRate:=br115200
ComPort.Parity.Bits:=prEven
← →
medved_68 © (2007-01-31 14:44) [13]
> Нашел в инструкции только то, что ШТЕКЕРА RS-232. И ничего
> более подходящего...
> Ну чтож будем копать....
serko Это говорит о том что распиновка разъема - стандартная. :))
> Comport.BauldRate:=br115200
> ComPort.Parity.Bits:=prEven
Ну вот и скорость с паритетом стали известны!!! В самый раз накропать программку прослойку и поглядеть на протокол "изнутри". :)))
← →
serko © (2007-01-31 22:13) [14]Нашел прогу которую рекомендуют в той книге (PortMon)
Запустил я свою прогу нажал подключиться к прибору и скачать данные в символьном виде (есть еще кнопка скачать в двоичном виде), и вот что мне выдал PortMon:
0 0.00005950 link_bca6400.ex IRP_MJ_CREATE Serial1 SUCCESS Options: Open
1 0.00000363 link_bca6400.ex IOCTL_SERIAL_GET_BAUD_RATE Serial1 SUCCESS
2 0.00000251 link_bca6400.ex IOCTL_SERIAL_GET_LINE_CONTROL Serial1 SUCCESS
3 0.00000223 link_bca6400.ex IOCTL_SERIAL_GET_CHARS Serial1 SUCCESS
4 0.00000251 link_bca6400.ex IOCTL_SERIAL_GET_HANDFLOW Serial1 SUCCESS
5 0.00001034 link_bca6400.ex IOCTL_SERIAL_SET_BAUD_RATE Serial1 SUCCESS Rate: 115200
6 0.00000587 link_bca6400.ex IOCTL_SERIAL_CLR_RTS Serial1 SUCCESS
7 0.00000587 link_bca6400.ex IOCTL_SERIAL_CLR_DTR Serial1 SUCCESS
8 0.00000419 link_bca6400.ex IOCTL_SERIAL_SET_LINE_CONTROL Serial1 SUCCESS StopBits: ERROR Parity: EVEN WordLength: 8
9 0.00000251 link_bca6400.ex IOCTL_SERIAL_SET_CHAR Serial1 SUCCESS EOF:0 ERR:c0 BRK:c0 EVT:0 XON:11 XOFF:13
10 0.00000419 link_bca6400.ex IOCTL_SERIAL_SET_HANDFLOW Serial1 SUCCESS Shake:0 Replace:0 XonLimit:256 XoffLimit:256
11 0.00000251 link_bca6400.ex IOCTL_SERIAL_SET_TIMEOUTS Serial1 SUCCESS RI:100 RM:5 RC:1000 WM:100 WC:1000
12 0.00000223 link_bca6400.ex IOCTL_SERIAL_SET_QUEUE_SIZE Serial1 SUCCESS InSize: 1024 OutSize: 8096
13 0.00000810 link_bca6400.ex IOCTL_SERIAL_SET_WAIT_MASK Serial1 SUCCESS Mask: RXCHAR TXEMPTY RX80FULL
14 0.00000307 link_bca6400.ex IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXCLEAR RXCLEAR
15 0.00002235 link_bca6400.ex IRP_MJ_WRITE Serial1 SUCCESS Length 1: H
16 0.00509702 link_bca6400.ex IRP_MJ_READ Serial1 SUCCESS Length 48: ...)........................`...................
17 0.00000810 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
18 0.00001145 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
19 0.00000782 link_bca6400.ex IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXCLEAR RXCLEAR
20 3.41533072 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
21 0.00007236 link_bca6400.ex IRP_MJ_WRITE Serial1 SUCCESS Length 7: A.p....
22 0.00141694 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
23 0.00002850 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
24 5.04327980 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
25 0.00001090 link_bca6400.ex IRP_MJ_READ Serial1 SUCCESS Length 13: P....6...././
26 0.00003743 link_bca6400.ex IRP_MJ_WRITE Serial1 SUCCESS Length 7: A.p....
27 0.00153846 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
28 0.00288389 link_bca6400.ex IRP_MJ_READ Serial1 SUCCESS Length 17: ......*..".0..../
29 0.00002486 link_bca6400.ex IRP_MJ_WRITE Serial1 SUCCESS Length 7: A.p....
30 0.00000363 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
31 0.00295512 link_bca6400.ex IRP_MJ_READ Serial1 SUCCESS Length 17: ...._2 .14 .A/
32 0.00002319 link_bca6400.ex IRP_MJ_WRITE Serial1 SUCCESS Length 7: A.p....
33 0.00000363 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
34 0.00144069 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
35 0.00143705 link_bca6400.ex IRP_MJ_READ Serial1 SUCCESS Length 3: Q./
36 0.00004163 link_bca6400.ex IRP_MJ_WRITE Serial1 SUCCESS Length 7: M......
37 0.00298418 link_bca6400.ex IRP_MJ_READ Serial1 SUCCESS Length 17: ....@..$......6./
38 0.00000670 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
39 0.00002598 link_bca6400.ex IRP_MJ_WRITE Serial1 SUCCESS Length 7: M......
40 0.00301351 link_bca6400.ex IRP_MJ_READ Serial1 SUCCESS Length 17: ;.^.......\...Y./
41 0.00000419 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
42 0.00002347 link_bca6400.ex IRP_MJ_WRITE Serial1 SUCCESS Length 7: M.. ...
43 0.00303083 link_bca6400.ex IRP_MJ_READ Serial1 SUCCESS Length 17: ..D............./
44 0.00000363 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
45 0.00002319 link_bca6400.ex IRP_MJ_WRITE Serial1 SUCCESS Length 7: M..0...
46 0.00302245 link_bca6400.ex IRP_MJ_READ Serial1 SUCCESS Length 17: ................/
47 0.00000335 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
48 0.00002291 link_bca6400.ex IRP_MJ_WRITE Serial1 SUCCESS Length 7: M..@...
49 0.00302385 link_bca6400.ex IRP_MJ_READ Serial1 SUCCESS Length 17: ................/
50 0.00000335 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
51 0.00002347 link_bca6400.ex IRP_MJ_WRITE Serial1 SUCCESS Length 7: M..P...
52 0.00302776 link_bca6400.ex IRP_MJ_READ Serial1 SUCCESS Length 17: ................/
и т.д. ......................................
← →
Сергей М. © (2007-02-01 08:51) [15]
> есть еще кнопка скачать в двоичном виде
Судя по логу именно ее и надо было нажимать
← →
medved_68 © (2007-02-01 12:13) [16]serko обрати внимание на первоначальную настройку порта. Линия RTS (есть такое ощущение) поднимается в +12 только когда идет передача с компа на девайс. :)))
← →
tesseract © (2007-02-01 18:07) [17]
> medved_68 © (01.02.07 12:13) [16]
Т.е девайс с контролем потока или программисты накатали случайный код.
← →
medved_68 © (2007-02-01 20:03) [18]
> Т.е девайс с контролем потока или программисты накатали
> случайный код.
Судя по логу контроль есть. :))) Причем RTS_CONTROL_TOGGLE (ИМХО), могу и ошибаться, впрочем проверяется элементарно. :)))
← →
serko © (2007-02-01 22:19) [19]
> Судя по логу именно ее и надо было нажимать
Данные должны считываться при нажатии на ЛЮБУЮ кнопку....
я вот выложил ПРОЕКТ который сделал с помощью DEDE:
www.progiseregi.narod.ru/other/link_bca6400.rar
А вот еще однинаблюдения с помощью PortMon:
2 0.00005783 link_bca6400.ex IRP_MJ_CREATE Serial1 SUCCESS Options: Open
3 0.00000363 link_bca6400.ex IOCTL_SERIAL_GET_BAUD_RATE Serial1 SUCCESS
4 0.00000251 link_bca6400.ex IOCTL_SERIAL_GET_LINE_CONTROL Serial1 SUCCESS
5 0.00000251 link_bca6400.ex IOCTL_SERIAL_GET_CHARS Serial1 SUCCESS
6 0.00000251 link_bca6400.ex IOCTL_SERIAL_GET_HANDFLOW Serial1 SUCCESS
7 0.00001034 link_bca6400.ex IOCTL_SERIAL_SET_BAUD_RATE Serial1 SUCCESS Rate: 115200
8 0.00000559 link_bca6400.ex IOCTL_SERIAL_CLR_RTS Serial1 SUCCESS
9 0.00000559 link_bca6400.ex IOCTL_SERIAL_CLR_DTR Serial1 SUCCESS
10 0.00000419 link_bca6400.ex IOCTL_SERIAL_SET_LINE_CONTROL Serial1 SUCCESS StopBits: ERROR Parity: EVEN WordLength: 8
11 0.00000251 link_bca6400.ex IOCTL_SERIAL_SET_CHAR Serial1 SUCCESS EOF:0 ERR:c0 BRK:c0 EVT:0 XON:11 XOFF:13
12 0.00000419 link_bca6400.ex IOCTL_SERIAL_SET_HANDFLOW Serial1 SUCCESS Shake:0 Replace:0 XonLimit:256 XoffLimit:256
13 0.00000251 link_bca6400.ex IOCTL_SERIAL_SET_TIMEOUTS Serial1 SUCCESS RI:100 RM:5 RC:1000 WM:100 WC:1000
14 0.00000223 link_bca6400.ex IOCTL_SERIAL_SET_QUEUE_SIZE Serial1 SUCCESS InSize: 1024 OutSize: 8096
15 0.00000726 link_bca6400.ex IOCTL_SERIAL_SET_WAIT_MASK Serial1 SUCCESS Mask: RXCHAR TXEMPTY RX80FULL
16 0.00000307 link_bca6400.ex IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXCLEAR RXCLEAR
17 0.00002291 link_bca6400.ex IRP_MJ_WRITE Serial1 SUCCESS Length 1: H
18 0.00511154 link_bca6400.ex IRP_MJ_READ Serial1 SUCCESS Length 48: .....<......r................M...............G..
19 0.00000754 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
20 0.00001062 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
21 0.00000838 link_bca6400.ex IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXCLEAR RXCLEAR
22 13.45164539 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
СОЕДИНЕНИЕ С ПРИБОРОМ
23 0.00006649 link_bca6400.ex IRP_MJ_WRITE Serial1 SUCCESS Length 7: A.p....
24 0.00141219 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
25 0.00002850 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
26 18.12356347 link_bca6400.ex IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
Попытка скачать данные с прибора. Выдает сообщение "ДИСК ПУСТОЙ"
27 0.00001034 link_bca6400.ex IRP_MJ_READ Serial1 SUCCESS Length 13: ...... ...(./
28 0.00002738 link_bca6400.ex IRP_MJ_WRITE Serial1 SUCCESS Length 1: G
29 0.00000503 link_bca6400.ex IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT
30 0.00000335 link_bca6400.ex IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
31 0.00000643 link_bca6400.ex IRP_MJ_CLEANUP Serial1 SUCCESS
32 0.00163512 link_bca6400.ex IRP_MJ_CLOSE Serial1 SUCCESS
ВЫХОД ИЗ ПРОГРАММЫ
Завтра если получится сделаю так чтобы на приборе был один файл, чтобы было видно где начинается считывание файла и где оно закагчивается...
Я в этих наблюдениях не вижу данных которые в результате получаются в файле... Какие-то точки с буквами.... :-(
← →
medved_68 © (2007-02-02 08:17) [20]
> Я в этих наблюдениях не вижу данных которые в результате
> получаются в файле... Какие-то точки с буквами.... :-(
Так возможно это и есть данные, только то что ты видишь - пропущено через знакогенератор. :)))
serko а кто выступает инициатором диалога - комп или девайс??? Есть ли режим ОНЛАЙН???Типа данные поступают сразу на комп без оседания в памяти девайса.
← →
serko © (2007-02-02 22:37) [21]
> Так возможно это и есть данные, только то что ты видишь
> - пропущено через знакогенератор. :)))
Не понятно мне как этот генератор практически из одних точек может СДЕЛАТЬ текст, и причем количество точек в каждом принятом пакете практически везде одинаково! Логики пока не заметил...
Я вот создал что что обещал....
www.progiseregi.narod.ru/other/File.rar
В архиве есть файлы:
1Вspt.txt - файл полученный после считывания данных как СИМВОЛОВ
SPT.LOG - наблюдения PortMon
1Вbin.txt - файл полученный после считывания данных как БИНАРНЫЕ
BIN.LOG - наблюдения PortMon
Меня болеше интересует файл 1Вspt.txt т.к. там я вижу данные с которыми я буду дальше работать, а 1Вbin.txt - одни крокозяблики!
> а кто выступает инициатором диалога - комп или девайс???
в приборе есть пункт "ПЭВМ", при клике на который пишет сообщение типа "Запустите программу **** и считывайте данные". Я запускаю это прогу соединяюсь с прибором и читаю...
> Есть ли режим ОНЛАЙН???Типа данные поступают сразу на комп
> без оседания в памяти девайса.
Такого режима нет...
← →
serko © (2007-05-18 22:43) [22]Ну что никаких идей больше нет?
← →
medved_68 © (2007-05-21 14:50) [23]serko а каие еще тебе идеи нужны???? Вроде перетерли все варианты и даже схему исследований накидали. :)))
Страницы: 1 вся ветка
Текущий архив: 2008.04.27;
Скачать: CL | DM;
Память: 0.55 MB
Время: 0.017 c