Example #1
0
        public void Import(string line, StateMachine machine)
        {
            var data = line.Split(' ');

            int i  = 0;
            int id = int.Parse(data[i++]);

            Id   = id;
            Name = data[i++];
            if (string.IsNullOrEmpty(Name))
            {
                Name = $"备用{id}";
            }
            Type        = (DoType)Enum.Parse(typeof(DoType), data[i++]);
            Description = data[i++];
            DriverName  = data[i++];
            Port        = int.Parse(data[i++]);
            Enable      = bool.Parse(data[i++]);
            Driver      = machine.MotionExs.Values.FirstOrDefault(m => m.Name == DriverName);
            if (Driver == null)
            {
                throw new FormatException($"Parsing Error: Not Found Motion Driver Instance {line} {DriverName}");
            }

            if (machine.DoExs.ContainsKey(id))
            {
                return;
            }
            machine.DoExs.Add(id, this);
        }
Example #2
0
        public void Import(string line, StateMachine machine)
        {
            var data = line.Split(' ');

            int i  = 0;
            int id = int.Parse(data[i++]);

            Name        = data[i++];
            Type        = (EleDiType)Enum.Parse(typeof(EleDiType), data[i++]);
            Description = data[i++];
            Driver      = data[i++];
            Port        = int.Parse(data[i++]);
            Enable      = bool.Parse(data[i++]);
            DriverCard  = machine.MotionExs.Values.FirstOrDefault(m => m.Name == Driver);
            if (DriverCard == null)
            {
                throw new FormatException($"Parsing Error: Not Found Motion Driver Instance {line} {Driver}");
            }

            if (machine.DiExs.ContainsKey(id))
            {
                return;
            }
            machine.DiExs.Add(id, this);
        }
Example #3
0
        public void Import(string line, StateMachine machine)
        {
            var data = line.Split(' ');

            int i = 0;

            int id = int.Parse(data[i++]);

            Id          = id;
            Name        = data[i++];
            Type        = (CylinderType)Enum.Parse(typeof(CylinderType), data[i++]);
            Description = data[i++];

            if (data.Length == 10)
            {
                DriverName1 = data[i++];
                DriverName2 = DriverName1;
                DiOrg       = int.Parse(data[i++]);
                DiWork      = int.Parse(data[i++]);
                DoOrg       = int.Parse(data[i++]);
                DoWork      = int.Parse(data[i++]);
                Enable      = bool.Parse(data[i++]);
            }
            else if (data.Length == 11)
            {
                DriverName1 = data[i++];
                DiOrg       = int.Parse(data[i++]);
                DiWork      = int.Parse(data[i++]);
                DriverName2 = data[i++];
                DoOrg       = int.Parse(data[i++]);
                DoWork      = int.Parse(data[i++]);
                Enable      = bool.Parse(data[i++]);
            }
            else
            {
                throw new Exception($"Cylinder {Name} Format Error");
            }



            Driver1 = machine.MotionExs.Values.FirstOrDefault(m => m.Name == DriverName1);
            if (Driver1 == null)
            {
                throw new FormatException($"Parsing Error: Not Found Motion Driver Instance {line} {DriverName1}");
            }


            Driver2 = machine.MotionExs.Values.FirstOrDefault(m => m.Name == DriverName2);
            if (Driver2 == null)
            {
                throw new FormatException($"Parsing Error: Not Found Motion Driver Instance {line} {DriverName1}");
            }


            if (machine.CylinderExs.ContainsKey(id))
            {
                return;
            }
            machine.CylinderExs.Add(id, this);
        }
Example #4
0
        public DiEx(EleDi eleDi, MotionCardWrapper wrapper = null)
        {
            var props = eleDi.GetType().GetProperties();

            foreach (var p in props)
            {
                p.SetValue(this, p.GetValue(eleDi));
            }

            DriverCard = wrapper ?? new MotionCardWrapper((IMotionCard)DevPrimsManager.Instance.GetPrimByName(Driver));
        }
Example #5
0
        public AxisEx(EleAxis axis, MotionCardWrapper wrapper = null)
        {
            var props = axis.GetType().GetProperties();

            foreach (var p in props)
            {
                p.SetValue(this, p.GetValue(axis));
            }

            DriverCard = new MotionCardWrapper((IMotionCard)DevPrimsManager.Instance.GetPrimByName(Driver));
        }
Example #6
0
        public CylinderEx(EleCylinder cy, MotionCardWrapper wrapper = null)
        {
            var props = cy.GetType().GetProperties();

            foreach (var p in props)
            {
                p.SetValue(this, p.GetValue(cy));
            }

            DriverCard = new MotionCardWrapper((IMotionCard)DevPrimsManager.Instance.GetPrimByName(Driver));
        }
