Beispiel #1
0
        /// <summary>
        /// 发送命令,在返回1之前停止命令处理
        /// </summary>
        /// <param name="m_Command"></param>
        /// <param name="m_Timeout"></param>
        public void WriteOpc(string m_Command, int m_Timeout)
        {
            try
            {
                if (m_IO488 != null)
                {
                    m_IO488.WriteString(m_Command, false);
                    m_IO488.WriteString("*OPC?", false); // 在返回1之前停止命令处理
                }

                string m_Temp = string.Empty;
                for (int i = 0; i < m_Timeout * 10; i++)
                {
                    if (ReadString().Length > 0)
                    {
                        return;
                    }
                    else
                    {
                        System.Threading.Thread.Sleep(100);
                    }
                }
            }
            catch { }
        }
Beispiel #2
0
 /// <summary>
 /// 发送命令 字符串型
 /// </summary>
 /// <param name="m_Command"></param>
 public bool WriteString(string m_Command)
 {
     try
     {
         int n = 0;
         if (m_IO488 != null && commMode == InstrumentCommunicationMode.TCP)
         {
             m_IO488.WriteString(m_Command, true);
             return(true);
         }
         else if (m_IO488 != null)
         {
             n = m_IO488.IO.WriteString(m_Command);
             if (n == m_Command.Length)
             {
                 return(true);
             }
         }
     }
     catch (System.IO.IOException error)  //掉线
     {
         return(false);
     }
     catch (Exception ex)
     {
         if (ex.Message == "VI_ERROR_NCIC: Not the controller-in-charge")  //GPIB掉线
         {
             return(false);
         }
         return(false);
     }
     return(false);
 }
Beispiel #3
0
        public bool Send(string instruCmd)
        {
            bool ret = true;

            if (String.IsNullOrEmpty(instruCmd))
            {
                return(false);
            }
            try
            {
                IO_Obj.WriteString(instruCmd, true);
            }
            catch {
                ret = false;
            }

            return(ret);
        }
Beispiel #4
0
        public void BK8600()
        {
            //EC7::0x8800::802197036737120008::INSTR
            string          srcAddress = "USB0::0x2EC7::0x8800::802197036737120008::INSTR";
            ResourceManager rMgr       = new ResourceManagerClass();
            FormattedIO488  src        = new FormattedIO488Class();
            var             addresses  = rMgr.FindRsrc("USB?*");

            var s = rMgr.Description;
            var x = rMgr.SpecVersion;

            src.IO         = (IMessage)rMgr.Open(srcAddress, AccessMode.NO_LOCK, 2000, "");
            src.IO.Timeout = 2000;
            src.IO.Clear();
            src.WriteString("*RST; *OPC ?", true);
            src.WriteString("*IDN?", true);
            string temp = src.ReadString();
        }
Beispiel #5
0
 public bool DoCommand(string strCommand)
 {
     // Send the command.
     m_IoObject.WriteString(strCommand, true);
     // Check for inst errors.
     return(CheckInstrumentErrors(strCommand));
     //return true;
 }
