You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
4.4 KiB
C#
134 lines
4.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Xml;
|
|
using System.Text;
|
|
using System.IO;
|
|
using System.Windows.Forms;
|
|
using Mesnac.Equips.BaseInfo;
|
|
|
|
namespace Mesnac.Equips.SetConfig.DataConfig
|
|
{
|
|
public partial class DataFieldForm : Form
|
|
{
|
|
public DataFieldForm(string equipRunName)
|
|
{
|
|
InitializeComponent();
|
|
PlcSchema.Instance.ProjectPath = new FileInfo(Factory.Instance.ConfigFile).Directory.FullName;
|
|
this.textBoxEquip.Text = equipRunName;
|
|
this.comboBox1.Items.Clear();
|
|
this.comboBox1.Items.Add("PmtRecipe");
|
|
this.comboBox1.SelectedIndex = 0;
|
|
}
|
|
|
|
private void button1_Click(object sender, EventArgs e)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(textBoxField.Text))
|
|
{
|
|
MessageBox.Show("请设置字段名!");
|
|
return;
|
|
}
|
|
PlcSchema.Instance.UpdateNodeValueToPlcSchema(textBoxEquip.Text, textBoxField.Text);
|
|
MessageBox.Show("配置成功!");
|
|
this.Close();
|
|
}
|
|
|
|
}
|
|
|
|
public class PlcSchema
|
|
{
|
|
private string _projectPath = String.Empty; //组态工程路径
|
|
private string _PlcSchemaFilePath = "PlcSchema.xml"; //运行结构配置文件路径
|
|
/// <summary>
|
|
/// 组态工程路径
|
|
/// </summary>
|
|
public string ProjectPath
|
|
{
|
|
get { return this._projectPath; }
|
|
set { this._projectPath = value; }
|
|
}
|
|
#region 单例模式
|
|
private static PlcSchema _this;
|
|
public static PlcSchema Instance
|
|
{
|
|
get
|
|
{
|
|
if (null == _this)
|
|
_this = new PlcSchema();
|
|
return _this;
|
|
}
|
|
}
|
|
#endregion
|
|
#region 基本信息
|
|
public string FilePath()
|
|
{
|
|
return Path.Combine(this._projectPath, this._PlcSchemaFilePath);
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region 解析运行环境主配置文件PlcSchema.xml
|
|
/// <summary>
|
|
/// 更新配置节点至文件
|
|
/// </summary>
|
|
/// <param name="equip"></param>
|
|
/// <param name="field"></param>
|
|
/// <param name="PlcSchemaFile"></param>
|
|
public void UpdateNodeValueToPlcSchema(string equip, string field)
|
|
{
|
|
try
|
|
{
|
|
string PlcSchemaFile = FilePath();
|
|
if (File.Exists(PlcSchemaFile))
|
|
{
|
|
XmlDocument doc = new XmlDocument();
|
|
doc.Load(PlcSchemaFile);
|
|
XmlNode nodeRecipe = doc.SelectSingleNode("//configuration//PlcRecipeWrite//PmtRecipe");
|
|
if (nodeRecipe == null)
|
|
{
|
|
return;
|
|
}
|
|
XmlNodeList nodeList = nodeRecipe.SelectNodes(".//add[@equip]");
|
|
bool flag = false;
|
|
foreach (XmlNode node in nodeList)
|
|
{
|
|
if (node.Attributes["equip"].Value == equip)
|
|
{
|
|
node.Attributes["field"].Value = field;
|
|
flag = true;
|
|
break;
|
|
}
|
|
}
|
|
if (!flag)
|
|
{
|
|
XmlElement eAdd = doc.CreateElement("add");
|
|
XmlAttribute eAttKey = doc.CreateAttribute("equip");
|
|
eAttKey.Value = equip;
|
|
XmlAttribute eAttValue = doc.CreateAttribute("field");
|
|
eAttValue.Value = field;
|
|
eAdd.Attributes.Append(eAttKey);
|
|
eAdd.Attributes.Append(eAttValue);
|
|
nodeRecipe.AppendChild(eAdd);
|
|
}
|
|
doc.Save(PlcSchemaFile);
|
|
}
|
|
else
|
|
{
|
|
//配置文件不存在
|
|
ICSharpCode.Core.LoggingService.Error("应用程序配置文件不存在!");
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ICSharpCode.Core.LoggingService.Error(ex.Message);
|
|
throw ex;
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
|
|
}
|