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); }
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); }
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); }
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)); }
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)); }
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)); }
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)); }
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); }
public void Build(StateMachine machine) { Driver = machine.MotionExs.Values.First(m => m.Name == DriverName); }
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 }); } }