diff --git a/SiemensS7/Siemens-S7-Test/Siemens-S7-Test.csproj b/SiemensS7/Siemens-S7-Test/Siemens-S7-Test.csproj
index c39a92c..a827a29 100644
--- a/SiemensS7/Siemens-S7-Test/Siemens-S7-Test.csproj
+++ b/SiemensS7/Siemens-S7-Test/Siemens-S7-Test.csproj
@@ -70,6 +70,7 @@
+
TestMainForm.cs
diff --git a/SiemensS7/Siemens-S7-Test/TestMainForm.Designer.cs b/SiemensS7/Siemens-S7-Test/TestMainForm.Designer.cs
index 0f5ebf0..b90039f 100644
--- a/SiemensS7/Siemens-S7-Test/TestMainForm.Designer.cs
+++ b/SiemensS7/Siemens-S7-Test/TestMainForm.Designer.cs
@@ -37,16 +37,13 @@
this.label3 = new System.Windows.Forms.Label();
this.txtMemSize = new System.Windows.Forms.TextBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.btnReadStruct = new System.Windows.Forms.Button();
this.btnReadString = new System.Windows.Forms.Button();
this.btnReadDWord = new System.Windows.Forms.Button();
this.btnReadWord = new System.Windows.Forms.Button();
this.btnReadReal = new System.Windows.Forms.Button();
this.btnReadByte = new System.Windows.Forms.Button();
- this.textBox1 = new System.Windows.Forms.TextBox();
- this.groupBox2 = new System.Windows.Forms.GroupBox();
- this.txtOut = new System.Windows.Forms.TextBox();
this.groupBox3 = new System.Windows.Forms.GroupBox();
- this.textBox2 = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label();
this.txtSlot = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
@@ -70,12 +67,39 @@
this.label10 = new System.Windows.Forms.Label();
this.txtWriteAddr1 = new System.Windows.Forms.TextBox();
this.label7 = new System.Windows.Forms.Label();
- this.btnReadStruct = new System.Windows.Forms.Button();
+ this.txtOut = new System.Windows.Forms.TextBox();
+ this.groupBox2 = new System.Windows.Forms.GroupBox();
+ this.tabCtrl = new System.Windows.Forms.TabControl();
+ this.tabReadTest = new System.Windows.Forms.TabPage();
+ this.tabParam = new System.Windows.Forms.TabPage();
+ this.tabWriteTest = new System.Windows.Forms.TabPage();
+ this.splitContainer1 = new System.Windows.Forms.SplitContainer();
+ this.label11 = new System.Windows.Forms.Label();
+ this.txtNumRep = new System.Windows.Forms.TextBox();
+ this.label13 = new System.Windows.Forms.Label();
+ this.label12 = new System.Windows.Forms.Label();
+ this.label14 = new System.Windows.Forms.Label();
+ this.label15 = new System.Windows.Forms.Label();
+ this.label16 = new System.Windows.Forms.Label();
+ this.lblTimeAvg = new System.Windows.Forms.Label();
+ this.lblTimeMax = new System.Windows.Forms.Label();
+ this.lblTimeMin = new System.Windows.Forms.Label();
+ this.lblTotSize = new System.Windows.Forms.Label();
+ this.lblThroughtput = new System.Windows.Forms.Label();
+ this.label18 = new System.Windows.Forms.Label();
this.groupBox1.SuspendLayout();
- this.groupBox2.SuspendLayout();
this.groupBox3.SuspendLayout();
this.statusStrip1.SuspendLayout();
this.groupBox4.SuspendLayout();
+ this.groupBox2.SuspendLayout();
+ this.tabCtrl.SuspendLayout();
+ this.tabReadTest.SuspendLayout();
+ this.tabParam.SuspendLayout();
+ this.tabWriteTest.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
+ this.splitContainer1.Panel1.SuspendLayout();
+ this.splitContainer1.Panel2.SuspendLayout();
+ this.splitContainer1.SuspendLayout();
this.SuspendLayout();
//
// txtIP
@@ -134,161 +158,129 @@
//
// txtMemArea
//
- this.txtMemArea.Location = new System.Drawing.Point(156, 20);
+ this.txtMemArea.Location = new System.Drawing.Point(148, 20);
this.txtMemArea.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.txtMemArea.Name = "txtMemArea";
- this.txtMemArea.Size = new System.Drawing.Size(117, 22);
+ this.txtMemArea.Size = new System.Drawing.Size(101, 22);
this.txtMemArea.TabIndex = 4;
- this.txtMemArea.Text = "DB600.DBB0";
+ this.txtMemArea.Text = "DB600.DBB20";
this.txtMemArea.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
this.txtMemArea.TextChanged += new System.EventHandler(this.txtMemArea_TextChanged);
//
// label3
//
this.label3.AutoSize = true;
- this.label3.Location = new System.Drawing.Point(9, 80);
+ this.label3.Location = new System.Drawing.Point(9, 52);
this.label3.Name = "label3";
- this.label3.Size = new System.Drawing.Size(113, 17);
+ this.label3.Size = new System.Drawing.Size(123, 17);
this.label3.TabIndex = 7;
- this.label3.Text = "MEM SIZE BYTE";
+ this.label3.Text = "MEM SIZE (BYTE)";
//
// txtMemSize
//
- this.txtMemSize.Location = new System.Drawing.Point(156, 78);
+ this.txtMemSize.Location = new System.Drawing.Point(148, 50);
this.txtMemSize.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.txtMemSize.Name = "txtMemSize";
- this.txtMemSize.Size = new System.Drawing.Size(39, 22);
+ this.txtMemSize.Size = new System.Drawing.Size(101, 22);
this.txtMemSize.TabIndex = 6;
- this.txtMemSize.Text = "2";
+ this.txtMemSize.Text = "200";
this.txtMemSize.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
this.txtMemSize.TextChanged += new System.EventHandler(this.txtMemSize_TextChanged);
//
// groupBox1
//
- this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.groupBox1.Controls.Add(this.txtNumRep);
+ this.groupBox1.Controls.Add(this.label13);
this.groupBox1.Controls.Add(this.btnReadStruct);
this.groupBox1.Controls.Add(this.btnReadString);
this.groupBox1.Controls.Add(this.btnReadDWord);
this.groupBox1.Controls.Add(this.btnReadWord);
this.groupBox1.Controls.Add(this.btnReadReal);
this.groupBox1.Controls.Add(this.btnReadByte);
- this.groupBox1.Controls.Add(this.textBox1);
this.groupBox1.Controls.Add(this.txtMemArea);
this.groupBox1.Controls.Add(this.txtMemSize);
this.groupBox1.Controls.Add(this.label3);
this.groupBox1.Controls.Add(this.label2);
- this.groupBox1.Location = new System.Drawing.Point(468, 12);
+ this.groupBox1.Location = new System.Drawing.Point(6, 5);
this.groupBox1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
- this.groupBox1.Size = new System.Drawing.Size(387, 105);
+ this.groupBox1.Size = new System.Drawing.Size(521, 105);
this.groupBox1.TabIndex = 8;
this.groupBox1.TabStop = false;
- this.groupBox1.Text = "Memoria: READ param";
+ this.groupBox1.Text = "Memoria: READ testing";
+ //
+ // btnReadStruct
+ //
+ this.btnReadStruct.Location = new System.Drawing.Point(405, 75);
+ this.btnReadStruct.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.btnReadStruct.Name = "btnReadStruct";
+ this.btnReadStruct.Size = new System.Drawing.Size(110, 25);
+ this.btnReadStruct.TabIndex = 12;
+ this.btnReadStruct.Text = "Read Struc";
+ this.btnReadStruct.TextImageRelation = System.Windows.Forms.TextImageRelation.TextAboveImage;
+ this.btnReadStruct.UseVisualStyleBackColor = true;
+ this.btnReadStruct.Click += new System.EventHandler(this.btnReadStruct_Click);
//
// btnReadString
//
- this.btnReadString.Location = new System.Drawing.Point(201, 75);
+ this.btnReadString.Location = new System.Drawing.Point(405, 49);
this.btnReadString.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnReadString.Name = "btnReadString";
- this.btnReadString.Size = new System.Drawing.Size(101, 25);
+ this.btnReadString.Size = new System.Drawing.Size(110, 25);
this.btnReadString.TabIndex = 11;
- this.btnReadString.Text = "R String";
+ this.btnReadString.Text = "Read String";
this.btnReadString.UseVisualStyleBackColor = true;
this.btnReadString.Click += new System.EventHandler(this.btnReadString_Click);
//
// btnReadDWord
//
- this.btnReadDWord.Location = new System.Drawing.Point(308, 47);
+ this.btnReadDWord.Location = new System.Drawing.Point(289, 75);
this.btnReadDWord.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnReadDWord.Name = "btnReadDWord";
- this.btnReadDWord.Size = new System.Drawing.Size(72, 25);
+ this.btnReadDWord.Size = new System.Drawing.Size(110, 25);
this.btnReadDWord.TabIndex = 10;
- this.btnReadDWord.Text = "R DW";
+ this.btnReadDWord.Text = "Read DWord";
this.btnReadDWord.TextImageRelation = System.Windows.Forms.TextImageRelation.TextAboveImage;
this.btnReadDWord.UseVisualStyleBackColor = true;
this.btnReadDWord.Click += new System.EventHandler(this.btnReadDWord_Click);
//
// btnReadWord
//
- this.btnReadWord.Location = new System.Drawing.Point(308, 18);
+ this.btnReadWord.Location = new System.Drawing.Point(289, 48);
this.btnReadWord.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnReadWord.Name = "btnReadWord";
- this.btnReadWord.Size = new System.Drawing.Size(72, 25);
+ this.btnReadWord.Size = new System.Drawing.Size(110, 25);
this.btnReadWord.TabIndex = 10;
- this.btnReadWord.Text = "R W";
+ this.btnReadWord.Text = "Read Word";
this.btnReadWord.UseVisualStyleBackColor = true;
this.btnReadWord.Click += new System.EventHandler(this.btnReadWord_Click);
//
// btnReadReal
//
- this.btnReadReal.Location = new System.Drawing.Point(235, 48);
+ this.btnReadReal.Location = new System.Drawing.Point(405, 19);
this.btnReadReal.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnReadReal.Name = "btnReadReal";
- this.btnReadReal.Size = new System.Drawing.Size(67, 25);
+ this.btnReadReal.Size = new System.Drawing.Size(110, 25);
this.btnReadReal.TabIndex = 9;
- this.btnReadReal.Text = "R REAL";
+ this.btnReadReal.Text = "Read Real";
this.btnReadReal.UseVisualStyleBackColor = true;
this.btnReadReal.Click += new System.EventHandler(this.btnReadReal_Click);
//
// btnReadByte
//
- this.btnReadByte.Location = new System.Drawing.Point(156, 47);
+ this.btnReadByte.Location = new System.Drawing.Point(289, 19);
this.btnReadByte.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnReadByte.Name = "btnReadByte";
- this.btnReadByte.Size = new System.Drawing.Size(73, 25);
+ this.btnReadByte.Size = new System.Drawing.Size(110, 25);
this.btnReadByte.TabIndex = 9;
- this.btnReadByte.Text = "R Byte";
+ this.btnReadByte.Text = "Read Byte";
this.btnReadByte.UseVisualStyleBackColor = true;
this.btnReadByte.Click += new System.EventHandler(this.btnReadByte_Click);
//
- // textBox1
- //
- this.textBox1.BackColor = System.Drawing.SystemColors.Menu;
- this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.textBox1.Location = new System.Drawing.Point(12, 44);
- this.textBox1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
- this.textBox1.Multiline = true;
- this.textBox1.Name = "textBox1";
- this.textBox1.Size = new System.Drawing.Size(127, 33);
- this.textBox1.TabIndex = 8;
- this.textBox1.Text = "Indicare tipo memoria e size del tipo";
- //
- // groupBox2
- //
- this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.groupBox2.AutoSize = true;
- this.groupBox2.Controls.Add(this.txtOut);
- this.groupBox2.Location = new System.Drawing.Point(12, 190);
- this.groupBox2.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
- this.groupBox2.Name = "groupBox2";
- this.groupBox2.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
- this.groupBox2.Size = new System.Drawing.Size(843, 402);
- this.groupBox2.TabIndex = 9;
- this.groupBox2.TabStop = false;
- this.groupBox2.Text = "Risultati";
- //
- // txtOut
- //
- this.txtOut.BackColor = System.Drawing.SystemColors.Desktop;
- this.txtOut.Dock = System.Windows.Forms.DockStyle.Fill;
- this.txtOut.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.txtOut.ForeColor = System.Drawing.Color.Yellow;
- this.txtOut.Location = new System.Drawing.Point(3, 17);
- this.txtOut.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
- this.txtOut.Multiline = true;
- this.txtOut.Name = "txtOut";
- this.txtOut.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
- this.txtOut.Size = new System.Drawing.Size(837, 383);
- this.txtOut.TabIndex = 0;
- this.txtOut.Text = "...";
- //
// groupBox3
//
- this.groupBox3.Controls.Add(this.textBox2);
+ this.groupBox3.Controls.Add(this.label11);
this.groupBox3.Controls.Add(this.label6);
this.groupBox3.Controls.Add(this.txtSlot);
this.groupBox3.Controls.Add(this.label5);
@@ -298,28 +290,15 @@
this.groupBox3.Controls.Add(this.txtIP);
this.groupBox3.Controls.Add(this.lblIP);
this.groupBox3.Controls.Add(this.label1);
- this.groupBox3.Location = new System.Drawing.Point(12, 12);
+ this.groupBox3.Location = new System.Drawing.Point(6, 5);
this.groupBox3.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
- this.groupBox3.Size = new System.Drawing.Size(448, 105);
+ this.groupBox3.Size = new System.Drawing.Size(479, 105);
this.groupBox3.TabIndex = 10;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "Parametri PLC";
//
- // textBox2
- //
- this.textBox2.BackColor = System.Drawing.SystemColors.Menu;
- this.textBox2.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.textBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.textBox2.Location = new System.Drawing.Point(301, 38);
- this.textBox2.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
- this.textBox2.Multiline = true;
- this.textBox2.Name = "textBox2";
- this.textBox2.Size = new System.Drawing.Size(140, 48);
- this.textBox2.TabIndex = 7;
- this.textBox2.Text = "S7-1200/S7-1500: 0/1\r\nS7-300/S7-400: 0/2\r\nSlot > 0 se eth ext";
- //
// label6
//
this.label6.AutoSize = true;
@@ -375,10 +354,10 @@
this.toolStripStatusLabel1,
this.toolStripProgressBar1,
this.tslRTime});
- this.statusStrip1.Location = new System.Drawing.Point(0, 596);
+ this.statusStrip1.Location = new System.Drawing.Point(0, 583);
this.statusStrip1.Name = "statusStrip1";
this.statusStrip1.Padding = new System.Windows.Forms.Padding(1, 0, 13, 0);
- this.statusStrip1.Size = new System.Drawing.Size(869, 28);
+ this.statusStrip1.Size = new System.Drawing.Size(906, 28);
this.statusStrip1.TabIndex = 11;
this.statusStrip1.Text = "statusStrip1";
//
@@ -421,11 +400,11 @@
this.groupBox4.Controls.Add(this.label10);
this.groupBox4.Controls.Add(this.txtWriteAddr1);
this.groupBox4.Controls.Add(this.label7);
- this.groupBox4.Location = new System.Drawing.Point(12, 117);
+ this.groupBox4.Location = new System.Drawing.Point(7, 7);
this.groupBox4.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
- this.groupBox4.Size = new System.Drawing.Size(843, 71);
+ this.groupBox4.Size = new System.Drawing.Size(1809, 71);
this.groupBox4.TabIndex = 12;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "Memoria: WRITE param";
@@ -550,41 +529,265 @@
this.label7.TabIndex = 7;
this.label7.Text = "ADDR 1";
//
- // btnReadStruct
+ // txtOut
//
- this.btnReadStruct.Location = new System.Drawing.Point(308, 75);
- this.btnReadStruct.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
- this.btnReadStruct.Name = "btnReadStruct";
- this.btnReadStruct.Size = new System.Drawing.Size(72, 25);
- this.btnReadStruct.TabIndex = 12;
- this.btnReadStruct.Text = "R Struc";
- this.btnReadStruct.TextImageRelation = System.Windows.Forms.TextImageRelation.TextAboveImage;
- this.btnReadStruct.UseVisualStyleBackColor = true;
- this.btnReadStruct.Click += new System.EventHandler(this.btnReadStruct_Click);
+ this.txtOut.BackColor = System.Drawing.SystemColors.Desktop;
+ this.txtOut.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.txtOut.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.txtOut.ForeColor = System.Drawing.Color.Yellow;
+ this.txtOut.Location = new System.Drawing.Point(4, 21);
+ this.txtOut.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.txtOut.Multiline = true;
+ this.txtOut.Name = "txtOut";
+ this.txtOut.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
+ this.txtOut.Size = new System.Drawing.Size(569, 388);
+ this.txtOut.TabIndex = 0;
+ this.txtOut.Text = "...";
+ //
+ // groupBox2
+ //
+ this.groupBox2.AutoSize = true;
+ this.groupBox2.Controls.Add(this.txtOut);
+ this.groupBox2.Location = new System.Drawing.Point(3, 11);
+ this.groupBox2.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.groupBox2.Name = "groupBox2";
+ this.groupBox2.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.groupBox2.Size = new System.Drawing.Size(579, 428);
+ this.groupBox2.TabIndex = 9;
+ this.groupBox2.TabStop = false;
+ this.groupBox2.Text = "Risultati";
+ //
+ // tabCtrl
+ //
+ this.tabCtrl.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.tabCtrl.Controls.Add(this.tabReadTest);
+ this.tabCtrl.Controls.Add(this.tabWriteTest);
+ this.tabCtrl.Controls.Add(this.tabParam);
+ this.tabCtrl.Location = new System.Drawing.Point(15, 9);
+ this.tabCtrl.Name = "tabCtrl";
+ this.tabCtrl.SelectedIndex = 0;
+ this.tabCtrl.Size = new System.Drawing.Size(879, 143);
+ this.tabCtrl.TabIndex = 13;
+ //
+ // tabReadTest
+ //
+ this.tabReadTest.Controls.Add(this.groupBox1);
+ this.tabReadTest.Location = new System.Drawing.Point(4, 25);
+ this.tabReadTest.Name = "tabReadTest";
+ this.tabReadTest.Padding = new System.Windows.Forms.Padding(3);
+ this.tabReadTest.Size = new System.Drawing.Size(871, 114);
+ this.tabReadTest.TabIndex = 0;
+ this.tabReadTest.Text = "Read Test";
+ this.tabReadTest.UseVisualStyleBackColor = true;
+ //
+ // tabParam
+ //
+ this.tabParam.Controls.Add(this.groupBox3);
+ this.tabParam.Location = new System.Drawing.Point(4, 25);
+ this.tabParam.Name = "tabParam";
+ this.tabParam.Padding = new System.Windows.Forms.Padding(3);
+ this.tabParam.Size = new System.Drawing.Size(878, 118);
+ this.tabParam.TabIndex = 1;
+ this.tabParam.Text = "Parametri";
+ this.tabParam.UseVisualStyleBackColor = true;
+ //
+ // tabWriteTest
+ //
+ this.tabWriteTest.Controls.Add(this.groupBox4);
+ this.tabWriteTest.Location = new System.Drawing.Point(4, 25);
+ this.tabWriteTest.Name = "tabWriteTest";
+ this.tabWriteTest.Size = new System.Drawing.Size(878, 118);
+ this.tabWriteTest.TabIndex = 2;
+ this.tabWriteTest.Text = "Write Test";
+ this.tabWriteTest.UseVisualStyleBackColor = true;
+ //
+ // splitContainer1
+ //
+ this.splitContainer1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.splitContainer1.Location = new System.Drawing.Point(15, 158);
+ this.splitContainer1.Name = "splitContainer1";
+ //
+ // splitContainer1.Panel1
+ //
+ this.splitContainer1.Panel1.Controls.Add(this.lblThroughtput);
+ this.splitContainer1.Panel1.Controls.Add(this.label18);
+ this.splitContainer1.Panel1.Controls.Add(this.lblTotSize);
+ this.splitContainer1.Panel1.Controls.Add(this.lblTimeMin);
+ this.splitContainer1.Panel1.Controls.Add(this.lblTimeMax);
+ this.splitContainer1.Panel1.Controls.Add(this.lblTimeAvg);
+ this.splitContainer1.Panel1.Controls.Add(this.label16);
+ this.splitContainer1.Panel1.Controls.Add(this.label15);
+ this.splitContainer1.Panel1.Controls.Add(this.label14);
+ this.splitContainer1.Panel1.Controls.Add(this.label12);
+ //
+ // splitContainer1.Panel2
+ //
+ this.splitContainer1.Panel2.Controls.Add(this.groupBox2);
+ this.splitContainer1.Size = new System.Drawing.Size(875, 422);
+ this.splitContainer1.SplitterDistance = 291;
+ this.splitContainer1.TabIndex = 15;
+ //
+ // label11
+ //
+ this.label11.AutoSize = true;
+ this.label11.Location = new System.Drawing.Point(301, 39);
+ this.label11.Name = "label11";
+ this.label11.Size = new System.Drawing.Size(148, 51);
+ this.label11.TabIndex = 7;
+ this.label11.Text = "S7-1200/S7-1500: 0/1\r\nS7-300/S7-400: 0/2\r\nSlot > 0 se eth ext";
+ //
+ // txtNumRep
+ //
+ this.txtNumRep.Location = new System.Drawing.Point(148, 76);
+ this.txtNumRep.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+ this.txtNumRep.Name = "txtNumRep";
+ this.txtNumRep.Size = new System.Drawing.Size(101, 22);
+ this.txtNumRep.TabIndex = 14;
+ this.txtNumRep.Text = "1";
+ this.txtNumRep.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
+ //
+ // label13
+ //
+ this.label13.AutoSize = true;
+ this.label13.Location = new System.Drawing.Point(9, 79);
+ this.label13.Name = "label13";
+ this.label13.Size = new System.Drawing.Size(90, 21);
+ this.label13.TabIndex = 15;
+ this.label13.Text = "# samples";
+ //
+ // label12
+ //
+ this.label12.AutoSize = true;
+ this.label12.Location = new System.Drawing.Point(19, 20);
+ this.label12.Name = "label12";
+ this.label12.Size = new System.Drawing.Size(58, 17);
+ this.label12.TabIndex = 0;
+ this.label12.Text = "Tot size";
+ //
+ // label14
+ //
+ this.label14.AutoSize = true;
+ this.label14.Location = new System.Drawing.Point(19, 41);
+ this.label14.Name = "label14";
+ this.label14.Size = new System.Drawing.Size(70, 17);
+ this.label14.TabIndex = 1;
+ this.label14.Text = "TIME: min";
+ //
+ // label15
+ //
+ this.label15.AutoSize = true;
+ this.label15.Location = new System.Drawing.Point(19, 75);
+ this.label15.Name = "label15";
+ this.label15.Size = new System.Drawing.Size(73, 17);
+ this.label15.TabIndex = 2;
+ this.label15.Text = "TIME: max";
+ //
+ // label16
+ //
+ this.label16.AutoSize = true;
+ this.label16.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label16.Location = new System.Drawing.Point(19, 58);
+ this.label16.Name = "label16";
+ this.label16.Size = new System.Drawing.Size(80, 17);
+ this.label16.TabIndex = 3;
+ this.label16.Text = "TIME: avg";
+ //
+ // lblTimeAvg
+ //
+ this.lblTimeAvg.AutoSize = true;
+ this.lblTimeAvg.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblTimeAvg.Location = new System.Drawing.Point(224, 58);
+ this.lblTimeAvg.Name = "lblTimeAvg";
+ this.lblTimeAvg.Size = new System.Drawing.Size(35, 17);
+ this.lblTimeAvg.TabIndex = 4;
+ this.lblTimeAvg.Text = "000";
+ this.lblTimeAvg.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ //
+ // lblTimeMax
+ //
+ this.lblTimeMax.AutoSize = true;
+ this.lblTimeMax.Location = new System.Drawing.Point(227, 75);
+ this.lblTimeMax.Name = "lblTimeMax";
+ this.lblTimeMax.Size = new System.Drawing.Size(32, 17);
+ this.lblTimeMax.TabIndex = 5;
+ this.lblTimeMax.Text = "000";
+ this.lblTimeMax.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ //
+ // lblTimeMin
+ //
+ this.lblTimeMin.AutoSize = true;
+ this.lblTimeMin.Location = new System.Drawing.Point(227, 41);
+ this.lblTimeMin.Name = "lblTimeMin";
+ this.lblTimeMin.Size = new System.Drawing.Size(32, 17);
+ this.lblTimeMin.TabIndex = 6;
+ this.lblTimeMin.Text = "000";
+ this.lblTimeMin.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ //
+ // lblTotSize
+ //
+ this.lblTotSize.AutoSize = true;
+ this.lblTotSize.Location = new System.Drawing.Point(227, 20);
+ this.lblTotSize.Name = "lblTotSize";
+ this.lblTotSize.Size = new System.Drawing.Size(32, 17);
+ this.lblTotSize.TabIndex = 7;
+ this.lblTotSize.Text = "000";
+ this.lblTotSize.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ //
+ // lblThroughtput
+ //
+ this.lblThroughtput.AutoSize = true;
+ this.lblThroughtput.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblThroughtput.Location = new System.Drawing.Point(224, 126);
+ this.lblThroughtput.Name = "lblThroughtput";
+ this.lblThroughtput.Size = new System.Drawing.Size(35, 17);
+ this.lblThroughtput.TabIndex = 9;
+ this.lblThroughtput.Text = "000";
+ this.lblThroughtput.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ //
+ // label18
+ //
+ this.label18.AutoSize = true;
+ this.label18.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label18.Location = new System.Drawing.Point(19, 126);
+ this.label18.Name = "label18";
+ this.label18.Size = new System.Drawing.Size(71, 21);
+ this.label18.TabIndex = 8;
+ this.label18.Text = "Kb/sec";
//
// TestMainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(869, 624);
- this.Controls.Add(this.groupBox4);
+ this.ClientSize = new System.Drawing.Size(906, 611);
+ this.Controls.Add(this.splitContainer1);
this.Controls.Add(this.statusStrip1);
- this.Controls.Add(this.groupBox3);
- this.Controls.Add(this.groupBox2);
- this.Controls.Add(this.groupBox1);
+ this.Controls.Add(this.tabCtrl);
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.Name = "TestMainForm";
this.Text = "SIEMENS S7 TEST";
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
- this.groupBox2.ResumeLayout(false);
- this.groupBox2.PerformLayout();
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
this.statusStrip1.ResumeLayout(false);
this.statusStrip1.PerformLayout();
this.groupBox4.ResumeLayout(false);
this.groupBox4.PerformLayout();
+ this.groupBox2.ResumeLayout(false);
+ this.groupBox2.PerformLayout();
+ this.tabCtrl.ResumeLayout(false);
+ this.tabReadTest.ResumeLayout(false);
+ this.tabParam.ResumeLayout(false);
+ this.tabWriteTest.ResumeLayout(false);
+ this.splitContainer1.Panel1.ResumeLayout(false);
+ this.splitContainer1.Panel1.PerformLayout();
+ this.splitContainer1.Panel2.ResumeLayout(false);
+ this.splitContainer1.Panel2.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+ this.splitContainer1.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
@@ -601,16 +804,12 @@
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox txtMemSize;
private System.Windows.Forms.GroupBox groupBox1;
- private System.Windows.Forms.GroupBox groupBox2;
- private System.Windows.Forms.TextBox txtOut;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.TextBox txtSlot;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox txtRack;
private System.Windows.Forms.Label label4;
- private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Label label6;
- private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Button btnReadByte;
private System.Windows.Forms.StatusStrip statusStrip1;
private System.Windows.Forms.ToolStripStatusLabel tslConn;
@@ -635,6 +834,26 @@
private System.Windows.Forms.Button btnNumWriteB;
private System.Windows.Forms.Button btnNumWriteDW;
private System.Windows.Forms.Button btnReadStruct;
+ private System.Windows.Forms.TextBox txtOut;
+ private System.Windows.Forms.GroupBox groupBox2;
+ private System.Windows.Forms.TabControl tabCtrl;
+ private System.Windows.Forms.TabPage tabReadTest;
+ private System.Windows.Forms.TabPage tabWriteTest;
+ private System.Windows.Forms.TabPage tabParam;
+ private System.Windows.Forms.SplitContainer splitContainer1;
+ private System.Windows.Forms.Label label11;
+ private System.Windows.Forms.TextBox txtNumRep;
+ private System.Windows.Forms.Label label13;
+ private System.Windows.Forms.Label lblTotSize;
+ private System.Windows.Forms.Label lblTimeMin;
+ private System.Windows.Forms.Label lblTimeMax;
+ private System.Windows.Forms.Label lblTimeAvg;
+ private System.Windows.Forms.Label label16;
+ private System.Windows.Forms.Label label15;
+ private System.Windows.Forms.Label label14;
+ private System.Windows.Forms.Label label12;
+ private System.Windows.Forms.Label lblThroughtput;
+ private System.Windows.Forms.Label label18;
}
}
diff --git a/SiemensS7/Siemens-S7-Test/TestMainForm.cs b/SiemensS7/Siemens-S7-Test/TestMainForm.cs
index 2c42ad7..bace481 100644
--- a/SiemensS7/Siemens-S7-Test/TestMainForm.cs
+++ b/SiemensS7/Siemens-S7-Test/TestMainForm.cs
@@ -61,6 +61,10 @@ namespace Siemens_S7_Test
/// oggetto logging
///
public static Logger lg;
+ ///
+ /// Gestione statistiche
+ ///
+ public TimingData PerfStats;
public TestMainForm()
{
@@ -74,6 +78,7 @@ namespace Siemens_S7_Test
private void myInit()
{
lg = LogManager.GetCurrentClassLogger();
+ PerfStats = new TimingData();
// inizializzo parametri...
parametri = new connParam()
{
@@ -149,23 +154,45 @@ namespace Siemens_S7_Test
{
return string.Format(@"{0}\{1}", utils.confDir, utils.CRS(keyFile));
}
+ ///
+ /// Aggiorno statistiche mostrate
+ ///
+ protected void updateStats()
+ {
+ lblTimeMin.Text = $"{PerfStats.currStat.min:0.00} s";
+ lblTimeMax.Text = $"{PerfStats.currStat.max:0.00} s";
+ lblTimeAvg.Text = $"{PerfStats.currStat.avg:0.00} s";
+ }
+
///
/// Esecuzione lettura!
///
private void eseguiLetturaByte()
{
- sw.Restart();
+ PerfStats = new TimingData();
if (testCncConn())
{
// decodifico memoria...
memAddress memoria = new memAddress(txtMemArea.Text);
int numByte = 1;
int.TryParse(txtMemSize.Text, out numByte);
+ int numTest = 1;
+ int.TryParse(txtNumRep.Text, out numTest);
+ Byte[] memByteRead = new byte[0];
+ // effettuo numero di test secondo indicazioni...
+ for (int i = 0; i < numTest; i++)
+ {
+ sw.Restart();
+ // eseguo test
+ memByteRead = currPLC.ReadBytes(DataType.DataBlock, memoria.DbNum, memoria.indiceMem, numByte);
+ sw.Stop();
+ // salvo risultati
+ PerfStats.addValue((double)sw.ElapsedMilliseconds / 1000);
+ }
- //var readVal = currPLC.Read("DB600.DBD0");
+ // mostro update lettura
+ updateStats();
- Byte[] memByteRead = currPLC.ReadBytes(DataType.DataBlock, memoria.DbNum, memoria.indiceMem, numByte);
- sw.Stop();
tslRTime.Text = string.Format("{0}", sw.Elapsed);
titolo = string.Format("READ BLOCK MEM BYTE: {0} --> {1} byte", txtMemArea.Text, numByte);
contenuto = "";
@@ -183,15 +210,30 @@ namespace Siemens_S7_Test
///
private void eseguiLetturaWord()
{
- sw.Restart();
+ PerfStats = new TimingData();
if (testCncConn())
{
// decodifico memoria...
memAddress memoria = new memAddress(txtMemArea.Text);
int numByte = 1;
int.TryParse(txtMemSize.Text, out numByte);
- Byte[] memByteRead = currPLC.ReadBytes(DataType.DataBlock, memoria.DbNum, memoria.indiceMem, numByte);
- sw.Stop();
+ int numTest = 1;
+ int.TryParse(txtNumRep.Text, out numTest);
+ Byte[] memByteRead = new byte[0];
+ // effettuo numero di test secondo indicazioni...
+ for (int i = 0; i < numTest; i++)
+ {
+ sw.Restart();
+ // eseguo test
+ memByteRead = currPLC.ReadBytes(DataType.DataBlock, memoria.DbNum, memoria.indiceMem, numByte);
+ sw.Stop();
+ // salvo risultati
+ PerfStats.addValue((double)sw.ElapsedMilliseconds / 1000);
+ }
+
+ // mostro update lettura
+ updateStats();
+
tslRTime.Text = string.Format("{0}", sw.Elapsed);
titolo = string.Format("READ BLOCK MEM WORD: {0} --> {1} byte", txtMemArea.Text, numByte);
contenuto = "";
@@ -209,6 +251,54 @@ namespace Siemens_S7_Test
}
}
+ ///
+ /// Esecuzione lettura DWORD!
+ ///
+ private void eseguiLetturaDWord()
+ {
+ PerfStats = new TimingData();
+ if (testCncConn())
+ {
+ // decodifico memoria...
+ memAddress memoria = new memAddress(txtMemArea.Text);
+ int numByte = 1;
+ int.TryParse(txtMemSize.Text, out numByte);
+ int numTest = 1;
+ int.TryParse(txtNumRep.Text, out numTest);
+ Byte[] memByteRead = new byte[0];
+ for (int i = 0; i < numTest; i++)
+ {
+ sw.Restart();
+ // eseguo test
+ memByteRead = currPLC.ReadBytes(DataType.DataBlock, memoria.DbNum, memoria.indiceMem, numByte);
+ sw.Stop();
+ // salvo risultati
+ PerfStats.addValue((double)sw.ElapsedMilliseconds / 1000);
+ }
+
+ // mostro update lettura
+ updateStats();
+
+ tslRTime.Text = string.Format("{0}", sw.Elapsed);
+ titolo = string.Format("READ BLOCK MEM WORD: {0} --> {1} byte", txtMemArea.Text, numByte);
+ contenuto = "";
+ uint intVal = 0;
+ string byteValA = "";
+ string byteValB = "";
+ string byteValC = "";
+ string byteValD = "";
+ for (int i = 0; i < memByteRead.Length / 4; i++)
+ {
+ byteValA = Convert.ToString(memByteRead[i * 4], 2).PadLeft(8, '0');
+ byteValB = Convert.ToString(memByteRead[i * 4 + 1], 2).PadLeft(8, '0');
+ byteValC = Convert.ToString(memByteRead[i * 4 + 2], 2).PadLeft(8, '0');
+ byteValD = Convert.ToString(memByteRead[i * 4 + 3], 2).PadLeft(8, '0');
+ intVal = S7.Net.Types.DWord.FromByteArray(memByteRead.Skip(4 * i).Take(4).ToArray());
+ contenuto += string.Format("W{0:000}: {1} | {2}-{3}-{4}-{5}{6}", i, intVal, byteValA, byteValB, byteValC, byteValD, Environment.NewLine);
+ }
+ showOut(titolo, contenuto);
+ }
+ }
///
/// Esecuzione lettura come struct
///
@@ -270,40 +360,6 @@ namespace Siemens_S7_Test
- ///
- /// Esecuzione lettura DWORD!
- ///
- private void eseguiLetturaDWord()
- {
- sw.Restart();
- if (testCncConn())
- {
- // decodifico memoria...
- memAddress memoria = new memAddress(txtMemArea.Text);
- int numByte = 1;
- int.TryParse(txtMemSize.Text, out numByte);
- Byte[] memByteRead = currPLC.ReadBytes(DataType.DataBlock, memoria.DbNum, memoria.indiceMem, numByte);
- sw.Stop();
- tslRTime.Text = string.Format("{0}", sw.Elapsed);
- titolo = string.Format("READ BLOCK MEM WORD: {0} --> {1} byte", txtMemArea.Text, numByte);
- contenuto = "";
- uint intVal = 0;
- string byteValA = "";
- string byteValB = "";
- string byteValC = "";
- string byteValD = "";
- for (int i = 0; i < memByteRead.Length / 4; i++)
- {
- byteValA = Convert.ToString(memByteRead[i * 4], 2).PadLeft(8, '0');
- byteValB = Convert.ToString(memByteRead[i * 4 + 1], 2).PadLeft(8, '0');
- byteValC = Convert.ToString(memByteRead[i * 4 + 2], 2).PadLeft(8, '0');
- byteValD = Convert.ToString(memByteRead[i * 4 + 3], 2).PadLeft(8, '0');
- intVal = S7.Net.Types.DWord.FromByteArray(memByteRead.Skip(4 * i).Take(4).ToArray());
- contenuto += string.Format("W{0:000}: {1} | {2}-{3}-{4}-{5}{6}", i, intVal, byteValA, byteValB, byteValC, byteValD, Environment.NewLine);
- }
- showOut(titolo, contenuto);
- }
- }
///
/// Esecuzione lettura Real!
///
diff --git a/SiemensS7/Siemens-S7-Test/TimingData.cs b/SiemensS7/Siemens-S7-Test/TimingData.cs
new file mode 100644
index 0000000..8dabd55
--- /dev/null
+++ b/SiemensS7/Siemens-S7-Test/TimingData.cs
@@ -0,0 +1,51 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Siemens_S7_Test
+{
+ public class TimingData
+ {
+ ///
+ /// Array dei valori rilevati in secondi
+ ///
+ protected List valori { get; set; }
+ ///
+ /// Statistiche attuali
+ ///
+ public stats currStat;
+ ///
+ /// Tipo dei dati salvato
+ ///
+ public string Tipo { get; set; }
+ public TimingData()
+ {
+ valori = new List();
+ currStat = new stats();
+ }
+ ///
+ /// aggiunge dati e restituisce statistiche aggiornate...
+ ///
+ ///
+ ///
+ public void addValue(double valore)
+ {
+ valori.Add(valore);
+ currStat.min = valori.Min();
+ currStat.max = valori.Max();
+ currStat.avg = valori.Average();
+ }
+ }
+ ///
+ /// Struttura risultati
+ ///
+ public struct stats
+ {
+ public double min;
+ public double max;
+ public double avg;
+ }
+
+}