static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //Application.Run(new Form1()); //NameToData.DoubleAddrRead("PD1289"); NameToAddress.AddAddress("GCodeFilePath", "A31100"); NameToData.StringAddrRead("GCodeFilePath", 255); }
/// <summary> /// 函数作用:从地址读取单字数据 /// 函数返回值:错误码 888 读取失败 999 通讯接口失效 /// </summary> /// <param name="mkey"></param> /// <param name="isAddress"></param> /// <returns></returns> public static UInt16 SingleAddrRead(String mkey, Boolean isAddress = false) { Int16[] InBuffer = { 0 }; string[] AddrCode; if (OpenFlag) { if (isAddress) { AddrCode = System.Text.RegularExpressions.Regex.Split(mkey, @"(\d+)"); } else { string AddrStr = NameToAddress.AddressDictRead(mkey); if (AddrStr != null) { AddrCode = System.Text.RegularExpressions.Regex.Split(AddrStr, @"(\d+)"); } else { return(888); } } short CODE = 0; short Addrindex = 0; if (AddrCode.Length == 0) { return(888); } GetSingleCode(AddrCode, ref CODE, ref Addrindex); if (m_TC.Server.ReadVarWord_C(m_TC.Session, CODE, 0, Addrindex, 1, InBuffer, out ErrClass, out ErrNum) > 0) { return(Convert.ToUInt16(InBuffer[0])); } else { return(888); } } else { return(999); } }
/// <summary> /// 函数作用:读取地址下的字符串数据 ///函数返回值: /// </summary> public static string StringAddrRead(string mkey, int length, Boolean isAddress = false) { string[] AddrCode; string Intext; short Length = Convert.ToInt16(length); if (!OpenFlag) { if (isAddress) { AddrCode = System.Text.RegularExpressions.Regex.Split(mkey, @"(\d+)"); } else { string AddrStr = NameToAddress.AddressDictRead(mkey); if (AddrStr != null) { AddrCode = System.Text.RegularExpressions.Regex.Split(AddrStr, @"(\d+)"); } else { return(null); } } short CODE = 0; short Addrindex = 0; if (AddrCode.Length == 0) { return(null); } GetTextCode(AddrCode, ref CODE, ref Addrindex); if (m_TC.Server.ReadVarText_C(m_TC.Session, CODE, 1, Addrindex, Length, out Intext, out ErrClass, out ErrNum) > 0) { return(Intext); } else { return(null); } } return(null); }
/// <summary> /// 函数作用:读取Double类型数据 /// 函数返回值:正确时候返回数值 错误码888 /// </summary> /// <param name="mkey"></param> /// <param name="isAddress"></param> /// <returns></returns> public static int DoubleAddrRead(string mkey, Boolean isAddress = false) { double[] InDou = new double[1]; string[] AddrCode; if (OpenFlag) { if (isAddress) { AddrCode = System.Text.RegularExpressions.Regex.Split(mkey, @"(\d+)"); } else { string AddrStr = NameToAddress.AddressDictRead(mkey); if (AddrStr != null) { AddrCode = System.Text.RegularExpressions.Regex.Split(AddrStr, @"(\d+)"); } else { return(888); } } short CODE = 0; short Addrindex = 0; if (AddrCode.Length == 0) { return(888); } GetDoubleCode(AddrCode, ref CODE, ref Addrindex); if (m_TC.Server.ReadVarDouble_C(m_TC.Session, CODE, 0, Addrindex, 1, InDou, out ErrClass, out ErrNum) != 0) { return(Convert.ToInt32(InDou[0])); } else { return(888); } } return(999); }