BeckhoffManager.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using Aitex.Common.Util;
  2. using Aitex.Core.RT.DataCenter;
  3. using Aitex.Core.RT.Event;
  4. using Aitex.Core.RT.IOCore;
  5. using Aitex.Core.RT.OperationCenter;
  6. using Aitex.Core.RT.SCCore;
  7. using Aitex.Core.Util;
  8. using MECF.Framework.Common.Beckhoff.IOAxis;
  9. using MECF.Framework.Common.Beckhoff.ModuleIO;
  10. using MECF.Framework.Common.CommonData;
  11. using MECF.Framework.Common.IOCore;
  12. using MECF.Framework.Common.Utilities;
  13. using MECF.Framework.RT.Core.IoProviders;
  14. using System;
  15. using System.Collections.Generic;
  16. using System.IO;
  17. using System.Linq;
  18. using System.Text;
  19. using System.Threading.Tasks;
  20. namespace MECF.Framework.Common.TwinCat
  21. {
  22. public class BeckhoffManager : Singleton<BeckhoffManager>
  23. {
  24. #region 内部常量
  25. private const string DI_ITEMLIST = "System.DIItemList";
  26. private const string DO_ITEMLIST = "System.DOItemList";
  27. private const string AI_ITEMLIST = "System.AIItemList";
  28. private const string AO_ITEMLIST = "System.AOItemList";
  29. private const string DIGITAL = "Digital";
  30. private const string ANALOG = "Analog";
  31. #endregion
  32. #region 内部变量
  33. BeckhoffCfg _cfg = null;
  34. #endregion
  35. #region 属性
  36. public BeckhoffCfg BeckhoffCfg
  37. {
  38. get { return _cfg; }
  39. set { _cfg = value; }
  40. }
  41. #endregion
  42. /// <summary>
  43. /// 初始化
  44. /// </summary>
  45. public void Initialize()
  46. {
  47. string xmlPath = "";
  48. bool isSimulate = SC.GetValue<bool>("System.IsSimulatorMode");
  49. if (isSimulate)
  50. {
  51. xmlPath = PathManager.GetCfgDir() + "Devices\\Beckhoffcfg - plctask.xml";
  52. }
  53. else
  54. {
  55. xmlPath = PathManager.GetCfgDir() + "Devices\\Beckhoffcfg.xml";
  56. }
  57. BeckhoffModuleIOManager.Instance.Initialize(PathManager.GetCfgDir() + "Devices\\ModuleIoCfg.xml");
  58. _cfg = CustomXmlSerializer.Deserialize<BeckhoffCfg>(new FileInfo(xmlPath));
  59. if(_cfg!=null)
  60. {
  61. BeckhoffIOManager.Instance.Initialize(_cfg);
  62. BeckhoffAxisManager.Instance.Initialize(_cfg);
  63. BeckhoffCounterManager.Instance.Initialize(_cfg);
  64. }
  65. }
  66. }
  67. }