Корзина пуста

  • +7 (495) 777-55-91

    ул. Плеханова 15А


В7-78/1: два вольтметра к одному компьютеру

Страницы: 1
RSS
В7-78/1: два вольтметра к одному компьютеру
 
Добрый день!

Для работы в составе лабораторной установки было приобретено 2 вольтметра В7-78/1. Подключение обеих приборов к компу осуществляется по USB. Задача простая - необходимо одновременно с двух вольтметров через определённые промежутки времени (~2 сек.) записывать результаты измерения в файл (или передавать, например, в excel) для последующей обработки. Программное обеспечение, поставляемое в комплекте (версия 2.0.3), позволяет работать только с одним прибором (хотя "видит" оба, предлагает выбрать). Что нужно сделать, чтобы при помощи прилагаемого ПО можно было одновременно работать с двумя вольтметрами?
 
почему бы вам не воспользоваться одним вольтметром с установленной платой сканера?

проблем с управленим не будет и один вольтметр освободится....
 
Я думал про сканер, но у наc его нету. Начальство заказало 2 прибора, которые по их мнению подходят под задачу, а дальше "пусть инженеры сделают так чтобы всё работало". Проблема в том, что у нас гогсударственная организация (институт МГИЭМ), и как, к сожалению, в большинстве государственных организаций деньги на оборудование приходится "выбивать" пару месяцев. А измерения проводить нужно сейчас. Хочется решить проблему малой кровью.
 
по USB не получится, возникают проблемы с адресацией при считывании данных.

но это можно реализовать по интерфейсу GPIB (до 4-х вольтметров в одной программе), но данные будут записываться в разные файлы
 
Что в данном случае понимается под адресацией? Софтина видит оба прибора, различает их по серийному номеру и позволяет выбрать с каким работать. А потом можно, ничего не перезагружая, нажать кнопочку "стоп", выбрать другой и работать с ним. Лично я полагаю, это какая-то программная недоработка или умышленно введённое ограничение.

С GPIB те-же проблемы что и со сканером. Интерфейсная плата стОит далеко не десять баксов, чтобы можно было пойти и просто так купить, а начальство денег не даёт. Уже дошло до маразма, что "самый главный профессор" для второго вольтметра притащил второй комп. :)
 
GPIB адресация простая, задается адрес от 1 до 32

программные недоработки тут не причем - прогрмамист не может включить в программу алогритм типа "Начальство заказало 2 прибора, которые по их мнению подходят под задачу, а дальше "пусть инженеры сделают так чтобы всё работало". Проблема в том, что у нас гогсударственная организация (институт МГИЭМ), и как, к сожалению, в большинстве государственных организаций деньги на оборудование приходится "выбивать" пару месяцев. А измерения проводить нужно сейчас. Хочется решить проблему малой кровью."
 
У меня похожая проблема и не знаю как её решить.



Сейчас мне надо используя Delphi или С++ написать прогу что бы просто подключится в вольтметру и сконфигурировать его для измерения. Платы для GPIB у нас нет, а с USB я дело не имел. Сейчас сижу, потихоньку в них разбираюсь, но что то пока "не фонтан". Если вам удалось решить вашу задачу или сколь нибудь в ней продвинуться прошу поделиться информацией или дать совет.
 
Одновременное измерение с двух В7-78/1, подключенных по интерфейсу USB возможно! Для этого нужно воспользоваться стандартным программным обеспечением (утилитой идущей в комплекте). Данные с каждого прибора будут записываться в два потока в зависимости от времени, позже данные нужно синхронизировать. Откровенно утилита убогая, однако позволит вам частично автоматизировать процесс измерения. Внимательно изучите программу.
 
Да, с обновленным ПО, в котором прибор идентифицируется по серийному номеру, это стало возможным.
 
Пишу на Делфи недавно. Для получения данных от вольтметра В7-78/1 в свою прогу поступаю так.

1. Запускаю программу поддержки вольтметра (поставляется производителем), подключаю в ней нужные режимы работы,

и сворачиваю её в трей.

2. Запускаю свою функцию поиска данных:

var

data:hwnd;

