C #: Управление источником питания с помощью библиотек VISA и устройства USB-TP PIA4850.Не в состоянии правильно прочитать выход блока питания - PullRequest
1 голос
/ 08 марта 2019

Я пытаюсь управлять источником питания (от Kikusui), используя устройство Kikusui, USB-TP PIA4850.Я пользуюсь библиотекой Ivi.Visa.Interop.Ниже приведен код, по которому я могу успешно управлять источником питания, устанавливая требуемое напряжение.

(ссылка на руководство по программированию: https://www.kikusui.co.jp/kiku_manuals/P/PIA4800/english/index.html)

(ссылка на руководство по эксплуатации: https://www.kikusui.co.jp/kiku_manuals/P/PIA4850_E5.pdf)

Using Ivi.Visa.Interop;
namespace USBTPTest
{
class USBTPController
{

private IResourceManager3 rm = new ResourceManager();
private IMessage iMessage;

public USBTPController() //to get the address of the device connected and open the address if found
    {
        string[] adrsList = rm.FindRsrc("?*");
        if (adrsList.Count() != 0)
        {
            Open(adrsList[0]);
        }
    }

public bool Open(string str)
    {
        string addr = str;
        iMessage = (IMessage)rm.Open(addr, AccessMode.NO_LOCK, 0, "");

        //iMessage.WriteString("TRM 2");
        iMessage.WriteString("NODE 5");
        iMessage.WriteString("CH 1");
        iMessage.WriteString("REM 1");
        bOpened = true;
        return true;
    }

public bool SetVoltage(float vol) {} //method to set the desired voltage to the power supply, when called with an appropriate argument

Установленное напряжение проверяется мультиметром на мощностиклеммы питания. Аналогичным образом ток также устанавливается и проверяется. До тех пор, пока код не будет запущен и даст ожидаемые результаты.

public string ReadVOut()
    {
        iMessage.WriteString("VOUT?"); //Query OUT(ON/OFF) measurement value
        string VOutStatus;
        VOutStatus = iMessage.ReadString(1024); //Read from PIA
        return VOutStatus;
    }
public string ReadIOut()
    {

        iMessage.WriteString("IOUT?"); //Query OUT(ON/OFF) measurement value
        string COutStatus;
        COutStatus = iMessage.ReadString(1024); //Read from PIA
        return COutStatus;

    }
}
}

Проблема возникает, когда я читаю выводимые значения напряжения / тока. Хотя я могучитать значения правильно, иногда чтение Voltage с помощью ReadVOut () дает ток и наоборот. Я не могу выяснить, является ли это ошибкой в ​​коде или в источнике питания, к которому я подключен, или что-то еще. И вид помощи/ Идеи / ведет очень хотелось бы.

...