Что мерить, чем мерить, как мерить. И, естественно - зачем мерить...

При поддержке компании ПРИСТ


Ответить

Re: Вопросы использования шины IEEE-488 (GPIB)

Ср янв 08, 2020 20:30:14

НАа алиэкспрессе продаётся USB-GPIB
https://aliexpress.ru/item/32987733610. ... 7qNOG&mp=1
Стоит ли его покупать?

Re: Вопросы использования шины IEEE-488 (GPIB)

Ср янв 08, 2020 21:54:48

Весь интернет просто завален этими китайскими клонами/имитациями/фейками 82357B адаптеров. По внешнему виду коробки и всего одному отзыву невозможно сделать вывод, что там у ней внутре и будет ли с ней работать софт. На eevblog есть специальная ветка по этим адаптерам.

Re: Вопросы использования шины IEEE-488 (GPIB)

Пт мар 20, 2020 14:57:57

Немного допилил данный проект.

Под ARDUINO UNO с установленной ATmega328.
Есть платы с уже разведенными пинами А6, А7, а есть где надо подпаиваться к ногам микросхемы.

Использовал последнюю на данный момент версию ver. 0.48.08, 27/01/2020.

Добавил два температурных датчика LM35.
Есть как аппаратная фильтрация, так и программная.


++temp --> температура 1
++temp2 --> температура 2

Для снижения помех, подключение LM35 выполняется через RC цепочку 10 кОм, 0,1 мкФ.
Программно скорректировано значение. Измерялось ниже на 0,5 °С по сравнению с Pt1000.


Изображение Изображение Изображение Изображение
AR488_4.ZIP
(30.62 KiB) Скачиваний: 277

Re: Вопросы использования шины IEEE-488 (GPIB)

Ср апр 08, 2020 15:55:11

Для определения и работы AR488 в Prologix GPIB Configurator.
Установить в AR488 ++setvstr GPIB-USB version 5.0
Потом ++savecfg

«Обратите внимание, что для KE5FX GPIB Configurator требуется несколько более длинная строка версии, а именно «GPIB-USB version M.NN», где M - основной, а NN - младший номер версии, который составляет не менее 2.xx и не более 4.26.​ Настройки активируются в соответствии с функциями оборудования в различных версиях.​ Все, что равно или выше 4.26, рассматривается как последняя версия, и все функции включены.​ Эмануэле упоминает, что ему «пришлось форсировать« версию 6 »», но все, что выше 4.26, похоже, работает нормально.​ Я успешно использовал строку «GPIB-USB версия 4.99».»
https://www.eevblog.com/forum/testgear/ ... ezgpib/20/

Далее:

Для захвата экрана с TDS754C в HP7470A Plotter Emulator —​ Version 2.02
Подать команды​
++mode 0
++lon 1

В самой программе режим GPIB установить на No assigned Plotter address (listen only)
Потом нажать w
Для выхода из режима ожидания нажать любую клавишу.
Для сохранения захваченного экрана нажать s

В осциллографе настроить сохранение на HPGL​ и порт GPIB.

Re: Вопросы использования шины IEEE-488 (GPIB)

Ср апр 29, 2020 19:29:38

Привет усатые-полосатые :)
Запилил скрипт для EZGPIB под Advantest R6871E для максимально быстрого сбора.
На 5PLC (7 1/2) достигнута скорость 254 s/min (Azero on).
А максимальная 2375 s/min (100 uS).

Формат выходных данных сразу готов к импорту в Excel.

Код:
Program R6871Logger;                 // ѕрограмма дл¤ сбора данных с мультиметра Advantest

const MakeModel='R6871';             // ”казать модель прибора
const GPIB_address = 1;              // ”казать адрес прибора на шине GPIB
const Duration = 3;                  // ƒлительность измерени¤, мин. (+выход по нажатию клавиши)
const Directory = 'C:\Incoming';     // ѕуть дл¤ сохранени¤ файла CSV
const Timeout = 0.3;

