|
COM технология + matlab |
|
|
|
Nov 13 2008, 19:19
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 23-08-07
Пользователь №: 30 024

|
обрисую суть проблемы: есть прибор (измеритель комплексных коэффициентов передач и отражения Обзор 304/1) выполненный отдельным блоком (на нём только два входа/выхода и выключатель питания). К нему есть ПО которое осуществляет управление и отображение результатов измерения. производителем заявлена поддержка COM технологии в этом ПО для расширения возможности измерений и их автоматизации. что мне нужно: из matlab хватать результаты измерений и неплохо бы управлять прибором. что я понял, поизучав вопрос (с COM технологией до этого не сталкивался): h = actxserver('obzor.automation'); - получили указатель на СОМ объект дальше надо получить указатель на реализованный в этом объекте интерфейс. где взять его имя? и что делать дальше? помогите пожалуйста разобраться или задать грамотный вопрос производителю. для экспериментов вот ссылка на ПО к прибору (~4Mb): http://www.planar.chel.ru/Products/Measure...zor304_v1.2.zipзаранее благодарен откликнувшимся
|
|
|
|
|
 |
Ответов
(1 - 5)
|
Nov 21 2008, 16:17
|
Группа: Новичок
Сообщений: 8
Регистрация: 7-10-08
Пользователь №: 40 755

|
Если известны команды управления, то их можно вручную передать с матлаба:
s = serial('COM1','BaudRate',19200,'Parity','none','StopBits',1,'DataBits',8); s %set(s1,'Parity','mark','DataBits',7); %set(s,'BaudRate',19200,'Parity','none','StopBits',1,'DataBits',8) %set(s,{'StopBits','RecordName'},{1,'nnn.txt'}) %set(s,'Parity')
fopen(s)
Прием даных: out = fscanf(s,'%5d'); % распознавание передачи символов в ASCII out
Передача даных:
Syntax: fprintf(obj,'cmd') fprintf(obj,'format','cmd') fprintf(obj,'cmd','mode') fprintf(obj,'format','cmd','mode')
В хелпе все написано.
|
|
|
|
|
Nov 21 2008, 21:24
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 23-08-07
Пользователь №: 30 024

|
2MosVit: неее, не то. Вы путаете физический интерфейс COM(RS232) и программный интерфейс COM технологии, в рамках которой можно например, управлять одним приложением из другого или обмениваться данными между приложениями (COM, DCOM,DDE)(под виндой), даже если они написаны на разных языках, но поддерживают эту самую СОМ технологию и правильно зарегестрированы в системе
всё ещё жду помощи
Сообщение отредактировал AlexyEM - Nov 21 2008, 21:27
|
|
|
|
|
Dec 1 2008, 11:45
|
iBuilder©
   
Группа: Свой
Сообщений: 519
Регистрация: 14-07-04
Из: Минск
Пользователь №: 322

|
Цитата(AlexyEM @ Nov 13 2008, 23:19)  что я понял, поизучав вопрос (с COM технологией до этого не сталкивался): h = actxserver('obzor.automation'); - получили указатель на СОМ объект дальше надо получить указатель на реализованный в этом объекте интерфейс. где взять его имя? и что делать дальше? А там нет функции сохранения описания COM объекта в файл? Помнится нужно было управлять вордом, тоже был напряг с описание функций, писал на Qt. Так у Qt была функция сохранения имён/форматов в файл, сохранял, узучал, только это и помогло. Попробуйте в этом направлении порыть. Если такого в Матлабе нет, попторуйте из С++ сделать то что я делал, имена и форматы получите точно.
|
|
|
|
|
Dec 2 2008, 10:27
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(AlexyEM @ Nov 14 2008, 01:19)  что я понял, поизучав вопрос (с COM технологией до этого не сталкивался): h = actxserver('obzor.automation'); - получили указатель на СОМ объект дальше надо получить указатель на реализованный в этом объекте интерфейс. где взять его имя? и что делать дальше? Для работы с СОМ серверами нужно извлечь type library. Вся эта инфа хранится прямо внутри самого сервера. Добыть можно специальными утилитами. Для каждого языка программирования (а часто и используемого тулчейна) эта утилита своя. Например, для Borland CBuilder это tlibimp.exe. Для Python'а есть утилита (скрипт) в составе pycom. И т.д. Вообще, для нормальной работы с СОМ серверами нужно нормальное описание API - т.е. всех интерфейсов, которые поддерживает сервер. А type library - это уже непосредственно для работы - чтобы в свой код объявления вставлять, ведь описания словесного, что и как и для чего оно предназначено, там нет. По СОМ есть неплохая книжка. Для общего развития тоже пойдет. Успехов.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Dec 2 2008, 17:21
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 23-08-07
Пользователь №: 30 024

|
всем большое спасибо за желание помочь
кажется разобрался: всё дело в том, что судя по всему, производитель прибора (серийное производство начато всего год назад) не дописал ПО в части СОМ (объект СОМ зарегистрирован в системе, а методов и функций в нем просто нет). Другой аналогичный прибор (ниже диапазоном) не вызывает проблем при внешнем управлением, и в документации всё описано. смотрел exeшники утилитой oleview - мои подозрения на недописаное ПО оправдались на сколько я могу судить находясь на моём уровне знания и понимания СОМ. Похоже надо ждать обновления ПО.
если у кого ещё есть мысли, с удовольствием выслушаю
Сообщение отредактировал AlexyEM - Dec 2 2008, 17:27
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|