Beispiel #6
0
        public static void ScanIOStatus(ref string[] m_IOAddress, ref string[] m_Description)
        {
            string empty = string.Empty;
            string str   = string.Empty;

            try
            {
                ResourceManagerClass resourceManagerClass = new ResourceManagerClass();
                string[]             portNames            = new string[1];
                FormattedIO488Class  formattedIO488Class  = new FormattedIO488Class();
                portNames = resourceManagerClass.FindRsrc("GPIB?*");
                for (int i = 1; i < (int)portNames.Length; i++)
                {
                    try
                    {
                        string empty1 = string.Empty;
                        formattedIO488Class = new FormattedIO488Class()
                        {
                            IO = (IMessage)resourceManagerClass.Open(portNames[i], AccessMode.NO_LOCK, 20000, "")
                        };
                        formattedIO488Class.IO.Clear();
                        try
                        {
                            formattedIO488Class.WriteString("*IDN?", true);
                            Thread.Sleep(100);
                            empty1 = formattedIO488Class.ReadString();
                        }
                        catch
                        {
                        }
                        if (!(empty1 != string.Empty) || !(empty1 != "\r\n"))
                        {
                            try
                            {
                                formattedIO488Class.WriteString("ID?", true);
                                Thread.Sleep(100);
                                empty1 = formattedIO488Class.ReadString();
                            }
                            catch
                            {
                            }
                            if (empty1 != string.Empty)
                            {
                                if (empty != string.Empty)
                                {
                                    empty = string.Concat(empty, ";");
                                    str   = string.Concat(str, ";");
                                }
                                empty = string.Concat(empty, portNames[i]);
                                str   = string.Concat(str, empty1);
                            }
                        }
                        else
                        {
                            if (empty != string.Empty)
                            {
                                empty = string.Concat(empty, ";");
                                str   = string.Concat(str, ";");
                            }
                            empty = string.Concat(empty, portNames[i]);
                            str   = string.Concat(str, empty1);
                        }
                        formattedIO488Class.IO.Close();
                    }
                    catch
                    {
                    }
                }
                try
                {
                    portNames = resourceManagerClass.FindRsrc("TCPIP0::?*");
                }
                catch
                {
                    portNames = new string[0];
                }
                for (int j = 0; j < (int)portNames.Length; j++)
                {
                    try
                    {
                        formattedIO488Class = new FormattedIO488Class()
                        {
                            IO = (IMessage)resourceManagerClass.Open(portNames[j], AccessMode.NO_LOCK, 20000, "")
                        };
                        formattedIO488Class.IO.Timeout = 2000;
                        formattedIO488Class.WriteString("*IDN?", true);
                        Thread.Sleep(100);
                        string str1 = formattedIO488Class.ReadString();
                        if (str1 != string.Empty)
                        {
                            if (empty != string.Empty)
                            {
                                empty = string.Concat(empty, ";");
                                str   = string.Concat(str, ";");
                            }
                            empty = string.Concat(empty, portNames[j]);
                            str   = string.Concat(str, str1);
                        }
                    }
                    catch
                    {
                    }
                }
                try
                {
                    portNames = resourceManagerClass.FindRsrc("ASRL?*");
                }
                catch
                {
                    portNames = new string[0];
                }
                for (int k = 0; k < (int)portNames.Length; k++)
                {
                    try
                    {
                        formattedIO488Class = new FormattedIO488Class()
                        {
                            IO = (IMessage)resourceManagerClass.Open(portNames[k], AccessMode.NO_LOCK, 20000, "")
                        };
                        formattedIO488Class.WriteString("*IDN?", true);
                        Thread.Sleep(100);
                        string str2 = formattedIO488Class.ReadString();
                        if (str2 != string.Empty)
                        {
                            if (empty != string.Empty)
                            {
                                empty = string.Concat(empty, ";");
                                str   = string.Concat(str, ";");
                            }
                            empty = string.Concat(empty, portNames[k]);
                            str   = string.Concat(str, str2);
                        }
                        formattedIO488Class.IO.Close();
                    }
                    catch
                    {
                    }
                }
                try
                {
                    portNames = resourceManagerClass.FindRsrc("USB?*");
                }
                catch
                {
                    portNames = new string[0];
                }
                for (int l = 0; l < (int)portNames.Length; l++)
                {
                    try
                    {
                        formattedIO488Class = new FormattedIO488Class()
                        {
                            IO = (IMessage)resourceManagerClass.Open(portNames[l], AccessMode.NO_LOCK, 20000, "")
                        };
                        formattedIO488Class.WriteString("*IDN?", true);
                        Thread.Sleep(100);
                        string str3 = formattedIO488Class.ReadString();
                        if (str3 != string.Empty)
                        {
                            if (empty != string.Empty)
                            {
                                empty = string.Concat(empty, ";");
                                str   = string.Concat(str, ";");
                            }
                            empty = string.Concat(empty, portNames[l]);
                            str   = string.Concat(str, str3);
                        }
                        formattedIO488Class.IO.Close();
                    }
                    catch
                    {
                    }
                }
                portNames = SerialPort.GetPortNames();
                for (int m = 0; m < (int)portNames.Length; m++)
                {
                    try
                    {
                        int num = 0;
                        while (true)
                        {
                            string     str4       = "*IDN?";
                            SerialPort serialPort = new SerialPort(portNames[m])
                            {
                                BaudRate = 9600,
                                DataBits = 8,
                                Parity   = Parity.None
                            };
                            serialPort.Open();
                            Thread.Sleep(300);
                            serialPort.Write("\r\n");
                            for (int n = 0; n < str4.Length; n++)
                            {
                                serialPort.Write(str4.Substring(n, 1));
                                Thread.Sleep(20);
                                if (n == str4.Length - 1)
                                {
                                    serialPort.Write("\r");
                                }
                            }
                            Thread.Sleep(300);
                            string str5 = serialPort.ReadExisting();
                            serialPort.Close();
                            if (!(str5 != string.Empty) || str5.IndexOf("*IDN?") >= 0)
                            {
                                if (num >= 1)
                                {
                                    break;
                                }
                                num++;
                            }
                            else
                            {
                                if (empty != string.Empty)
                                {
                                    empty = string.Concat(empty, ";");
                                    str   = string.Concat(str, ";");
                                }
                                empty = string.Concat(empty, portNames[m]);
                                str   = string.Concat(str, str5);
                                break;
                            }
                        }
                    }
                    catch (Exception exception)
                    {
                    }
                }
            }
            catch
            {
            }
            char[] chrArray = new char[] { ';' };
            m_IOAddress = empty.Split(chrArray);
            char[] chrArray1 = new char[] { ';' };
            m_Description = str.Split(chrArray1);
        }