var Filename : String;
var t_start_datetime: TDateTime;           
var t_acq_datetime: TDateTime;             
var tmp_str:String;
var elapsed_time:longint;
var Answer:String;
var i:longint;

procedure Init_File;
begin;
   EZGPIB_FileClearBuffer;
   tmp_str:='date';     // First column
   EZGPIB_ConvertAddToString(tmp_str,';');           
   EZGPIB_ConvertAddToString(tmp_str,MakeModel);     // Second column
   EZGPIB_FileAddToBuffer(tmp_str);                 
   Filename := Directory+'\';
   EZGPIB_ConvertAddToString(Filename,DateOf(EZGPIB_TimeNow));
   EZGPIB_ConvertAddToString(Filename,' '+MakeModel);
   EZGPIB_ConvertAddToString(Filename,'.csv');       
   if EZGPIB_FileExists(Filename)then EZGPIB_FileDelete(Filename); // Erase old file
   EZGPIB_FileWrite(Filename);                       // Save File
end;

procedure Save_File;
begin;
   EZGPIB_FileClearBuffer;
   tmp_str :='';   
   EZGPIB_ConvertAddToString(tmp_str,t_acq_datetime); // First column           
   EZGPIB_ConvertAddToString(tmp_str,';');           
   EZGPIB_ConvertAddToString(tmp_str,Answer);         // Second column
   EZGPIB_FileAddToBuffer(tmp_str);                   // Add to file buffer
   EZGPIB_FileWrite(Filename);                        // Save File
end; 

procedure Init_Device;
begin;
   EZGPIB_BusAutoOff; // Ёквивалент команды ++auto 0
   EZGPIB_BusWriteData(gpib_address,'Z');// Reset to defaults
   EZGPIB_TimeSleep(5);
   EZGPIB_BusWriteData(gpib_address,'ac');// Acal execute
   EZGPIB_TimeSleep(3);
   EZGPIB_BusWriteData(gpib_address,'++read_tmo_ms 10000'); // установка таймаута 10 сек
   EZGPIB_BusIFC; // Perform an Interface Clear
   EZGPIB_BusEnableEoi;
   EZGPIB_BusSetEos(0);           
   EZGPIB_TimeSleep(1);
   
    // IT8   100 PLC
    // IT7   50 PLC
    // IT6   20 PLC
    // IT5   10 PLC
    // IT4   5 PLC
    // IT3   1 PLC
    // IT2   10 msec
    // IT1   1 msec
    // IT0   100 usec
   
   EZGPIB_BusWriteData(gpib_address,'F1,R5,M1,IT4,SI0,TD0,AZ1,RE7,CI0');
   EZGPIB_TimeSleep(2);
   EZGPIB_BusWriteData(gpib_address,'H0,S0,SL2,DL0,CS');
   EZGPIB_BusAutoOn;
   EZGPIB_TimeSleep(5);     
end;                           

// Main procedure 
begin;
   EZGPIB_screenclear;                      // Clear the Output Console
   Init_Device;                             // Send command strings to meter
   Init_File;                             // Look for file, delete it if it exists. Create new file with headers
   t_start_datetime :=EZGPIB_TimeNow;     // Get time at beginning of each cycle
   elapsed_time:=0; 
   while (elapsed_time < duration) and (not ezgpib_kbdKeyPressed) do begin;
     repeat
     Answer:='';                             // Clear previous reading
     EZGPIB_BusWriteData(gpib_address,'E');
     i:=0;
       repeat
        EZGPIB_TimeSleep(0.0001);                             
        i:=i+1;
       until (EZGPIB_BusDataAvailable or (i>200000));     
      Answer:=EZGPIB_BusGetData;
     until Length(Answer)>1;
       
     Answer := AnsiReplaceText ( Answer, '.', ','); // переделка ответа под стандарт с цифровым разделителем зап¤той
     t_acq_datetime := EZGPIB_TimeNow;
     elapsed_time:=MinutesBetween(t_start_datetime,t_acq_datetime);// Calculate elapsed time since start of acquisition
     EZGPIB_ScreenWriteLn(Answer);
     Save_File;                                     // If result contains data, write data to the file
     
   end;
