/// <summary>
        /// 读取多个单元
        /// 例如“D10,2”、“M100,20”、“X201,8”等格式
        /// </summary>
        private static ResponseMessage readMulti(this IMitsubishiPlc plc, string cmdText)
        {
            ResponseMessage resp   = new ResponseMessage();
            StringBuilder   result = new StringBuilder();

            string[] s       = cmdText.Split(new string[] { ",", ".." }, StringSplitOptions.None);
            bool     hasDots = cmdText.Contains("..");

            if (s.Length == 2)
            {
                PlcDeviceType type;
                int           addr;
                McProtocolApp.GetDeviceCode(s[0], out type, out addr);

                var n      = int.Parse(s[1]);
                var val    = new byte[hasDots ? n - addr + 1 : n];
                var ival   = new int[Math.Max(16, val.Length)];
                int rtCode = McProtocolApp.IsBitDevice(type) ? plc.GetBitDevice(s[0], val.Length, val) :
                             plc.ReadDeviceBlock(s[0], val.Length, ival);
                if (0 < rtCode)
                {
                    result.AppendLine("ERROR:0x" + rtCode.ToString("X4"));
                }
                else
                {
                    for (int i = 0; i < val.Length; ++i)
                    {
                        result.AppendLine(type.ToString() + (addr + i).ToString() + "=" + val[i].ToString());
                    }
                }
            }
            return(resp);
        }