diff --git a/CMS_CORE_Library/Siemens/Nc_Siemens.cs b/CMS_CORE_Library/Siemens/Nc_Siemens.cs index 970f61d..30d8bb2 100644 --- a/CMS_CORE_Library/Siemens/Nc_Siemens.cs +++ b/CMS_CORE_Library/Siemens/Nc_Siemens.cs @@ -73,8 +73,8 @@ namespace CMS_CORE_Library.Siemens private static string UnitOfMeasure; // Alarms data - private AlarmSvc SiemensAlmSvc = null; - private Alarm[] SiemensAlarms; + private static AlarmSvc SiemensAlmSvc = null; + private static Alarm[] SiemensAlarms = new Alarm[] { }; // Tool table listeners private static ToolMngmntSvc SiemensToolSvc = null; @@ -154,7 +154,6 @@ namespace CMS_CORE_Library.Siemens //Setup timeout TimeoutConn = ConnectionTimeOut; - SiemensAlarms = new Alarm[] { }; } /** @@ -176,7 +175,6 @@ namespace CMS_CORE_Library.Siemens //Setup timeout TimeoutConn = ConnectionTimeOut; - SiemensAlarms = new Alarm[] { }; } public override CmsError NC_Connect() @@ -222,10 +220,13 @@ namespace CMS_CORE_Library.Siemens if (this.EnableAlarms) { - SiemensAlarms = new Alarm[] { }; - SiemensAlmSvc = new AlarmSvc(ConvertToSTEPLanguage(SiemensLanguage).ThreeLetterISOLanguageName); - SiemensAlmSvc.Subscribe(AlarmsChanged); - Infrastructure.SubscribeLanguageChanged(NcLanguageChanged); + if(SiemensAlmSvc == null) + { + SiemensAlarms = new Alarm[] { }; + SiemensAlmSvc = new AlarmSvc(ConvertToSTEPLanguage(SiemensLanguage).ThreeLetterISOLanguageName); + SiemensAlmSvc.Subscribe(AlarmsChanged); + Infrastructure.SubscribeLanguageChanged(NcLanguageChanged); + } } if (this.EnableTools) @@ -346,7 +347,8 @@ namespace CMS_CORE_Library.Siemens if (SiemensToolSvc != null) { SiemensToolSvc.UnSubscribe(ToolMngmtSvcHandler); - // SiemensToolSvc.Dispose(); + SiemensToolSvc.Dispose(); + SiemensToolSvc = null; } if (MagazinePositionSvc != null) {