end.                                             
Вложения
таблица для R6871.xls
(27 KiB) Скачиваний: 274

Re: Вопросы использования шины IEEE-488 (GPIB)

Ср июн 03, 2020 11:45:37

Доработал немного скрипт.
Теперь при создании в имени файла указывается дата и время.
Стало возможно, без переименования файлов, запускать несколько измерений в один день.
Ранее, при создании файлов, ранее созданный в этот день файл стирался :(
Также интервал измерения можно задавать (в секундах).
И переделал вывод в файл. Для более простой постобработки в Excel.

В EZGPIB заметил такой баг - при редактировании скрипта и компиляции, после запуска может неправильно отрабатывать задержки.
После закрытия\открытия программы всё работает.


Код:
Program R6871Logger;                  // Программа для сбора данных с мультиметра Advantest

const MakeModel='R6871';              // Указать модель прибора
const GPIB_address = 1;               // Указать адрес прибора на шине GPIB
const Duration = 2880;                // Длительность измерения, мин. (+выход по нажатию клавиши)
const Directory = 'C:\Incoming';      // Путь для сохранения файла CSV
const Temperature = 'Temp1';          // Температура
const Sampling = 10;                  // Интервал измерения, сек

var Maker : TDateTime;                // Дата/время создания файла
var Filename : String;
var t_start_datetime: TDateTime;           
var t_acq_datetime: TDateTime;             
var tmp_str:String;
var elapsed_time:longint;
var Answer:String;
var i:longint;
var Temp1:String;
var Make : String;

procedure Init_File;
begin;
   Maker := EZGPIB_TimeNow;                          // Дата/время создания файла
   EZGPIB_FileClearBuffer;
   tmp_str:='date';                                  // First column
   EZGPIB_ConvertAddToString(tmp_str,';');           
   EZGPIB_ConvertAddToString(tmp_str,'DCV');         // Second column
   EZGPIB_ConvertAddToString(tmp_str,';');
   EZGPIB_ConvertAddToString(tmp_str,'Temp °C'+#13+#10);     // Third column  + пустую строку для более простого выделения столбца в Excel
   EZGPIB_FileAddToBuffer(tmp_str);                 
   Filename := Directory+'\';
   EZGPIB_ConvertAddToString(Make,Maker);
   Make := AnsiReplaceText ( Make, ':', '_');        //Замена недопустимых символов в имени файла
   EZGPIB_ConvertAddToString(Filename,Make);
   EZGPIB_ConvertAddToString(Filename,' '+MakeModel);
   EZGPIB_ConvertAddToString(Filename,'.csv');       
   EZGPIB_FileWrite(Filename);                       // Save File
end;

procedure Save_File;
begin;
   EZGPIB_FileClearBuffer;
   tmp_str :='';   
   EZGPIB_ConvertAddToString(tmp_str,t_acq_datetime);// First column           
   EZGPIB_ConvertAddToString(tmp_str,';');           
   EZGPIB_ConvertAddToString(tmp_str,Answer);        // Second column
   EZGPIB_ConvertAddToString(tmp_str,';');           
   EZGPIB_ConvertAddToString(tmp_str,Temp1);         // Third column
   EZGPIB_FileAddToBuffer(tmp_str);                  // Add to file buffer
   EZGPIB_FileWrite(Filename);                       // Save File
end; 

procedure Init_Device;
begin;
   EZGPIB_BusAutoOff; // Эквивалент команды ++auto 0
   EZGPIB_BusWriteData(gpib_address,'Z');            // Reset to defaults
   EZGPIB_TimeSleep(5);
   EZGPIB_BusWriteData(gpib_address,'ac');           // Acal execute
   EZGPIB_TimeSleep(3);
   EZGPIB_BusWriteData(gpib_address,'++read_tmo_ms 10000'); // установка таймаута 10 сек
   EZGPIB_BusIFC; // Perform an Interface Clear
   EZGPIB_BusEnableEoi;
   EZGPIB_BusSetEos(0);           
   EZGPIB_TimeSleep(1);
   
    // IT8   100 PLC
    // IT7   50 PLC
    // IT6   20 PLC
    // IT5   10 PLC
    // IT4   5 PLC
    // IT3   1 PLC
    // IT2   10 msec
    // IT1   1 msec
    // IT0   100 usec
   
   EZGPIB_BusWriteData(gpib_address,'F1,R5,M1,IT6,SI0,TD0,AZ1,RE7,CI0');
   EZGPIB_TimeSleep(2);
   EZGPIB_BusWriteData(gpib_address,'H0,S0,SL2,DL0,CS');
   EZGPIB_TimeSleep(5);
   EZGPIB_BusAutoOn;

end;                           

// Main procedure 
begin;
   EZGPIB_screenclear;                            // Clear the Output Console
   Init_Device;                                   // Send command strings to meter
   Init_File;                                     // Look for file, delete it if it exists. Create new file with headers
   t_start_datetime :=EZGPIB_TimeNow;             // Get time at beginning of each cycle
   elapsed_time:=0; 
     
   while (elapsed_time < duration) and (not ezgpib_kbdKeyPressed) do begin;
     EZGPIB_TimeWaitForMultipleOf (Sampling);     // Интервал измерения
     repeat
     Answer:='';                                  // Clear previous reading
     EZGPIB_BusWriteData(gpib_address,'E');
     i:=0;
       repeat
        EZGPIB_TimeSleep(0.0001);                             
        i:=i+1;
       until (EZGPIB_BusDataAvailable or (i>200000));   //ответ от R6871E 20PLC AZon составляет 0,406 сек 
      Answer:=EZGPIB_BusGetData;
     until Length(Answer)>1;
       
     Answer := AnsiReplaceText ( Answer, '.', ','); // переделка ответа под стандарт с цифровым разделителем запятой
     t_acq_datetime := EZGPIB_TimeNow;
     elapsed_time:=MinutesBetween(t_start_datetime,t_acq_datetime);// Calculate elapsed time since start of acquisition

     repeat
     Temp1:='';                                     // Clear previous reading
     EZGPIB_BusWriteData(gpib_address,'++temp');   // ответ от Arduino Uno R488 составляет 58 мсек
     i:=0;
       repeat
        EZGPIB_TimeSleep(0.001);                             
        i:=i+1;
       until (EZGPIB_BusDataAvailable or (i>200));     
      Temp1:=EZGPIB_BusGetData;
     until Length(Temp1)>1;
       
     Temp1 := AnsiReplaceText ( Temp1, '.', ',');   // переделка ответа под стандарт с цифровым разделителем запятой
     
     EZGPIB_ScreenWrite(t_acq_datetime);
     EZGPIB_ScreenWrite('  ');         
     EZGPIB_ScreenWrite(Answer);
     EZGPIB_ScreenWrite('  '); 
     EZGPIB_ScreenWriteLn(Temp1);
     Save_File;                                     // If result contains data, write data to the file
     
   end;
end.                                             

Re: Вопросы использования шины IEEE-488 (GPIB)

Пт июл 31, 2020 17:52:00

Прикрутил таки модуль с BME280.
Теперича можно и температуру, и влажность, да и даже давление атмосферное мерить :)

Установить библиотеку Adafruit_BME280.

После подключения модуля с BME280 залить в плату скетч сканера адресов I2C.
В Adafruit_BME280.h в #define BME280_ADDRESS (0x77) подставить правильный адрес BME280.
У меня был 76.

Теперь можно и другие устройства с I2C подключать, при желании ;)

