From e10ccb7788a93c4ae4d5d4f1ac6d239004d0e65e Mon Sep 17 00:00:00 2001
From: C3204 <zhengyabo@lanpucloud.cn>
Date: 星期五, 16 一月 2026 09:28:46 +0800
Subject: [PATCH] 西门子S7通讯:支持多数据类型、UI布局调整及配置持久化修复        * 多类型支持:完善 SendMessage 和 ReceiveMsg,支持 Bool, Byte, Int, DInt, Real, Double, Word, DWord, String的读写。

---
 LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorForm.Designer.cs |  151 +++++++++++++++++++++++++++++++++----------------
 1 files changed, 101 insertions(+), 50 deletions(-)

diff --git a/LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorForm.Designer.cs b/LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorForm.Designer.cs
index e008eb3..5edd886 100644
--- a/LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorForm.Designer.cs
+++ b/LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorForm.Designer.cs
@@ -44,6 +44,8 @@
             lblType = new Label();
             lblAddress = new Label();
             lblIP = new Label();
+            cmbDataType = new ComboBox();
+            lblDataType = new Label();
             tableLayoutPanel2 = new TableLayoutPanel();
             btnRuleSend = new Button();
             btnSend = new Button();
@@ -63,9 +65,10 @@
             label3.AutoSize = true;
             label3.Dock = DockStyle.Fill;
             label3.ForeColor = Color.CornflowerBlue;
-            label3.Location = new Point(3, 100);
+            label3.Location = new Point(4, 125);
+            label3.Margin = new Padding(4, 0, 4, 0);
             label3.Name = "label3";
-            label3.Size = new Size(655, 20);
+            label3.Size = new Size(819, 25);
             label3.TabIndex = 18;
             label3.Text = "鍙戦�佷俊鎭�";
             label3.TextAlign = ContentAlignment.BottomLeft;
@@ -81,14 +84,15 @@
             tableLayoutPanel1.Controls.Add(label3, 0, 1);
             tableLayoutPanel1.Dock = DockStyle.Fill;
             tableLayoutPanel1.Location = new Point(0, 0);
+            tableLayoutPanel1.Margin = new Padding(4, 4, 4, 4);
             tableLayoutPanel1.Name = "tableLayoutPanel1";
             tableLayoutPanel1.RowCount = 5;
-            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 100F));
-            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
-            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
-            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 40F));
+            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 125F));
+            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 25F));
+            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 38F));
+            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 50F));
             tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
-            tableLayoutPanel1.Size = new Size(661, 322);
+            tableLayoutPanel1.Size = new Size(827, 402);
             tableLayoutPanel1.TabIndex = 26;
             // 
             // grpReceive
@@ -96,9 +100,11 @@
             grpReceive.Controls.Add(txtReceiveMsg);
             grpReceive.Dock = DockStyle.Fill;
             grpReceive.ForeColor = Color.CornflowerBlue;
-            grpReceive.Location = new Point(3, 193);
+            grpReceive.Location = new Point(4, 242);
+            grpReceive.Margin = new Padding(4, 4, 4, 4);
             grpReceive.Name = "grpReceive";
-            grpReceive.Size = new Size(655, 126);
+            grpReceive.Padding = new Padding(4, 4, 4, 4);
+            grpReceive.Size = new Size(819, 156);
             grpReceive.TabIndex = 30;
             grpReceive.TabStop = false;
             grpReceive.Text = "閫氳璁板綍";
@@ -106,20 +112,22 @@
             // txtReceiveMsg
             // 
             txtReceiveMsg.Dock = DockStyle.Fill;
-            txtReceiveMsg.Location = new Point(3, 17);
+            txtReceiveMsg.Location = new Point(4, 21);
+            txtReceiveMsg.Margin = new Padding(4, 4, 4, 4);
             txtReceiveMsg.Multiline = true;
             txtReceiveMsg.Name = "txtReceiveMsg";
             txtReceiveMsg.ReadOnly = true;
             txtReceiveMsg.ScrollBars = ScrollBars.Both;
