using System; using System.Text; using System.Linq; using System.Drawing; using System.Diagnostics; using System.Windows.Forms; using System.Threading; using System.Threading.Tasks; using System.Collections.Generic; using Tango.PMR.Hardware; using Tango.PMR.Printing; using Tango.PMR.Stubs; using Tango.Stubs; HardwareMotor FeederMotor = new HardwareMotor(); FeederMotor.HardwareMotorType = Tango.PMR.Hardware.HardwareMotorType.MotoRdriving; FeederMotor.MinFrequency = 0; FeederMotor.MaxFrequency = 1000000; FeederMotor.SetMicroStep = 1; FeederMotor.MicroStep = 8; FeederMotor.MaxChangeSlope = 4095; FeederMotor.HighLengthMicroSecond = 0; FeederMotor.SpeedMaster = false; FeederMotor.PulsePerRound = 200; FeederMotor.PulleyRadius = 1.25; FeederMotor.ConfigWord = 0x1C80; FeederMotor.DirectionThreadWize = true; FeederMotor.KvalHold = 0x35; FeederMotor.KvalRun = 0x7f; FeederMotor.KvalAcc = 0x7f; FeederMotor.KvalDec = 0x3ff; FeederMotor.OverCurrentThreshold = 7; FeederMotor.StallThreshold = 0x1F; FeederMotor.ThermalCompensationFactor = 0; FeederMotor.LowSpeedOptimization = false; FeederMotor.StSlp = 0x20; FeederMotor.IntSpd = 0x1A13; FeederMotor.FnSlpAcc = 0x50; FeederMotor.FnSlpDec = 0x50; HardwareMotor DryerMotor = new HardwareMotor(); DryerMotor.HardwareMotorType = Tango.PMR.Hardware.HardwareMotorType.MotoDryerDriving; DryerMotor.MinFrequency = 0; DryerMotor.MaxFrequency = 1000000; DryerMotor.SetMicroStep = 1; DryerMotor.MicroStep = 8; DryerMotor.MaxChangeSlope = 4095; DryerMotor.HighLengthMicroSecond = 0; DryerMotor.SpeedMaster = true; DryerMotor.PulsePerRound = 200; DryerMotor.PulleyRadius = 1.05; DryerMotor.ConfigWord = 0x1c80; DryerMotor.DirectionThreadWize = false; DryerMotor.KvalHold = 0x35; DryerMotor.KvalRun = 0x7f; DryerMotor.KvalAcc = 0x7f; DryerMotor.KvalDec = 0x3ff; DryerMotor.OverCurrentThreshold = 7; DryerMotor.StallThreshold = 0x1F; DryerMotor.ThermalCompensationFactor = 0; DryerMotor.LowSpeedOptimization = false; DryerMotor.StSlp = 0x20; DryerMotor.IntSpd = 0x1A13; DryerMotor.FnSlpAcc = 0x50; DryerMotor.FnSlpDec = 0x50; HardwareMotor PoolerMotor = new HardwareMotor(); PoolerMotor.HardwareMotorType = Tango.PMR.Hardware.HardwareMotorType.MotoLdriving; PoolerMotor.MinFrequency = 0; PoolerMotor.MaxFrequency = 1000000; PoolerMotor.SetMicroStep = 1; PoolerMotor.MicroStep = 8; PoolerMotor.MaxChangeSlope = 10000; PoolerMotor.HighLengthMicroSecond = 0; PoolerMotor.SpeedMaster = false; PoolerMotor.PulsePerRound = 200; PoolerMotor.PulleyRadius = 1.25; PoolerMotor.ConfigWord = 0x1C80; PoolerMotor.DirectionThreadWize = true; PoolerMotor.KvalHold = 0x35; PoolerMotor.KvalRun = 0x7f; PoolerMotor.KvalAcc = 0x7f; PoolerMotor.KvalDec = 0x3ff; PoolerMotor.OverCurrentThreshold = 7; PoolerMotor.StallThreshold = 0x1F; PoolerMotor.ThermalCompensationFactor = 0; PoolerMotor.LowSpeedOptimization = false; PoolerMotor.StSlp = 20; PoolerMotor.IntSpd = 0x1A13; PoolerMotor.FnSlpAcc = 0x50; PoolerMotor.FnSlpDec = 0x50; HardwareMotor WinderMotor = new HardwareMotor(); WinderMotor.HardwareMotorType = Tango.PMR.Hardware.HardwareMotorType.MotoWinder; WinderMotor.MinFrequency = 0; WinderMotor.MaxFrequency = 100000; WinderMotor.SetMicroStep = 1; WinderMotor.MicroStep = 16; WinderMotor.MaxChangeSlope = 0x7ff; WinderMotor.HighLengthMicroSecond = 0; WinderMotor.SpeedMaster = false; WinderMotor.PulsePerRound = 200; WinderMotor.PulleyRadius = 0.8; WinderMotor.ConfigWord = 0x1CA0; WinderMotor.DirectionThreadWize = false; WinderMotor.KvalHold = 0x08; WinderMotor.KvalRun = 0x20; WinderMotor.KvalAcc = 0x20; WinderMotor.KvalDec = 0x3ff; WinderMotor.OverCurrentThreshold = 0xF; WinderMotor.StallThreshold = 0x7F; WinderMotor.ThermalCompensationFactor = 0; WinderMotor.LowSpeedOptimization = false; WinderMotor.StSlp = 0x7; WinderMotor.IntSpd = 0x22C5; WinderMotor.FnSlpAcc = 0x15; WinderMotor.FnSlpDec = 0x15; HardwareMotor ScrewMotor = new HardwareMotor(); ScrewMotor.HardwareMotorType = Tango.PMR.Hardware.HardwareMotorType.MotoScrew; ScrewMotor.MinFrequency = 0; ScrewMotor.MaxFrequency = 100000; ScrewMotor.SetMicroStep = 1; ScrewMotor.MicroStep = 8; ScrewMotor.MaxChangeSlope = 0x7FF; ScrewMotor.HighLengthMicroSecond = 0; ScrewMotor.SpeedMaster = false; ScrewMotor.PulsePerRound = 200; ScrewMotor.PulleyRadius = 1.68; ScrewMotor.ConfigWord = 0x1CA0; ScrewMotor.DirectionThreadWize = true; ScrewMotor.KvalHold = 0x1; ScrewMotor.KvalRun = 0x20; ScrewMotor.KvalAcc = 0x20; ScrewMotor.KvalDec = 0x3ff; ScrewMotor.OverCurrentThreshold = 0xF; ScrewMotor.StallThreshold = 0x7F; ScrewMotor.ThermalCompensationFactor = 0; ScrewMotor.LowSpeedOptimization = false; ScrewMotor.StSlp = 0x7; ScrewMotor.IntSpd = 0x22C5; ScrewMotor.FnSlpAcc = 0x15; ScrewMotor.FnSlpDec = 0x15; HardwareMotor LeftRockerMotor = new HardwareMotor(); LeftRockerMotor.HardwareMotorType = Tango.PMR.Hardware.HardwareMotorType.MotoLloading; LeftRockerMotor.MinFrequency = 0; LeftRockerMotor.MaxFrequency = 1000000; LeftRockerMotor.SetMicroStep = 1; LeftRockerMotor.MicroStep = 4; LeftRockerMotor.MaxChangeSlope = 10000; LeftRockerMotor.HighLengthMicroSecond = 0; LeftRockerMotor.SpeedMaster = false; LeftRockerMotor.PulsePerRound = 200; LeftRockerMotor.PulleyRadius = 1.3; LeftRockerMotor.ConfigWord = 0xC80; LeftRockerMotor.DirectionThreadWize = false; LeftRockerMotor.KvalHold = 0x28; LeftRockerMotor.KvalRun = 0x5f; LeftRockerMotor.KvalAcc = 0x5f; LeftRockerMotor.KvalDec = 0x3ff; LeftRockerMotor.OverCurrentThreshold = 7; LeftRockerMotor.StallThreshold = 0x1F; LeftRockerMotor.ThermalCompensationFactor = 0; LeftRockerMotor.LowSpeedOptimization = false; LeftRockerMotor.StSlp = 6; LeftRockerMotor.IntSpd = 0x44B8; LeftRockerMotor.FnSlpAcc = 0x14; LeftRockerMotor.FnSlpDec = 0x14; HardwareMotor RightRockerMotor = new HardwareMotor(); RightRockerMotor.HardwareMotorType = Tango.PMR.Hardware.HardwareMotorType.MotoRloading; RightRockerMotor.MinFrequency = 0; RightRockerMotor.MaxFrequency = 1000000; RightRockerMotor.SetMicroStep = 1; RightRockerMotor.MicroStep = 4; RightRockerMotor.MaxChangeSlope = 4095; RightRockerMotor.HighLengthMicroSecond = 0; RightRockerMotor.SpeedMaster = false; RightRockerMotor.PulsePerRound = 200; RightRockerMotor.PulleyRadius = 1.3; RightRockerMotor.ConfigWord = 0xC80; RightRockerMotor.DirectionThreadWize = true; RightRockerMotor.KvalHold = 0x28; RightRockerMotor.KvalRun = 0x5f; RightRockerMotor.KvalAcc = 0x5f; RightRockerMotor.KvalDec = 0x3ff; RightRockerMotor.OverCurrentThreshold = 7; RightRockerMotor.StallThreshold = 0x1F; RightRockerMotor.ThermalCompensationFactor = 0; RightRockerMotor.LowSpeedOptimization = false; RightRockerMotor.StSlp = 6; RightRockerMotor.IntSpd = 0x44B8; RightRockerMotor.FnSlpAcc = 0x14; RightRockerMotor.FnSlpDec = 0x14; HardwareMotor Dispenser4Motor = new HardwareMotor(); Dispenser4Motor.HardwareMotorType = Tango.PMR.Hardware.HardwareMotorType.MotoDispenser4; Dispenser4Motor.MinFrequency = 0; Dispenser4Motor.MaxFrequency = 100000; Dispenser4Motor.SetMicroStep = 1; Dispenser4Motor.MicroStep = 16; Dispenser4Motor.MaxChangeSlope = 0x7FF; Dispenser4Motor.HighLengthMicroSecond = 0; Dispenser4Motor.SpeedMaster = false; Dispenser4Motor.PulsePerRound = 400; Dispenser4Motor.PulleyRadius = 1.68; Dispenser4Motor.ConfigWord = 0x1CA0; Dispenser4Motor.DirectionThreadWize = true; Dispenser4Motor.KvalHold = 0x21; Dispenser4Motor.KvalRun = 0xc0; Dispenser4Motor.KvalAcc = 0x2e; Dispenser4Motor.KvalDec = 0x3ff; Dispenser4Motor.OverCurrentThreshold = 0xF; Dispenser4Motor.StallThreshold = 0x1F; Dispenser4Motor.ThermalCompensationFactor = 0; Dispenser4Motor.LowSpeedOptimization = false; Dispenser4Motor.StSlp = 0x9; Dispenser4Motor.IntSpd = 0x1AD2; Dispenser4Motor.FnSlpAcc = 0x26; Dispenser4Motor.FnSlpDec = 0x26; HardwareMotor Dispenser7Motor = new HardwareMotor(); Dispenser7Motor.HardwareMotorType = Tango.PMR.Hardware.HardwareMotorType.MotoDispenser7; Dispenser7Motor.MinFrequency = 0; Dispenser7Motor.MaxFrequency = 100000; Dispenser7Motor.SetMicroStep = 1; Dispenser7Motor.MicroStep = 16; Dispenser7Motor.MaxChangeSlope = 0x7FF; Dispenser7Motor.HighLengthMicroSecond = 0; Dispenser7Motor.SpeedMaster = false; Dispenser7Motor.PulsePerRound = 400; Dispenser7Motor.PulleyRadius = 1.68; Dispenser7Motor.ConfigWord = 0x1CA0; Dispenser7Motor.DirectionThreadWize = true; Dispenser7Motor.KvalHold = 0x21; Dispenser7Motor.KvalRun = 0xc0; Dispenser7Motor.KvalAcc = 0x2e; Dispenser7Motor.KvalDec = 0x3ff; Dispenser7Motor.OverCurrentThreshold = 0xF; Dispenser7Motor.StallThreshold = 0x1F; Dispenser7Motor.ThermalCompensationFactor = 0; Dispenser7Motor.LowSpeedOptimization = false; Dispenser7Motor.StSlp = 0x9; Dispenser7Motor.IntSpd = 0x1AD2; Dispenser7Motor.FnSlpAcc = 0x26; Dispenser7Motor.FnSlpDec = 0x26; HardwareMotor Dispenser8Motor = new HardwareMotor(); Dispenser8Motor.HardwareMotorType = Tango.PMR.Hardware.HardwareMotorType.MotoDispenser8; Dispenser8Motor.MinFrequency = 0; Dispenser8Motor.MaxFrequency = 100000; Dispenser8Motor.SetMicroStep = 1; Dispenser8Motor.MicroStep = 16; Dispenser8Motor.MaxChangeSlope = 0x7FF; Dispenser8Motor.HighLengthMicroSecond = 0; Dispenser8Motor.SpeedMaster = false; Dispenser8Motor.PulsePerRound = 400; Dispenser8Motor.PulleyRadius = 1.68; Dispenser8Motor.ConfigWord = 0x1CA0; Dispenser8Motor.DirectionThreadWize = true; Dispenser8Motor.KvalHold = 0x21; Dispenser8Motor.KvalRun = 0xc0; Dispenser8Motor.KvalAcc = 0x2e; Dispenser8Motor.KvalDec = 0x3ff; Dispenser8Motor.OverCurrentThreshold = 0xF; Dispenser8Motor.StallThreshold = 0x1F; Dispenser8Motor.ThermalCompensationFactor = 0; Dispenser8Motor.LowSpeedOptimization = false; Dispenser8Motor.StSlp = 0x9; Dispenser8Motor.IntSpd = 0x1AD2; Dispenser8Motor.FnSlpAcc = 0x26; Dispenser8Motor.FnSlpDec = 0x26; HardwareMotor DryerLoadarm = new HardwareMotor(); DryerLoadarm.HardwareMotorType = Tango.PMR.Hardware.HardwareMotorType.MotoDryerLoadarm; DryerLoadarm.MinFrequency = 0; DryerLoadarm.MaxFrequency = 1000000; DryerLoadarm.SetMicroStep = 1; DryerLoadarm.MicroStep = 1; DryerLoadarm.MaxChangeSlope = 10000; DryerLoadarm.HighLengthMicroSecond = 0; DryerLoadarm.SpeedMaster = false; DryerLoadarm.PulsePerRound = 200; DryerLoadarm.PulleyRadius = 1.25; DryerLoadarm.ConfigWord = 0x1C80; DryerLoadarm.DirectionThreadWize = false; DryerLoadarm.KvalHold = 0x35; DryerLoadarm.KvalRun = 0x7f; DryerLoadarm.KvalAcc = 0x7f; DryerLoadarm.KvalDec = 0x3ff; DryerLoadarm.OverCurrentThreshold = 7; DryerLoadarm.StallThreshold = 0x1F; DryerLoadarm.ThermalCompensationFactor = 0; DryerLoadarm.LowSpeedOptimization = false; DryerLoadarm.StSlp = 0x20; DryerLoadarm.IntSpd = 0x1A13; DryerLoadarm.FnSlpAcc = 0x50; DryerLoadarm.FnSlpDec = 0x50; HardwareWinder Winder = new HardwareWinder(); Winder.HardwareWinderType = Tango.PMR.Hardware.HardwareWinderType.InternalWinder; Winder.MillimeterPerRotation = 20;