После заливки прошивки не забыть перепаять провода которые шли к А4 и А5 на 13 и 6 пин.
Раскладку проводов смотреть в AR488_Layouts.h в разделе #if defined(AR488_UNO) || defined(AR488_NANO).
В случае применения другой платы, распиновку подгонять под неё.
И надо будет править AR488_Layouts.cpp.
У меня AR488_UNO R3.

Прошивка на основе AR488, ver. 0.48.22, 08/04/2020

Ну, и скрипт сбора данных дополнил.
Вложения
Advantest R6871 Log+temp +humi + 10sec SI.txt
(6.39 KiB) Скачиваний: 201
AR488_6.ZIP
(35.71 KiB) Скачиваний: 264

Re: Вопросы использования шины IEEE-488 (GPIB)

Вс авг 09, 2020 18:44:59

TAKASAGO TC-911B GPIB RS323 PROGRAMMER
Изображение Изображение Изображение Изображение Изображение Изображение Изображение Изображение Изображение Изображение Изображение Изображение Изображение
Был приобретен для TAKASAGO FK-600L ELECTRONIC DC LOAD.
Ну как всегда при общении с японскими приборами НИ КАКОЙ документации...... :cry:
С большим трудом с помощью гугл перевода, отправил запрос(через сайт с иероглифами),
и о чудо ПОЛУЧИЛ сканы мануалов! За что спасибо Akiyama Masayoshi из takasago-ltd.com.
Терерь можно рулить с компа и ELECTRONIC LOAD, и кое какими блоками питания(у меня впрочем их нет).
Но главной фишкой TAKASAGO TC-911B оказался Peripheral I O, да еще с оптронной развякой!
Теперь кроме TAKASAGO, модно рулить еще чем либо, через GPIB.