-            txtReceiveMsg.Size = new Size(649, 106);
+            txtReceiveMsg.Size = new Size(811, 131);
             txtReceiveMsg.TabIndex = 0;
             // 
             // txtSendMsg
             // 
             txtSendMsg.Dock = DockStyle.Fill;
-            txtSendMsg.Location = new Point(3, 123);
+            txtSendMsg.Location = new Point(4, 154);
+            txtSendMsg.Margin = new Padding(4, 4, 4, 4);
             txtSendMsg.Name = "txtSendMsg";
-            txtSendMsg.Size = new Size(655, 21);
+            txtSendMsg.Size = new Size(819, 24);
             txtSendMsg.TabIndex = 29;
             // 
             // grpSetting
@@ -134,21 +142,26 @@
             grpSetting.Controls.Add(lblType);
             grpSetting.Controls.Add(lblAddress);
             grpSetting.Controls.Add(lblIP);
+            grpSetting.Controls.Add(cmbDataType);
+            grpSetting.Controls.Add(lblDataType);
             grpSetting.Dock = DockStyle.Fill;
             grpSetting.ForeColor = Color.CornflowerBlue;
-            grpSetting.Location = new Point(3, 3);
-            grpSetting.MinimumSize = new Size(261, 61);
+            grpSetting.Location = new Point(4, 4);
+            grpSetting.Margin = new Padding(4, 4, 4, 4);
+            grpSetting.MinimumSize = new Size(326, 76);
             grpSetting.Name = "grpSetting";
-            grpSetting.Size = new Size(655, 94);
+            grpSetting.Padding = new Padding(4, 4, 4, 4);
+            grpSetting.Size = new Size(819, 117);
             grpSetting.TabIndex = 28;
             grpSetting.TabStop = false;
             grpSetting.Text = "閫氳閰嶇疆";
             // 
             // txtAddress
             // 
-            txtAddress.Location = new Point(251, 60);
+            txtAddress.Location = new Point(314, 75);
+            txtAddress.Margin = new Padding(4, 4, 4, 4);
             txtAddress.Name = "txtAddress";
-            txtAddress.Size = new Size(100, 21);
+            txtAddress.Size = new Size(124, 24);
             txtAddress.TabIndex = 9;
             txtAddress.TextChanged += txtAddress_TextChanged;
             // 
@@ -156,92 +169,123 @@
             // 
             cmbType.DropDownStyle = ComboBoxStyle.DropDownList;
             cmbType.FormattingEnabled = true;
-            cmbType.Location = new Point(251, 23);
+            cmbType.Location = new Point(314, 29);
+            cmbType.Margin = new Padding(4, 4, 4, 4);
             cmbType.Name = "cmbType";
-            cmbType.Size = new Size(100, 23);
+            cmbType.Size = new Size(124, 26);
             cmbType.TabIndex = 8;
             // 
             // txtIP
             // 
-            txtIP.Location = new Point(79, 22);
+            txtIP.Location = new Point(99, 28);
+            txtIP.Margin = new Padding(4, 4, 4, 4);
             txtIP.Name = "txtIP";
-            txtIP.Size = new Size(100, 21);
+            txtIP.Size = new Size(124, 24);
             txtIP.TabIndex = 7;
             // 
             // txtPort
             // 
-            txtPort.Location = new Point(79, 60);
+            txtPort.Location = new Point(99, 75);
+            txtPort.Margin = new Padding(4, 4, 4, 4);
             txtPort.Name = "txtPort";
-            txtPort.Size = new Size(100, 21);
+            txtPort.Size = new Size(124, 24);
             txtPort.TabIndex = 6;
             // 
             // lblPort
             // 
             lblPort.AutoSize = true;
-            lblPort.Location = new Point(13, 63);
+            lblPort.Location = new Point(16, 79);
+            lblPort.Margin = new Padding(4, 0, 4, 0);
             lblPort.Name = "lblPort";
-            lblPort.Size = new Size(31, 15);
+            lblPort.Size = new Size(38, 18);
             lblPort.TabIndex = 4;
             lblPort.Text = "绔彛";
             // 
             // cmbIP
             // 
             cmbIP.FormattingEnabled = true;
