Для работы в составе лабораторной установки было приобретено 2 вольтметра В7-78/1. Подключение обеих приборов к компу осуществляется по USB. Задача простая - необходимо одновременно с двух вольтметров через определённые промежутки времени (~2 сек.) записывать результаты измерения в файл (или передавать, например, в excel) для последующей обработки. Программное обеспечение, поставляемое в комплекте (версия 2.0.3), позволяет работать только с одним прибором (хотя "видит" оба, предлагает выбрать). Что нужно сделать, чтобы при помощи прилагаемого ПО можно было одновременно работать с двумя вольтметрами?
Пользователь
Сообщений: Регистрация: 12.04.2018
0
17.09.2009 21:18:56
почему бы вам не воспользоваться одним вольтметром с установленной платой сканера?
проблем с управленим не будет и один вольтметр освободится....
Пользователь
Сообщений: Регистрация: 12.04.2018
0
18.09.2009 19:01:05
Я думал про сканер, но у наc его нету. Начальство заказало 2 прибора, которые по их мнению подходят под задачу, а дальше "пусть инженеры сделают так чтобы всё работало". Проблема в том, что у нас гогсударственная организация (институт МГИЭМ), и как, к сожалению, в большинстве государственных организаций деньги на оборудование приходится "выбивать" пару месяцев. А измерения проводить нужно сейчас. Хочется решить проблему малой кровью.
Пользователь
Сообщений: Регистрация: 12.04.2018
0
21.09.2009 13:13:35
по USB не получится, возникают проблемы с адресацией при считывании данных.
но это можно реализовать по интерфейсу GPIB (до 4-х вольтметров в одной программе), но данные будут записываться в разные файлы
Пользователь
Сообщений: Регистрация: 12.04.2018
0
25.09.2009 12:20:53
Что в данном случае понимается под адресацией? Софтина видит оба прибора, различает их по серийному номеру и позволяет выбрать с каким работать. А потом можно, ничего не перезагружая, нажать кнопочку "стоп", выбрать другой и работать с ним. Лично я полагаю, это какая-то программная недоработка или умышленно введённое ограничение.
С GPIB те-же проблемы что и со сканером. Интерфейсная плата стОит далеко не десять баксов, чтобы можно было пойти и просто так купить, а начальство денег не даёт. Уже дошло до маразма, что "самый главный профессор" для второго вольтметра притащил второй комп.
Пользователь
Сообщений: Регистрация: 12.04.2018
0
25.09.2009 17:43:13
GPIB адресация простая, задается адрес от 1 до 32
программные недоработки тут не причем - прогрмамист не может включить в программу алогритм типа "Начальство заказало 2 прибора, которые по их мнению подходят под задачу, а дальше "пусть инженеры сделают так чтобы всё работало". Проблема в том, что у нас гогсударственная организация (институт МГИЭМ), и как, к сожалению, в большинстве государственных организаций деньги на оборудование приходится "выбивать" пару месяцев. А измерения проводить нужно сейчас. Хочется решить проблему малой кровью."
Пользователь
Сообщений: Регистрация: 12.04.2018
0
17.10.2009 23:34:11
У меня похожая проблема и не знаю как её решить.
Сейчас мне надо используя Delphi или С++ написать прогу что бы просто подключится в вольтметру и сконфигурировать его для измерения. Платы для GPIB у нас нет, а с USB я дело не имел. Сейчас сижу, потихоньку в них разбираюсь, но что то пока "не фонтан". Если вам удалось решить вашу задачу или сколь нибудь в ней продвинуться прошу поделиться информацией или дать совет.
Пользователь
Сообщений: Регистрация: 12.04.2018
0
01.06.2010 06:42:31
Одновременное измерение с двух В7-78/1, подключенных по интерфейсу USB возможно! Для этого нужно воспользоваться стандартным программным обеспечением (утилитой идущей в комплекте). Данные с каждого прибора будут записываться в два потока в зависимости от времени, позже данные нужно синхронизировать. Откровенно утилита убогая, однако позволит вам частично автоматизировать процесс измерения. Внимательно изучите программу.
Модератор
Сообщений: Регистрация: 12.04.2018
0
01.06.2010 11:29:49
Да, с обновленным ПО, в котором прибор идентифицируется по серийному номеру, это стало возможным.
Пользователь
Сообщений: Регистрация: 12.04.2018
0
25.10.2012 20:40:21
Пишу на Делфи недавно. Для получения данных от вольтметра В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 - текст от вольтметра (преобразуй и используй)
Модератор
Сообщений: Регистрация: 12.04.2018
0
26.10.2012 10:02:52
Замечательно
Пользователь
Сообщений: Регистрация: 12.04.2018
0
20.11.2013 13:59:32
Здравствуйте!
1. В какой библиотеке находятся подпрограммы взаимодействия ЭВМ с вольтметром по USB ? VisaCtrl.dll ?
2. Напишите, пожалуйста, пример описания или динамической загрузки библиотеки подпрограмм взаимодействия ЭВМ с вольтметром по USB для Делфи.
Для С примеры есть, а для Делфи почему-то не написано.
Вечный студент
Модератор
Сообщений: Регистрация: 12.04.2018
0
20.11.2013 14:21:45
Здравствуйте.
1. Описание драйвера? Нaдо искать на сайте разработчика: http://www.ni.com
2. Эти примеры предоставляет производитель. Я спрошу про Делфи. Но очень врядли - есть набор команд, есть драйвер, есть примеры на VB, VC++, Labview.
Что-то для делфи есть двумя постами выше.
Пользователь
Сообщений: Регистрация: 12.04.2018
0
22.11.2013 09:41:10
Я, вроде, тут сообщение писал. Наверное, сбой произошёл, оно куда-то пропало.
Ответ на свой 1 вопрос я нашёл. Библиотека называется Visa32.dll.
Касательно драйвера. Мне его описание не нужно, драйвер установлен, программа NI VISA Interactive control вольтметр видит, управляет им. В отличие, кстати, от "родной" пристовской утилиты, скачанной с сайта Прист.
"Что-то для Делфи", приведённое здесь, ИМХО, жест отчаяния. Человеку никто не помог и ему пришлось выдирать показания вольтметра обходным путём.
Вечный студент
Модератор
Сообщений: Регистрация: 12.04.2018
0
22.11.2013 09:57:55
Вольтметр у вас другой серии. Для него нужна другая заводская программа.
Что бы ее получить напишите пожалуйста запрос на soft@prist.ru с указанием номера прибора.
Что про Делфи - то увы, вы выбрали язык для которого я еще ни у кого примеров не видел. Почему-то он не популярен у иностранных производителей.
Пользователь
Сообщений: Регистрация: 12.04.2018
0
25.11.2013 10:11:49
Цитата
<QUOTE author="Сергей Верижников"><s>[quote="Сергей Верижников"]</s>Вольтметр у вас другой серии. Для него нужна другая заводская программа. Что бы ее получить напишите пожалуйста запрос на <EMAIL email=""></EMAIL> с указанием номера прибора. </QUOTE>
А к чему такая секретность? Номер TWхххххххх. Неужели нельзя сразу диск положить в комплект и на сайте выложить? Написал и на почту.
Цитата
<QUOTE author="Сергей Верижников"><s>[quote="Сергей Верижников"]</s>Что про Делфи - то увы, вы выбрали язык для которого я еще ни у кого примеров не видел. Почему-то он не популярен у иностранных производителей.</QUOTE>
Наткнулся в сети на такой пример:
<URL url=" text=" ... geID=48564">;
На его основе накропал следующий код:
Код
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;
Буду рад, если кому-то поможет.
Изменено: - 19.11.2018 10:23:58
Вечный студент
Модератор
Сообщений: Регистрация: 12.04.2018
0
25.11.2013 10:28:16
Спасибо. Пригодится несомненно.
ПО выслал.
Пользователь
Сообщений: Регистрация: 12.04.2018
0
25.11.2013 10:48:48
Благодарю, Сергей.
Программа заработала.
Вы знаете, она всё же далека от идеала. Грузится долго, виснет. С Visa Interactive control работать сподручнее. Не знаю, как там с лицензионными тонкостями, но VISA на сайте NI лежит в свободном доступе. Может, стОит рекомендовать пользователям её?
С уважением, Вадим.
Вечный студент
Модератор
Сообщений: Регистрация: 12.04.2018
0
25.11.2013 11:28:47
Без VISA программа вообще не заработает - драйвера в ней.
Так, что у любого пользователя PT-TOOl VISA на ПК есть.
Пользователь
Сообщений: Регистрация: 12.04.2018
0
06.06.2014 15:38:19
Код
// Поиск прибора по серийному номеру
SerN_:=PChar('?*:'+LabeledEdit1.Text+':?*');
Возвращаясь к написанному коду.
Немного подправил (ввёл двоеточия), так будет корректней.
Изменено: - 18.11.2018 09:13:25
Вечный студент
Модератор
Сообщений: Регистрация: 12.04.2018
0
06.06.2014 15:41:48
Спасибо.
Страницы:1
Читают тему (гостей: 5)
Внимание! Отсутствие ошибок и опечаток не гарантируется. В технические характеристики средств измерений неутвержденного типа производителем могут быть внесены изменения без предварительного уведомления. Соответствие важных параметров требует уточнения. Полные технические характеристики предоставляются по отдельному запросу. Нашли ошибку? Выделите мышкой и нажмите Ctrl+Enter.