Ejemplo n.º 1
0
        //protected Thread
        public VulcanizeDevice(IPort port, ISerialize serialize) : base(port, serialize)
        {
            try
            {
                lock (_port)
                {
                    _port.Write(_serialize.Serialize(new ReadRandomCommand(eElementCode.M, 5 * 16)))
                    .Read(out byte[] result);
                    var res = _serialize.Deserialize <ReadRandomResult>(result);
                    if (res.Code == ePlcResultCode.OK)
                    {
                        _option = (eVulcanizeOption)res.WordData;
                    }
                }
            }
            catch (Exception ex) {
                Logger.ErrorInfo("VulcanizeDevice  读取状态", ex);
            }
            _isOnline = true;

            Reset(true); Thread.Sleep(1000);
            Reset(false);

            Update();
        }
Ejemplo n.º 2
0
        public override void Reset(bool force = false)
        {
            byte[] result;
            lock (_port)
            {
                _option = force ? Bit.Set(_option, eVulcanizeOption.Reset) : Bit.Clr(_option, eVulcanizeOption.Reset);
                _port.Write(_serialize.Serialize(new WriteRandomCommand(eElementCode.M, 5 * 16, (ushort)_option)));
                _port.Read(out result);
            }
#if DEBUG
            var res = _serialize.Deserialize <WriteRandomResult>(result);
            Logger.LogInfo($"Vulcanize:Reset, code:{res.Code.ToString()}");
#endif
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 报警解除(
        /// </summary>
        /// <returns></returns>
        public IDevice AlarmRelease(bool enable = true)
        {
            byte[] result;
            lock (_port)
            {
                _option = enable ? Bit.Set(_option, eVulcanizeOption.AlarmRelease) : Bit.Clr(_option, eVulcanizeOption.AlarmRelease);
                _port.Write(_serialize.Serialize(new WriteRandomCommand(eElementCode.M, 5 * 16, (ushort)_option)));
                _port.Read(out result);
            }
#if DEBUG
            var res = _serialize.Deserialize <WriteRandomResult>(result);
            Logger.LogInfo($"Vulcanize:AlarmRelease, code:{res.Code.ToString()}");
#endif
            return(this);
        }
Ejemplo n.º 4
0
        public void ViceSync(object sender, byte[] args, eVulcanizeViceState state)
        {
            var cmd = _serialize.Serialize(new WriteCommand(eElementCode.D, 50, 24))
                      .Concat(args).ToArray();

            lock (_port)
            {
                _port.Write(cmd)
                .Read(out byte[] result);
                var data = _serialize.Deserialize <PlcResultBase>(result);
            }

            lock (_port)
            {
                //硫化门已升
                _option = (Bit.Tst(state, eVulcanizeViceState.VulcanizationDoorUpReady) ? Bit.Set(_option, eVulcanizeOption.VulcanizationDoorUpReady) : Bit.Clr(_option, eVulcanizeOption.VulcanizationDoorUpReady));
                //出盘已准备
                _option = (Bit.Tst(state, eVulcanizeViceState.OutDiscReady) ? Bit.Set(_option, eVulcanizeOption.OutDiscReady) : Bit.Clr(_option, eVulcanizeOption.OutDiscReady));
                //硫化门已降
                _option = (Bit.Tst(state, eVulcanizeViceState.VulcanizationDoorDownReady) ? Bit.Set(_option, eVulcanizeOption.VulcanizationDoorDownReady) : Bit.Clr(_option, eVulcanizeOption.VulcanizationDoorDownReady));
                //出口到小车
                _option = (Bit.Tst(state, eVulcanizeViceState.ExitToAGV) ? Bit.Set(_option, eVulcanizeOption.ExitToAGV) : Bit.Clr(_option, eVulcanizeOption.ExitToAGV));
                //硫化到冷却已完成
                _option = (Bit.Tst(state, eVulcanizeViceState.CoolerReady) ? Bit.Set(_option, eVulcanizeOption.CoolerReady) : Bit.Clr(_option, eVulcanizeOption.CoolerReady));

                _port.Write(_serialize.Serialize(new WriteRandomCommand(eElementCode.M, 5 * 16, (ushort)_option)));
                _port.Read(out byte [] result);

#if DEBUG
                var res = _serialize.Deserialize <WriteRandomResult>(result);

                Logger.LogInfo($"Vulcanize:ViceSync, code:{state.ToString()}");
                Logger.LogInfo($"Vulcanize:ViceSync, code:{res.Code.ToString()}");
#endif
            }
        }