public override void Reset(bool force = false) { byte[] result; lock (_port) { _option = force ? Bit.Set(_option, eVulcanizeViceOption.Reset) : Bit.Clr(_option, eVulcanizeViceOption.Reset); _port.Write(_serialize.Serialize(new WriteRandomCommand(eElementCode.M, 3 * 16, (ushort)_option))) .Read(out result); } #if DEBUG var res = _serialize.Deserialize <WriteRandomResult>(result); Logger.LogInfo($"VulcanizeVice:Reset, code:{res.Code.ToString()}"); #endif }
/// <summary> /// 从机复位 /// </summary> /// <param name="enable"></param> /// <returns></returns> public IDevice ViceReset(bool enable = true) { byte[] result; lock (_port) { _option = enable ? Bit.Set(_option, eVulcanizeViceOption.ViceReset) : Bit.Clr(_option, eVulcanizeViceOption.ViceReset); _port.Write(_serialize.Serialize(new WriteRandomCommand(eElementCode.M, 3 * 16, (ushort)_option))) .Read(out result); } #if DEBUG var res = _serialize.Deserialize <WriteRandomResult>(result); Logger.LogInfo($"VulcanizeVice:ViceReset, code:{res.Code.ToString()}"); #endif return(this); }
public void Sync(object sender, eVulcanizeState state) { lock (_port) { //冷却到出口 _option = (Bit.Tst(state, eVulcanizeState.CoolerToExit) ? Bit.Set(_option, eVulcanizeViceOption.CoolerToExit) : Bit.Clr(_option, eVulcanizeViceOption.CoolerToExit)); //硫化门升 _option = (Bit.Tst(state, eVulcanizeState.VulcanizationDoorUp) ? Bit.Set(_option, eVulcanizeViceOption.VulcanizationDoorUp) : Bit.Clr(_option, eVulcanizeViceOption.VulcanizationDoorUp)); //冷却门升 _option = (Bit.Tst(state, eVulcanizeState.CoolerDoorUp) ? Bit.Set(_option, eVulcanizeViceOption.CoolerDoorUp) : Bit.Clr(_option, eVulcanizeViceOption.CoolerDoorUp)); //硫化到冷却 _option = (Bit.Tst(state, eVulcanizeState.VulcanizationToCooler) ? Bit.Set(_option, eVulcanizeViceOption.CoolerReady) : Bit.Clr(_option, eVulcanizeViceOption.CoolerReady)); //硫化门降 _option = (Bit.Tst(state, eVulcanizeState.VulcanizationDoorDown) ? Bit.Set(_option, eVulcanizeViceOption.VulcanizationDoorDown) : Bit.Clr(_option, eVulcanizeViceOption.VulcanizationDoorDown)); //冷却门降 _option = (Bit.Tst(state, eVulcanizeState.CoolerDoorDown) ? Bit.Set(_option, eVulcanizeViceOption.CoolerDoorDown) : Bit.Clr(_option, eVulcanizeViceOption.CoolerDoorDown)); //手动冷却传送带动 _option = (Bit.Tst(state, eVulcanizeState.HandOpertionCoolerTransmission) ? Bit.Set(_option, eVulcanizeViceOption.HandOpertionCoolerTransmission) : Bit.Clr(_option, eVulcanizeViceOption.HandOpertionCoolerTransmission)); //出口到小车 _option = (Bit.Tst(state, eVulcanizeState.OutToAGV) ? Bit.Set(_option, eVulcanizeViceOption.OutToAGV) : Bit.Clr(_option, eVulcanizeViceOption.OutToAGV)); //急停 _option = (Bit.Tst(state, eVulcanizeState.Estop) ? Bit.Set(_option, eVulcanizeViceOption.EStop) : Bit.Clr(_option, eVulcanizeViceOption.EStop)); //从机复位 _option = (Bit.Tst(state, eVulcanizeState.ViceReset) ? Bit.Set(_option, eVulcanizeViceOption.ViceReset) : Bit.Clr(_option, eVulcanizeViceOption.ViceReset)); _port.Write(_serialize.Serialize(new WriteRandomCommand(eElementCode.M, 3 * 16, (ushort)_option))); _port.Read(out byte[] result); #if DEBUG var res = _serialize.Deserialize <WriteRandomResult>(result); Logger.LogInfo($"VulcanizeVice:Sync, code:{state.ToString()}"); Logger.LogInfo($"VulcanizeVice:Sync, code:{res.Code.ToString()}"); #endif } }
//protected Thread public VulcanizeViceDevice(IPort port, ISerialize serialize) : base(port, serialize) { try { _port.Write(_serialize.Serialize(new ReadRandomCommand(eElementCode.M, 3 * 16))) .Read(out byte[] result); var res = _serialize.Deserialize <ReadRandomResult>(result); if (res.Code == ePlcResultCode.OK) { _option = (eVulcanizeViceOption)res.WordData; } } catch (Exception ex) { Logger.ErrorInfo("VulcanizeViceDevice", ex); } _isOnline = true; IPCCMD(true); Update(); }