示例#1
0
        public SetupTableModel(MPNAStruct agr)
        {
            showAO = false;
            type   = typeof(MPNAStruct);
            obj    = agr;

            Name  = agr.Description;
            Group = agr.Group;
            En    = agr.En;

            Outputs = new ObservableCollection <InputOutputItem>
            {
                new InputOutputItem("ВВ включен сигнал 1", agr.MBC11indxArrDI, agr.MBC11Name, ESignalType.DI),
                new InputOutputItem("ВВ включен сигнал 2", agr.MBC12indxArrDI, agr.MBC12Name, ESignalType.DI),
                new InputOutputItem("ВВ отключен сигнал 1", agr.MBC21indxArrDI, agr.MBC21Name, ESignalType.DI),
                new InputOutputItem("ВВ отключен сигнал 2", agr.MBC22indxArrDI, agr.MBC22Name, ESignalType.DI),

                new InputOutputItem("Исправность цепей включения", agr.ECBindxArrDI, agr.ECBName, ESignalType.DI),
                new InputOutputItem("Исправность цепей отключения 1", agr.ECO11indxArrDI, agr.ECO11Name, ESignalType.DI),
                new InputOutputItem("Исправность цепей отключения 2", agr.ECO12indxArrDI, agr.ECO12Name, ESignalType.DI)
            };

            if (agr.CustomDIs.Count > 0)
            {
                foreach (DIItem d in agr.CustomDIs)
                {
                    Outputs.Add(new InputOutputItem(d.Name, d.DI));
                }
            }
            //Outputs.Add(new InputOutputItem("ECx02", agr.ECxindxArrDI, agr.ECxName));

            inputs = new ObservableCollection <InputOutputItem>
            {
                new InputOutputItem("Команда на включение", agr.ABBindxArrDO, agr.ABBName, ESignalType.DO),
                new InputOutputItem("Команда на отключение", agr.ABOindxArrDO, agr.ABOName, ESignalType.DO),
                new InputOutputItem("Команда на отключение 2", agr.ABO2indxArrDO, agr.ABO2Name, ESignalType.DO)
            };

            if (agr.controledAIs != null)
            {
                _analogs = new ObservableCollection <AnalogIOItem>(agr.controledAIs);
            }
            else
            {
                _analogs = new ObservableCollection <AnalogIOItem>();
            }

            /* _analogs[0] = new AnalogIOItem("Сила тока", agr.CurrentIndx, agr.Current_nominal, agr.Current_spd, agr.TokName);
             * _analogs[1] = new AnalogIOItem("Частота вращения", agr.RPMindxArrAI, agr.RPM_nominal, agr.RPM_spd, agr.RPMSignalName);*/

            AddDICommand = new AddDICommand(Outputs);
            RemDICommand = new RemoveDICommand(Outputs, 7);

            InitSelectMenu();
        }