-            cmbIP.Location = new Point(79, 21);
+            cmbIP.Location = new Point(99, 26);
+            cmbIP.Margin = new Padding(4, 4, 4, 4);
             cmbIP.Name = "cmbIP";
-            cmbIP.Size = new Size(100, 23);
+            cmbIP.Size = new Size(124, 26);
             cmbIP.TabIndex = 1;
             // 
             // lblType
             // 
             lblType.AutoSize = true;
-            lblType.Location = new Point(205, 26);
+            lblType.Location = new Point(256, 32);
+            lblType.Margin = new Padding(4, 0, 4, 0);
             lblType.Name = "lblType";
-            lblType.Size = new Size(31, 15);
+            lblType.Size = new Size(38, 18);
             lblType.TabIndex = 0;
             lblType.Text = "鍨嬪彿";
             // 
             // lblAddress
             // 
             lblAddress.AutoSize = true;
-            lblAddress.Location = new Point(205, 63);
+            lblAddress.Location = new Point(256, 79);
+            lblAddress.Margin = new Padding(4, 0, 4, 0);
             lblAddress.Name = "lblAddress";
-            lblAddress.Size = new Size(31, 15);
+            lblAddress.Size = new Size(38, 18);
             lblAddress.TabIndex = 0;
             lblAddress.Text = "鍦板潃";
             // 
             // lblIP
             // 
             lblIP.AutoSize = true;
-            lblIP.Location = new Point(13, 26);
+            lblIP.Location = new Point(16, 32);
+            lblIP.Margin = new Padding(4, 0, 4, 0);
             lblIP.Name = "lblIP";
-            lblIP.Size = new Size(31, 15);
+            lblIP.Size = new Size(38, 18);
             lblIP.TabIndex = 0;
             lblIP.Text = "鍦板潃";
+            // 
+            // cmbDataType
+            // 
+            cmbDataType.DropDownStyle = ComboBoxStyle.DropDownList;
+            cmbDataType.FormattingEnabled = true;
+            cmbDataType.Location = new Point(525, 75);
+            cmbDataType.Margin = new Padding(4, 4, 4, 4);
+            cmbDataType.Name = "cmbDataType";
+            cmbDataType.Size = new Size(124, 26);
+            cmbDataType.TabIndex = 11;
+            cmbDataType.SelectedIndexChanged += cmbDataType_SelectedIndexChanged;
+            // 
+            // lblDataType
+            // 
+            lblDataType.AutoSize = true;
+            lblDataType.Location = new Point(462, 79);
+            lblDataType.Margin = new Padding(4, 0, 4, 0);
+            lblDataType.Name = "lblDataType";
+            lblDataType.Size = new Size(38, 18);
+            lblDataType.TabIndex = 10;
+            lblDataType.Text = "绫诲瀷";
             // 
             // tableLayoutPanel2
             // 
             tableLayoutPanel2.ColumnCount = 3;
-            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 80F));
-            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 80F));
+            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 100F));
+            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 100F));
             tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
             tableLayoutPanel2.Controls.Add(btnRuleSend, 1, 0);
             tableLayoutPanel2.Controls.Add(btnSend, 0, 0);
             tableLayoutPanel2.Dock = DockStyle.Fill;
-            tableLayoutPanel2.Location = new Point(3, 153);
+            tableLayoutPanel2.Location = new Point(4, 192);
+            tableLayoutPanel2.Margin = new Padding(4, 4, 4, 4);
             tableLayoutPanel2.Name = "tableLayoutPanel2";
             tableLayoutPanel2.RowCount = 1;
             tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
-            tableLayoutPanel2.Size = new Size(655, 34);
+            tableLayoutPanel2.Size = new Size(819, 42);
             tableLayoutPanel2.TabIndex = 27;
             // 
             // btnRuleSend
             // 
             btnRuleSend.Dock = DockStyle.Fill;
             btnRuleSend.ForeColor = Color.CornflowerBlue;
-            btnRuleSend.Location = new Point(83, 3);
+            btnRuleSend.Location = new Point(104, 4);
+            btnRuleSend.Margin = new Padding(4, 4, 4, 4);
             btnRuleSend.Name = "btnRuleSend";
