Example #1
0
        /// <summary>
        /// 查询PLC位地址状态
        /// </summary>
        /// <param name="listip"></param>
        /// <param name="Value"></param>
        public static bool PLC_QueryBit(int listip, string Value)
        {
            //%01$RC021
            string strValue = SocketHelper.SendAddress(SocketHelper.socketList[listip].socket, PLCAddressHelper.RAddressReadConvert(Value));

            return(PLCAddressHelper.ValueInfo(strValue));
        }
Example #2
0
        /// <summary>
        /// 解析多个寄存器解析出来拼接成字符串   例如条码解析
        /// </summary>
        /// <param name="rev"></param>
        /// <returns></returns>
        public static string ReadDTValueToStr(string rev)
        {
            //地址 %01#RDD0030100309**
            string ss      = PLCAddressHelper.DTValues(rev);
            string barcode = "";

            for (int i = 0; i < ss.Length / 2; i++)
            {
                string str = ss.Substring(i * 2, 2);
                barcode += DecimalConversion.HexStringToASCII(str);
            }
            return(barcode);
        }
Example #3
0
        /// <summary>
        /// 解析寄存器读取的值
        /// </summary>
        /// <param name="rev"></param>
        /// <returns></returns>
        public static List <string> ReadDTValue(string rev)
        {
            List <string> list = new List <string>();

            //地址 %01#RDD0030100309**
            rev = PLCAddressHelper.DTValues(rev);
            for (int i = 0; i < rev.Length / 2; i++)
            {
                string str = rev.Substring(i * 2, 2);
                list.Add(DecimalConversion.HexStringToASCII(str));
            }
            return(list);
        }
Example #4
0
        /// <summary>
        /// 查询PLC 例如温度,
        /// </summary>
        /// <param name="ListIp">list索引的ip</param>
        /// <param name="Address">PLC读取的寄存器</param>
        /// <returns></returns>
        public static Double  TimeAddress(int ListIp, int Address)
        {
            string DataInfo = "";
            string ss       = "";
            string strValue = SocketHelper.SendAddress(SocketHelper.socketList[ListIp].socket, PLCAddressHelper.DTAddressReadConvert(Address));

            strValue = strValue.Replace("\r", "");
            string highOrder = "";
            string lowOrder  = "";

            if (!string.IsNullOrEmpty(strValue))//未读到了正确数据
            {
                ss = HexStr(strValue);
            }
            for (int i = 0; i < ss.Length / 4; i++)
            {
                highOrder = ss.Substring((i * 4), 2);     //高位数据  09100910
                lowOrder  = ss.Substring((i * 4) + 2, 2); //低位数据
                DataInfo  = HexToTen(lowOrder + highOrder).ToString();
            }
            return(Convert.ToDouble(DataInfo));
        }