public static MemoryAreaCode GetMemoryAreaCode(MemoryAreaType memoryAreaType)
        {
            switch (memoryAreaType)
            {
            case MemoryAreaType.D: return(DM);

            case MemoryAreaType.C: return(CIO);

            case MemoryAreaType.W: return(WR);

            case MemoryAreaType.H: return(HR);

            case MemoryAreaType.A: return(AR);

            case MemoryAreaType.E0: return(EM0);

            case MemoryAreaType.E1: return(EM1);

            case MemoryAreaType.E2: return(EM2);

            case MemoryAreaType.E3: return(EM3);

            default: return(DM);
            }
        }
        private static byte GetMemoryAreaCode(DataAddress address)
        {
            MemoryAreaType memoryAreaType = MemoryAreaType.None;
            MemoryAreaCode memoryAreaCode;

            if (address.Value.Contains("_"))//判断是否为EM区地址
            {
                memoryAreaType = (MemoryAreaType)Enum.Parse(typeof(MemoryAreaType), address.Value.Substring(0, 2), true);
            }
            else
            {
                memoryAreaType = (MemoryAreaType)Enum.Parse(typeof(MemoryAreaType), address.Value.Substring(0, 1), true);
            }

            memoryAreaCode = MemoryAreaCode.GetMemoryAreaCode(memoryAreaType);

            return(address.Type == DataAddressType.Boolean ? memoryAreaCode.Bit : memoryAreaCode.Word);
        }