123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- using Aitex.Core.Common;
- using Aitex.Core.RT.Device;
- using MECF.Framework.Common.Beckhoff.IOAxis;
- using MECF.Framework.Common.Device.Galil;
- using MECF.Framework.Common.Device.LinMot;
- using MECF.Framework.Common.Equipment;
- using MECF.Framework.Common.ToolLayout;
- using MECF.Framework.Common.TwinCat;
- using MECF.Framework.RT.Core.Equipments;
- using PunkHPX8_RT.Devices;
- using PunkHPX8_RT.Devices.AXIS;
- using PunkHPX8_RT.Devices.EFEM;
- using PunkHPX8_RT.Devices.Facilities;
- using PunkHPX8_RT.Devices.LinMot;
- using PunkHPX8_RT.Devices.PowerSupplier;
- using PunkHPX8_RT.Devices.Resistivity;
- using PunkHPX8_RT.Devices.Safety;
- using PunkHPX8_RT.Devices.SignalLight;
- using PunkHPX8_RT.Devices.SRD;
- using PunkHPX8_RT.Devices.Temperature;
- using PunkHPX8_RT.Devices.VpwCell;
- using PunkHPX8_RT.Devices.VpwMain;
- using SecsGem.Core.ItemModel;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Reflection;
- using System.Threading;
- using System.Windows.Media.Imaging;
- using static Mono.Security.X509.X520;
- namespace PunkHPX8_RT.Instances
- {
- public class DeviceEntity : DeviceEntityT<DeviceManager>
- {
- public DeviceEntity()
- {
- }
- }
- public class DeviceManager : DeviceManagerBase
- {
- #region 常量
- private const string STRATUS = "Stratus";
- #endregion
- /// <summary>
- /// 初始化
- /// </summary>
- /// <returns></returns>
- public override bool Initialize()
- {
- TotalSRDDevice totalSRDDevice = new TotalSRDDevice();
- AddCustomDevice(totalSRDDevice);
- if (ModuleHelper.IsInstalled(ModuleName.SRD1))
- {
- InitialSRD(ModuleName.SRD1);
- }
- if(ModuleHelper.IsInstalled(ModuleName.SRD2))
- {
- InitialSRD(ModuleName.SRD2);
- }
- SRDDeviceTimer srdDeviceTimer = new SRDDeviceTimer();
- AddCustomDevice(srdDeviceTimer);
- InitLinMotAxis();
- InitResisitivity();
- InitializeTemperature();
- InitializePowerSuppliers();
- InitializeVpw();
- SystemFacilities systemFacilities = new SystemFacilities();
- AddCustomModuleDevice(systemFacilities);
- SafetyDevice safetyDevice = new SafetyDevice();
- AddCustomDevice(safetyDevice);
- AddCustomModuleDevice(new SunWaySignalTower("System", "SignalTower"));
- return true;
- }
- /// <summary>
- /// 初始化SRD
- /// </summary>
- /// <param name="moduleName"></param>
- private void InitialSRD(ModuleName moduleName)
- {
- GalilAxisConfig rotationBeckhoffAxis = GalilControllerCfgManager.Instance.GetGalilAxisConfig(moduleName.ToString(), "Rotation");
- if (rotationBeckhoffAxis != null)
- {
- JetAxisBase rotationAxis = AxisManager.Instance.GetAxisInstance(rotationBeckhoffAxis.Type, moduleName.ToString(), "Rotation");
- AddCustomModuleDevice(rotationAxis);
- rotationAxis.InterLock = new SrdRotationAxisInterLock(rotationAxis);
- AxisManager.Instance.AddModuleAxis(moduleName.ToString(), rotationAxis);
- }
- SrdCommonDevice srdCommon = new SrdCommonDevice(moduleName.ToString());
- AddCustomModuleDevice(srdCommon);
- }
- /// <summary>
- /// 初始化VPW
- /// </summary>
- private void InitializeVpw()
- {
- foreach (string item in VpwMainItemManager.Instance.InstalledModules)
- {
- VpwMainDevice vpwMainDevice = new VpwMainDevice(item);
- AddCustomDevice(vpwMainDevice);
- }
- foreach(string item in VpwCellItemManager.Instance.InstalledModules)
- {
- VpwCellDevice vpwCellDevice= new VpwCellDevice(item);
- AddCustomDevice(vpwCellDevice);
- BeckhoffAxis rotationBeckhoffAxis = BeckhoffAxisManager.Instance.GetAxis($"{item}.Rotation");
- if (rotationBeckhoffAxis != null)
- {
- JetAxisBase rotationAxis = AxisManager.Instance.GetAxisInstance(rotationBeckhoffAxis.MotorType, item.ToString(), "Rotation");
- AddCustomModuleDevice(rotationAxis);
- rotationAxis.InterLock = new VpwRotationAxisInterLock(rotationAxis);
- AxisManager.Instance.AddModuleAxis(item.ToString(), rotationAxis);
- }
- }
- VpwCellDeviceTimer vpwDeviceTimer = new VpwCellDeviceTimer();
- AddCustomDevice(vpwDeviceTimer);
- }
- /// <summary>
- /// 初始化LinMotAxis
- /// </summary>
- private void InitLinMotAxis()
- {
- foreach(string item in LinmotItemManager.Instance.InstalledModules)
- {
- LinmotItem linmotItem=LinmotItemManager.Instance.GetLinmotItem(item);
- for(int i = 0;i< linmotItem.Count; i++)
- {
- LinMotAxis linMotAxis = new LinMotAxis($"{item}-{i + 1}");
- linMotAxis.LastSwitchOff = linmotItem.ResetSwitchOff == 1;
- AddCustomDevice(linMotAxis);
- }
- }
- LinmotDeviceTimer linmotDeviceTimer = new LinmotDeviceTimer();
- AddCustomDevice(linmotDeviceTimer);
- }
- /// <summary>
- /// 初始化水阻计
- /// </summary>
- private void InitResisitivity()
- {
- foreach(string item in ResistivityProbeItemManager.Instance.InstalledModules)
- {
- ResistivityProbeItem resistivityItem = ResistivityProbeItemManager.Instance.GetResistivityProbeItem(item);
- for(int i=0;i<resistivityItem.Count;i++)
- {
- ResistivityController resistivityController = new ResistivityController($"{item}-{i + 1}");
- AddCustomDevice(resistivityController);
- }
- }
- }
- /// <summary>
- /// 初始化温度计
- /// </summary>
- private void InitializeTemperature()
- {
- foreach (string item in TemperatureItemManager.Instance.InstalledModules)
- {
- TemperatureItem temperatureItem = TemperatureItemManager.Instance.GetTemperatureItem(item);
- for (int i = 0; i < temperatureItem.Count; i++)
- {
- TemperatureController tempController = new TemperatureController($"{item}-{i + 1}");
- AddCustomDevice(tempController);
- }
- }
- }
- /// <summary>
- /// 初始化PowerSupplier
- /// </summary>
- private void InitializePowerSuppliers()
- {
- foreach(string item in PowerSupplierItemManager.Instance.InstalledModules)
- {
- PowerSupplierItem powerSupplierItem=PowerSupplierItemManager.Instance.GetPowerSupplierItem(item);
- for (int i = 0; i < powerSupplierItem.Count; i++)
- {
- CellPowerSupplier cellPowerSupplier = new CellPowerSupplier($"{item}-{i + 1}");
- AddCustomDevice(cellPowerSupplier);
- }
- }
- foreach(string item in CmmPowerItemManager.Instance.InstalledModules)
- {
- CmmPowerItem powerSupplierItem = CmmPowerItemManager.Instance.GetCmmPowerSupplierItem(item);
- for (int i = 0; i < powerSupplierItem.Count; i++)
- {
- CellPowerSupplier cellPowerSupplier = new CellPowerSupplier($"{item}-{i + 1}");
- AddCustomDevice(cellPowerSupplier);
- }
- }
- }
- private bool Invoke(string arg1, object[] args)
- {
- string name = (string)args[0];
- string func = (string)args[1];
- object[] param = new object[args.Length - 2];
- for (int i = 2; i < args.Length; i++)
- param[i - 2] = args[i].ToString();
- DEVICE.Do(string.Format("{0}.{1}", name, func), 0, true, param);
- return true;
- }
- }
- }
|