str:string;

asd:array[0..255]of char;



function TForm1.PoiskdataUSB:HWND;//поиск данных окна USB

var

i:integer;

b:byte;

begin

for i:=0 to 100000 do begin

GetWindowText(i,asd,255);

if (asd[1]='.') or (asd[2]='.') then begin

Timer1.Enabled:=true;

result:=i;break;

end;

end;

end;

// в таймере пишем GetWindowText(data,asd,255);

//str:=asd; - в str - текст от вольтметра (преобразуй и используй)
 
Замечательно :)
 
Здравствуйте!



1. В какой библиотеке находятся подпрограммы взаимодействия ЭВМ с вольтметром по USB ? VisaCtrl.dll ?

2. Напишите, пожалуйста, пример описания или динамической загрузки библиотеки подпрограмм взаимодействия ЭВМ с вольтметром по USB для Делфи.

Для С примеры есть, а для Делфи почему-то не написано.
Вечный студент
 
Здравствуйте.



1. Описание драйвера? Нaдо искать на сайте разработчика: http://www.ni.com

2. Эти примеры предоставляет производитель. Я спрошу про Делфи. Но очень врядли - есть набор команд, есть драйвер, есть примеры на VB, VC++, Labview.



Что-то для делфи есть двумя постами выше.
 
Я, вроде, тут сообщение писал. Наверное, сбой произошёл, оно куда-то пропало.

Ответ на свой 1 вопрос я нашёл. Библиотека называется Visa32.dll.



Касательно драйвера. Мне его описание не нужно, драйвер установлен, программа NI VISA Interactive control вольтметр видит, управляет им. В отличие, кстати, от "родной" пристовской утилиты, скачанной с сайта Прист.



"Что-то для Делфи", приведённое здесь, ИМХО, жест отчаяния. Человеку никто не помог и ему пришлось выдирать показания вольтметра обходным путём.
Вечный студент
 
Вольтметр у вас другой серии. Для него нужна другая заводская программа.

Что бы ее получить напишите пожалуйста запрос на soft@prist.ru с указанием номера прибора.



Что про Делфи - то увы, вы выбрали язык для которого я еще ни у кого примеров не видел. Почему-то он не популярен у иностранных производителей.
 
Цитата
<QUOTE author="Сергей Верижников"><s>[quote="Сергей Верижников"]</s>Вольтметр у вас другой серии. Для него нужна другая заводская программа.
Что бы ее получить напишите пожалуйста запрос на <EMAIL email="soft@prist.ru">soft@prist.ru</EMAIL> с указанием номера прибора.
</QUOTE>


А к чему такая секретность? Номер TWхххххххх. Неужели нельзя сразу диск положить в комплект и на сайте выложить? Написал и на почту.

Цитата
<QUOTE author="Сергей Верижников"><s>[quote="Сергей Верижников"]</s>Что про Делфи - то увы, вы выбрали язык для которого я еще ни у кого примеров не видел. Почему-то он не популярен у иностранных производителей.</QUOTE>
Наткнулся в сети на такой пример:

<URL url="http://www.home.agilent.com/owc_discussions/message.jspa?messageID=48564"><LINK_TEXT text="http://www.home.agilent.com/owc_discuss ... geID=48564">http://www.home.agilent.com/owc_discussions/message.jspa?messageID=48564</LINK_TEXT>&a...;


На его основе накропал следующий код:
Код
function viOpenDefaultRM(rm: PInteger)
                             : Integer; stdcall; external 'visa32.dll';
function viFindRsrc(RM: Integer; Res: PChar; PfindList, PnumInstrs:
   PInteger; Resource: PChar): Integer; stdcall; external 'visa32.dll';
function viFindNext(findList: Integer; Resource: PChar)
                             : Integer; stdcall; external 'visa32.dll';
function viOpen(RM: Integer; ResourceName: pChar; AccessMode,TimeOut:
       Integer; vi: PInteger): Integer; stdcall; external 'visa32.dll';
function viClose(VI: Integer): Integer; stdcall; external 'visa32.dll';
function viRead(VI: Integer; Buffer: pChar; Count: Integer;
          RetCount: Pinteger): Integer; stdcall; external 'visa32.dll';