Example #7
0
        public VioEx(EleVio vio, MotionCardWrapper wrapper = null)
        {
            var props = vio.GetType().GetProperties();

            foreach (var p in props)
            {
                p.SetValue(this, p.GetValue(vio));
            }

            DriverCard = new MotionCardWrapper((IMotionCard)DevPrimsManager.Instance.GetPrimByName(Driver));
        }
Example #8
0
        public void Import(string line, StateMachine machine)
        {
            var data = line.Split(' ');

            int i  = 0;
            int id = int.Parse(data[i++]);

            Id          = id;
            Name        = data[i++];
            Type        = (EleAxisType)Enum.Parse(typeof(EleAxisType), data[i++]);
            Description = data[i++];
            Driver      = data[i++];
            AxisChannel = int.Parse(data[i++]);
            Enable      = bool.Parse(data[i++]);

            AxisLead       = double.Parse(data[i++]);
            AxisPlsPerRoll = int.Parse(data[i++]);
            AxisSpeed      = double.Parse(data[i++]);
            AxisAcc        = double.Parse(data[i++]);

            HomeOrder = int.Parse(data[i++]);
            HomeDir   = int.Parse(data[i++]);
            HomeMode  = int.Parse(data[i++]);
            HomeVm    = double.Parse(data[i++]);

            DriverCard = machine.MotionExs.Values.FirstOrDefault(m => m.Name == Driver);
            if (DriverCard == null)
            {
                throw new FormatException($"Parsing Error: Not Found Motion Driver Instance {line} {Driver}");
            }


            if (machine.AxisExs.ContainsKey(id))
            {
                return;
            }
            machine.AxisExs.Add(id, this);
        }
Example #9
0
 public void Build(StateMachine machine)
 {
     Driver = machine.MotionExs.Values.First(m => m.Name == DriverName);
 }
Example #10
0
        public override void Load()
        {
            if (!Directory.Exists(@".\Config"))
            {
                Directory.CreateDirectory(@".\Config");
            }


            //load all settings!!!
            try
            {
                Settings = DemoMachineSettings.Load(@".\Config\Settings.cfg");
            }
            catch (Exception ex)
            {
                MessageBox.Show($"加载配置文件失败:{ex.Message}");
            }

            if (Settings == null)
            {
                Settings = new DemoMachineSettings();
                Settings.Save(@".\Config\Settings.cfg");
            }

            //try
            //{
            //    Import();
            //}
            //catch (Exception ex)
            //{

            //    MessageBox.Show($"导入设备参数失败:{ex.Message}");
            //}



            //load drivers
            Motion1 = new MotionCardWrapper(new VirtualCard());
            VIO     = new MotionCardWrapper(new VirtualCard());

            MotionExs.Add(1, Motion1);
            MotionExs.Add(2, VIO);

            //load di do axis

            DiExs.Add(1, new DiEx()
            {
                Driver = Motion1
            });

            DoExs.Add(1, new DoEx()
            {
                Driver = Motion1
            });

            CylinderExs.Add(1, new CylinderEx()
            {
                Driver1 = Motion1, Driver2 = Motion1
            });

            AxisExs.Add(1, new AxisEx()
            {
                Driver = Motion1
            });

            //load station task
            var station1  = new Station(1, "Station1", this);
            var testTask1 = new TestTask1(1, "Test1", station1);

            //bind signals
            if (!FrameworkManager.IsSimulate)
            {
                // todo : to add signal configs
                //estop
                DiEstop.Add(2, new DiEx()
                {
                    Driver = Motion1
                });

                //start/stop/reset button
                DiStart.Add(1, new DiEx()
                {
                    Driver = Motion1
                });
                DiStop.Add(1, new DiEx()
                {
                    Driver = Motion1
                });
                DiReset.Add(1, new DiEx()
                {
                    Driver = Motion1
                });

                //start/stop/reset button lamp
                DoLightGreen.Add(1, new DoEx()
                {
                    Driver = Motion1
                });
                DoLightRed.Add(1, new DoEx()
                {
                    Driver = Motion1
                });
                DoLightYellow.Add(1, new DoEx()
                {
                    Driver = Motion1
                });

                //lamp
                DoLightGreen.Add(2, new DoEx()
                {
                    Driver = Motion1
                });
                DoLightRed.Add(2, new DoEx()
                {
                    Driver = Motion1
                });
                DoLightYellow.Add(2, new DoEx()
                {
                    Driver = Motion1
                });
                DoBuzzer.Add(1, new DoEx()
                {
                    Driver = Motion1
                });


                //station pause signals
                Stations[1].PauseSignals.Add(1, new DiEx()
                {
                    Driver = Motion1
                });
            }
        }