/// <summary> /// Mit dieser Methode wird die Konfiguration wieder aus dem Dictionary exportiert /// </summary> /// <returns>XmlUarcConfig</returns> public async Task <XmlUarcConfig> ExportXmlConfigAsync() { // XmlUarcConfig Objekt wird erzeugt. XmlUarcConfig opcXmlConfig = new XmlUarcConfig(); // XmlUarcConfig Objekt wird mit den Daten aus dem Dicitionary befüllt. foreach (UarcOpcUaClient client in m_OpcUaVerbindungen.Values) { // Das Server Abbild wird erstellt. XmlOpcUaServer xmlOpcUaServer = new XmlOpcUaServer { XmlUser = client.Username, XmlPassword = client.Password, XmlServerlabel = client.ServerLabel, XmlOpcUrl = client.EndpointUrl }; // Alle Subscriptions werden aus der Session gelesen und im Client Obj gesichert. await client.SaveAllSubscriptionsAsync(); // Für alle Subscription wird ein Abbild erstellt. foreach (Subscription sub in client.Subscriptions) { XmlOpcUaSubscription xmlOpcUaSubscription = new XmlOpcUaSubscription { XmlPublishingInterval = Convert.ToString(sub.PublishingInterval) }; foreach (MonitoredItem item in sub.MonitoredItems) { XmlOpcUaVariable xmlOpcUaVariable = new XmlOpcUaVariable { XmlVarLabel = item.DisplayName, XmlNodeId = Convert.ToString(item.ResolvedNodeId), XmlSamplingInterval = Convert.ToString(item.SamplingInterval) }; xmlOpcUaSubscription.XmlOpcUaVariablen.Add(xmlOpcUaVariable); } xmlOpcUaServer.XmlOpcUaSubscriptions.Add(xmlOpcUaSubscription); } // Alle gesicherten Subscriptions werden entfernt. client.Subscriptions.ToList().Clear(); // Jede Client Konfiguration wird dem KonfigurationsObjekt hinzugefügt opcXmlConfig.XmlOpcUaServers.Add(xmlOpcUaServer); } XmlSql SqlConfig = new XmlSql { XmlSqlConnectionString = m_SqlConnectionString, }; // Der Connectionstring wird ermittelt. opcXmlConfig.XmlSQLConfig = SqlConfig; // Das XmlUarcConfig Objekt wird überprüft. OpcUaXmlConfigChecker.FormatAndValidate(opcXmlConfig); // XmlUarcConfig Objekt wird zurückgegeben. return(opcXmlConfig); }
// Erzeugen der Xml Beispiel Konfiguration. public XmlUarcConfig OpcUaXmlExampleFileCreate() { XmlUarcConfig config = new XmlUarcConfig(); XmlOpcUaServer StandardOpcUaServer = new XmlOpcUaServer { XmlUser = "******", XmlPassword = "******", XmlServerlabel = "OPC UA Server - OPC Foundation", XmlOpcUrl = "opc.tcp://*****:*****@"Server=localhost\SQLEXPRESS;Database=OpcUaDataDb;Trusted_Connection=True;", }; XmlOpcUaSubscription StandardSubscription = new XmlOpcUaSubscription { XmlPublishingInterval = "1", }; XmlOpcUaSubscription BeispielSubscription = new XmlOpcUaSubscription { XmlPublishingInterval = "10", }; StandardSubscription.XmlOpcUaVariablen.Add(StandardOpcUaVar); BeispielSubscription.XmlOpcUaVariablen.Add(S7OpcUaVar); StandardOpcUaServer.XmlOpcUaSubscriptions.Add(StandardSubscription); S7OpcUaServer.XmlOpcUaSubscriptions.Add(BeispielSubscription); config.XmlOpcUaServers.Add(StandardOpcUaServer); config.XmlOpcUaServers.Add(S7OpcUaServer); config.XmlSQLConfig = SqlConfig; return(config); }