function viWrite(VI: Integer; Buffer: pChar; Count: Integer;
          RetCount: Pinteger): Integer; stdcall; external 'visa32.dll';
var
  Form1: TForm1;

implementation

var
  buf: array[0..127]of char;        // Буфер R/W
  RM: integer;
  numInstrs: Integer;
  findList: Integer;
  V7_78: integer;                   // VI

{$R *.dfm}

//--------------------------------------------------------------------//
//---------------- Инициализация интерфейса USB В7-78/1 --------------//
//--------------------------------------------------------------------//
procedure TForm1.Button1Click(Sender: TObject);
 var Resource: array[0..127]of char;
     Status: integer;
     RetCount: integer;
     SerN_: PChar;
begin
// Открытие сессии NI VISA
  viOpenDefaultRM(@RM);
// Поиск прибора по серийному номеру
  SerN_:=PChar('?*'+LabeledEdit1.Text+'?*');
  viFindRsrc(RM, SerN_, @findList, @numInstrs, Resource);

//  viFindNext (findList, buf);  // Если приборов несколько

  Status:= viOpen(RM, Resource, 0, 0, @V7_78);
  Sleep(100);
// Перевод В7-78/1 в режим ДУ
  buf:='SYSTem:REMote';
  Status:= viWrite(V7_78, buf, 13, @RetCount);
// Установка В7-78/1 в начальное состояние:
  buf:='*RST; *CLS; DISPlay ON; DISPlay:TEXT:CLEar';
  Status:= viWrite(V7_78, buf, 42, @RetCount);
end;

//--------------------------------------------------------------------//
//--------------------------- Измерение В7-78 ------------------------//
//--------------------------------------------------------------------//
procedure TForm1.Button3Click(Sender: TObject);
 var s1: string;
     Status: integer;
     RetCount: integer;
begin
 buf:='READ?';
// Запись в В7-78/1 команды
 Status:= viWrite(V7_78, buf, 5, @RetCount);
// Считывание с В7-78/1
 Status:= viRead(V7_78, buf, 128, @RetCount);
 s1:=buf;
 if pos(Char($0A),s1)<>0   // В принципе, можно и без этого, по USB признак конца строки не передаётся почему-то
   then s1:=copy(s1,1,pos(Char($0A),s1)-1);
 Edit2.Text:=s1;
end;

Буду рад, если кому-то поможет.
Изменено: MrGalaxy - 19.11.2018 10:23:58
Вечный студент
 
Спасибо. Пригодится несомненно.

ПО выслал.
 
Благодарю, Сергей.

Программа заработала.

Вы знаете, она всё же далека от идеала. Грузится долго, виснет. С Visa Interactive control работать сподручнее. Не знаю, как там с лицензионными тонкостями, но VISA на сайте NI лежит в свободном доступе. Может, стОит рекомендовать пользователям её?

С уважением, Вадим.
Вечный студент
 
Без VISA программа вообще не заработает - драйвера в ней.

Так, что у любого пользователя PT-TOOl VISA на ПК есть.
 
Код
// Поиск прибора по серийному номеру
  SerN_:=PChar('?*:'+LabeledEdit1.Text+':?*');
Возвращаясь к написанному коду.

Немного подправил (ввёл двоеточия), так будет корректней.
Изменено: MrGalaxy - 18.11.2018 09:13:25
Вечный студент
 
Спасибо.
Страницы: 1
Читают тему

Внимание! Отсутствие ошибок и опечаток не гарантируется. В технические характеристики средств измерений неутвержденного типа производителем могут быть внесены изменения без предварительного уведомления. Соответствие важных параметров требует уточнения. Полные технические характеристики предоставляются по отдельному запросу. Нашли ошибку? Выделите мышкой и нажмите Ctrl+Enter.

Войти в личный кабинет

Заказать обратный звонок

Обратите внимание, все поля - обязательны для заполнения.
Обновить

Обратная связь

Обратите внимание, все поля - обязательны для заполнения.
Обновить