реклама на сайте
подробности

 
 
> Agilent 34401a, драйвер IVI COM и C#, Пишу прогу на С# есть непонимание в работе драйвера при связи по RS232
Цырен
сообщение Aug 23 2009, 11:04
Сообщение #1


Частый гость
**

Группа: Validating
Сообщений: 184
Регистрация: 26-06-07
Из: Санкт-Петербург
Пользователь №: 28 714



Есть измерительный прибор. Замечательный, Agilent 34401a. Необходимо написать программу на C#, используя драйвер скачанный с сайта Agilent (FTD2XX_NET.dll). Как написано здесь, перед использованием скачал и установил IviSharedComponents_2.0.0.exe.

Где-то в примерах достал код программы и сделал по своему. В главное окно кинул кнопку. Программа состоит только из обработчика прерывания по нажатию кнопки и вывода ошибки на экран:
Код
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
[i]using Agilent.Agilent34401.Interop;[/i]

namespace SKVTprj
{
    public partial class Form1 : Form
    {
        
        public Form1()
        {
            InitializeComponent();
        }
        
        private void button1_Click(object sender, EventArgs e)
        {
            Agilent34401Class dmm = new Agilent34401Class();

            try
            {
                dmm.Initialize("ASRL4::INSTR", false, true, "Simulate=false");
            }
            catch(Exception exp)
            {
                MessageBox.Show(exp.Message);
            }
        }
    }
}


Подключаю Agilent кабелем RS232 (родной, помоему) к порту COM4, компилю, и нажимаю кнопку.
Результат - ошибка на строчке "dmm.Initialize("ASRL4::INSTR", false, true, "Simulate=false");", а выводится, точно не помню, но что-то типа не может IO-данные принять как единое... При этом я мониторил COM-порт программой "Free Serial Monitor" и видно, что программа что-то шлет короткое и не в ASCII-формате, а Agilent отвечает нормально (суть ответа, наверное, сообщение об ошибке). smile3046.gif

Может мне надо как-то настройки связи Agilent настроить (я ничего не трогал ничео) или я что-то в программе не так сделал (может перед вызовом initialize() нужно что-то еще сделать), но когда я передаю функции initialize параметр "Simulate=true" (то бишь работаю с симуляцией прибора), то ошибок нет и даже можно проводить измерение напряжений и т.д.

Думаю ничего сложного нет, просто я что-то упускаю. Может тупо надо скорость в приборе настроить. Но ведь в программе скорость связи нельзя установить пока не проинициализируешь объект типа Agilent34401Class. Значит в приборе должна стоять какая-то фиксированная скорость связи или скорость автоматически настраивается.

И еще - я связывался с прибором при помощи утилиты-менеджера из IOLibSuite_15.1.12008.0.exe. Связь устанавливал, но менеджер поставил галочку предупреждения, мол прибор имеет нехорошее ID. Наверное тоже что-то с непониманием данных, которые шлются друг другу.

Вообщем выслушаю любое предложение. Заранее благодарю.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 08:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.01374 секунд с 7
ELECTRONIX ©2004-2016