private void ListenToPlcModuleActualValues() { var tag = new Tag( NamingConventions.ModuleInterfaceActualValues, _pathRootController, NamingConventions.ModuleInterfaceActualValuesType, _adsPort); tag.ValueChanged += ModuleInterfaceTagChanged; FastTagListener.AddUdtHandler <ModuleActualValues>(NamingConventions.ModuleInterfaceActualValuesType); FastTagListener.AddTag(tag); }
private void ListenToPlcModuleState(bool enableStateLogging) { var stateTag = new Tag(NamingConventions.CommonInterfaceState, _pathRootController, "INT"); _stateNameTag = new Tag(NamingConventions.CommonInterfaceStateName, _pathRootController, "STRING"); _subStateNameTag = new Tag(NamingConventions.CommonInterfaceSubStateName, _pathRootController, "STRING"); stateTag.ValueChanged += StateTagValueChanged; _stateNameTag.ValueChanged += StateNameTagValueChanged; _subStateNameTag.ValueChanged += SubStateNameTagValueChanged; FastTagListener.AddTag(stateTag); FastTagListener.AddTag(_subStateNameTag); FastTagListener.AddTag(_stateNameTag); _stateNameTag.IsActive = enableStateLogging; }
public void Initialize(CancellationToken token, string name, string adsPath, int adsPort, string rootController, bool enableStateLogging = false) { _adsPath = adsPath; _adsPort = adsPort; _pathRootController = rootController; _enableSubStateLogging = enableStateLogging; Name = name; FastTagListener.Name = name; FastTagListener.AddressAndPath = adsPath + ":" + adsPort; SlowTagListener.Name = name; SlowTagListener.AddressAndPath = adsPath + ":" + adsPort; TagController.StartConnection(adsPath, adsPort); if (!TagController.IsConnected) { throw new Exception("Can't initialize " + name + " because connection to PLC failed! (Address: " + adsPath + ":" + adsPort); } FastTagListener.CommunicationProblemOccured += TagListenerCommunicationProblemOccurred; SlowTagListener.CommunicationProblemOccured += TagListenerCommunicationProblemOccurred; try { _plcSaberLoggerDchRecv = new GenericDataChannelListener <PlcSaberLoggerDataStruct>(FastTagListener, TagController); _plcSaberLoggerDchRecv.SetChannel("_pSaberLogger^.fbDataChannel", _pathRootController, "T_Logger_DCH"); _plcSaberLoggerDchRecv.DataReceived += PlcSaberLoggerDataReceived; _plcSaberLoggerDchRecv.CommunicationProblemOccured += PlcSaberLoggerCommunicationProblemOccured; } catch (Exception e) { _logger.Error("Initialization of Logger Datachannel failed:", e); } InitControllerTags(); ListenToPlcModuleActualValues(); ListenToPlcModuleState(enableStateLogging); Importer.Initialize(SlowTagListener, _adsPath, _adsPort, _pathRootController); _lastKeepAliveToggleTime = DateTime.Now; FastTagListener.RefreshAll(); SlowTagListener.RefreshAll(); }
public void Activate() { SlowTagListener.StartListening(_adsPath, _adsPort); FastTagListener.StartListening(_adsPath, _adsPort); }