using Aitex.Core.RT.Device; using Aitex.Core.Util; using CyberX8_RT.Devices.AXIS; using MECF.Framework.Common.Equipment; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CyberX8_RT.Devices.TransPorter { public class TransporterDeviceTimer : BaseDevice, IDevice { #region 常量 private const string TRANSPORTER = "Transporter"; #endregion #region 内部变量 private PeriodicJob _periodicJob; private JetAxisBase _loaderTransporterGantryAxis; private JetAxisBase _loaderTransporterElevatorAxis; private JetAxisBase _processTransporterGantryAxis; private JetAxisBase _processTransporterElevatorAxis; private TransporterCommon _loaderTransporterCommon; private TransporterCommon _processTransporterCommon; #endregion /// /// 构造函数 /// public TransporterDeviceTimer() : base(TRANSPORTER, TRANSPORTER, TRANSPORTER, TRANSPORTER) { _periodicJob = new PeriodicJob(20, OnTimer, $"{TRANSPORTER}.OnTimer", false); } /// /// 初始化 /// /// public bool Initialize() { _loaderTransporterGantryAxis = DEVICE.GetDevice($"{ModuleName.Transporter2}.Gantry"); _loaderTransporterElevatorAxis = DEVICE.GetDevice($"{ModuleName.Transporter2}.Elevator"); _loaderTransporterCommon = DEVICE.GetDevice($"{ModuleName.Transporter2}.Common"); _processTransporterGantryAxis = DEVICE.GetDevice($"{ModuleName.Transporter1}.Gantry"); _processTransporterElevatorAxis = DEVICE.GetDevice($"{ModuleName.Transporter1}.Elevator"); _processTransporterCommon = DEVICE.GetDevice($"{ModuleName.Transporter1}.Common"); _periodicJob.Start(); return true; } public void Monitor() { } public void Reset() { } /// /// 中止 /// public void Terminate() { _periodicJob.Stop(); } /// /// 定时器执行 /// /// private bool OnTimer() { if (_loaderTransporterGantryAxis != null) { _loaderTransporterGantryAxis.OnTimer(); } if (_loaderTransporterElevatorAxis != null) { _loaderTransporterElevatorAxis.OnTimer(); } if (_processTransporterGantryAxis != null) { _processTransporterGantryAxis.OnTimer(); } if (_processTransporterElevatorAxis != null) { _processTransporterElevatorAxis.OnTimer(); } if (_loaderTransporterCommon != null) { _loaderTransporterCommon.OnTimer(); } if(_processTransporterCommon!=null) { _processTransporterCommon.OnTimer(); } return true; } } }