-            btnRuleSend.Size = new Size(74, 28);
+            btnRuleSend.Size = new Size(92, 34);
             btnRuleSend.TabIndex = 14;
             btnRuleSend.Text = "鏍¢獙鍙戦��";
             btnRuleSend.UseVisualStyleBackColor = true;
@@ -251,9 +295,10 @@
             // 
             btnSend.Dock = DockStyle.Fill;
             btnSend.ForeColor = Color.CornflowerBlue;
-            btnSend.Location = new Point(3, 3);
+            btnSend.Location = new Point(4, 4);
+            btnSend.Margin = new Padding(4, 4, 4, 4);
             btnSend.Name = "btnSend";
-            btnSend.Size = new Size(74, 28);
+            btnSend.Size = new Size(92, 34);
             btnSend.TabIndex = 12;
             btnSend.Text = "鍙戦��";
             btnSend.UseVisualStyleBackColor = true;
@@ -268,11 +313,12 @@
             themeForm_Communicator.Font = new Font("Microsoft Sans Serif", 9F);
             themeForm_Communicator.Image = (Image)resources.GetObject("themeForm_Communicator.Image");
             themeForm_Communicator.Location = new Point(0, 0);
+            themeForm_Communicator.Margin = new Padding(4, 4, 4, 4);
             themeForm_Communicator.Name = "themeForm_Communicator";
-            themeForm_Communicator.Padding = new Padding(10, 70, 10, 9);
+            themeForm_Communicator.Padding = new Padding(12, 88, 12, 11);
             themeForm_Communicator.RoundCorners = true;
             themeForm_Communicator.Sizable = true;
-            themeForm_Communicator.Size = new Size(681, 401);
+            themeForm_Communicator.Size = new Size(851, 501);
             themeForm_Communicator.SmartBounds = true;
             themeForm_Communicator.StartPosition = FormStartPosition.WindowsDefaultLocation;
             themeForm_Communicator.TabIndex = 27;
@@ -288,7 +334,8 @@
             controlBox1.EnableMaximizeButton = true;
             controlBox1.EnableMinimizeButton = true;
             controlBox1.ForeColor = Color.FromArgb(155, 155, 155);
-            controlBox1.Location = new Point(581, 18);
+            controlBox1.Location = new Point(726, 22);
+            controlBox1.Margin = new Padding(4, 4, 4, 4);
             controlBox1.MaximizeHoverColor = Color.FromArgb(74, 74, 74);
             controlBox1.MinimizeHoverColor = Color.FromArgb(63, 63, 65);
             controlBox1.Name = "controlBox1";
@@ -300,19 +347,21 @@
             // 
             panel_CommunicatorForm.Controls.Add(tableLayoutPanel1);
             panel_CommunicatorForm.Dock = DockStyle.Fill;
-            panel_CommunicatorForm.Location = new Point(10, 70);
+            panel_CommunicatorForm.Location = new Point(12, 88);
+            panel_CommunicatorForm.Margin = new Padding(4, 4, 4, 4);
             panel_CommunicatorForm.Name = "panel_CommunicatorForm";
-            panel_CommunicatorForm.Size = new Size(661, 322);
+            panel_CommunicatorForm.Size = new Size(827, 402);
             panel_CommunicatorForm.TabIndex = 27;
             // 
             // CommunicatorForm
             // 
-            AutoScaleDimensions = new SizeF(96F, 96F);
+            AutoScaleDimensions = new SizeF(120F, 120F);
             AutoScaleMode = AutoScaleMode.Dpi;
-            ClientSize = new Size(681, 401);
+            ClientSize = new Size(851, 501);
             Controls.Add(themeForm_Communicator);
             FormBorderStyle = FormBorderStyle.None;
-            MinimumSize = new Size(261, 61);
+            Margin = new Padding(4, 4, 4, 4);
+            MinimumSize = new Size(326, 76);
             Name = "CommunicatorForm";
             Text = "閫氳璁剧疆";
             TransparencyKey = Color.Fuchsia;
@@ -351,5 +400,7 @@
         private ComboBox cmbType;
         private Label lblAddress;
         private TextBox txtAddress;
+        private Label lblDataType;
+        private ComboBox cmbDataType;
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3