public override void handleByteFileds(ByteField field, byte[] bytes)
 {
     if (field.haveValue(bytes[field.StartIndex], bytes[field.StartIndex + 1]))
     {
         this.AddField(field.getDeviceFieldForUI());
     }
 }
Exemple #2
0
        internal override void handleByteField(ByteField field, byte[] bytes)
        {
            switch (field.getBytesLength())
            {
            case 0:
                if (field.haveValue(bytes[field.getStartIndex() + 1], bytes[field.getStartIndex()]))
                {
                    this.AddField(field.getDeviceFieldForUI());
                }
                break;

            case 2:
                if (field.haveValue(bytes[field.getStartIndex() + 1], bytes[field.getStartIndex()]))
                {
                    this.AddField(field.getDeviceFieldForUI());
                }
                break;

            case 4:
                if (field.haveValue(bytes[field.getStartIndex() + 3], bytes[field.getStartIndex() + 2], bytes[field.getStartIndex() + 1], bytes[field.getStartIndex()]))
                {
                    this.AddField(field.getDeviceFieldForUI());
                }
                break;
            }
        }
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = ByteField.GetHashCode();
         hashCode = (hashCode * 397) ^ SByteField.GetHashCode();
         hashCode = (hashCode * 397) ^ Int16Field.GetHashCode();
         hashCode = (hashCode * 397) ^ UInt16Field.GetHashCode();
         hashCode = (hashCode * 397) ^ Int32Field;
         hashCode = (hashCode * 397) ^ (int)UInt32Field;
         hashCode = (hashCode * 397) ^ Int64Field.GetHashCode();
         hashCode = (hashCode * 397) ^ UInt64Field.GetHashCode();
         hashCode = (hashCode * 397) ^ DecimalField.GetHashCode();
         hashCode = (hashCode * 397) ^ SingleFiled.GetHashCode();
         hashCode = (hashCode * 397) ^ DoubleField.GetHashCode();
         hashCode = (hashCode * 397) ^ (StringField != null ? StringField.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (int)MyEnumField;
         hashCode = (hashCode * 397) ^ BooleanField.GetHashCode();
         hashCode = (hashCode * 397) ^ DateTimeField.GetHashCode();
         hashCode = (hashCode * 397) ^ DateTimeOffsetField.GetHashCode();
         hashCode = (hashCode * 397) ^ GuidField.GetHashCode();
         hashCode = (hashCode * 397) ^ TimeSpanField.GetHashCode();
         hashCode = (hashCode * 397) ^ (UrlField != null ? UrlField.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (NullField != null ? NullField.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (IntArrayField != null ? IntArrayField.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (StringArrayField != null ? StringArrayField.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (EmptyArrayField != null ? EmptyArrayField.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (NullArrayField != null ? NullArrayField.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (DictionaryArrayField != null ? DictionaryArrayField.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (ObjectArrayField != null ? ObjectArrayField.GetHashCode() : 0);
         return(hashCode);
     }
 }
Exemple #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Property"/> class.
        /// </summary>
        protected Property()
        {
            _raw_data = new byte[POIFSConstants.PROPERTY_SIZE];
            for (int i = 0; i < this._raw_data.Length; i++)
            {
                this._raw_data[i] = _default_fill;
            }
            _name_size     = new ShortField(_name_size_offset);
            _property_type =
                new ByteField(PropertyConstants.PROPERTY_TYPE_OFFSET);
            _node_color        = new ByteField(_node_color_offset);
            _previous_property = new IntegerField(_previous_property_offset,
                                                  _NO_INDEX, _raw_data);
            _next_property = new IntegerField(_next_property_offset,
                                              _NO_INDEX, _raw_data);
            _child_property = new IntegerField(_child_property_offset,
                                               _NO_INDEX, _raw_data);
            _storage_clsid = new ClassID(_raw_data, _storage_clsid_offset);
            _user_flags    = new IntegerField(_user_flags_offset, 0, _raw_data);
            _seconds_1     = new IntegerField(_seconds_1_offset, 0,
                                              _raw_data);
            _days_1    = new IntegerField(_days_1_offset, 0, _raw_data);
            _seconds_2 = new IntegerField(_seconds_2_offset, 0,
                                          _raw_data);
            _days_2      = new IntegerField(_days_2_offset, 0, _raw_data);
            _start_block = new IntegerField(_start_block_offset);
            _size        = new IntegerField(_size_offset, 0, _raw_data);
            _index       = _NO_INDEX;

            this.Name          = "";
            this.NextChild     = null;
            this.PreviousChild = null;
        }
        public static void initDevice(SdcSoftDevice device, byte[] bytes, int byteStartIndex)
        {
            int endIndex = byteStartIndex + device.getDeviceBytesLength();

            /**
             * 校验数据长度有效性
             */
            if (bytes.Length < endIndex)
            {
                return;
            }

            /**
             * byte 数组裁剪
             */
            byte[] current = new byte[device.getDeviceBytesLength()];

            for (int i = 0, j = byteStartIndex; j < endIndex; i++, j++)
            {
                current[i] = bytes[j];
            }

            /**
             * 填充设备信息
             */
            DevicePointMap devicePointMap = maps[device.getDeviceType()];

            device.handleDeviceNo(current);
            foreach (string key in devicePointMap.getPointMap().Keys)
            {
                ByteField f = devicePointMap.getPointMap()[key];
                device.handleByteField(f, current);
            }
        }
        /**
         * 获得plc数据信息
         *
         * @param bytes
         * @return
         **/
        public static SdcSoftDevice getDeviceFromByteArray(byte[] bytes, string typeName)
        {
            SdcSoftDevice device = null;

            try
            {
                //DevicePointMap devicePointMap = Activator.CreateInstance(null, string.Format("GLMonitoringSystem.Devices.Map.DevicePointMap__{0}", typeName)).Unwrap() as DevicePointMap;
                var devicePointMap = MapHelper.GetDevicePointMap(typeName);
                if (devicePointMap == null)
                {
                    return(null);
                }

                device = Activator.CreateInstance(null, string.Format("GLMonitoringSystem.Devices.Device_{0}", typeName)).Unwrap() as SdcSoftDevice;
                if (!device.validate(bytes.Length))
                {
                    return(null);
                }

                device.handleDeviceNo(bytes);

                foreach (string key in devicePointMap.getPointMap().Keys)
                {
                    ByteField f = devicePointMap.getPointMap()[key];
                    device.handleByteFileds(f, bytes);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            return(device);
        }
 /// <summary>
 /// T2控制器 bytes数据传递方式为高位在前,低位在后的模式传输到服务器
 /// 在java程序中也按照高位在前低位在后的模式处理</summary>
 /// <param name="field"></param>
 /// <param name="bytes"></param>
 internal override void handleByteField(ByteField field, byte[] bytes)
 {
     if (field.haveValue(bytes[field.getStartIndex()], bytes[field.getStartIndex() + 1]))
     {
         this.AddField(field.getDeviceFieldForUI());
     }
 }
        public DevicePointMap_CTL_NJRT_E3_DianReShui()
        {
            #region ----------------------计算属性(不显示)----------------------
            map.Add("_jiarezu", ByteField.Init(new Meta.CTL_NJRT.BaseInfoField(), "_jiarezu", 0, 0, "加热组", false));
            map.Add("_addshuibeng", ByteField.Init(new Meta.CTL_NJRT.BaseInfoField(), "_addshuibeng", 0, 0, "补水泵", false));
            #endregion

            map.Add(SdcSoftDevice.KEY_POINT_SYSTEM_STATUS, ByteField.Init(new Meta.CTL_NJRT.BaseInfoField(), SdcSoftDevice.KEY_POINT_SYSTEM_STATUS, 3, 2, "系统状态", CTL_NJRT_Common_ValueMaps.coms_status));

            map.Add(SdcSoftDevice.KEY_POINT_RUN_LIFE, ByteField.Init(new Meta.CTL_NJRT.BaseInfoField(), SdcSoftDevice.KEY_POINT_RUN_LIFE, 21, 2, "运行时间"));

            map.Add(SdcSoftDevice.KEY_POINT_RUN_DAYS, ByteField.Init(new Meta.CTL_NJRT.BaseInfoField(), SdcSoftDevice.KEY_POINT_RUN_DAYS, 0, 0, "运行天数", "天"));

            map.Add(SdcSoftDevice.KEY_POINT_RUN_HOURS, ByteField.Init(new Meta.CTL_NJRT.BaseInfoField(), SdcSoftDevice.KEY_POINT_RUN_HOURS, 0, 0, "运行小时数", "时"));

            map.Add(SdcSoftDevice.KEY_POINT_POWER, ByteField.Init(new Meta.CTL_NJRT.E3.PowerField(), SdcSoftDevice.KEY_POINT_POWER, 1, 0, "燃料类型", DevicePointMap.coms_power));

            map.Add(SdcSoftDevice.KEY_POINT_MEDIA, ByteField.Init(new Meta.CTL_NJRT.E3.MediaField(), SdcSoftDevice.KEY_POINT_MEDIA, 0, 0, "介质类型", DevicePointMap.coms_media));


            map.Add("oc_jixiandishuiweidianji", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jixiandishuiweidianji", 4, 2, "极限低水位电极", 0, coms_open_close));
            map.Add("oc_dishuiweidianji", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_dishuiweidianji", 4, 2, "低水位电极", 1, coms_open_close));
            map.Add("oc_gaoshuiweidianji", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_gaoshuiweidianji", 4, 2, "高水位电极", 2, coms_open_close));
            map.Add("oc_lubichaowenkaiguan", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_lubichaowenkaiguan", 4, 2, "炉壁超温开关", 6, coms_open_close));
            map.Add("oc_chaoyabaojing", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_chaoyabaojing", 5, 2, "超压报警", 1, coms_open_close));
            map.Add("oc_baojingshuchu", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_baojingshuchu", 6, 2, "报警输出", 0, coms_open_close));
            map.Add("oc_bushuibengkongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_bushuibengkongzhi", 6, 2, "补水泵控制", 1, coms_open_close));
            map.Add("oc_xunhuanbengkongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_xunhuanbengkongzhi", 6, 2, "循环泵控制", 2, coms_open_close));
            map.Add("oc_jiarezu1kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu1kongzhi", 6, 2, "加热组1控制", 3, coms_open_close));
            map.Add("oc_jiarezu2kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu2kongzhi", 6, 2, "加热组2控制", 4, coms_open_close));
            map.Add("oc_jiarezu3kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu3kongzhi", 6, 2, "加热组3控制", 5, coms_open_close));
            map.Add("oc_jiarezu4kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu4kongzhi", 6, 2, "加热组4控制", 6, coms_open_close));
            map.Add("oc_jiarezu5kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu5kongzhi", 6, 2, "加热组5控制", 7, coms_open_close));
            map.Add("oc_jiarezu6kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu6kongzhi", 6, 2, "加热组6控制", 0, coms_open_close));
            map.Add("oc_jiarezu7kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu7kongzhi", 6, 2, "加热组7控制", 1, coms_open_close));
            map.Add("oc_jiarezu8kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu8kongzhi", 6, 2, "加热组8控制", 2, coms_open_close));
            map.Add("oc_jiarezu9kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu9kongzhi", 6, 2, "加热组9控制", 3, coms_open_close));
            map.Add("oc_jiarezu10kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu10kongzhi", 6, 2, "加热组10控制", 4, coms_open_close));
            map.Add("oc_jiarezu11kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu11kongzhi", 6, 2, "加热组11控制", 5, coms_open_close));
            map.Add("oc_jiarezu12kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu12kongzhi", 6, 2, "加热组12控制", 6, coms_open_close));



            map.Add("mo_chushuiwendu", ByteField.Init(new Meta.CTL_NJRT.MockField(), "mo_chushuiwendu", 8, 2, "出水温度", "℃"));
            map.Add("mo_huishuiwendu", ByteField.Init(new Meta.CTL_NJRT.MockField(), "mo_huishuiwendu", 9, 2, "回水温度", "℃"));



            map.Add("ex_chushuiwenduchuanganqiguzhang", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_chushuiwenduchuanganqiguzhang", 24, 2, "出水温度传感器故障", 0));
            map.Add("ex_chushuiwendugaobaojing", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_chushuiwendugaobaojing", 24, 2, "出水温度高报警", 1));
            map.Add("ex_huishuiwenduchuanganqiguzhang", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_huishuiwenduchuanganqiguzhang", 24, 2, "回水温度传感器故障", 2));
            map.Add("ex_jixiandishuiweibaojing", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_jixiandishuiweibaojing", 24, 2, "极限低水位报警", 3));
            map.Add("ex_shuiweichuanganqiguzhang", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_shuiweichuanganqiguzhang", 24, 2, "水位传感器故障", 4));
            map.Add("ex_chaoyabaojing", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_chaoyabaojing", 24, 2, "超压报警", 5));
            map.Add("ex_lubichaowenbaojing", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_lubichaowenbaojing", 24, 2, "炉壁超温报警", 6));
            map.Add("ex_xitongguzhang", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_xitongguzhang", 24, 2, "系统故障", 7));
        }
Exemple #9
0
        public IByteElement GetByteElement(ClassesContainer container, IByteElement parent)
        {
            ByteBlock meta = new ByteBlock((ByteClass)parent);

            Value.GenerateBytecode(container, meta);
            ByteField field = new ByteField((ByteClass)parent, Modifiers, Name, meta);

            return(field);
        }
Exemple #10
0
        public void TestConstructors()
        {
            try
            {
                new ByteField(-1);
                Assert.Fail("Should have caught IndexOutOfRangeException");
            }
            catch (IndexOutOfRangeException)
            {
                // as expected
            }
            ByteField field = new ByteField(2);

            Assert.AreEqual(( byte )0, field.Value);
            try
            {
                new ByteField(-1, ( byte )1);
                Assert.Fail("Should have caught IndexOutOfRangeException");
            }
            catch (IndexOutOfRangeException)
            {
                // as expected
            }
            field = new ByteField(2, ( byte )3);
            Assert.AreEqual(( byte )3, field.Value);
            byte[] array = new byte[3];

            try
            {
                new ByteField(-1, ( byte )1, array);
                Assert.Fail("Should have caught IndexOutOfRangeException");
            }
            catch (IndexOutOfRangeException)
            {
                // as expected
            }
            field = new ByteField(2, ( byte )4, array);
            Assert.AreEqual(( byte )4, field.Value);
            Assert.AreEqual(( byte )4, array[2]);
            array = new byte[2];
            try
            {
                new ByteField(2, ( byte )5, array);
                Assert.Fail("should have gotten IndexOutOfRangeException");
            }
            catch (IndexOutOfRangeException)
            {
                // as expected
            }
            for (int j = 0; j < _test_array.Length; j++)
            {
                array = new byte[1];
                new ByteField(0, _test_array[j], array);
                Assert.AreEqual(_test_array[j], new ByteField(0, array).Value);
            }
        }
        public DevicePointMap_CTL_NJRT_T2()
        {
            #region ----------------------计算属性(不显示)----------------------
            map.Add("_ranshaoqi", ByteField.Init(new Meta.CTL_NJRT.BaseInfoField(), "_ranshaoqi", 0, 0, "燃烧器", false));
            map.Add("_addshuibeng", ByteField.Init(new Meta.CTL_NJRT.BaseInfoField(), "_addshuibeng", 0, 0, "给水泵", false));
            map.Add("_lengningbeng", ByteField.Init(new Meta.CTL_NJRT.BaseInfoField(), "_lengningbeng", 0, 0, "冷凝泵", false));
            #endregion

            map.Add(SdcSoftDevice.KEY_POINT_SYSTEM_STATUS, ByteField.Init(new Meta.CTL_NJRT.BaseInfoField(), SdcSoftDevice.KEY_POINT_SYSTEM_STATUS, 3, 2, "系统状态", CTL_NJRT_Common_ValueMaps.coms_status));

            map.Add(SdcSoftDevice.KEY_POINT_RUN_LIFE, ByteField.Init(new Meta.CTL_NJRT.BaseInfoField(), SdcSoftDevice.KEY_POINT_RUN_LIFE, 53, 2, "运行时间"));

            map.Add(SdcSoftDevice.KEY_POINT_RUN_DAYS, ByteField.Init(new Meta.CTL_NJRT.BaseInfoField(), SdcSoftDevice.KEY_POINT_RUN_DAYS, 0, 0, "运行天数", "天"));

            map.Add(SdcSoftDevice.KEY_POINT_RUN_HOURS, ByteField.Init(new Meta.CTL_NJRT.BaseInfoField(), SdcSoftDevice.KEY_POINT_RUN_HOURS, 0, 0, "运行小时数", "时"));

            map.Add(SdcSoftDevice.KEY_POINT_POWER, ByteField.Init(new Meta.CTL_NJRT.PowerField(), SdcSoftDevice.KEY_POINT_POWER, 87, 2, "燃料类型", DevicePointMap.coms_power));

            map.Add(SdcSoftDevice.KEY_POINT_MEDIA, ByteField.Init(new Meta.CTL_NJRT.MediaField(), SdcSoftDevice.KEY_POINT_MEDIA, 89, 2, "介质类型", DevicePointMap.coms_media));


            map.Add("oc_ranshaoqiqitingkongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_ranshaoqiqitingkongzhi", 9, 2, "燃烧器启停控制", 0, DevicePointMap.coms_start_stop));
            map.Add("oc_ranshaoqifuhetiaojie", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_ranshaoqifuhetiaojie", 9, 2, "燃烧器负荷调节", 1, coms_start_stop));

            map.Add("oc_1_addshuibeng_start_stop", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_1_addshuibeng_start_stop", 9, 2, "给水泵(主)控制", 3, coms_start_stop));
            map.Add("oc_2_addshuibeng_start_stop", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_2_addshuibeng_start_stop", 9, 2, "给水泵(备)控制", 4, coms_start_stop));
            map.Add("oc_1_lengningxunhuanbeng_start_stop", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_1_lengningxunhuanbeng_start_stop", 9, 2, "冷凝循环泵控制", 5, coms_start_stop));
            map.Add("oc_baojingshuchu", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_baojingshuchu", 9, 2, "报警输出", 6, coms_start_stop));

            map.Add("oc_addshuibengzhubei", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_addshuibengzhubei", 49, 2, "给水泵主备", 0, CTL_NJRT_Common_ValueMaps.coms_master));
            map.Add("oc_addshuibengshouzi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_addshuibengshouzi", 49, 2, "给水泵手自", 1, CTL_NJRT_Common_ValueMaps.coms_atuo));
            map.Add("oc_jienengxunhuanbengshouzi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jienengxunhuanbengshouzi", 49, 2, "节能循环泵手自", 3, CTL_NJRT_Common_ValueMaps.coms_master));

            map.Add("ex_shuiweichuanganqicut", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_shuiweichuanganqicut", 45, 2, "水位传感器断路", 3));
            map.Add("ex_shuiweichuanganqishort", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_shuiweichuanganqishort", 45, 2, "水位传感器短路", 4));
            map.Add("ex_jixiandishuiweibaojingdianliu", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_jixiandishuiweibaojingdianliu", 45, 2, "极限低水位报警(电流)", 5));
            map.Add("ex_gaoshuiweibaojingdianliu", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_gaoshuiweibaojingdianliu", 45, 2, "高水位报警(电流)", 6));
            map.Add("ex_paiyanwendugaobaojing", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_paiyanwendugaobaojing", 45, 2, "排烟温度高报警", 7));
            map.Add("ex_jixiandishuiweibaojing", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_jixiandishuiweibaojing", 45, 2, "极限低水位报警", 8));
            map.Add("ex_shuiweidianjiluojicuo", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_shuiweidianjiluojicuo", 45, 2, "水位电极逻辑错", 9));
            map.Add("ex_dishuiweibaojing", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_dishuiweibaojing", 45, 2, "低水位报警", 10));
            map.Add("ex_gaoshuiweibaojing", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_gaoshuiweibaojing", 45, 2, "高水位报警", 11));
            map.Add("ex_bianpinqiguzhang", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_bianpinqiguzhang", 45, 2, "变频器故障", 12));
            map.Add("ex_chaoyabaojingkongzhiqi", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_chaoyabaojingkongzhiqi", 45, 2, "超压报警(控制器)", 13));
            map.Add("ex_ranqiyalidibaojing", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_ranqiyalidibaojing", 45, 2, "燃气压力低报警", 14));
            map.Add("ex_ranqiyaligaobaojing", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_ranqiyaligaobaojing", 45, 2, "燃气压力高报警", 15));
            map.Add("ex_ranqixieloubaojing", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_ranqixieloubaojing", 47, 2, "燃气泄漏报警", 0));
            map.Add("ex_ranshaoqiguzhang", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_ranshaoqiguzhang", 47, 2, "燃烧器故障", 1));

            map.Add("mo_lengningqiyanwen", ByteField.Init(new Meta.CTL_NJRT.MockField(), "mo_lengningqiyanwen", 13, 2, "冷凝器烟温", "℃"));
            map.Add("mo_jishuiwendu", ByteField.Init(new Meta.CTL_NJRT.MockField(), "mo_jishuiwendu", 15, 2, "给水温度", "℃"));
            map.Add("mo_shuiweixinhao", ByteField.Init(new Meta.CTL_NJRT.MockField(), "mo_shuiweixinhao", 19, 2, "水位", "%"));
            map.Add("mo_paiyanwendu", ByteField.Init(new Meta.CTL_NJRT.MockField(), "mo_paiyanwendu", 21, 2, "排烟温度", "℃"));
            map.Add("mo_jienengqiyanwen", ByteField.Init(new Meta.CTL_NJRT.MockField(), "mo_jienengqiyanwen", 23, 2, "节能器烟温", "℃"));
        }
        public DevicePointMap_CTL_NJRT_E3_DianZhengQi()
        {
            #region ----------------------计算属性(不显示)----------------------
            map.Add("_jiarezu", ByteField.Init(new Meta.CTL_NJRT.BaseInfoField(), "_jiarezu", 0, 0, "加热组", false));
            map.Add("_addshuibeng", ByteField.Init(new Meta.CTL_NJRT.BaseInfoField(), "_addshuibeng", 0, 0, "给水泵", false));
            #endregion

            map.Add(SdcSoftDevice.KEY_POINT_SYSTEM_STATUS, ByteField.Init(new Meta.CTL_NJRT.BaseInfoField(), SdcSoftDevice.KEY_POINT_SYSTEM_STATUS, 3, 2, "系统状态", CTL_NJRT_Common_ValueMaps.coms_status));

            map.Add(SdcSoftDevice.KEY_POINT_RUN_LIFE, ByteField.Init(new Meta.CTL_NJRT.BaseInfoField(), SdcSoftDevice.KEY_POINT_RUN_LIFE, 53, 2, "累计燃烧时间"));

            map.Add(SdcSoftDevice.KEY_POINT_RUN_DAYS, ByteField.Init(new Meta.CTL_NJRT.BaseInfoField(), SdcSoftDevice.KEY_POINT_RUN_DAYS, 0, 0, "运行天数", "天"));

            map.Add(SdcSoftDevice.KEY_POINT_RUN_HOURS, ByteField.Init(new Meta.CTL_NJRT.BaseInfoField(), SdcSoftDevice.KEY_POINT_RUN_HOURS, 0, 0, "运行小时数", "时"));

            map.Add(SdcSoftDevice.KEY_POINT_POWER, ByteField.Init(new Meta.CTL_NJRT.E3.PowerField(), SdcSoftDevice.KEY_POINT_POWER, 1, 0, "燃料类型", DevicePointMap.coms_power));

            map.Add(SdcSoftDevice.KEY_POINT_MEDIA, ByteField.Init(new Meta.CTL_NJRT.E3.MediaField(), SdcSoftDevice.KEY_POINT_MEDIA, 1, 0, "介质类型", DevicePointMap.coms_media));


            map.Add("oc_jixianshuiweidianji", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jixianshuiweidianji", 5, 2, "极限水位电极", 0, DevicePointMap.coms_open_close));
            map.Add("oc_dishuiweidianji", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_dishuiweidianji", 5, 2, "低水位电极", 1, coms_open_close));
            map.Add("oc_gaoshuiweidianji", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_gaoshuiweidianji", 5, 2, "高水位电极", 2, coms_open_close));
            map.Add("oc_gaoshuiweibaojingdianji", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_gaoshuiweibaojingdianji", 5, 2, "高水位报警电极", 3, coms_open_close));
            map.Add("oc_chaoyabaojing(kongzhiqi)", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_chaoyabaojing(kongzhiqi)", 5, 2, "超压报警(控制器)", 9, coms_open_close));



            map.Add("oc_1_addshuibeng_start_stop", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_1_addshuibeng_start_stop", 9, 2, "给水泵主控制 ", 0, coms_open_close));
            map.Add("oc_2_addshuibeng_start_stop", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_2_addshuibeng_start_stop", 9, 2, "给水泵备控制", 1, coms_open_close));
            map.Add("oc_baojingshuchu ", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_baojingshuchu ", 9, 2, "报警输出", 2, coms_open_close));
            map.Add("oc_jiarezu1kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu1kongzhi", 9, 2, "加热组1控制", 4, coms_open_close));
            map.Add("oc_jiarezu2kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu2kongzhi", 9, 2, "加热组2控制", 5, coms_open_close));
            map.Add("oc_jiarezu3kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu3kongzhi", 9, 2, "加热组3控制", 6, coms_open_close));
            map.Add("oc_jiarezu4kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu4kongzhi", 9, 2, "加热组4控制", 7, coms_open_close));
            map.Add("oc_jiarezu5kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu5kongzhi", 9, 2, "加热组5控制", 8, coms_open_close));
            map.Add("oc_jiarezu6kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu6kongzhi", 9, 2, "加热组6控制", 9, coms_open_close));
            map.Add("oc_jiarezu7kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu7kongzhi", 9, 2, "加热组7控制", 10, coms_open_close));
            map.Add("oc_jiarezu8kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu8kongzhi", 9, 2, "加热组8控制", 11, coms_open_close));
            map.Add("oc_jiarezu9kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu9kongzhi", 9, 2, "加热组9控制", 12, coms_open_close));
            map.Add("oc_jiarezu10kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu10kongzhi", 9, 2, "加热组10控制", 13, coms_open_close));
            map.Add("oc_jiarezu11kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu11kongzhi", 9, 2, "加热组11控制", 14, coms_open_close));
            map.Add("oc_jiarezu12kongzhi", ByteField.Init(new Meta.CTL_NJRT.OpenCloseField(), "oc_jiarezu12kongzhi", 9, 2, "加热组12控制", 15, coms_open_close));

            map.Add("ex_zhengqichuanganqiguzhangbaojing", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_zhengqichuanganqiguzhangbaojing", 45, 2, "蒸汽传感器故障报警", 0));
            map.Add("ex_jixiandishuiweibaojing", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_jixiandishuiweibaojing", 45, 2, "极限低水位报警", 1));
            map.Add("ex_gaoshuiweibaojing", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_gaoshuiweibaojing", 45, 2, "高水位报警", 2));
            map.Add("ex_shuiweichuanganqiguzhang", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_shuiweichuanganqiguzhang", 45, 2, "水位传感器故障", 3));
            map.Add("ex_chaoyabaojing", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_chaoyabaojing", 45, 2, "超压报警", 4));
            map.Add("ex_xitongguzhang", ByteField.Init(new Meta.CTL_NJRT.ExceptionField(), "ex_xitongguzhang", 45, 2, "系统故障", 5));


            map.Add("mo_zhengqiyali", ByteField.Init(new Meta.CTL_NJRT.MockField(), "mo_zhengqiyali", 13, 4, "蒸汽压力", "P"));
        }
Exemple #13
0
        public void TestWriteToBytes()
        {
            ByteField field = new ByteField(0);

            byte[] array = new byte[1];

            for (int j = 0; j < _test_array.Length; j++)
            {
                field.Value = _test_array[j];
                field.WriteToBytes(array);
                Assert.AreEqual(_test_array[j], array[0], "testing ");
            }
        }
Exemple #14
0
        void btn_join_Clicked(object sender, EventArgs arg)
        {
            // 띄어쓰기 등등 체크해야함.
            if (tb_Password.Text != tb_chkPassword.Text)
            {
                MessageBox.Show("비밀번호 확인 다시하세요", "비번체크");
            }
            else
            {
                // 서버에 정보를 보낸후,

                TcpClient tc   = new TcpClient("127.0.0.1", 7000);
                string    msg  = tb_ID.Text + " " + tb_Password.Text;
                byte[]    bMsg = Encoding.Unicode.GetBytes(msg);
                TcpHeader head = new TcpHeader();
                head.mode    = 1;
                head.msgsize = (uint)szHeader + (uint)bMsg.Length;
                ByteField joinInfo = new ByteField(256);
                joinInfo.setHeader(head);
                joinInfo.ConcStrAfterHead(bMsg);

                NetworkStream stream = tc.GetStream();
                stream.Write(joinInfo.m_field, 0, joinInfo.m_size);



                int       cnt         = 0;
                ByteField msgFromServ = new ByteField(bytesize);
                // 헤더수신보장
                cnt += stream.Read(msgFromServ.m_field, 0, bytesize - cnt);
                while (cnt <= 8)
                {
                    cnt += stream.Read(msgFromServ.m_field, cnt, bytesize - cnt);
                }

                int msgze = (int)msgFromServ.getheader().msgsize;

                while (cnt <= msgze)
                {
                    cnt += stream.Read(msgFromServ.m_field, cnt, bytesize - cnt);
                }

                MessageBox.Show(msgFromServ.getMsgStr());


                tc.Close();
                stream.Close();
            }
            this.Dispose(true);
        }
Exemple #15
0
        public void TestReadFromStream()
        {
            ByteField field = new ByteField(0);

            byte[] buffer = new byte[_test_array.Length];

            Array.Copy(_test_array, 0, buffer, 0, buffer.Length);
            MemoryStream stream = new MemoryStream(buffer);

            for (int j = 0; j < buffer.Length; j++)
            {
                field.ReadFromStream(stream);
                Assert.AreEqual(_test_array[j], field.Value, "Testing " + j);
            }
        }
Exemple #16
0
        // background // 센드 블락킹으로 인한 수신 이펙트 막는거 방지를 위함.
        void sendMsgToServ()
        {
            while (true)
            {
                if (QueDataSendPend.Count != 0)
                {
                    string    msg     = QueDataSendPend.Dequeue();
                    ByteField sendMsg = new ByteField(256);
                    sendMsg.ConcStrAfterHead(msg);
                    sendMsg.setHeadFromField(300);

                    stream.Write(sendMsg.m_field, 0, (int)sendMsg.getheader().msgsize);
                }
            }
        }
Exemple #17
0
        public void TestSet()
        {
            ByteField field = new ByteField(0);

            byte[] array = new byte[1];

            for (int j = 0; j < _test_array.Length; j++)
            {
                field.Value = _test_array[j];
                Assert.AreEqual(_test_array[j], field.Value, "testing _1 " + j);
                field = new ByteField(0);
                field.Set(_test_array[j], array);
                Assert.AreEqual(_test_array[j], field.Value, "testing _2 ");
                Assert.AreEqual(_test_array[j], array[0], "testing _3 ");
            }
        }
Exemple #18
0
        static void Main(string[] args)
        {
            TcpListener listen = new TcpListener(IPAddress.Any, 7000);

            listen.Start();
            ByteField     f1     = new ByteField(256);
            TcpClient     sock   = listen.AcceptTcpClient();
            NetworkStream stream = sock.GetStream();


            //  if (sock.Connected)
            //  {
            //      stream.Read(f1.m_field, 0, 8);
            //      int len = (int)f1.getheader().msgsize;
            //      stream.Read(f1.m_field, 8, len);
            //      Console.WriteLine("헤더데이터 {0} {1}", f1.getheader().mode, f1.getheader().msgsize);
            //      Console.WriteLine(f1.getMsgStr());
            //
            //
            //  }



            if (sock.Connected)
            {
                Console.WriteLine("정보받음");
                f1.ConcStrAfterHead("으베베");
                f1.setHeadFromField(200);
                stream.Write(f1.m_field, 0, 8);
            }

            //|head || SenderID" "MSG |
            while (true)
            {
                string        line = Console.ReadLine();
                StringBuilder sb   = new StringBuilder();
                sb.Append("tester");
                sb.Append(" ");
                sb.Append(line);
                line = sb.ToString();
                f1.ConcStrAfterHead(line);
                f1.setHeadFromField(300);
                stream.Write(f1.m_field, 0, (int)f1.getheader().msgsize);
            }

            // do thing you want.
        }
Exemple #19
0
        /// <summary>
        /// Constructor from byte data
        /// </summary>
        /// <param name="index">index number</param>
        /// <param name="array">byte data</param>
        /// <param name="offset">offset into byte data</param>
        protected Property(int index, byte [] array, int offset)
        {
            _raw_data = new byte[POIFSConstants.PROPERTY_SIZE];
            System.Array.Copy(array, offset, _raw_data, 0,
                              POIFSConstants.PROPERTY_SIZE);
            _name_size     = new ShortField(_name_size_offset, _raw_data);
            _property_type =
                new ByteField(PropertyConstants.PROPERTY_TYPE_OFFSET, _raw_data);
            _node_color        = new ByteField(_node_color_offset, _raw_data);
            _previous_property = new IntegerField(_previous_property_offset,
                                                  _raw_data);
            _next_property = new IntegerField(_next_property_offset,
                                              _raw_data);
            _child_property = new IntegerField(_child_property_offset,
                                               _raw_data);
            _storage_clsid = new ClassID(_raw_data, _storage_clsid_offset);
            _user_flags    = new IntegerField(_user_flags_offset, 0, _raw_data);
            _seconds_1     = new IntegerField(_seconds_1_offset, _raw_data);
            _days_1        = new IntegerField(_days_1_offset, _raw_data);
            _seconds_2     = new IntegerField(_seconds_2_offset, _raw_data);
            _days_2        = new IntegerField(_days_2_offset, _raw_data);
            _start_block   = new IntegerField(_start_block_offset, _raw_data);
            _size          = new IntegerField(_size_offset, _raw_data);
            _index         = index;
            int name_length = (_name_size.Value / LittleEndianConstants.SHORT_SIZE)
                              - 1;

            if (name_length < 1)
            {
                _name = "";
            }
            else
            {
                char[] char_array  = new char[name_length];
                int    name_offset = 0;

                for (int j = 0; j < name_length; j++)
                {
                    char_array[j] = ( char )new ShortField(name_offset,
                                                           _raw_data).Value;
                    name_offset += LittleEndianConstants.SHORT_SIZE;
                }
                _name = new String(char_array, 0, name_length);
            }
            _next_child     = null;
            _previous_child = null;
        }
 public override void handleByteFileds(ByteField field, byte[] bytes)
 {
     if (field.BytesLength == 2)
     {
         if (field.haveValue(bytes[field.StartIndex + 1], bytes[field.StartIndex]))
         {
             this.AddField(field.getDeviceFieldForUI());
         }
     }
     else if (field.BytesLength == 4)
     {
         if (field.haveValue(bytes[field.StartIndex + 3], bytes[field.StartIndex + 2], bytes[field.StartIndex + 1], bytes[field.StartIndex]))
         {
             this.AddField(field.getDeviceFieldForUI());
         }
     }
 }
Exemple #21
0
        //loginclicked
        void btnLoginClicked(object sender, MouseEventArgs e)
        {
            TcpClient     tcpClient = new TcpClient(server, 7000);
            NetworkStream stream    = tcpClient.GetStream();
            string        id        = tbx_ID.Text;
            string        password  = tbx_password.Text;
            ByteField     loginmsg  = new ByteField(256);

            string    msg = id + " " + password;
            TcpHeader head;

            head.mode    = 2;
            head.msgsize = 0;
            loginmsg.setHeader(head);
            loginmsg.ConcStrAfterHead(msg);
            loginmsg.setHeadLenByIndex();

            stream.Write(loginmsg.m_field, 0, (int)loginmsg.getheader().msgsize);

            int       cnt         = 0;
            ByteField msgFromServ = new ByteField(256);

            cnt += stream.Read(msgFromServ.m_field, 0, 256 - cnt);
            while (cnt < 8)
            {
                cnt += stream.Read(msgFromServ.m_field, cnt, 256 - cnt);
            }

            if (msgFromServ.getheader().mode == 200)
            {
                // 로그인 시작
                Form client = new ProfileForm();
                ((ProfileForm)client).initData(tbx_ID.Text, tcpClient, msgFromServ.getMsgStr());

                client.Show();
                this.Hide();
            }
            else
            {
                MessageBox.Show("아이디와비밀번호를 확인해주세요");
            }
        }
Exemple #22
0
        public void initData(string id, TcpClient tcp, string friendlist)
        {
            // 이것이 call되는 시점은 생성자call된 이후 시점.
            myId       = id;
            connection = tcp;
            stream     = tcp.GetStream();
            int idx = 0;
            int cnt = 0;

            while (true)
            {
                idx = friendlist.IndexOf(' ');
                if (idx == -1)
                {
                    break;
                }
                string name = friendlist.Substring(0, idx);
                friendlist = friendlist.Substring(idx);
                friendlist = friendlist.TrimStart(' ');
                BtnChatMemManager.getInstance().dicProfileList.Add(name, new ProFileEX(new Size(300, 50), new Point(0, 50 * cnt + 1), name, this));
                // this.Size = new Size(300, 500);
                //lstCprofile.Add(new ProFileEX(new Size(300,50), new Point(0, 0), "정으니",this));
                cnt++;
            }

            ByteField requestPendingMSg = new ByteField(8);

            TcpHeader head = new TcpHeader();

            head.mode    = 400;
            head.msgsize = 8;

            requestPendingMSg.setHeader(head);
            stream.Write(requestPendingMSg.m_field, 0, 8);

            Thread recv = new Thread(new ThreadStart(takeMsgFromServ));
            Thread send = new Thread(new ThreadStart(sendMsgToServ));

            recv.Start();
            send.Start();
            //test
        }
Exemple #23
0
        static public void GetMessage(ByteField field, NetworkStream stream)
        {
            int       bytesize    = 8;
            int       cnt         = 0;
            ByteField msgFromServ = field;

            // 헤더수신보장
            cnt += stream.Read(msgFromServ.m_field, 0, bytesize - cnt);
            while (cnt < 8)
            {
                cnt += stream.Read(msgFromServ.m_field, cnt - 1, bytesize - cnt);
            }

            int msgze = (int)msgFromServ.getheader().msgsize;

            while (cnt <= msgze)
            {
                cnt += stream.Read(msgFromServ.m_field, cnt - 1, bytesize - cnt);
            }
        }
Exemple #24
0
        static void Main(string[] args)
        {
            TcpClient tc = new TcpClient("127.0.0.1", 7000);


            if (tc.Connected)
            {
                System.Console.WriteLine("켜짐");
            }

            NetworkStream st   = tc.GetStream();
            ByteField     file = new ByteField(256);

            file.ConcStrAfterHead("메세지를 보냄");
            file.setHeadFromField(3);

            st.Write(file.m_field, 0, (int)file.getheader().msgsize);
            System.Console.WriteLine("헤더 데이터 {0} {1}", file.getheader().mode, file.getheader().msgsize);
            st.Close();
            st.Dispose();
            tc.Close();
        }
Exemple #25
0
        public void TestReadFromBytes()
        {
            ByteField field = new ByteField(1);

            byte[] array = new byte[1];

            try
            {
                field.ReadFromBytes(array);
                Assert.Fail("should have caught IndexOutOfRangeException");
            }
            catch (IndexOutOfRangeException)
            {
                // as expected
            }
            field = new ByteField(0);
            for (int j = 0; j < _test_array.Length; j++)
            {
                array[0] = _test_array[j];
                field.ReadFromBytes(array);
                Assert.AreEqual(_test_array[j], field.Value, "testing " + j);
            }
        }
Exemple #26
0
    void Start()
    {
        Respawn();
        birdState = new ByteField(objectName, "birdstate", 0);
        pX        = new SingleField(objectName, "position x", 0);
        pY        = new SingleField(objectName, "position y", 0);
        pZ        = new SingleField(objectName, "position z", 0);

        vX = new SingleField(objectName, "velocity x", 0);
        vY = new SingleField(objectName, "velocity y", 0);
        vZ = new SingleField(objectName, "velocity z", 0);

        rYaw   = new SingleField(objectName, "rotation yaw", 0);
        rPitch = new SingleField(objectName, "rotation pitch", 0);
        rRoll  = new SingleField(objectName, "rotation roll", 0);

        time = new SingleField(objectName, "time", 0);

        animationController.AddAnimation(flap);
        animationController.AddAnimation(soar);
        animationController.AddAnimation(noise);
        animationController.PlayAnimation(soar);
        animationController.PlayAnimation(noise);
    }
        /// <summary>
        /// 获得设备数据信息
        /// </summary>
        /// <param name="bytes"></param>
        /// <param name="typeName"></param>
        /// <returns></returns>
        public static SdcSoftDevice getDeviceByByte(byte[] bytes, String typeName)
        {
            SdcSoftDevice device = Activator.CreateInstance(null, string.Format(STRING_FORMAT_DEVICE_PATH, typeName)).Unwrap() as SdcSoftDevice;

            if (device.validateFalse(bytes.Length))
            {
                return(null);
            }
            device.handleDeviceNo(bytes);
            var map = Activator.CreateInstance(null, string.Format(STRING_FORMAT_DEVICE_MAP_PATH, typeName)).Unwrap() as DevicePointMap;

            if (map == null)
            {
                return(null);
            }
            var pointMap = map.getPointMap();

            foreach (string key in pointMap.Keys)
            {
                ByteField f = pointMap[key];
                device.handleByteField(f, bytes);
            }
            return(device);
        }
Exemple #28
0
        public DevicePointMap_PLC_DianZhengQi()
        {
            map.Add("ba_yunxingxiaoshishu", ByteField.Init(new Meta.PLC.BaseInfoField(), "ba_yunxingxiaoshishu", 9, 2, "运行小时数", "时"));
            map.Add("ba_yunxingtianshu", ByteField.Init(new Meta.PLC.BaseInfoField(), "ba_yunxingtianshu", 11, 2, "运行天数", "天"));
            map.Add("ba_xitongzhuangtai", ByteField.Init(new Meta.PLC.BaseInfoField(), "ba_xitongzhuangtai", 13, 2, "系统状态", DevicePointMap_PLC_DaoReYou.coms_status));
            map.Add("ba_ranliao", ByteField.Init(new Meta.PLC.BaseInfoField(), "ba_ranliao", 15, 2, "燃料", DevicePointMap_PLC_DaoReYou.coms_power));
            map.Add("ba_jiezhimeijie", ByteField.Init(new Meta.PLC.BaseInfoField(), "ba_jiezhimeijie", 17, 2, "介质", DevicePointMap_PLC_DaoReYou.coms_media));
            map.Add("ba_shuiweizhuangtai", ByteField.Init(new Meta.PLC.BaseInfoField(), "ba_shuiweizhuangtai", 19, 2, "水位状态", DevicePointMap_PLC_DaoReYou.coms_level));
            map.Add("ba_ranshaoqizhuangtai", ByteField.Init(new Meta.PLC.BaseInfoField(), "ba_ranshaoqizhuangtai", 21, 2, "燃烧器状态", DevicePointMap_PLC_DaoReYou.coms_ranshaoqi_status));

            map.Add("mo_zhengqiyali", ByteField.Init(new Meta.PLC.MockField(), "mo_zhengqiyali", 35, 4, "蒸汽压力", "MPa"));
            map.Add("mo_zhengqiwendu", ByteField.Init(new Meta.PLC.MockField(), "mo_zhengqiwendu", 39, 4, "蒸汽温度", "℃"));
            map.Add("mo_guolushuiwei", ByteField.Init(new Meta.PLC.MockField(), "mo_guolushuiwei", 43, 4, "锅炉水位", "mm"));
            map.Add("mo_zhengqishunshiliuliang", ByteField.Init(new Meta.PLC.MockField(), "mo_zhengqishunshiliuliang", 47, 4, "蒸汽瞬时流量", "T/H"));
            map.Add("mo_bushuishunshiliuliang", ByteField.Init(new Meta.PLC.MockField(), "mo_bushuishunshiliuliang", 51, 4, "补水瞬时流量", "T/H"));
            map.Add("mo_zhengqileijiliuliang", ByteField.Init(new Meta.PLC.MockField(), "mo_zhengqileijiliuliang", 55, 4, "蒸汽累计流量", "T"));
            map.Add("mo_bushuileijiliuliang", ByteField.Init(new Meta.PLC.MockField(), "mo_bushuileijiliuliang", 59, 4, "补水累计流量", "T"));
            map.Add("mo_jinshuiwendu", ByteField.Init(new Meta.PLC.MockField(), "mo_jinshuiwendu", 63, 4, "进水温度", "℃"));
            map.Add("mo_jinshuiyali", ByteField.Init(new Meta.PLC.MockField(), "mo_jinshuiyali", 67, 4, "进水压力", "MPa"));
            map.Add("mo_bushuibengpinlvfankui", ByteField.Init(new Meta.PLC.MockField(), "mo_bushuibengpinlvfankui", 71, 4, "补水泵频率反馈", "Hz"));
            map.Add("mo_ruanshuixiangyewei", ByteField.Init(new Meta.PLC.MockField(), "mo_ruanshuixiangyewei", 75, 4, "软水箱液位", "%"));
            map.Add("mo_qidongjiarezushu", ByteField.Init(new Meta.PLC.MockField(), "mo_qidongjiarezushu", 79, 4, "启动加热组数", "组"));
            map.Add("mo_qidongjiarezushubaifenbi", ByteField.Init(new Meta.PLC.MockField(), "mo_qidongjiarezushubaifenbi", 83, 4, "启动加热组数百分比", "%"));

            map.Add("se_chaoyabaojingsheding", ByteField.Init(new Meta.PLC.SettingField(), "se_chaoyabaojingsheding", 127, 4, "超压报警设定", "MPa"));
            map.Add("se_shiyongjiarezushusheding", ByteField.Init(new Meta.PLC.SettingField(), "se_shiyongjiarezushusheding", 131, 4, "使用加热组数设定", "组"));
            map.Add("se_touqiejiangeshijiansheding", ByteField.Init(new Meta.PLC.SettingField(), "se_touqiejiangeshijiansheding", 135, 4, "投切间隔时间设定", "S"));
            map.Add("se_kuaiqiejiangeshijiansheding", ByteField.Init(new Meta.PLC.SettingField(), "se_kuaiqiejiangeshijiansheding", 139, 4, "快切间隔时间设定", "S"));
            map.Add("se_tingluyalisheding", ByteField.Init(new Meta.PLC.SettingField(), "se_tingluyalisheding", 143, 4, "停炉压力设定", "MPa"));
            map.Add("se_shiyongyalisheding", ByteField.Init(new Meta.PLC.SettingField(), "se_shiyongyalisheding", 147, 4, "使用压力设定", "MPa"));
            map.Add("se_qiluyalisheding", ByteField.Init(new Meta.PLC.SettingField(), "se_qiluyalisheding", 151, 4, "启炉压力设定", "MPa"));
            map.Add("se_guolushuiweijidibaojingsheding", ByteField.Init(new Meta.PLC.SettingField(), "se_guolushuiweijidibaojingsheding", 155, 4, "锅炉水位极低报警设定", "mm"));
            map.Add("se_geishuibengshoudongpinlvsheding", ByteField.Init(new Meta.PLC.SettingField(), "se_geishuibengshoudongpinlvsheding", 159, 4, "给水泵手动频率设定", "Hz"));
            map.Add("se_bushuimubiaosheding", ByteField.Init(new Meta.PLC.SettingField(), "se_bushuimubiaosheding", 163, 4, "补水目标设定", "mm"));
            map.Add("se_guolushuiweijigaobaojingsheding", ByteField.Init(new Meta.PLC.SettingField(), "se_guolushuiweijigaobaojingsheding", 167, 4, "锅炉水位极高报警设定", "mm"));
            map.Add("se_qibengyeweisheding", ByteField.Init(new Meta.PLC.SettingField(), "se_qibengyeweisheding", 171, 4, "启泵液位设定", "mm"));
            map.Add("se_tingbengyeweisheding", ByteField.Init(new Meta.PLC.SettingField(), "se_tingbengyeweisheding", 175, 4, "停泵液位设定", "mm"));


            map.Add("de_1#bushuibengshoudongzidong", ByteField.Init(new Meta.PLC.DeviceField(), "de_1#bushuibengshoudongzidong", 199, 2, "1#补水泵", DevicePointMap_PLC_DaoReYou.coms_atuo));
            map.Add("de_1#bushuibengqidongtingzhi", ByteField.Init(new Meta.PLC.DeviceField(), "de_1#bushuibengqidongtingzhi", 201, 2, "1#补水泵", DevicePointMap_PLC_DaoReYou.coms_start_stop));
            map.Add("de_2#bushuibengshoudongzidong", ByteField.Init(new Meta.PLC.DeviceField(), "de_2#bushuibengshoudongzidong", 203, 2, "2#补水泵", DevicePointMap_PLC_DaoReYou.coms_atuo));
            map.Add("de_2#bushuibengqidongtingzhi", ByteField.Init(new Meta.PLC.DeviceField(), "de_2#bushuibengqidongtingzhi", 205, 2, "2#补水泵", DevicePointMap_PLC_DaoReYou.coms_start_stop));
            map.Add("de_baojingshuchuzhishi", ByteField.Init(new Meta.PLC.DeviceField(), "de_baojingshuchuzhishi", 207, 2, "报警输出指示", new Dictionary <int, string> {
                { 0, "关" }, { 1, "开" }
            }));


            map.Add("ex_shuiweiweidibaojing(dianji)", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuiweiweidibaojing(dianji)", 233, 2, "水位危低报警(电极)", 0));
            map.Add("ex_shuiweijidibaojing(dianji)", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuiweijidibaojing(dianji)", 233, 2, "水位极低报警(电极)", 1));
            map.Add("ex_shuiweijigaobaojing(dianji)", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuiweijigaobaojing(dianji)", 233, 2, "水位极高报警(电极)", 2));
            map.Add("ex_shuiweijidibaojing(shedingzhi)", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuiweijidibaojing(shedingzhi)", 233, 2, "水位极低报警(设定值)", 3));
            map.Add("ex_shuiweijigaobaojing(shedingzhi)", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuiweijigaobaojing(shedingzhi)", 233, 2, "水位极高报警(设定值)", 4));
            map.Add("ex_chaoyabaojing(yalikaiguan)", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_chaoyabaojing(yalikaiguan)", 233, 2, "超压报警(压力开关)", 5));
            map.Add("ex_chaoyabaojing(shedingzhi)", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_chaoyabaojing(shedingzhi)", 233, 2, "超压报警(设定值)", 6));
            map.Add("ex_ruanshuixiangqueshuibaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_ruanshuixiangqueshuibaojing", 233, 2, "软水箱缺水报警", 7));
            map.Add("ex_shuidianjiluojicuobaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuidianjiluojicuobaojing", 233, 2, "水电极逻辑错报警", 8));
            map.Add("ex_yalibiansongqiguzhangbaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_yalibiansongqiguzhangbaojing", 233, 2, "压力变送器故障报警", 9));
            map.Add("ex_shuiweibiansongqiguzhangbaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuiweibiansongqiguzhangbaojing", 233, 2, "水位变送器故障报警", 10));
            map.Add("ex_geishuibengbianpinqiguzhang", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_geishuibengbianpinqiguzhang", 233, 2, "给水泵变频器故障", 11));
            map.Add("ex_loudianbaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_loudianbaojing", 233, 2, "漏电报警", 12));
            map.Add("ex_qianyabaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_qianyabaojing", 233, 2, "欠压报警", 13));
        }
        public DevicePointMap_PLC_RanMeiZhengQi()
        {
            map.Add("ba_yunxingxiaoshishu", ByteField.Init(new Meta.PLC.BaseInfoField(), "ba_yunxingxiaoshishu", 9, 2, "运行小时数", "时"));
            map.Add("ba_yunxingtianshu", ByteField.Init(new Meta.PLC.BaseInfoField(), "ba_yunxingtianshu", 11, 2, "运行天数", "天"));
            map.Add("ba_xitongzhuangtai", ByteField.Init(new Meta.PLC.BaseInfoField(), "ba_xitongzhuangtai", 13, 2, "系统状态", DevicePointMap_PLC_DaoReYou.coms_status));
            map.Add("ba_ranliao", ByteField.Init(new Meta.PLC.BaseInfoField(), "ba_ranliao", 15, 2, "燃料", DevicePointMap_PLC_DaoReYou.coms_power));
            map.Add("ba_jiezhimeijie", ByteField.Init(new Meta.PLC.BaseInfoField(), "ba_jiezhimeijie", 17, 2, "介质", DevicePointMap_PLC_DaoReYou.coms_media));
            map.Add("ba_shuiweizhuangtai", ByteField.Init(new Meta.PLC.BaseInfoField(), "ba_shuiweizhuangtai", 19, 2, "水位状态", DevicePointMap_PLC_DaoReYou.coms_level));
            map.Add("ba_ranshaoqizhuangtai", ByteField.Init(new Meta.PLC.BaseInfoField(), "ba_ranshaoqizhuangtai", 21, 2, "燃烧器状态", DevicePointMap_PLC_DaoReYou.coms_ranshaoqi_status));

            map.Add("mo_zhengqiyali", ByteField.Init(new Meta.PLC.MockField(), "mo_zhengqiyali", 35, 4, "蒸汽压力", "MPa"));
            map.Add("mo_guoluyewei", ByteField.Init(new Meta.PLC.MockField(), "mo_guoluyewei", 39, 4, "锅炉液位", "mm"));
            map.Add("mo_zhengqishunshiliuliang", ByteField.Init(new Meta.PLC.MockField(), "mo_zhengqishunshiliuliang", 43, 4, "蒸汽瞬时流量", "T/h"));
            map.Add("mo_bushuishunshiliuliang", ByteField.Init(new Meta.PLC.MockField(), "mo_bushuishunshiliuliang", 47, 4, "补水瞬时流量", "m³/h"));
            map.Add("mo_lutangwendu", ByteField.Init(new Meta.PLC.MockField(), "mo_lutangwendu", 51, 4, "炉膛温度", "℃"));
            map.Add("mo_lutangyali", ByteField.Init(new Meta.PLC.MockField(), "mo_lutangyali", 55, 4, "炉膛压力", "Pa"));
            map.Add("mo_shengmeiqijinkouyanwen", ByteField.Init(new Meta.PLC.MockField(), "mo_shengmeiqijinkouyanwen", 59, 4, "省煤器进口烟温", "℃"));
            map.Add("mo_zuizhongpaiyanwendu", ByteField.Init(new Meta.PLC.MockField(), "mo_zuizhongpaiyanwendu", 63, 4, "最终排烟温度", "℃"));
            map.Add("mo_zhengqileijiliuliang", ByteField.Init(new Meta.PLC.MockField(), "mo_zhengqileijiliuliang", 67, 4, "蒸汽累计流量", "T"));
            map.Add("mo_bushuileijiliuliang", ByteField.Init(new Meta.PLC.MockField(), "mo_bushuileijiliuliang", 71, 4, "补水累计流量", "m³"));
            map.Add("mo_shengmeiqijinshuiwendu", ByteField.Init(new Meta.PLC.MockField(), "mo_shengmeiqijinshuiwendu", 75, 4, "省煤器进水温度", "℃"));
            map.Add("mo_shengmeiqichushuiwendu", ByteField.Init(new Meta.PLC.MockField(), "mo_shengmeiqichushuiwendu", 79, 4, "省煤器出水温度", "℃"));
            map.Add("mo_bushuiwendu", ByteField.Init(new Meta.PLC.MockField(), "mo_bushuiwendu", 83, 4, "补水温度", "℃"));
            map.Add("mo_paiyanyali", ByteField.Init(new Meta.PLC.MockField(), "mo_paiyanyali", 87, 4, "排烟压力", "Pa"));
            map.Add("mo_jishuibengpinlvfankui", ByteField.Init(new Meta.PLC.MockField(), "mo_jishuibengpinlvfankui", 91, 4, "给水泵频率反馈", "Hz"));
            map.Add("mo_yinfengjipinlvfankui", ByteField.Init(new Meta.PLC.MockField(), "mo_yinfengjipinlvfankui", 95, 4, "引风机频率反馈", "Hz"));
            map.Add("mo_gufengjipinlvfankui", ByteField.Init(new Meta.PLC.MockField(), "mo_gufengjipinlvfankui", 99, 4, "鼓风机频率反馈", "Hz"));
            map.Add("mo_ruanshuixiangyewei", ByteField.Init(new Meta.PLC.MockField(), "mo_ruanshuixiangyewei", 103, 4, "软水箱液位", "%"));
            map.Add("mo_guorezhengqiyali", ByteField.Init(new Meta.PLC.MockField(), "mo_guorezhengqiyali", 107, 4, "过热蒸汽压力", "MPa"));
            map.Add("mo_chuyangqiyewei", ByteField.Init(new Meta.PLC.MockField(), "mo_chuyangqiyewei", 111, 4, "除氧器液位", "%"));
            map.Add("mo_guoreqichukouyanwen", ByteField.Init(new Meta.PLC.MockField(), "mo_guoreqichukouyanwen", 115, 4, "过热器出口烟温", "℃"));
            map.Add("mo_guoreqizhengqiwendu", ByteField.Init(new Meta.PLC.MockField(), "mo_guoreqizhengqiwendu", 119, 4, "过热器蒸汽温度", "℃"));
            map.Add("mo_baohezhengqiwendu", ByteField.Init(new Meta.PLC.MockField(), "mo_baohezhengqiwendu", 123, 4, "饱和蒸汽温度", "℃"));
            map.Add("mo_yureqijinyanwendu", ByteField.Init(new Meta.PLC.MockField(), "mo_yureqijinyanwendu", 127, 4, "预热器进烟温度", "℃"));
            map.Add("mo_yureqijinyanyali", ByteField.Init(new Meta.PLC.MockField(), "mo_yureqijinyanyali", 131, 4, "预热器进烟压力", "Pa"));
            map.Add("mo_chuyangqiwendu", ByteField.Init(new Meta.PLC.MockField(), "mo_chuyangqiwendu", 135, 4, "除氧器温度", "℃"));
            map.Add("mo_chuyangqiyali", ByteField.Init(new Meta.PLC.MockField(), "mo_chuyangqiyali", 139, 4, "除氧器压力", "KPa"));
            map.Add("mo_chuyangbengpinlvfankui", ByteField.Init(new Meta.PLC.MockField(), "mo_chuyangbengpinlvfankui", 143, 4, "除氧泵频率反馈", "Hz"));
            map.Add("mo_bushuidiandongfafankui", ByteField.Init(new Meta.PLC.MockField(), "mo_bushuidiandongfafankui", 147, 4, "补水电动阀反馈", "%"));
            map.Add("mo_jianwenshuidiandongfafankui", ByteField.Init(new Meta.PLC.MockField(), "mo_jianwenshuidiandongfafankui", 151, 4, "减温水电动阀反馈", "%"));
            map.Add("mo_chuyangjiarediandongfafankui", ByteField.Init(new Meta.PLC.MockField(), "mo_chuyangjiarediandongfafankui", 155, 4, "除氧加热电动阀反馈", "%"));
            map.Add("mo_zhaoqiyali", ByteField.Init(new Meta.PLC.MockField(), "mo_zhaoqiyali", 159, 4, "沼气压力", "kPa"));

            map.Add("se_qiluyalisheding", ByteField.Init(new Meta.PLC.SettingField(), "se_qiluyalisheding", 248, 4, "启炉压力设定", "MPa"));
            map.Add("se_mubiaoyalisheding", ByteField.Init(new Meta.PLC.SettingField(), "se_mubiaoyalisheding", 252, 4, "目标压力设定", "MPa"));
            map.Add("se_tingluyalisheding", ByteField.Init(new Meta.PLC.SettingField(), "se_tingluyalisheding", 256, 4, "停炉压力设定", "MPa"));
            map.Add("se_chaoyabaojingyalisheding", ByteField.Init(new Meta.PLC.SettingField(), "se_chaoyabaojingyalisheding", 260, 4, "超压报警压力设定", "MPa"));
            map.Add("se_paiyanchaowenbaojing", ByteField.Init(new Meta.PLC.SettingField(), "se_paiyanchaowenbaojing", 264, 4, "排烟超温报警", "℃"));
            map.Add("se_guolushuiweimubiaosheding", ByteField.Init(new Meta.PLC.SettingField(), "se_guolushuiweimubiaosheding", 268, 4, "锅炉水位目标设定", "mm"));
            map.Add("se_guolushuiweijigaobaojingsheding", ByteField.Init(new Meta.PLC.SettingField(), "se_guolushuiweijigaobaojingsheding", 272, 4, "锅炉水位极高报警设定", "mm"));
            map.Add("se_guolutingbengshuiweisheding", ByteField.Init(new Meta.PLC.SettingField(), "se_guolutingbengshuiweisheding", 276, 4, "锅炉停泵水位设定", "mm"));
            map.Add("se_guoluqibengshuiweisheding", ByteField.Init(new Meta.PLC.SettingField(), "se_guoluqibengshuiweisheding", 280, 4, "锅炉启泵水位设定", "mm"));
            map.Add("se_guolushuiweijidibaojingsheding", ByteField.Init(new Meta.PLC.SettingField(), "se_guolushuiweijidibaojingsheding", 284, 4, "锅炉水位极低报警设定", "mm"));
            map.Add("se_guolushuiweishoudonggeisu", ByteField.Init(new Meta.PLC.SettingField(), "se_guolushuiweishoudonggeisu", 288, 4, "锅炉水位手动给速", "%"));

            map.Add("de_yinfengshoudongzidong", ByteField.Init(new Meta.PLC.DeviceField(), "de_yinfengshoudongzidong", 368, 2, "引风", DevicePointMap_PLC_DaoReYou.coms_atuo));
            map.Add("de_yinfengqidongtingzhi", ByteField.Init(new Meta.PLC.DeviceField(), "de_yinfengqidongtingzhi", 370, 2, "引风", DevicePointMap_PLC_DaoReYou.coms_start_stop));
            map.Add("de_gufengshoudongzidong", ByteField.Init(new Meta.PLC.DeviceField(), "de_gufengshoudongzidong", 372, 2, "鼓风", DevicePointMap_PLC_DaoReYou.coms_atuo));
            map.Add("de_gufengqidongtingzhi", ByteField.Init(new Meta.PLC.DeviceField(), "de_gufengqidongtingzhi", 374, 2, "鼓风", DevicePointMap_PLC_DaoReYou.coms_start_stop));
            map.Add("de_lupaishoudongzidong", ByteField.Init(new Meta.PLC.DeviceField(), "de_lupaishoudongzidong", 376, 2, "炉排", DevicePointMap_PLC_DaoReYou.coms_atuo));
            map.Add("de_lupaiqidongtingzhi", ByteField.Init(new Meta.PLC.DeviceField(), "de_lupaiqidongtingzhi", 378, 2, "炉排", DevicePointMap_PLC_DaoReYou.coms_start_stop));
            map.Add("de_chuzhashoudongzidong", ByteField.Init(new Meta.PLC.DeviceField(), "de_chuzhashoudongzidong", 380, 2, "除渣", DevicePointMap_PLC_DaoReYou.coms_atuo));
            map.Add("de_chuzhaqidongtingzhi", ByteField.Init(new Meta.PLC.DeviceField(), "de_chuzhaqidongtingzhi", 382, 2, "除渣", DevicePointMap_PLC_DaoReYou.coms_start_stop));
            map.Add("de_1#jishuibengshoudongzidong", ByteField.Init(new Meta.PLC.DeviceField(), "de_1#jishuibengshoudongzidong", 384, 2, "1#给水泵", DevicePointMap_PLC_DaoReYou.coms_atuo));
            map.Add("de_1#jishuibengqidongtingzhi", ByteField.Init(new Meta.PLC.DeviceField(), "de_1#jishuibengqidongtingzhi", 386, 2, "1#给水泵", DevicePointMap_PLC_DaoReYou.coms_start_stop));
            map.Add("de_2#jishuibengshoudongzidong", ByteField.Init(new Meta.PLC.DeviceField(), "de_2#jishuibengshoudongzidong", 388, 2, "2#给水泵", DevicePointMap_PLC_DaoReYou.coms_atuo));
            map.Add("de_2#jishuibengqidongtingzhi", ByteField.Init(new Meta.PLC.DeviceField(), "de_2#jishuibengqidongtingzhi", 390, 2, "2#给水泵", DevicePointMap_PLC_DaoReYou.coms_start_stop));
            map.Add("de_1#chuyangbengbengshoudongzidong", ByteField.Init(new Meta.PLC.DeviceField(), "de_1#chuyangbengbengshoudongzidong", 392, 2, "1#除氧泵", DevicePointMap_PLC_DaoReYou.coms_atuo));
            map.Add("de_1#chuyangbengbengqidongtingzhi", ByteField.Init(new Meta.PLC.DeviceField(), "de_1#chuyangbengbengqidongtingzhi", 394, 2, "1#除氧泵", DevicePointMap_PLC_DaoReYou.coms_start_stop));
            map.Add("de_2#chuyangbengbengshoudongzidong", ByteField.Init(new Meta.PLC.DeviceField(), "de_2#chuyangbengbengshoudongzidong", 396, 2, "2#除氧泵", DevicePointMap_PLC_DaoReYou.coms_atuo));
            map.Add("de_2#chuyangbengbengqidongtingzhi", ByteField.Init(new Meta.PLC.DeviceField(), "de_2#chuyangbengbengqidongtingzhi", 398, 2, "2#除氧泵", DevicePointMap_PLC_DaoReYou.coms_start_stop));

            map.Add("ex_yinfengjibianpinqiguzhang", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_yinfengjibianpinqiguzhang", 448, 2, "引风机变频器故障", 0));
            map.Add("ex_gufengjibianpinqiguzhang", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_gufengjibianpinqiguzhang", 448, 2, "鼓风机变频器故障", 1));
            map.Add("ex_lupaibianpinqiguzhang", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_lupaibianpinqiguzhang", 448, 2, "炉排变频器故障", 2));
            map.Add("ex_chuzhabianpinqiguzhang", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_chuzhabianpinqiguzhang", 448, 2, "除渣变频器故障", 3));
            map.Add("ex_jishuibianpinqiguzhang", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_jishuibianpinqiguzhang", 448, 2, "给水变频器故障", 4));
            map.Add("ex_shuiweiweidibaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuiweiweidibaojing", 448, 2, "水位危低报警(电极)", 5));
            map.Add("ex_shuiweijidibaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuiweijidibaojing", 448, 2, "水位极低报警(电极)", 6));
            map.Add("ex_shuiweijigaobaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuiweijigaobaojing", 448, 2, "水位极高报警(电极)", 7));
            map.Add("ex_shuiweijidibaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuiweijidibaojing", 448, 2, "水位极低报警(设定值)", 8));
            map.Add("ex_shuiweijigaobaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuiweijigaobaojing", 448, 2, "水位极高报警(设定值)", 9));
            map.Add("ex_chaoyabaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_chaoyabaojing", 448, 2, "超压报警(压力开关)", 10));
            map.Add("ex_chaoyabaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_chaoyabaojing", 448, 2, "超压报警(设定值)", 11));
            map.Add("ex_paiyanchaowenbaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_paiyanchaowenbaojing", 448, 2, "排烟超温报警", 12));
            map.Add("ex_ruanshuixiangqueshuibaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_ruanshuixiangqueshuibaojing", 448, 2, "软水箱缺水报警", 13));
            map.Add("ex_shuidianjiluojicuobaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuidianjiluojicuobaojing", 448, 2, "水电极逻辑错报警", 14));
            map.Add("ex_yalibiansongqiguzhangbaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_yalibiansongqiguzhangbaojing", 448, 2, "压力变送器故障报警", 15));

            map.Add("ex_shuiweibiansongqiguzhangbaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuiweibiansongqiguzhangbaojing", 450, 2, "水位变送器故障报警", 0));
            map.Add("ex_paiyanwenduchuanganqiguzhangbaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_paiyanwenduchuanganqiguzhangbaojing", 450, 2, "排烟温度传感器故障报警", 1));
            map.Add("ex_chuyangqiqueshuibaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_chuyangqiqueshuibaojing", 450, 2, "除氧器缺水报警", 2));
            map.Add("ex_chuyangqigaoshuiweibaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_chuyangqigaoshuiweibaojing", 450, 2, "除氧器高水位报警", 3));
        }
        public DevicePointMap_PLC_DianZhengQi()
        {
            #region ----------------------计算属性(不显示)----------------------
            map.Add("_addshuibeng", ByteField.Init(new Meta.PLC.DeviceField(), "_addshuibeng", 0, 0, "给水泵", false));
            #endregion

            map.Add(SdcSoftDevice.KEY_POINT_RUN_HOURS, ByteField.Init(new Meta.PLC.BaseInfoField(), SdcSoftDevice.KEY_POINT_RUN_HOURS, 9, 2, "运行小时数", "时"));
            map.Add(SdcSoftDevice.KEY_POINT_RUN_DAYS, ByteField.Init(new Meta.PLC.BaseInfoField(), SdcSoftDevice.KEY_POINT_RUN_DAYS, 11, 2, "运行天数", "天"));
            map.Add(SdcSoftDevice.KEY_POINT_SYSTEM_STATUS, ByteField.Init(new Meta.PLC.BaseInfoField(), SdcSoftDevice.KEY_POINT_SYSTEM_STATUS, 13, 2, "系统状态", PLC_Common_ValueMaps.coms_status));
            map.Add(SdcSoftDevice.KEY_POINT_POWER, ByteField.Init(new Meta.PLC.PowerField(), SdcSoftDevice.KEY_POINT_POWER, 1, 0, "燃料", DevicePointMap.coms_power));
            map.Add(SdcSoftDevice.KEY_POINT_MEDIA, ByteField.Init(new Meta.PLC.MediaField(), SdcSoftDevice.KEY_POINT_MEDIA, 1, 0, "介质", DevicePointMap.coms_media));
            map.Add("ba_shuiweizhuangtai", ByteField.Init(new Meta.PLC.BaseInfoField(), "ba_shuiweizhuangtai", 19, 2, "水位状态", DevicePointMap.coms_level));
            map.Add("ba_ranshaoqizhuangtai", ByteField.Init(new Meta.PLC.BaseInfoField(), "ba_ranshaoqizhuangtai", 21, 2, "燃烧器状态", PLC_Common_ValueMaps.coms_ranshaoqi_status));

            map.Add("mo_zhengqiyali", ByteField.Init(new Meta.PLC.MockField(), "mo_zhengqiyali", 35, 4, "蒸汽压力", "MPa"));
            map.Add("mo_zhengqiwendu", ByteField.Init(new Meta.PLC.MockField(), "mo_zhengqiwendu", 39, 4, "蒸汽温度", "℃"));
            map.Add("mo_guolushuiwei", ByteField.Init(new Meta.PLC.MockField(), "mo_guolushuiwei", 43, 4, "锅炉水位", "mm"));
            map.Add("mo_zhengqishunshiliuliang", ByteField.Init(new Meta.PLC.MockField(), "mo_zhengqishunshiliuliang", 47, 4, "蒸汽瞬时流量", "T/H"));
            map.Add("mo_bushuishunshiliuliang", ByteField.Init(new Meta.PLC.MockField(), "mo_bushuishunshiliuliang", 51, 4, "补水瞬时流量", "T/H"));
            map.Add("mo_zhengqileijiliuliang", ByteField.Init(new Meta.PLC.MockField(), "mo_zhengqileijiliuliang", 55, 4, "蒸汽累计流量", "T"));
            map.Add("mo_bushuileijiliuliang", ByteField.Init(new Meta.PLC.MockField(), "mo_bushuileijiliuliang", 59, 4, "补水累计流量", "T"));
            map.Add("mo_jinshuiwendu", ByteField.Init(new Meta.PLC.MockField(), "mo_jinshuiwendu", 63, 4, "进水温度", "℃"));
            map.Add("mo_jinshuiyali", ByteField.Init(new Meta.PLC.MockField(), "mo_jinshuiyali", 67, 4, "进水压力", "MPa"));
            map.Add("mo_addshuibengpinlvfankui", ByteField.Init(new Meta.PLC.MockField(), "mo_addshuibengpinlvfankui", 71, 4, "给水泵频率反馈", "Hz"));
            map.Add("mo_ruanshuixiangyewei", ByteField.Init(new Meta.PLC.MockField(), "mo_ruanshuixiangyewei", 75, 4, "软水箱液位", "%"));
            map.Add("mo_qidongjiarezushu", ByteField.Init(new Meta.PLC.MockField(), "mo_qidongjiarezushu", 79, 4, "启动加热组数", "组"));
            map.Add("mo_qidongjiarezushubaifenbi", ByteField.Init(new Meta.PLC.MockField(), "mo_qidongjiarezushubaifenbi", 83, 4, "启动加热组数百分比", "%"));

            map.Add("se_chaoyabaojingsheding", ByteField.Init(new Meta.PLC.SettingField(), "se_chaoyabaojingsheding", 127, 4, "超压报警设定", "MPa"));
            map.Add("se_shiyongjiarezushusheding", ByteField.Init(new Meta.PLC.SettingField(), "se_shiyongjiarezushusheding", 131, 4, "使用加热组数设定", "组"));
            map.Add("se_touqiejiangeshijiansheding", ByteField.Init(new Meta.PLC.SettingField(), "se_touqiejiangeshijiansheding", 135, 4, "投切间隔时间设定", "S"));
            map.Add("se_kuaiqiejiangeshijiansheding", ByteField.Init(new Meta.PLC.SettingField(), "se_kuaiqiejiangeshijiansheding", 139, 4, "快切间隔时间设定", "S"));
            map.Add("se_tingluyalisheding", ByteField.Init(new Meta.PLC.SettingField(), "se_tingluyalisheding", 143, 4, "停炉压力设定", "MPa"));
            map.Add("se_shiyongyalisheding", ByteField.Init(new Meta.PLC.SettingField(), "se_shiyongyalisheding", 147, 4, "使用压力设定", "MPa"));
            map.Add("se_qiluyalisheding", ByteField.Init(new Meta.PLC.SettingField(), "se_qiluyalisheding", 151, 4, "启炉压力设定", "MPa"));
            map.Add("se_guolushuiweijidibaojingsheding", ByteField.Init(new Meta.PLC.SettingField(), "se_guolushuiweijidibaojingsheding", 155, 4, "锅炉水位极低报警设定", "mm"));
            map.Add("se_geishuibengshoudongpinlvsheding", ByteField.Init(new Meta.PLC.SettingField(), "se_geishuibengshoudongpinlvsheding", 159, 4, "给水泵手动频率设定", "Hz"));
            map.Add("se_bushuimubiaosheding", ByteField.Init(new Meta.PLC.SettingField(), "se_bushuimubiaosheding", 163, 4, "补水目标设定", "mm"));
            map.Add("se_guolushuiweijigaobaojingsheding", ByteField.Init(new Meta.PLC.SettingField(), "se_guolushuiweijigaobaojingsheding", 167, 4, "锅炉水位极高报警设定", "mm"));
            map.Add("se_qibengyeweisheding", ByteField.Init(new Meta.PLC.SettingField(), "se_qibengyeweisheding", 171, 4, "启泵液位设定", "mm"));
            map.Add("se_tingbengyeweisheding", ByteField.Init(new Meta.PLC.SettingField(), "se_tingbengyeweisheding", 175, 4, "停泵液位设定", "mm"));


            map.Add("de_1_addshuibeng_auto", ByteField.Init(new Meta.PLC.DeviceField(), "de_1_addshuibeng_auto", 199, 2, "1#给水泵", PLC_Common_ValueMaps.coms_atuo));
            map.Add("de_1_addshuibeng_start_stop", ByteField.Init(new Meta.PLC.DeviceField(), "de_1_addshuibeng_start_stop", 201, 2, "1#给水泵", DevicePointMap.coms_start_stop));
            map.Add("de_2_addshuibeng_auto", ByteField.Init(new Meta.PLC.DeviceField(), "de_2_addshuibeng_auto", 203, 2, "2#给水泵", PLC_Common_ValueMaps.coms_atuo));
            map.Add("de_2_addshuibeng_start_stop", ByteField.Init(new Meta.PLC.DeviceField(), "de_2_addshuibeng_start_stop", 205, 2, "2#给水泵", DevicePointMap.coms_start_stop));
            map.Add("de_baojingshuchuzhishi", ByteField.Init(new Meta.PLC.DeviceField(), "de_baojingshuchuzhishi", 207, 2, "报警输出指示", coms_open_close));


            map.Add("ex_shuidianjiluojicuobaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuidianjiluojicuobaojing", 233, 2, "水电极逻辑错报警", 0));
            map.Add("ex_yalibiansongqiguzhangbaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_yalibiansongqiguzhangbaojing", 233, 2, "压力变送器故障报警", 1));
            map.Add("ex_shuiweibiansongqiguzhangbaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuiweibiansongqiguzhangbaojing", 233, 2, "水位变送器故障报警", 2));
            map.Add("ex_geishuibengbianpinqiguzhang", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_geishuibengbianpinqiguzhang", 233, 2, "给水泵变频器故障", 3));
            map.Add("ex_loudianbaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_loudianbaojing", 233, 2, "漏电报警", 4));
            map.Add("ex_qianyabaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_qianyabaojing", 233, 2, "欠压报警", 5));

            map.Add("ex_shuiweiweidibaojing_dianji", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuiweiweidibaojing_dianji", 233, 2, "水位危低报警(电极)", 8));
            map.Add("ex_shuiweijidibaojing_dianji", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuiweijidibaojing_dianji", 233, 2, "水位极低报警(电极)", 9));
            map.Add("ex_shuiweijigaobaojing_dianji", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuiweijigaobaojing_dianji", 233, 2, "水位极高报警(电极)", 10));
            map.Add("ex_shuiweijidibaojing_shedingzhi", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuiweijidibaojing_shedingzhi", 233, 2, "水位极低报警(设定值)", 11));
            map.Add("ex_shuiweijigaobaojing_shedingzhi", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_shuiweijigaobaojing_shedingzhi", 233, 2, "水位极高报警(设定值)", 12));
            map.Add("ex_chaoyabaojing_yalikaiguan", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_chaoyabaojing_yalikaiguan", 233, 2, "超压报警(压力开关)", 13));
            map.Add("ex_chaoyabaojing_shedingzhi", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_chaoyabaojing_shedingzhi", 233, 2, "超压报警(设定值)", 14));
            map.Add("ex_ruanshuixiangqueshuibaojing", ByteField.Init(new Meta.PLC.ExceptionField(), "ex_ruanshuixiangqueshuibaojing", 233, 2, "软水箱缺水报警", 15));

            map.Add("oc_1#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_1#jiarezu", 237, 2, "1#加热组反馈", 1));
            map.Add("oc_2#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_2#jiarezu", 237, 2, "2#加热组反馈", 1));
            map.Add("oc_3#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_3#jiarezu", 237, 2, "3#加热组反馈", 1));
            map.Add("oc_4#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_4#jiarezu", 237, 2, "4#加热组反馈", 1));
            map.Add("oc_5#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_5#jiarezu", 237, 2, "5#加热组反馈", 1));
            map.Add("oc_6#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_6#jiarezu", 237, 2, "6#加热组反馈", 1));
            map.Add("oc_7#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_7#jiarezu", 237, 2, "7#加热组反馈", 1));
            map.Add("oc_8#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_8#jiarezu", 237, 2, "8#加热组反馈", 1));
            map.Add("oc_9#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_9#jiarezu", 237, 2, "9#加热组反馈", 1));
            map.Add("oc_10#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_10#jiarezu", 237, 2, "10#加热组反馈", 1));
            map.Add("oc_11#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_11#jiarezu", 237, 2, "11#加热组反馈", 1));
            map.Add("oc_12#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_12#jiarezu", 237, 2, "12#加热组反馈", 1));
            map.Add("oc_13#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_13#jiarezu", 237, 2, "13#加热组反馈", 1));
            map.Add("oc_14#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_14#jiarezu", 237, 2, "14#加热组反馈", 1));
            map.Add("oc_15#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_15#jiarezu", 237, 2, "15#加热组反馈", 1));
            map.Add("oc_16#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_16#jiarezu", 237, 2, "16#加热组反馈", 1));
            map.Add("oc_17#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_17#jiarezu", 239, 2, "17#加热组反馈", 1));
            map.Add("oc_18#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_18#jiarezu", 239, 2, "18#加热组反馈", 1));
            map.Add("oc_19#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_19#jiarezu", 239, 2, "19#加热组反馈", 1));
            map.Add("oc_20#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_20#jiarezu", 239, 2, "20#加热组反馈", 1));
            map.Add("oc_21#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_21#jiarezu", 239, 2, "21#加热组反馈", 1));
            map.Add("oc_22#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_22#jiarezu", 239, 2, "22#加热组反馈", 1));
            map.Add("oc_23#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_23#jiarezu", 239, 2, "23#加热组反馈", 1));
            map.Add("oc_24#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_24#jiarezu", 239, 2, "24#加热组反馈", 1));
            map.Add("oc_25#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_25#jiarezu", 239, 2, "25#加热组反馈", 1));
            map.Add("oc_26#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_26#jiarezu", 239, 2, "26#加热组反馈", 1));
            map.Add("oc_27#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_27#jiarezu", 239, 2, "27#加热组反馈", 1));
            map.Add("oc_28#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_28#jiarezu", 239, 2, "28#加热组反馈", 1));
            map.Add("oc_29#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_29#jiarezu", 239, 2, "29#加热组反馈", 1));
            map.Add("oc_30#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_30#jiarezu", 239, 2, "30#加热组反馈", 1));
            map.Add("oc_31#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_31#jiarezu", 239, 2, "31#加热组反馈", 1));
            map.Add("oc_32#jiarezu", ByteField.Init(new Meta.PLC.OpenCloseField(), "oc_32#jiarezu", 239, 2, "32#加热组反馈", 1));
        }