通信组可编辑

This commit is contained in:
Administrator
2026-08-04 20:13:36 +08:00
parent a2ecbc795d
commit 11142481a8
3 changed files with 56 additions and 30 deletions
@@ -107,6 +107,21 @@
} }
} }
private string stationName;
public string StationName
{
get { return stationName; }
set
{
if (stationName == value)
{
return;
}
stationName = value;
}
}
private string _remark; private string _remark;
/// <summary> /// <summary>
/// 备注 /// 备注
+20 -14
View File
@@ -53,10 +53,10 @@
this.panelExt1.Dock = System.Windows.Forms.DockStyle.Fill; this.panelExt1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelExt1.LeftGap = 0; this.panelExt1.LeftGap = 0;
this.panelExt1.Location = new System.Drawing.Point(0, 0); this.panelExt1.Location = new System.Drawing.Point(0, 0);
this.panelExt1.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5); this.panelExt1.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4);
this.panelExt1.Name = "panelExt1"; this.panelExt1.Name = "panelExt1";
this.panelExt1.RightGap = 0; this.panelExt1.RightGap = 0;
//this.panelExt1.Size = new System.Drawing.Size(600, 480); this.panelExt1.Size = new System.Drawing.Size(990, 509);
this.panelExt1.TabIndex = 0; this.panelExt1.TabIndex = 0;
this.panelExt1.TopGap = 0; this.panelExt1.TopGap = 0;
// //
@@ -86,9 +86,11 @@
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.groupTable.DefaultCellStyle = dataGridViewCellStyle2; this.groupTable.DefaultCellStyle = dataGridViewCellStyle2;
this.groupTable.Dock = System.Windows.Forms.DockStyle.Fill;
this.groupTable.EnableHeadersVisualStyles = false; this.groupTable.EnableHeadersVisualStyles = false;
this.groupTable.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(21)))), ((int)(((byte)(77)))), ((int)(((byte)(147))))); this.groupTable.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(21)))), ((int)(((byte)(77)))), ((int)(((byte)(147)))));
this.groupTable.Location = new System.Drawing.Point(19, 55); this.groupTable.Location = new System.Drawing.Point(0, 39);
this.groupTable.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.groupTable.Name = "groupTable"; this.groupTable.Name = "groupTable";
this.groupTable.ReadOnly = true; this.groupTable.ReadOnly = true;
this.groupTable.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; this.groupTable.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
@@ -105,7 +107,7 @@
this.groupTable.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing; this.groupTable.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
this.groupTable.RowTemplate.Height = 40; this.groupTable.RowTemplate.Height = 40;
this.groupTable.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; this.groupTable.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.groupTable.Size = new System.Drawing.Size(800, 580); this.groupTable.Size = new System.Drawing.Size(990, 470);
this.groupTable.TabIndex = 15; this.groupTable.TabIndex = 15;
// //
// topPanel // topPanel
@@ -115,8 +117,9 @@
this.topPanel.Controls.Add(this.lblTitle); this.topPanel.Controls.Add(this.lblTitle);
this.topPanel.Dock = System.Windows.Forms.DockStyle.Top; this.topPanel.Dock = System.Windows.Forms.DockStyle.Top;
this.topPanel.Location = new System.Drawing.Point(0, 0); this.topPanel.Location = new System.Drawing.Point(0, 0);
this.topPanel.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.topPanel.Name = "topPanel"; this.topPanel.Name = "topPanel";
this.topPanel.Size = new System.Drawing.Size(1237, 49); this.topPanel.Size = new System.Drawing.Size(990, 39);
this.topPanel.TabIndex = 0; this.topPanel.TabIndex = 0;
this.topPanel.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Panel_MouseDown); this.topPanel.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Panel_MouseDown);
this.topPanel.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Panel_MouseMove); this.topPanel.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Panel_MouseMove);
@@ -127,9 +130,10 @@
this.BtnAdd.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.BtnAdd.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.BtnAdd.Font = new System.Drawing.Font("微软雅黑", 11.5F); this.BtnAdd.Font = new System.Drawing.Font("微软雅黑", 11.5F);
this.BtnAdd.ForeColor = System.Drawing.Color.White; this.BtnAdd.ForeColor = System.Drawing.Color.White;
this.BtnAdd.Location = new System.Drawing.Point(996, 7); this.BtnAdd.Location = new System.Drawing.Point(797, 6);
this.BtnAdd.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.BtnAdd.Name = "BtnAdd"; this.BtnAdd.Name = "BtnAdd";
this.BtnAdd.Size = new System.Drawing.Size(105, 36); this.BtnAdd.Size = new System.Drawing.Size(84, 29);
this.BtnAdd.TabIndex = 49; this.BtnAdd.TabIndex = 49;
this.BtnAdd.Text = "添加通信组"; this.BtnAdd.Text = "添加通信组";
this.BtnAdd.UseVisualStyleBackColor = false; this.BtnAdd.UseVisualStyleBackColor = false;
@@ -143,9 +147,10 @@
this.btn_Close.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btn_Close.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btn_Close.Font = new System.Drawing.Font("微软雅黑", 15.5F); this.btn_Close.Font = new System.Drawing.Font("微软雅黑", 15.5F);
this.btn_Close.ForeColor = System.Drawing.Color.White; this.btn_Close.ForeColor = System.Drawing.Color.White;
this.btn_Close.Location = new System.Drawing.Point(1189, 7); this.btn_Close.Location = new System.Drawing.Point(951, 6);
this.btn_Close.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.btn_Close.Name = "btn_Close"; this.btn_Close.Name = "btn_Close";
this.btn_Close.Size = new System.Drawing.Size(32, 32); this.btn_Close.Size = new System.Drawing.Size(26, 26);
this.btn_Close.TabIndex = 1; this.btn_Close.TabIndex = 1;
this.btn_Close.Text = "X"; this.btn_Close.Text = "X";
this.btn_Close.UseVisualStyleBackColor = true; this.btn_Close.UseVisualStyleBackColor = true;
@@ -155,23 +160,24 @@
// //
this.lblTitle.AutoSize = true; this.lblTitle.AutoSize = true;
this.lblTitle.ForeColor = System.Drawing.Color.White; this.lblTitle.ForeColor = System.Drawing.Color.White;
this.lblTitle.Location = new System.Drawing.Point(15, 18); this.lblTitle.Location = new System.Drawing.Point(12, 14);
this.lblTitle.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblTitle.Name = "lblTitle"; this.lblTitle.Name = "lblTitle";
this.lblTitle.Size = new System.Drawing.Size(112, 27); this.lblTitle.Size = new System.Drawing.Size(90, 21);
this.lblTitle.TabIndex = 0; this.lblTitle.TabIndex = 0;
this.lblTitle.Text = "通信组配置"; this.lblTitle.Text = "通信组配置";
// //
// CommunicationEditForm // CommunicationEditForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(120F, 120F); this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(14)))), ((int)(((byte)(23)))), ((int)(((byte)(38))))); this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(14)))), ((int)(((byte)(23)))), ((int)(((byte)(38)))));
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.ClientSize = new System.Drawing.Size(1237, 636); this.ClientSize = new System.Drawing.Size(990, 509);
this.Controls.Add(this.panelExt1); this.Controls.Add(this.panelExt1);
this.Font = new System.Drawing.Font("微软雅黑", 12F); this.Font = new System.Drawing.Font("微软雅黑", 12F);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5); this.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4);
this.Name = "CommunicationEditForm"; this.Name = "CommunicationEditForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "FrmGroupConfig"; this.Text = "FrmGroupConfig";
+21 -16
View File
@@ -56,6 +56,7 @@ namespace LargeSquareOne
ReadOnly = true, ReadOnly = true,
DataPropertyName = "PlcNum", DataPropertyName = "PlcNum",
DefaultCellStyle = new DataGridViewCellStyle(){Alignment=DataGridViewContentAlignment.MiddleCenter}, DefaultCellStyle = new DataGridViewCellStyle(){Alignment=DataGridViewContentAlignment.MiddleCenter},
Frozen = true
}, },
new DataGridViewTextBoxColumn new DataGridViewTextBoxColumn
{ {
@@ -64,6 +65,7 @@ namespace LargeSquareOne
Width = 120, Width = 120,
DataPropertyName = "GroupName", DataPropertyName = "GroupName",
DefaultCellStyle = new DataGridViewCellStyle(){Alignment=DataGridViewContentAlignment.MiddleCenter}, DefaultCellStyle = new DataGridViewCellStyle(){Alignment=DataGridViewContentAlignment.MiddleCenter},
Frozen = true
}, },
new DataGridViewTextBoxColumn new DataGridViewTextBoxColumn
{ {
@@ -72,6 +74,7 @@ namespace LargeSquareOne
Width = 150, Width = 150,
DataPropertyName = "Start", DataPropertyName = "Start",
DefaultCellStyle = new DataGridViewCellStyle(){Alignment=DataGridViewContentAlignment.MiddleCenter}, DefaultCellStyle = new DataGridViewCellStyle(){Alignment=DataGridViewContentAlignment.MiddleCenter},
Frozen = true
}, },
new DataGridViewTextBoxColumn new DataGridViewTextBoxColumn
{ {
@@ -435,12 +438,13 @@ namespace LargeSquareOne
).ToList(); ).ToList();
// 允许同一个PLC内有多个相同的组名 by clm 20260804
// 3. 只在同一个PLC内检查地址是否冲突 // 3. 只在同一个PLC内检查地址是否冲突
if (groupsInSamePLC.Any(g => g.GroupName.Equals(config.GroupName, StringComparison.OrdinalIgnoreCase))) //if (groupsInSamePLC.Any(g => g.GroupName.Equals(config.GroupName, StringComparison.OrdinalIgnoreCase)))
{ //{
ShowError($"在PLC {config.PlcNum} 中,组名 {config.GroupName} 已被使用"); // ShowError($"在PLC {config.PlcNum} 中,组名 {config.GroupName} 已被使用");
return false; // return false;
} //}
//Console.WriteLine("\n筛选后的配置:"); //Console.WriteLine("\n筛选后的配置:");
//foreach (var g in groupsInSamePLC) //foreach (var g in groupsInSamePLC)
//{ //{
@@ -464,18 +468,19 @@ namespace LargeSquareOne
return false; return false;
} }
// 取消该检查 by clm 20260804
// 检查地址范围冲突 // 检查地址范围冲突
foreach (var other in groupsInSamePLC) //foreach (var other in groupsInSamePLC)
{ //{
int otherStart = int.Parse(other.Start.Substring(1)); // int otherStart = int.Parse(other.Start.Substring(1));
int otherEnd = otherStart + other.Length - 1; // int otherEnd = otherStart + other.Length - 1;
if (!(endAddress < otherStart || startAddress > otherEnd)) // if (!(endAddress < otherStart || startAddress > otherEnd))
{ // {
ShowError($"地址范围与组 \"{other.GroupName}\" 冲突"); // ShowError($"地址范围与组 \"{other.GroupName}\" 冲突");
return false; // return false;
} // }
} //}
return true; return true;
} }
@@ -505,7 +510,7 @@ namespace LargeSquareOne
} }
// 检查地址范围(根据实际需求调整范围) // 检查地址范围(根据实际需求调整范围)
if (addressNum < 0 || addressNum > 9999) if (addressNum < 0 || addressNum > 30000)
{ {
return false; return false;
} }