示例#2
0
        public void ApplyChanges()
        {
            if (type == typeof(VSStruct))
            {
                VSStruct temp = obj as VSStruct;
                temp.ECindxArrDI  = Outputs[0]._index;
                temp.MPCindxArrDI = Outputs[1]._index;
                temp.PCindxArrDI  = Outputs[2]._index;
                temp.BusSecIndex  = Outputs[3]._index;
                //   temp.PCindxArrAI = Analogs[0].Index;

                /*  temp.valuePC = Analogs[0].ValueNom;
                 * temp.valuePCspd = Analogs[0].ValueSpd;
                 */
                temp.Description = Name;
                temp.Group       = Group;
                temp.En          = En;

                temp.ABBindxArrDO = inputs[0]._index;
                temp.ABOindxArrDO = inputs[1]._index;

                if (_analogs.Count > 0)
                {
                    temp.controledAIs = _analogs.ToArray();
                }
                else
                {
                    temp.controledAIs = null;
                }

                /* if (ANInputs != null && ANInputs.Count > 0)
                 * {
                 *   temp.SetRPM_Addr = ANInputs[0].PLCAddr;
                 *   temp.ADCtoRPM = ANInputs[0].ADCtoRPM;
                 * }*/
                temp.AnCmdIndex = AnalogCommands[0]._index;

                for (int i = 4; i < Outputs.Count; i++)
                {
                    if (Outputs[i].Index != null)
                    {
                        temp.CustomDIs.Add(new DIItem(Outputs[i].Name, Outputs[i]._index));
                    }
                }
            }
            if (type == typeof(KLStruct))
            {
                KLStruct temp = obj as KLStruct;
                temp.DOBindxArrDO = inputs[0]._index;
                temp.DKBindxArrDO = inputs[1]._index;

                temp.OKCindxArrDI = Outputs[0]._index;
                temp.CKCindxArrDI = Outputs[1]._index;

                temp.Description = Name;
                temp.Group       = Group;
                temp.En          = En;
            }
            if (type == typeof(ZDStruct))
            {
                ZDStruct temp = obj as ZDStruct;

                temp.Description   = Name;
                temp.Group         = Group;
                temp.En            = En;
                temp.OKCindxArrDI  = Outputs[0]._index;
                temp.CKCindxArrDI  = Outputs[1]._index;
                temp.VoltindxArrDI = Outputs[2]._index;
                temp.ODCindxArrDI  = Outputs[3]._index;
                temp.CDCindxArrDI  = Outputs[4]._index;
                temp.MCindxArrDI   = Outputs[5]._index;
                temp.DCindxArrDI   = Outputs[6]._index;
                temp.BSIndex       = Outputs[7]._index;

                temp.DOBindxArrDO  = inputs[0]._index;
                temp.DCBindxArrDO  = inputs[1]._index;
                temp.DKBindxArrDO  = inputs[2]._index;
                temp.DCBZindxArrDO = inputs[3]._index;

                temp.ZD_Pos_index = _analogs[0]._index;

                if (Outputs.Count > 8)
                {
                    temp.CustomDIs = new List <DIItem>();
                    for (int i = 8; i < Outputs.Count; i++)
                    {
                        temp.CustomDIs.Add(new DIItem(Outputs[i].Name, Outputs[i]._index));
                    }
                }
                //TODO: добавить запись настроек аналогов
            }
            if (type == typeof(MPNAStruct))
            {
                MPNAStruct agr = obj as MPNAStruct;

                agr.Description    = Name;
                agr.Group          = Group;
                agr.En             = En;
                agr.MBC11indxArrDI = Outputs[0]._index;
                agr.MBC12indxArrDI = Outputs[1]._index;
                agr.MBC21indxArrDI = Outputs[2]._index;
                agr.MBC22indxArrDI = Outputs[3]._index;

                agr.ECBindxArrDI   = Outputs[4]._index;
                agr.ECO11indxArrDI = Outputs[5]._index;
                agr.ECO12indxArrDI = Outputs[6]._index;
                //      agr.ECxindxArrDI = Outputs[7]._index;

                agr.ABBindxArrDO  = inputs[0]._index;
                agr.ABOindxArrDO  = inputs[1]._index;
                agr.ABO2indxArrDO = inputs[2]._index;

                /*  agr.CurrentIndx = Analogs[0].Index;
                 * agr.Current_nominal = Analogs[0].ValueNom;
                 * agr.Current_spd = Analogs[0].ValueSpd;
                 *
                 * agr.RPMindxArrAI = Analogs[1].Index;
                 * agr.RPM_nominal = Analogs[1].ValueNom;
                 * agr.RPM_spd = Analogs[1].ValueSpd;*/
                if (Analogs.Count > 0)
                {
                    agr.controledAIs = Analogs.ToArray();
                }
                else
                {
                    agr.controledAIs = null;
                }

                agr.CustomDIs = new List <DIItem>();
                for (int i = 7; i < Outputs.Count; i++)
                {
                    if (Outputs[i].Index != null)
                    {
                        agr.CustomDIs.Add(new DIItem(Outputs[i].Name, Outputs[i]._index));
                    }
                }
            }
        }
 public static MPNAStruct[] GetArray()
 {
     MPNAStruct[] temp = new MPNAStruct[_mpnas.Count];
     _mpnas.CopyTo(temp, 0);
     return(temp);
 }