/// <summary> /// Writes default settings to the stated K5dbxs.ini file which are required to set up the communication between /// zenon Logic and zenon. /// </summary> /// <param name="iniFileToConfigure"></param> /// <param name="zenonProjectGuid"></param> /// <param name="mainPortNumber"></param> /// <param name="driverId"></param> private void WriteDefaultSettingsToK5DbxsIniFile( K5DbxsIniFile iniFileToConfigure, string zenonProjectGuid, string mainPortNumber, string driverId) { // + 7800 because the default zenon logic primary port value is 1200 // the default bindport value is 9000, the values typically get increased by 1 for each project int newCalculatedBindPort = int.Parse(mainPortNumber) + 7800; iniFileToConfigure.WriteValueToFile(CmdSection, "HOST", "localhost"); iniFileToConfigure.WriteValueToFile(CmdSection, MainPortPropertyKey, $"{mainPortNumber}"); iniFileToConfigure.WriteValueToFile(CmdSection, "BINDPORT", $"{newCalculatedBindPort}"); iniFileToConfigure.WriteValueToFile(CmdSection, "START", "1"); iniFileToConfigure.WriteValueToFile(CmdSection, "STEP", "0"); iniFileToConfigure.WriteValueToFile(CmdSection, "PRIO", "0"); iniFileToConfigure.WriteValueToFile(CmdSection, "REDUNDANCY", "0"); iniFileToConfigure.WriteValueToFile(CmdSection, "VMWDGTO", "30"); iniFileToConfigure.WriteValueToFile(CmdSection, "VMFKTTO", "<No function linked>"); iniFileToConfigure.WriteValueToFile(CmdSection, "RETAINBYNAME", "1"); iniFileToConfigure.WriteValueToFile(SettingsSection, SetOnlineKey, string.Format(SetOnlineValueFormat, mainPortNumber)); iniFileToConfigure.WriteValueToFile(SettingsSection, "DRVONLINE", "K5NET5.DLL"); iniFileToConfigure.WriteValueToFile("XS", "Active", "1"); iniFileToConfigure.WriteValueToFile("XS", "Project", $"PROJECT={zenonProjectGuid};HOST=localhost;"); iniFileToConfigure.WriteValueToFile("XS", "StartTyp", "0"); iniFileToConfigure.WriteValueToFile("XS", "StartArea", "0"); iniFileToConfigure.WriteValueToFile("XS", "DriverID", $"{driverId}"); iniFileToConfigure.WriteValueToFile("XS", "UsePrefix", "1"); iniFileToConfigure.WriteValueToFile("XS", "UseUDFBPrefix", "1"); iniFileToConfigure.WriteValueToFile("XS", "EquipmentModelCount", "0"); }
/// <summary> /// Factory method to create a K5dbxs.ini file with default settings and the settings specified as parameters. /// Note that an empty file has to exists. /// </summary> /// <param name="zenonProjectGuid">Project GUID of a zenon project.</param> /// <param name="k5DbxsFilePath">K5dbxs.ini file which should be configured.</param> /// <param name="mainPortNumber">Free main port number which should be used by the zenon Logic project for the /// communication with zenon.</param> /// <param name="driverId">ID of the driver which should be used by the zenon Logic project for the /// communication with zenon.</param> /// <returns></returns> public static K5DbxsIniFile CreateK5DbxsIniFile( string zenonProjectGuid, string k5DbxsFilePath, string mainPortNumber, string driverId) { File.Create(k5DbxsFilePath).Close(); if (uint.TryParse(mainPortNumber, out uint mainPort)) { K5DbxsIniFile iniFile = new K5DbxsIniFile(k5DbxsFilePath, mainPort); iniFile.WriteDefaultSettingsToK5DbxsIniFile(iniFile, zenonProjectGuid, mainPortNumber, driverId); return(iniFile); } throw new Exception("No valid Port was given to the 'K5DBXS.INI'!"); }