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); }