До сего момента у меня была задача выяснить емкости аккумуляторов 12 вольт, 7-42 А.
Но так как не было мануала на TAKASAGO FK-600L, методом научного тыка был найден контакт на
разьеме на задней панели, который выключал вход нагрузки. Включать надо было врукопашную.
Но так как надо было мерять напряжение разряда аккумулятора, был задействован ADVANTEST R6871.
В некоторых ревизиях цифровых плат, ADVANTEST R6871 оказалось есть сигналы компаратора,которые не выведены на периферию.
Но они есть у ADVANTEST R6871E-OHM, а цифровые платы (почти)одинаковы у всей этой серии.
Осцилл в помощь, нужные контакты на разьеме цифровой платы найдены!
Дальше проще, не заморачиваясь с опторазвязкой, 5 вольт реле, и ОК!
Сейчас когда есть мануалы на TC-911B и FK-600L стало гораздо проще.

Re: Вопросы использования шины IEEE-488 (GPIB)

Чт сен 10, 2020 05:47:44

Привет всем.

У меня вопрос. Как сделать самодельный кабель male-to-male.
"...Сигнальные провода, имеющие обратный провод должны быть витыми парами,
...второй провод витой пары должен быть заземлен вблизи терминатора"

Как это вблизи терминатора? И с обоих или с одного конца

И есть ли готовые кабели длиной 0,5-1 м?

Re: Вопросы использования шины IEEE-488 (GPIB)

Чт сен 10, 2020 07:54:45

Привет всем.

У меня вопрос. Как сделать самодельный кабель male-to-male.
"...Сигнальные провода, имеющие обратный провод должны быть витыми парами,
...второй провод витой пары должен быть заземлен вблизи терминатора"

Как это вблизи терминатора? И с обоих или с одного конца

И есть ли готовые кабели длиной 0,5-1 м?


Когда делал RS-232-GPIB, из журнала Радио взял, CENC-24M, кабель от принтера.
На вилке распаял по схеме, на плате земляные в кучу, работало.
Изображение Изображение Изображение
Правда теперь пользуюсь фабричными :))

И есть ли готовые кабели длиной 0,5-1 м?
Изображение
У меня от ~0.5 метра до 2 :)) Удобно приборы между собой 0.5м, на комп 2м.
И на али есть, взял на пробу один, по мне хуже внешне оригинальных, впрочем работает.

Re: Вопросы использования шины IEEE-488 (GPIB)

Вс ноя 08, 2020 09:55:06

Вопрос к счастливым обладателям НЕ фейка.
Смогу ли я обращаться к Keysight Agilent 82357B USB-GPIB Interface High-Speed USB 2.0 из простой терминальной программы типа "TERMINAL by Br@y" под Win7 или XP?

Re: Вопросы использования шины IEEE-488 (GPIB)

Ср ноя 18, 2020 00:09:01

А что у китайского 82357B есть какие проблемы? Вроде все работает.

Насколько помню TERMINAL это для RS232 т.е. работать не должен в любом случае.

Re: Вопросы использования шины IEEE-488 (GPIB)

Ср ноя 18, 2020 01:17:25

Для клона Agilent-овского GPIB все равно надо Agilent VISA ставить чтобы полноценно работать можно было. А там есть тулза ( закладка) Interactive IO - терминал для GPIB. Хотя как по мне чтобы с этими монстрами нет связываться есть достаточно много терминалов VISA на Python. К сожалению с VISA прийдется смириться т.к это единственная стандартная точка доступа к GPIB от разных производителей. Цепляться к более низкоуровневой gpib-32.dll на 64 битных операционках лучше не надо -слишком много граблей.

Re: Вопросы использования шины IEEE-488 (GPIB)

Ср ноя 18, 2020 09:17:13

Пощупал я этого софтового монстра от агилента. Сам переходник - клон.
В общем на этот софт плюнул, и использую linux-gpib под Linux соответственно. Никаких проблем.
Терминал к слову входит в состав библиотеки.

Re: Вопросы использования шины IEEE-488 (GPIB)

Ср ноя 18, 2020 13:01:39

Может кому схема клона пригодиться.
Изображение
Где то файл прошивки I2C EEPROM с фирмварью еще валялся, но найти немогу.
Вложения
Agilent 82357B gpib sch.jpg
(111.22 KiB) Скачиваний: 1176

Re: Вопросы использования шины IEEE-488 (GPIB)

Чт ноя 19, 2020 10:49:42

Пощупал я этого софтового монстра от агилента. Сам переходник - клон.
В общем на этот софт плюнул, и использую linux-gpib под Linux соответственно. Никаких проблем.
Терминал к слову входит в состав библиотеки.

Мне тоже прежде всего такая мысль пришла. Давно работаю на Линукс, Ubuntu и производных. Только с версии 18.04 в Ubuntu стал медленно работать переключатель клавиатуры, если не по предлагаемому по-умолчанию Super+Space. Придется искать другую разновидность Линукс. А вы как выходите из ситуации?

Re: Вопросы использования шины IEEE-488 (GPIB)

Чт ноя 19, 2020 13:44:17

Мне тоже прежде всего такая мысль пришла. Давно работаю на Линукс, Ubuntu и производных. Только с версии 18.04 в Ubuntu стал медленно работать переключатель клавиатуры, если не по предлагаемому по-умолчанию Super+Space. Придется искать другую разновидность Линукс. А вы как выходите из ситуации?

Никогда не использовал Ubuntu. Поэтому не подскажу, что они там накрутили.

Re: Вопросы использования шины IEEE-488 (GPIB)

Чт ноя 19, 2020 16:46:56

Посмотрите пожалуста на своих клона 82357B какая микросхема I2C стоит около Cypress FX2. Вроде была инфа что если поставить большую 24LC128 или 24LC256 то можно в нее фирмварь записать полную и тогда нет надобности грузить ее со стороны драйвера при каждом старте. Вроде такое решение значительно повышает надежность интрефейса особенно при длинных сессиях.

Re: Вопросы использования шины IEEE-488 (GPIB)

Чт ноя 19, 2020 23:10:56

U10 стоит 24С08. Но схема не совпадает: помимо PGA Agilent 1822-0639 U6 есть еще xilinx xc9536xl U5 и место U12 вероятно под флешку. Не говоря уж о двух DC-DC и генератора на 5МГц. В общем китайцы в своем репертуаре.

Re: Вопросы использования шины IEEE-488 (GPIB)

Пт ноя 20, 2020 00:17:17

U10 стоит 24С08. Но схема не совпадает: помимо PGA Agilent 1822-0639 U6 есть еще xilinx xc9536xl U5 и место U12 вероятно под флешку. Не говоря уж о двух DC-DC и генератора на 5МГц. В общем китайцы в своем репертуаре.

А причем тут китайцы? Если на плате есть Agilent 1822-0639 то это оригинал.
Ответить