From 4823d6031b6081c4c25c2ada5e477a9118c549bf Mon Sep 17 00:00:00 2001
From: wells.liu <wells.liu@broconcentric.com>
Date: 星期一, 06 七月 2020 17:42:17 +0800
Subject: [PATCH] 板卡操作及运行界面

---
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.resx             |    3 
 src/Bro.Device.GTSCard/GTSCardDriver.cs                                      |   32 
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.Designer.cs    |   89 ++-
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.Designer.cs |  360 +++++++-------
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs               |   37 +
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.cs             |   35 +
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.Designer.cs      |  701 +++++++++++++++---------------
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.cs          |    6 
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.cs                |   25 
 src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.cs           |   43 -
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.resx           |    3 
 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.Designer.cs       |   12 
 src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.Designer.cs  |   19 
 src/Bro.Common.Model/Model/MotionCardRelated.cs                              |    5 
 14 files changed, 743 insertions(+), 627 deletions(-)

diff --git a/src/Bro.Common.Model/Model/MotionCardRelated.cs b/src/Bro.Common.Model/Model/MotionCardRelated.cs
index 49c3321..c97e847 100644
--- a/src/Bro.Common.Model/Model/MotionCardRelated.cs
+++ b/src/Bro.Common.Model/Model/MotionCardRelated.cs
@@ -227,6 +227,11 @@
         /// </summary>
         public double PrfVelocity { get; set; }
 
+        /// <summary>
+        /// 杞寸姸鎬�
+        /// </summary>
+        public int AxisStatus { get; set; }
+
         public string GetDisplayText()
         {
             return $"杞磠AxisIndex}:{AxisName}-褰撳墠锛歿CurPosition}-瑙勫垝锛歿Destination}";
diff --git a/src/Bro.Device.GTSCard/GTSCardDriver.cs b/src/Bro.Device.GTSCard/GTSCardDriver.cs
index 28e82b1..4a236b9 100644
--- a/src/Bro.Device.GTSCard/GTSCardDriver.cs
+++ b/src/Bro.Device.GTSCard/GTSCardDriver.cs
@@ -552,7 +552,7 @@
                 repeatTime = 1000;
                 do
                 {
-                    isStop = IsStop((short)IConfig.CardNum, (short)optionPara.AxisIndex);
+                    isStop = IsStop((short)optionPara.AxisIndex);
                     Thread.Sleep(50);
                     repeatTime--;
                 } while (!isStop && repeatTime > 0);
@@ -624,7 +624,7 @@
                 repeatTime = 1000;
                 do
                 {
-                    isStop = IsStop((short)IConfig.CardNum, (short)optionPara.AxisIndex);
+                    isStop = IsStop((short)optionPara.AxisIndex);
                     Thread.Sleep(50);
                     repeatTime--;
                 } while (!isStop && repeatTime > 0);
@@ -667,7 +667,7 @@
                 int repeatTime = 100;
                 do
                 {
-                    isStop = IsStop((short)IConfig.CardNum, (short)axisNum);
+                    isStop = IsStop((short)axisNum);
                     Thread.Sleep(10);
                     repeatTime--;
                 } while (!isStop && repeatTime > 0);
@@ -799,18 +799,29 @@
         /// <param name="cardNum">鏉垮崱鍙�</param>
         /// <param name="axisNum">杞村彿</param>
         /// <returns></returns>
-        public bool IsStop(short cardNum, short axisNum)
+        public bool IsStop(short axisNum)
+        {
+            int sts = GetAxisStatus(axisNum);
+            if ((sts & 0x400) == 0) return true;//鍋滄杩斿洖true
+            else return false;              //杩愯涓繑鍥瀎alse
+        }
+
+        /// <summary>
+        /// 璇诲彇杞寸姸鎬�
+        /// </summary>
+        /// <param name="cardNum">鏉垮崱鍙�</param>
+        /// <param name="axisNum">杞村彿</param>
+        /// <returns></returns>
+        public int GetAxisStatus(int axisNum)
         {
             lock (moveLock)
             {
                 int sts = 0;
                 uint pclock = 0;
-                GTSCardAPI.GT_GetSts(cardNum, axisNum, out sts, 1, out pclock);
-                if ((sts & 0x400) == 0) return true;//鍋滄杩斿洖true
-                else return false;              //杩愯涓繑鍥瀎alse
+                GTSCardAPI.GT_GetSts((short)IConfig.CardNum, (short)axisNum, out sts, 1, out pclock);
+                return sts;
             }
         }
-
         #endregion
 
         #region IMonitor
@@ -827,6 +838,8 @@
                 axisMovingStatus.Destination = Convert.ToInt32(GetPrfPosition(axisMovingStatus.AxisIndex));
                 axisMovingStatus.CurVelocity = GetVelocity(axisMovingStatus.AxisIndex);
                 axisMovingStatus.PrfVelocity = GetPrfVelocity(axisMovingStatus.AxisIndex);
+                axisMovingStatus.AxisStatus = GetAxisStatus(axisMovingStatus.AxisIndex);
+
                 axisMovingStatusesList.Add(axisMovingStatus);
 
             }
@@ -997,12 +1010,11 @@
         public override void ResetAlarm()
         {
             int axis_sts;
-            uint clk;
             var axisSettings = IConfig.AxisSettings.FindAll(u => u.IsAxisEnabled);
             GTSCardAPI.GT_ClrSts((short)IConfig.CardNum, 1, (short)axisSettings.Count);
             foreach (var axisSetting in axisSettings)
             {
-                GTSCardAPI.GT_GetSts((short)IConfig.CardNum, (short)axisSetting.AxisIndex, out axis_sts, 1, out clk);
+                axis_sts = GetAxisStatus((short)axisSetting.AxisIndex);
                 if ((axis_sts & 0x200) == 0)
                 {
                     var rst = GTSCardAPI.GT_AxisOn((short)IConfig.CardNum, (short)axisSetting.AxisIndex);
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.Designer.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.Designer.cs
index 7b55454..aa563fb 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.Designer.cs
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.Designer.cs
@@ -28,46 +28,46 @@
         /// </summary>
         private void InitializeComponent()
         {
-            this.groupBoxAxisStatus = new System.Windows.Forms.GroupBox();
+            this.groupBoxAxisOperration = new System.Windows.Forms.GroupBox();
             this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
-            this.panel1 = new System.Windows.Forms.Panel();
-            this.label2 = new System.Windows.Forms.Label();
             this.panel2 = new System.Windows.Forms.Panel();
-            this.label1 = new System.Windows.Forms.Label();
-            this.textBox1 = new System.Windows.Forms.TextBox();
-            this.label3 = new System.Windows.Forms.Label();
-            this.label4 = new System.Windows.Forms.Label();
-            this.textBox2 = new System.Windows.Forms.TextBox();
-            this.buttonClearStatus = new System.Windows.Forms.Button();
-            this.button1 = new System.Windows.Forms.Button();
-            this.label5 = new System.Windows.Forms.Label();
-            this.textBox3 = new System.Windows.Forms.TextBox();
-            this.label6 = new System.Windows.Forms.Label();
-            this.textBox4 = new System.Windows.Forms.TextBox();
-            this.label7 = new System.Windows.Forms.Label();
-            this.textBox5 = new System.Windows.Forms.TextBox();
-            this.label8 = new System.Windows.Forms.Label();
-            this.textBox6 = new System.Windows.Forms.TextBox();
-            this.label9 = new System.Windows.Forms.Label();
-            this.textBox7 = new System.Windows.Forms.TextBox();
-            this.button2 = new System.Windows.Forms.Button();
             this.button3 = new System.Windows.Forms.Button();
-            this.groupBoxAxisStatus.SuspendLayout();
+            this.button2 = new System.Windows.Forms.Button();
+            this.label1 = new System.Windows.Forms.Label();
+            this.textBox5 = new System.Windows.Forms.TextBox();
+            this.textBox4 = new System.Windows.Forms.TextBox();
+            this.textBox7 = new System.Windows.Forms.TextBox();
+            this.textBox6 = new System.Windows.Forms.TextBox();
+            this.label7 = new System.Windows.Forms.Label();
+            this.label6 = new System.Windows.Forms.Label();
+            this.label9 = new System.Windows.Forms.Label();
+            this.label8 = new System.Windows.Forms.Label();
+            this.panel1 = new System.Windows.Forms.Panel();
+            this.button1 = new System.Windows.Forms.Button();
+            this.textBox3 = new System.Windows.Forms.TextBox();
+            this.buttonClearStatus = new System.Windows.Forms.Button();
+            this.textBox2 = new System.Windows.Forms.TextBox();
+            this.label5 = new System.Windows.Forms.Label();
+            this.textBox1 = new System.Windows.Forms.TextBox();
+            this.label4 = new System.Windows.Forms.Label();
+            this.label3 = new System.Windows.Forms.Label();
+            this.label2 = new System.Windows.Forms.Label();
+            this.groupBoxAxisOperration.SuspendLayout();
             this.tableLayoutPanel1.SuspendLayout();
-            this.panel1.SuspendLayout();
             this.panel2.SuspendLayout();
+            this.panel1.SuspendLayout();
             this.SuspendLayout();
             // 
-            // groupBoxAxisStatus
+            // groupBoxAxisOperration
             // 
-            this.groupBoxAxisStatus.Controls.Add(this.tableLayoutPanel1);
-            this.groupBoxAxisStatus.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.groupBoxAxisStatus.Location = new System.Drawing.Point(0, 0);
-            this.groupBoxAxisStatus.Name = "groupBoxAxisStatus";
-            this.groupBoxAxisStatus.Size = new System.Drawing.Size(547, 148);
-            this.groupBoxAxisStatus.TabIndex = 5;
-            this.groupBoxAxisStatus.TabStop = false;
-            this.groupBoxAxisStatus.Text = "杞存搷浣�";
+            this.groupBoxAxisOperration.Controls.Add(this.tableLayoutPanel1);
+            this.groupBoxAxisOperration.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.groupBoxAxisOperration.Location = new System.Drawing.Point(0, 0);
+            this.groupBoxAxisOperration.Name = "groupBoxAxisOperration";
+            this.groupBoxAxisOperration.Size = new System.Drawing.Size(547, 148);
+            this.groupBoxAxisOperration.TabIndex = 5;
+            this.groupBoxAxisOperration.TabStop = false;
+            this.groupBoxAxisOperration.Text = "杞存搷浣�";
             // 
             // tableLayoutPanel1
             // 
@@ -85,36 +85,6 @@
             this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
             this.tableLayoutPanel1.Size = new System.Drawing.Size(541, 128);
             this.tableLayoutPanel1.TabIndex = 0;
-            // 
-            // panel1
-            // 
-            this.panel1.Controls.Add(this.button1);
-            this.panel1.Controls.Add(this.textBox3);
-            this.panel1.Controls.Add(this.buttonClearStatus);
-            this.panel1.Controls.Add(this.textBox2);
-            this.panel1.Controls.Add(this.label5);
-            this.panel1.Controls.Add(this.textBox1);
-            this.panel1.Controls.Add(this.label4);
-            this.panel1.Controls.Add(this.label3);
-            this.panel1.Controls.Add(this.label2);
-            this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.panel1.Location = new System.Drawing.Point(3, 3);
-            this.panel1.Name = "panel1";
-            this.panel1.Size = new System.Drawing.Size(535, 58);
-            this.panel1.TabIndex = 2;
-            // 
-            // label2
-            // 
-            this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left)));
-            this.label2.AutoSize = true;
-            this.label2.Font = new System.Drawing.Font("瀹嬩綋", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.label2.Location = new System.Drawing.Point(0, 21);
-            this.label2.Name = "label2";
-            this.label2.Size = new System.Drawing.Size(77, 19);
-            this.label2.TabIndex = 2;
-            this.label2.Text = "Jog妯″紡";
-            this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
             // 
             // panel2
             // 
@@ -135,6 +105,24 @@
             this.panel2.Size = new System.Drawing.Size(535, 58);
             this.panel2.TabIndex = 3;
             // 
+            // button3
+            // 
+            this.button3.Location = new System.Drawing.Point(462, 31);
+            this.button3.Name = "button3";
+            this.button3.Size = new System.Drawing.Size(70, 25);
+            this.button3.TabIndex = 6;
+            this.button3.Text = "鍋滄";
+            this.button3.UseVisualStyleBackColor = true;
+            // 
+            // button2
+            // 
+            this.button2.Location = new System.Drawing.Point(462, 3);
+            this.button2.Name = "button2";
+            this.button2.Size = new System.Drawing.Size(70, 25);
+            this.button2.TabIndex = 6;
+            this.button2.Text = "寮�濮�";
+            this.button2.UseVisualStyleBackColor = true;
+            // 
             // label1
             // 
             this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
@@ -148,80 +136,12 @@
             this.label1.Text = "P2P妯″紡";
             this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
             // 
-            // textBox1
+            // textBox5
             // 
-            this.textBox1.Location = new System.Drawing.Point(154, 4);
-            this.textBox1.Name = "textBox1";
-            this.textBox1.Size = new System.Drawing.Size(116, 21);
-            this.textBox1.TabIndex = 5;
-            // 
-            // label3
-            // 
-            this.label3.AutoSize = true;
-            this.label3.Location = new System.Drawing.Point(92, 7);
-            this.label3.Name = "label3";
-            this.label3.Size = new System.Drawing.Size(41, 12);
-            this.label3.TabIndex = 4;
-            this.label3.Text = "閫熷害锛�";
-            // 
-            // label4
-            // 
-            this.label4.AutoSize = true;
-            this.label4.Location = new System.Drawing.Point(92, 38);
-            this.label4.Name = "label4";
-            this.label4.Size = new System.Drawing.Size(53, 12);
-            this.label4.TabIndex = 4;
-            this.label4.Text = "鍔犻�熷害锛�";
-            // 
-            // textBox2
-            // 
-            this.textBox2.Location = new System.Drawing.Point(154, 35);
-            this.textBox2.Name = "textBox2";
-            this.textBox2.Size = new System.Drawing.Size(116, 21);
-            this.textBox2.TabIndex = 5;
-            // 
-            // buttonClearStatus
-            // 
-            this.buttonClearStatus.Location = new System.Drawing.Point(462, 3);
-            this.buttonClearStatus.Name = "buttonClearStatus";
-            this.buttonClearStatus.Size = new System.Drawing.Size(70, 25);
-            this.buttonClearStatus.TabIndex = 6;
-            this.buttonClearStatus.Text = "姝e悜";
-            this.buttonClearStatus.UseVisualStyleBackColor = true;
-            // 
-            // button1
-            // 
-            this.button1.Location = new System.Drawing.Point(462, 33);
-            this.button1.Name = "button1";
-            this.button1.Size = new System.Drawing.Size(70, 25);
-            this.button1.TabIndex = 6;
-            this.button1.Text = "璐熷悜";
-            this.button1.UseVisualStyleBackColor = true;
-            // 
-            // label5
-            // 
-            this.label5.AutoSize = true;
-            this.label5.Location = new System.Drawing.Point(278, 7);
-            this.label5.Name = "label5";
-            this.label5.Size = new System.Drawing.Size(53, 12);
-            this.label5.TabIndex = 4;
-            this.label5.Text = "鍑忛�熷害锛�";
-            // 
-            // textBox3
-            // 
-            this.textBox3.Location = new System.Drawing.Point(340, 4);
-            this.textBox3.Name = "textBox3";
-            this.textBox3.Size = new System.Drawing.Size(116, 21);
-            this.textBox3.TabIndex = 5;
-            // 
-            // label6
-            // 
-            this.label6.AutoSize = true;
-            this.label6.Location = new System.Drawing.Point(92, 7);
-            this.label6.Name = "label6";
-            this.label6.Size = new System.Drawing.Size(65, 12);
-            this.label6.TabIndex = 4;
-            this.label6.Text = "瑙勫垝浣嶇疆锛�";
+            this.textBox5.Location = new System.Drawing.Point(154, 34);
+            this.textBox5.Name = "textBox5";
+            this.textBox5.Size = new System.Drawing.Size(116, 21);
+            this.textBox5.TabIndex = 5;
             // 
             // textBox4
             // 
@@ -229,6 +149,20 @@
             this.textBox4.Name = "textBox4";
             this.textBox4.Size = new System.Drawing.Size(116, 21);
             this.textBox4.TabIndex = 5;
+            // 
+            // textBox7
+            // 
+            this.textBox7.Location = new System.Drawing.Point(340, 34);
+            this.textBox7.Name = "textBox7";
+            this.textBox7.Size = new System.Drawing.Size(116, 21);
+            this.textBox7.TabIndex = 5;
+            // 
+            // textBox6
+            // 
+            this.textBox6.Location = new System.Drawing.Point(340, 4);
+            this.textBox6.Name = "textBox6";
+            this.textBox6.Size = new System.Drawing.Size(116, 21);
+            this.textBox6.TabIndex = 5;
             // 
             // label7
             // 
@@ -239,28 +173,14 @@
             this.label7.TabIndex = 4;
             this.label7.Text = "閫熷害锛�";
             // 
-            // textBox5
+            // label6
             // 
-            this.textBox5.Location = new System.Drawing.Point(154, 34);
-            this.textBox5.Name = "textBox5";
-            this.textBox5.Size = new System.Drawing.Size(116, 21);
-            this.textBox5.TabIndex = 5;
-            // 
-            // label8
-            // 
-            this.label8.AutoSize = true;
-            this.label8.Location = new System.Drawing.Point(278, 7);
-            this.label8.Name = "label8";
-            this.label8.Size = new System.Drawing.Size(53, 12);
-            this.label8.TabIndex = 4;
-            this.label8.Text = "鍔犻�熷害锛�";
-            // 
-            // textBox6
-            // 
-            this.textBox6.Location = new System.Drawing.Point(340, 4);
-            this.textBox6.Name = "textBox6";
-            this.textBox6.Size = new System.Drawing.Size(116, 21);
-            this.textBox6.TabIndex = 5;
+            this.label6.AutoSize = true;
+            this.label6.Location = new System.Drawing.Point(92, 7);
+            this.label6.Name = "label6";
+            this.label6.Size = new System.Drawing.Size(65, 12);
+            this.label6.TabIndex = 4;
+            this.label6.Text = "瑙勫垝浣嶇疆锛�";
             // 
             // label9
             // 
@@ -271,51 +191,131 @@
             this.label9.TabIndex = 4;
             this.label9.Text = "鍑忛�熷害锛�";
             // 
-            // textBox7
+            // label8
             // 
-            this.textBox7.Location = new System.Drawing.Point(340, 34);
-            this.textBox7.Name = "textBox7";
-            this.textBox7.Size = new System.Drawing.Size(116, 21);
-            this.textBox7.TabIndex = 5;
+            this.label8.AutoSize = true;
+            this.label8.Location = new System.Drawing.Point(278, 7);
+            this.label8.Name = "label8";
+            this.label8.Size = new System.Drawing.Size(53, 12);
+            this.label8.TabIndex = 4;
+            this.label8.Text = "鍔犻�熷害锛�";
             // 
-            // button2
+            // panel1
             // 
-            this.button2.Location = new System.Drawing.Point(462, 3);
-            this.button2.Name = "button2";
-            this.button2.Size = new System.Drawing.Size(70, 25);
-            this.button2.TabIndex = 6;
-            this.button2.Text = "寮�濮�";
-            this.button2.UseVisualStyleBackColor = true;
+            this.panel1.Controls.Add(this.button1);
+            this.panel1.Controls.Add(this.textBox3);
+            this.panel1.Controls.Add(this.buttonClearStatus);
+            this.panel1.Controls.Add(this.textBox2);
+            this.panel1.Controls.Add(this.label5);
+            this.panel1.Controls.Add(this.textBox1);
+            this.panel1.Controls.Add(this.label4);
+            this.panel1.Controls.Add(this.label3);
+            this.panel1.Controls.Add(this.label2);
+            this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.panel1.Location = new System.Drawing.Point(3, 3);
+            this.panel1.Name = "panel1";
+            this.panel1.Size = new System.Drawing.Size(535, 58);
+            this.panel1.TabIndex = 2;
             // 
-            // button3
+            // button1
             // 
-            this.button3.Location = new System.Drawing.Point(462, 31);
-            this.button3.Name = "button3";
-            this.button3.Size = new System.Drawing.Size(70, 25);
-            this.button3.TabIndex = 6;
-            this.button3.Text = "鍋滄";
-            this.button3.UseVisualStyleBackColor = true;
+            this.button1.Location = new System.Drawing.Point(462, 33);
+            this.button1.Name = "button1";
+            this.button1.Size = new System.Drawing.Size(70, 25);
+            this.button1.TabIndex = 6;
+            this.button1.Text = "璐熷悜";
+            this.button1.UseVisualStyleBackColor = true;
+            // 
+            // textBox3
+            // 
+            this.textBox3.Location = new System.Drawing.Point(340, 4);
+            this.textBox3.Name = "textBox3";
+            this.textBox3.Size = new System.Drawing.Size(116, 21);
+            this.textBox3.TabIndex = 5;
+            // 
+            // buttonClearStatus
+            // 
+            this.buttonClearStatus.Location = new System.Drawing.Point(462, 3);
+            this.buttonClearStatus.Name = "buttonClearStatus";
+            this.buttonClearStatus.Size = new System.Drawing.Size(70, 25);
+            this.buttonClearStatus.TabIndex = 6;
+            this.buttonClearStatus.Text = "姝e悜";
+            this.buttonClearStatus.UseVisualStyleBackColor = true;
+            // 
+            // textBox2
+            // 
+            this.textBox2.Location = new System.Drawing.Point(154, 35);
+            this.textBox2.Name = "textBox2";
+            this.textBox2.Size = new System.Drawing.Size(116, 21);
+            this.textBox2.TabIndex = 5;
+            // 
+            // label5
+            // 
+            this.label5.AutoSize = true;
+            this.label5.Location = new System.Drawing.Point(278, 7);
+            this.label5.Name = "label5";
+            this.label5.Size = new System.Drawing.Size(53, 12);
+            this.label5.TabIndex = 4;
+            this.label5.Text = "鍑忛�熷害锛�";
+            // 
+            // textBox1
+            // 
+            this.textBox1.Location = new System.Drawing.Point(154, 4);
+            this.textBox1.Name = "textBox1";
+            this.textBox1.Size = new System.Drawing.Size(116, 21);
+            this.textBox1.TabIndex = 5;
+            // 
+            // label4
+            // 
+            this.label4.AutoSize = true;
+            this.label4.Location = new System.Drawing.Point(92, 38);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(53, 12);
+            this.label4.TabIndex = 4;
+            this.label4.Text = "鍔犻�熷害锛�";
+            // 
+            // label3
+            // 
+            this.label3.AutoSize = true;
+            this.label3.Location = new System.Drawing.Point(92, 7);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(41, 12);
+            this.label3.TabIndex = 4;
+            this.label3.Text = "閫熷害锛�";
+            // 
+            // label2
+            // 
+            this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left)));
+            this.label2.AutoSize = true;
+            this.label2.Font = new System.Drawing.Font("瀹嬩綋", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label2.Location = new System.Drawing.Point(0, 21);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(77, 19);
+            this.label2.TabIndex = 2;
+            this.label2.Text = "Jog妯″紡";
+            this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
             // 
             // CtrlMotionCardAxisOperation
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.Controls.Add(this.groupBoxAxisStatus);
+            this.Controls.Add(this.groupBoxAxisOperration);
             this.Name = "CtrlMotionCardAxisOperation";
             this.Size = new System.Drawing.Size(547, 148);
-            this.groupBoxAxisStatus.ResumeLayout(false);
+            this.groupBoxAxisOperration.ResumeLayout(false);
             this.tableLayoutPanel1.ResumeLayout(false);
-            this.panel1.ResumeLayout(false);
-            this.panel1.PerformLayout();
             this.panel2.ResumeLayout(false);
             this.panel2.PerformLayout();
+            this.panel1.ResumeLayout(false);
+            this.panel1.PerformLayout();
             this.ResumeLayout(false);
 
         }
 
         #endregion
 
-        private System.Windows.Forms.GroupBox groupBoxAxisStatus;
+        private System.Windows.Forms.GroupBox groupBoxAxisOperration;
         private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
         private System.Windows.Forms.Panel panel2;
         private System.Windows.Forms.Label label1;
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.cs
index ec86ef0..916bc80 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.cs
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.cs
@@ -17,5 +17,11 @@
             InitializeComponent();
         }
 
+        public CtrlMotionCardAxisOperation(int axisIndex,string axisName)
+        {
+            InitializeComponent();
+            groupBoxAxisOperration.Text = $"杩愬姩杞达細{axisIndex}-{axisName}";
+        }
+      
     }
 }
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.Designer.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.Designer.cs
index 697d1ee..e35b793 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.Designer.cs
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.Designer.cs
@@ -28,6 +28,7 @@
         /// </summary>
         private void InitializeComponent()
         {
+            this.components = new System.ComponentModel.Container();
             this.groupBoxAxisStatus = new System.Windows.Forms.GroupBox();
             this.ioIndicatorCtrl2 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
             this.ioIndicatorCtrl10 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
@@ -35,14 +36,15 @@
             this.ioIndicatorCtrl8 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
             this.ioIndicatorCtrl6 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
             this.ioIndicatorCtrl1 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.textBox4 = new System.Windows.Forms.TextBox();
-            this.textBox3 = new System.Windows.Forms.TextBox();
-            this.textBox2 = new System.Windows.Forms.TextBox();
-            this.textBox1 = new System.Windows.Forms.TextBox();
+            this.textBoxCurVel = new System.Windows.Forms.TextBox();
+            this.textBoxPrfVel = new System.Windows.Forms.TextBox();
+            this.textBoxCurPosition = new System.Windows.Forms.TextBox();
+            this.textBoxPrfPositon = new System.Windows.Forms.TextBox();
             this.label5 = new System.Windows.Forms.Label();
             this.label4 = new System.Windows.Forms.Label();
             this.label3 = new System.Windows.Forms.Label();
             this.label2 = new System.Windows.Forms.Label();
+            this.timer1 = new System.Windows.Forms.Timer(this.components);
             this.groupBoxAxisStatus.SuspendLayout();
             this.SuspendLayout();
             // 
@@ -54,10 +56,10 @@
             this.groupBoxAxisStatus.Controls.Add(this.ioIndicatorCtrl8);
             this.groupBoxAxisStatus.Controls.Add(this.ioIndicatorCtrl6);
             this.groupBoxAxisStatus.Controls.Add(this.ioIndicatorCtrl1);
-            this.groupBoxAxisStatus.Controls.Add(this.textBox4);
-            this.groupBoxAxisStatus.Controls.Add(this.textBox3);
-            this.groupBoxAxisStatus.Controls.Add(this.textBox2);
-            this.groupBoxAxisStatus.Controls.Add(this.textBox1);
+            this.groupBoxAxisStatus.Controls.Add(this.textBoxCurVel);
+            this.groupBoxAxisStatus.Controls.Add(this.textBoxPrfVel);
+            this.groupBoxAxisStatus.Controls.Add(this.textBoxCurPosition);
+            this.groupBoxAxisStatus.Controls.Add(this.textBoxPrfPositon);
             this.groupBoxAxisStatus.Controls.Add(this.label5);
             this.groupBoxAxisStatus.Controls.Add(this.label4);
             this.groupBoxAxisStatus.Controls.Add(this.label3);
@@ -81,7 +83,7 @@
             // 
             // ioIndicatorCtrl10
             // 
-            this.ioIndicatorCtrl10.Desc = "鍥為浂鐘舵��";
+            this.ioIndicatorCtrl10.Desc = "杩愬姩鍑洪敊";
             this.ioIndicatorCtrl10.IsOn = null;
             this.ioIndicatorCtrl10.Location = new System.Drawing.Point(328, 77);
             this.ioIndicatorCtrl10.Name = "ioIndicatorCtrl10";
@@ -124,42 +126,42 @@
             this.ioIndicatorCtrl1.Size = new System.Drawing.Size(90, 24);
             this.ioIndicatorCtrl1.TabIndex = 4;
             // 
-            // textBox4
+            // textBoxCurVel
             // 
-            this.textBox4.Location = new System.Drawing.Point(85, 114);
-            this.textBox4.Name = "textBox4";
-            this.textBox4.ReadOnly = true;
-            this.textBox4.Size = new System.Drawing.Size(116, 21);
-            this.textBox4.TabIndex = 3;
+            this.textBoxCurVel.Location = new System.Drawing.Point(85, 113);
+            this.textBoxCurVel.Name = "textBoxCurVel";
+            this.textBoxCurVel.ReadOnly = true;
+            this.textBoxCurVel.Size = new System.Drawing.Size(116, 21);
+            this.textBoxCurVel.TabIndex = 3;
             // 
-            // textBox3
+            // textBoxPrfVel
             // 
-            this.textBox3.Location = new System.Drawing.Point(85, 53);
-            this.textBox3.Name = "textBox3";
-            this.textBox3.ReadOnly = true;
-            this.textBox3.Size = new System.Drawing.Size(116, 21);
-            this.textBox3.TabIndex = 3;
+            this.textBoxPrfVel.Location = new System.Drawing.Point(85, 84);
+            this.textBoxPrfVel.Name = "textBoxPrfVel";
+            this.textBoxPrfVel.ReadOnly = true;
+            this.textBoxPrfVel.Size = new System.Drawing.Size(116, 21);
+            this.textBoxPrfVel.TabIndex = 3;
             // 
-            // textBox2
+            // textBoxCurPosition
             // 
-            this.textBox2.Location = new System.Drawing.Point(85, 83);
-            this.textBox2.Name = "textBox2";
-            this.textBox2.ReadOnly = true;
-            this.textBox2.Size = new System.Drawing.Size(116, 21);
-            this.textBox2.TabIndex = 3;
+            this.textBoxCurPosition.Location = new System.Drawing.Point(85, 55);
+            this.textBoxCurPosition.Name = "textBoxCurPosition";
+            this.textBoxCurPosition.ReadOnly = true;
+            this.textBoxCurPosition.Size = new System.Drawing.Size(116, 21);
+            this.textBoxCurPosition.TabIndex = 3;
             // 
-            // textBox1
+            // textBoxPrfPositon
             // 
-            this.textBox1.Location = new System.Drawing.Point(85, 22);
-            this.textBox1.Name = "textBox1";
-            this.textBox1.ReadOnly = true;
-            this.textBox1.Size = new System.Drawing.Size(116, 21);
-            this.textBox1.TabIndex = 3;
+            this.textBoxPrfPositon.Location = new System.Drawing.Point(85, 23);
+            this.textBoxPrfPositon.Name = "textBoxPrfPositon";
+            this.textBoxPrfPositon.ReadOnly = true;
+            this.textBoxPrfPositon.Size = new System.Drawing.Size(116, 21);
+            this.textBoxPrfPositon.TabIndex = 3;
             // 
             // label5
             // 
             this.label5.AutoSize = true;
-            this.label5.Location = new System.Drawing.Point(23, 117);
+            this.label5.Location = new System.Drawing.Point(23, 116);
             this.label5.Name = "label5";
             this.label5.Size = new System.Drawing.Size(65, 12);
             this.label5.TabIndex = 2;
@@ -168,7 +170,7 @@
             // label4
             // 
             this.label4.AutoSize = true;
-            this.label4.Location = new System.Drawing.Point(23, 56);
+            this.label4.Location = new System.Drawing.Point(23, 87);
             this.label4.Name = "label4";
             this.label4.Size = new System.Drawing.Size(65, 12);
             this.label4.TabIndex = 2;
@@ -177,7 +179,7 @@
             // label3
             // 
             this.label3.AutoSize = true;
-            this.label3.Location = new System.Drawing.Point(23, 86);
+            this.label3.Location = new System.Drawing.Point(23, 58);
             this.label3.Name = "label3";
             this.label3.Size = new System.Drawing.Size(65, 12);
             this.label3.TabIndex = 2;
@@ -186,11 +188,15 @@
             // label2
             // 
             this.label2.AutoSize = true;
-            this.label2.Location = new System.Drawing.Point(23, 25);
+            this.label2.Location = new System.Drawing.Point(23, 26);
             this.label2.Name = "label2";
             this.label2.Size = new System.Drawing.Size(65, 12);
             this.label2.TabIndex = 2;
             this.label2.Text = "瑙勫垝浣嶇疆锛�";
+            // 
+            // timer1
+            // 
+            this.timer1.Tick += new System.EventHandler(this.RefreshStatus);
             // 
             // CtrlMotionCardAxisStatus
             // 
@@ -214,13 +220,14 @@
         private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl8;
         private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl6;
         private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl1;
-        private System.Windows.Forms.TextBox textBox4;
-        private System.Windows.Forms.TextBox textBox3;
-        private System.Windows.Forms.TextBox textBox2;
-        private System.Windows.Forms.TextBox textBox1;
+        private System.Windows.Forms.TextBox textBoxCurVel;
+        private System.Windows.Forms.TextBox textBoxPrfVel;
+        private System.Windows.Forms.TextBox textBoxCurPosition;
+        private System.Windows.Forms.TextBox textBoxPrfPositon;
         private System.Windows.Forms.Label label5;
         private System.Windows.Forms.Label label4;
         private System.Windows.Forms.Label label3;
         private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.Timer timer1;
     }
 }
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.cs
index 4ac84c7..d7df378 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.cs
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.cs
@@ -1,11 +1,5 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+锘縰sing Bro.Common.Model;
+using System;
 using System.Windows.Forms;
 
 namespace Bro.UI.Device.Winform
@@ -16,5 +10,30 @@
         {
             InitializeComponent();
         }
+
+        public AxisMovingStatus _axisMovingStatus = new AxisMovingStatus();
+        public CtrlMotionCardAxisStatus(AxisMovingStatus axisMovingStatus)
+        {
+            InitializeComponent();
+            _axisMovingStatus = axisMovingStatus;
+            groupBoxAxisStatus.Text = $"杩愬姩杞达細{_axisMovingStatus.AxisIndex}-{_axisMovingStatus.AxisName}";
+        }
+
+        private void RefreshStatus(object sender, EventArgs e)
+        {
+            textBoxPrfPositon.Text = _axisMovingStatus.Destination.ToString();
+            textBoxCurPosition.Text = _axisMovingStatus.CurPosition.ToString();
+            textBoxPrfVel.Text = _axisMovingStatus.PrfVelocity.ToString();
+            textBoxCurVel.Text = _axisMovingStatus.CurVelocity.ToString();
+            int axis_sts = _axisMovingStatus.AxisStatus;
+      
+            ioIndicatorCtrl1.IsOn = (axis_sts & 0x2) == 0;//椹卞姩鎶ヨ
+            ioIndicatorCtrl2.IsOn = (axis_sts & 0x200) == 0;//浼烘湇浣胯兘
+            ioIndicatorCtrl6.IsOn = (axis_sts & 0x20) == 0;//姝i檺浣�
+            ioIndicatorCtrl8.IsOn = (axis_sts & 0x40) == 0;//璐熼檺浣�
+            ioIndicatorCtrl9.IsOn =(axis_sts & 0x400) == 0;//杩愬姩鐘舵��
+            ioIndicatorCtrl10.IsOn = (axis_sts & 0x10) == 0;//杩愬姩鍑洪敊
+
+        }
     }
 }
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.resx b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.resx
index 1af7de1..1f666f2 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.resx
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.resx
@@ -117,4 +117,7 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
+  <metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
 </root>
\ No newline at end of file
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.Designer.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.Designer.cs
index 6f48556..f89c6b7 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.Designer.cs
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.Designer.cs
@@ -28,52 +28,54 @@
         /// </summary>
         private void InitializeComponent()
         {
+            this.components = new System.ComponentModel.Container();
             this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
-            this.groupBox5 = new System.Windows.Forms.GroupBox();
-            this.ioIndicatorCtrl14 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl13 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl12 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl26 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl25 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl24 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl17 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl16 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl20 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl19 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl23 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl22 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl21 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl18 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl15 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl11 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.groupBox6 = new System.Windows.Forms.GroupBox();
-            this.ioIndicatorCtrl27 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl28 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl29 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl30 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl31 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl32 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl33 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl34 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl35 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl36 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl37 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl38 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl39 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl40 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl41 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
-            this.ioIndicatorCtrl42 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.groupBoxIOOut = new System.Windows.Forms.GroupBox();
+            this.ioOut4 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioOut3 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioOut2 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioOut16 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioOut15 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioOut14 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioOut13 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioOut9 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioOut8 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioOut7 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioOut12 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioOut11 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioOut10 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioOut6 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioOut5 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioOut1 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.groupBoxIOIn = new System.Windows.Forms.GroupBox();
+            this.ioIn4 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIn3 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIn2 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIn16 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIn15 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIn14 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIn13 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIn9 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIn8 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIn7 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIn12 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIn11 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIn10 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIn6 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIn5 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.ioIn1 = new Bro.UI.Model.Winform.IOIndicatorCtrl();
+            this.timer1 = new System.Windows.Forms.Timer(this.components);
             this.tableLayoutPanel1.SuspendLayout();
-            this.groupBox5.SuspendLayout();
-            this.groupBox6.SuspendLayout();
+            this.groupBoxIOOut.SuspendLayout();
+            this.groupBoxIOIn.SuspendLayout();
             this.SuspendLayout();
             // 
             // tableLayoutPanel1
             // 
             this.tableLayoutPanel1.ColumnCount = 1;
             this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
-            this.tableLayoutPanel1.Controls.Add(this.groupBox6, 0, 1);
-            this.tableLayoutPanel1.Controls.Add(this.groupBox5, 0, 0);
+            this.tableLayoutPanel1.Controls.Add(this.groupBoxIOOut, 0, 1);
+            this.tableLayoutPanel1.Controls.Add(this.groupBoxIOIn, 0, 0);
             this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
             this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
             this.tableLayoutPanel1.Name = "tableLayoutPanel1";
@@ -83,345 +85,351 @@
             this.tableLayoutPanel1.Size = new System.Drawing.Size(580, 288);
             this.tableLayoutPanel1.TabIndex = 0;
             // 
-            // groupBox5
+            // groupBoxIOOut
             // 
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl14);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl13);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl12);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl26);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl25);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl24);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl17);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl16);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl20);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl19);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl23);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl22);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl21);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl18);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl15);
-            this.groupBox5.Controls.Add(this.ioIndicatorCtrl11);
-            this.groupBox5.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.groupBox5.Location = new System.Drawing.Point(3, 3);
-            this.groupBox5.Name = "groupBox5";
-            this.groupBox5.Size = new System.Drawing.Size(574, 138);
-            this.groupBox5.TabIndex = 7;
-            this.groupBox5.TabStop = false;
-            this.groupBox5.Text = "鏁板瓧閲忚緭鍏�";
+            this.groupBoxIOOut.Controls.Add(this.ioOut4);
+            this.groupBoxIOOut.Controls.Add(this.ioOut3);
+            this.groupBoxIOOut.Controls.Add(this.ioOut2);
+            this.groupBoxIOOut.Controls.Add(this.ioOut16);
+            this.groupBoxIOOut.Controls.Add(this.ioOut15);
+            this.groupBoxIOOut.Controls.Add(this.ioOut14);
+            this.groupBoxIOOut.Controls.Add(this.ioOut13);
+            this.groupBoxIOOut.Controls.Add(this.ioOut9);
+            this.groupBoxIOOut.Controls.Add(this.ioOut8);
+            this.groupBoxIOOut.Controls.Add(this.ioOut7);
+            this.groupBoxIOOut.Controls.Add(this.ioOut12);
+            this.groupBoxIOOut.Controls.Add(this.ioOut11);
+            this.groupBoxIOOut.Controls.Add(this.ioOut10);
+            this.groupBoxIOOut.Controls.Add(this.ioOut6);
+            this.groupBoxIOOut.Controls.Add(this.ioOut5);
+            this.groupBoxIOOut.Controls.Add(this.ioOut1);
+            this.groupBoxIOOut.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.groupBoxIOOut.Location = new System.Drawing.Point(3, 147);
+            this.groupBoxIOOut.Name = "groupBoxIOOut";
+            this.groupBoxIOOut.Size = new System.Drawing.Size(574, 138);
+            this.groupBoxIOOut.TabIndex = 8;
+            this.groupBoxIOOut.TabStop = false;
+            this.groupBoxIOOut.Text = "鏁板瓧閲忚緭鍑�";
             // 
-            // ioIndicatorCtrl14
+            // ioOut4
             // 
-            this.ioIndicatorCtrl14.Desc = "IN 4";
-            this.ioIndicatorCtrl14.IsOn = null;
-            this.ioIndicatorCtrl14.Location = new System.Drawing.Point(477, 18);
-            this.ioIndicatorCtrl14.Name = "ioIndicatorCtrl14";
-            this.ioIndicatorCtrl14.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl14.TabIndex = 4;
+            this.ioOut4.Desc = "OUT 4";
+            this.ioOut4.IsOn = null;
+            this.ioOut4.Location = new System.Drawing.Point(477, 18);
+            this.ioOut4.Name = "ioOut4";
+            this.ioOut4.Size = new System.Drawing.Size(90, 24);
+            this.ioOut4.TabIndex = 4;
             // 
-            // ioIndicatorCtrl13
+            // ioOut3
             // 
-            this.ioIndicatorCtrl13.Desc = "IN 3";
-            this.ioIndicatorCtrl13.IsOn = null;
-            this.ioIndicatorCtrl13.Location = new System.Drawing.Point(306, 18);
-            this.ioIndicatorCtrl13.Name = "ioIndicatorCtrl13";
-            this.ioIndicatorCtrl13.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl13.TabIndex = 4;
+            this.ioOut3.Desc = "OUT 3";
+            this.ioOut3.IsOn = null;
+            this.ioOut3.Location = new System.Drawing.Point(306, 18);
+            this.ioOut3.Name = "ioOut3";
+            this.ioOut3.Size = new System.Drawing.Size(90, 24);
+            this.ioOut3.TabIndex = 4;
             // 
-            // ioIndicatorCtrl12
+            // ioOut2
             // 
-            this.ioIndicatorCtrl12.Desc = "IN 2";
-            this.ioIndicatorCtrl12.IsOn = null;
-            this.ioIndicatorCtrl12.Location = new System.Drawing.Point(145, 18);
-            this.ioIndicatorCtrl12.Name = "ioIndicatorCtrl12";
-            this.ioIndicatorCtrl12.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl12.TabIndex = 4;
+            this.ioOut2.Desc = "OUT 2";
+            this.ioOut2.IsOn = null;
+            this.ioOut2.Location = new System.Drawing.Point(145, 18);
+            this.ioOut2.Name = "ioOut2";
+            this.ioOut2.Size = new System.Drawing.Size(90, 24);
+            this.ioOut2.TabIndex = 4;
             // 
-            // ioIndicatorCtrl26
+            // ioOut16
             // 
-            this.ioIndicatorCtrl26.Desc = "IN 16";
-            this.ioIndicatorCtrl26.IsOn = null;
-            this.ioIndicatorCtrl26.Location = new System.Drawing.Point(477, 107);
-            this.ioIndicatorCtrl26.Name = "ioIndicatorCtrl26";
-            this.ioIndicatorCtrl26.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl26.TabIndex = 4;
+            this.ioOut16.Desc = "OUT 16";
+            this.ioOut16.IsOn = null;
+            this.ioOut16.Location = new System.Drawing.Point(477, 107);
+            this.ioOut16.Name = "ioOut16";
+            this.ioOut16.Size = new System.Drawing.Size(90, 24);
+            this.ioOut16.TabIndex = 4;
             // 
-            // ioIndicatorCtrl25
+            // ioOut15
             // 
-            this.ioIndicatorCtrl25.Desc = "IN 15";
-            this.ioIndicatorCtrl25.IsOn = null;
-            this.ioIndicatorCtrl25.Location = new System.Drawing.Point(306, 107);
-            this.ioIndicatorCtrl25.Name = "ioIndicatorCtrl25";
-            this.ioIndicatorCtrl25.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl25.TabIndex = 4;
+            this.ioOut15.Desc = "OUT 15";
+            this.ioOut15.IsOn = null;
+            this.ioOut15.Location = new System.Drawing.Point(306, 107);
+            this.ioOut15.Name = "ioOut15";
+            this.ioOut15.Size = new System.Drawing.Size(90, 24);
+            this.ioOut15.TabIndex = 4;
             // 
-            // ioIndicatorCtrl24
+            // ioOut14
             // 
-            this.ioIndicatorCtrl24.Desc = "IN 14";
-            this.ioIndicatorCtrl24.IsOn = null;
-            this.ioIndicatorCtrl24.Location = new System.Drawing.Point(145, 107);
-            this.ioIndicatorCtrl24.Name = "ioIndicatorCtrl24";
-            this.ioIndicatorCtrl24.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl24.TabIndex = 4;
+            this.ioOut14.Desc = "OUT 14";
+            this.ioOut14.IsOn = null;
+            this.ioOut14.Location = new System.Drawing.Point(145, 107);
+            this.ioOut14.Name = "ioOut14";
+            this.ioOut14.Size = new System.Drawing.Size(90, 24);
+            this.ioOut14.TabIndex = 4;
             // 
-            // ioIndicatorCtrl17
+            // ioOut13
             // 
-            this.ioIndicatorCtrl17.Desc = "IN 13";
-            this.ioIndicatorCtrl17.IsOn = null;
-            this.ioIndicatorCtrl17.Location = new System.Drawing.Point(9, 106);
-            this.ioIndicatorCtrl17.Name = "ioIndicatorCtrl17";
-            this.ioIndicatorCtrl17.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl17.TabIndex = 4;
+            this.ioOut13.Desc = "OUT 13";
+            this.ioOut13.IsOn = null;
+            this.ioOut13.Location = new System.Drawing.Point(9, 106);
+            this.ioOut13.Name = "ioOut13";
+            this.ioOut13.Size = new System.Drawing.Size(90, 24);
+            this.ioOut13.TabIndex = 4;
             // 
-            // ioIndicatorCtrl16
+            // ioOut9
             // 
-            this.ioIndicatorCtrl16.Desc = "IN 9";
-            this.ioIndicatorCtrl16.IsOn = null;
-            this.ioIndicatorCtrl16.Location = new System.Drawing.Point(9, 77);
-            this.ioIndicatorCtrl16.Name = "ioIndicatorCtrl16";
-            this.ioIndicatorCtrl16.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl16.TabIndex = 4;
+            this.ioOut9.Desc = "OUT 9";
+            this.ioOut9.IsOn = null;
+            this.ioOut9.Location = new System.Drawing.Point(9, 77);
+            this.ioOut9.Name = "ioOut9";
+            this.ioOut9.Size = new System.Drawing.Size(90, 24);
+            this.ioOut9.TabIndex = 4;
             // 
-            // ioIndicatorCtrl20
+            // ioOut8
             // 
-            this.ioIndicatorCtrl20.Desc = "IN 8";
-            this.ioIndicatorCtrl20.IsOn = null;
-            this.ioIndicatorCtrl20.Location = new System.Drawing.Point(477, 48);
-            this.ioIndicatorCtrl20.Name = "ioIndicatorCtrl20";
-            this.ioIndicatorCtrl20.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl20.TabIndex = 4;
+            this.ioOut8.Desc = "OUT 8";
+            this.ioOut8.IsOn = null;
+            this.ioOut8.Location = new System.Drawing.Point(477, 48);
+            this.ioOut8.Name = "ioOut8";
+            this.ioOut8.Size = new System.Drawing.Size(90, 24);
+            this.ioOut8.TabIndex = 4;
             // 
-            // ioIndicatorCtrl19
+            // ioOut7
             // 
-            this.ioIndicatorCtrl19.Desc = "IN 7";
-            this.ioIndicatorCtrl19.IsOn = null;
-            this.ioIndicatorCtrl19.Location = new System.Drawing.Point(306, 48);
-            this.ioIndicatorCtrl19.Name = "ioIndicatorCtrl19";
-            this.ioIndicatorCtrl19.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl19.TabIndex = 4;
+            this.ioOut7.Desc = "OUT 7";
+            this.ioOut7.IsOn = null;
+            this.ioOut7.Location = new System.Drawing.Point(306, 48);
+            this.ioOut7.Name = "ioOut7";
+            this.ioOut7.Size = new System.Drawing.Size(90, 24);
+            this.ioOut7.TabIndex = 4;
             // 
-            // ioIndicatorCtrl23
+            // ioOut12
             // 
-            this.ioIndicatorCtrl23.Desc = "IN 12";
-            this.ioIndicatorCtrl23.IsOn = null;
-            this.ioIndicatorCtrl23.Location = new System.Drawing.Point(477, 77);
-            this.ioIndicatorCtrl23.Name = "ioIndicatorCtrl23";
-            this.ioIndicatorCtrl23.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl23.TabIndex = 4;
+            this.ioOut12.Desc = "OUT 12";
+            this.ioOut12.IsOn = null;
+            this.ioOut12.Location = new System.Drawing.Point(477, 77);
+            this.ioOut12.Name = "ioOut12";
+            this.ioOut12.Size = new System.Drawing.Size(90, 24);
+            this.ioOut12.TabIndex = 4;
             // 
-            // ioIndicatorCtrl22
+            // ioOut11
             // 
-            this.ioIndicatorCtrl22.Desc = "IN 11";
-            this.ioIndicatorCtrl22.IsOn = null;
-            this.ioIndicatorCtrl22.Location = new System.Drawing.Point(306, 77);
-            this.ioIndicatorCtrl22.Name = "ioIndicatorCtrl22";
-            this.ioIndicatorCtrl22.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl22.TabIndex = 4;
+            this.ioOut11.Desc = "OUT 11";
+            this.ioOut11.IsOn = null;
+            this.ioOut11.Location = new System.Drawing.Point(306, 77);
+            this.ioOut11.Name = "ioOut11";
+            this.ioOut11.Size = new System.Drawing.Size(90, 24);
+            this.ioOut11.TabIndex = 4;
             // 
-            // ioIndicatorCtrl21
+            // ioOut10
             // 
-            this.ioIndicatorCtrl21.Desc = "IN 10";
-            this.ioIndicatorCtrl21.IsOn = null;
-            this.ioIndicatorCtrl21.Location = new System.Drawing.Point(145, 77);
-            this.ioIndicatorCtrl21.Name = "ioIndicatorCtrl21";
-            this.ioIndicatorCtrl21.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl21.TabIndex = 4;
+            this.ioOut10.Desc = "OUT 10";
+            this.ioOut10.IsOn = null;
+            this.ioOut10.Location = new System.Drawing.Point(145, 77);
+            this.ioOut10.Name = "ioOut10";
+            this.ioOut10.Size = new System.Drawing.Size(90, 24);
+            this.ioOut10.TabIndex = 4;
             // 
-            // ioIndicatorCtrl18
+            // ioOut6
             // 
-            this.ioIndicatorCtrl18.Desc = "IN 6";
-            this.ioIndicatorCtrl18.IsOn = null;
-            this.ioIndicatorCtrl18.Location = new System.Drawing.Point(145, 48);
-            this.ioIndicatorCtrl18.Name = "ioIndicatorCtrl18";
-            this.ioIndicatorCtrl18.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl18.TabIndex = 4;
+            this.ioOut6.Desc = "OUT 6";
+            this.ioOut6.IsOn = null;
+            this.ioOut6.Location = new System.Drawing.Point(145, 48);
+            this.ioOut6.Name = "ioOut6";
+            this.ioOut6.Size = new System.Drawing.Size(90, 24);
+            this.ioOut6.TabIndex = 4;
             // 
-            // ioIndicatorCtrl15
+            // ioOut5
             // 
-            this.ioIndicatorCtrl15.Desc = "IN 5";
-            this.ioIndicatorCtrl15.IsOn = null;
-            this.ioIndicatorCtrl15.Location = new System.Drawing.Point(9, 48);
-            this.ioIndicatorCtrl15.Name = "ioIndicatorCtrl15";
-            this.ioIndicatorCtrl15.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl15.TabIndex = 4;
+            this.ioOut5.Desc = "OUT 5";
+            this.ioOut5.IsOn = null;
+            this.ioOut5.Location = new System.Drawing.Point(9, 48);
+            this.ioOut5.Name = "ioOut5";
+            this.ioOut5.Size = new System.Drawing.Size(90, 24);
+            this.ioOut5.TabIndex = 4;
             // 
-            // ioIndicatorCtrl11
+            // ioOut1
             // 
-            this.ioIndicatorCtrl11.Desc = "IN 1";
-            this.ioIndicatorCtrl11.IsOn = null;
-            this.ioIndicatorCtrl11.Location = new System.Drawing.Point(9, 18);
-            this.ioIndicatorCtrl11.Name = "ioIndicatorCtrl11";
-            this.ioIndicatorCtrl11.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl11.TabIndex = 4;
+            this.ioOut1.Desc = "OUT 1";
+            this.ioOut1.IsOn = null;
+            this.ioOut1.Location = new System.Drawing.Point(9, 18);
+            this.ioOut1.Name = "ioOut1";
+            this.ioOut1.Size = new System.Drawing.Size(90, 24);
+            this.ioOut1.TabIndex = 4;
+            // 
+            // groupBoxIOIn
+            // 
+            this.groupBoxIOIn.Controls.Add(this.ioIn4);
+            this.groupBoxIOIn.Controls.Add(this.ioIn3);
+            this.groupBoxIOIn.Controls.Add(this.ioIn2);
+            this.groupBoxIOIn.Controls.Add(this.ioIn16);
+            this.groupBoxIOIn.Controls.Add(this.ioIn15);
+            this.groupBoxIOIn.Controls.Add(this.ioIn14);
+            this.groupBoxIOIn.Controls.Add(this.ioIn13);
+            this.groupBoxIOIn.Controls.Add(this.ioIn9);
+            this.groupBoxIOIn.Controls.Add(this.ioIn8);
+            this.groupBoxIOIn.Controls.Add(this.ioIn7);
+            this.groupBoxIOIn.Controls.Add(this.ioIn12);
+            this.groupBoxIOIn.Controls.Add(this.ioIn11);
+            this.groupBoxIOIn.Controls.Add(this.ioIn10);
+            this.groupBoxIOIn.Controls.Add(this.ioIn6);
+            this.groupBoxIOIn.Controls.Add(this.ioIn5);
+            this.groupBoxIOIn.Controls.Add(this.ioIn1);
+            this.groupBoxIOIn.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.groupBoxIOIn.Location = new System.Drawing.Point(3, 3);
+            this.groupBoxIOIn.Name = "groupBoxIOIn";
+            this.groupBoxIOIn.Size = new System.Drawing.Size(574, 138);
+            this.groupBoxIOIn.TabIndex = 7;
+            this.groupBoxIOIn.TabStop = false;
+            this.groupBoxIOIn.Text = "鏁板瓧閲忚緭鍏�";
             // 
-            // groupBox6
+            // ioIn4
             // 
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl27);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl28);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl29);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl30);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl31);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl32);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl33);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl34);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl35);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl36);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl37);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl38);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl39);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl40);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl41);
-            this.groupBox6.Controls.Add(this.ioIndicatorCtrl42);
-            this.groupBox6.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.groupBox6.Location = new System.Drawing.Point(3, 147);
-            this.groupBox6.Name = "groupBox6";
-            this.groupBox6.Size = new System.Drawing.Size(574, 138);
-            this.groupBox6.TabIndex = 8;
-            this.groupBox6.TabStop = false;
-            this.groupBox6.Text = "鏁板瓧閲忚緭鍑�";
+            this.ioIn4.Desc = "IN 4";
+            this.ioIn4.IsOn = null;
+            this.ioIn4.Location = new System.Drawing.Point(477, 18);
+            this.ioIn4.Name = "ioIn4";
+            this.ioIn4.Size = new System.Drawing.Size(90, 24);
+            this.ioIn4.TabIndex = 4;
             // 
-            // ioIndicatorCtrl27
+            // ioIn3
             // 
-            this.ioIndicatorCtrl27.Desc = "OUT 4";
-            this.ioIndicatorCtrl27.IsOn = null;
-            this.ioIndicatorCtrl27.Location = new System.Drawing.Point(477, 18);
-            this.ioIndicatorCtrl27.Name = "ioIndicatorCtrl27";
-            this.ioIndicatorCtrl27.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl27.TabIndex = 4;
+            this.ioIn3.Desc = "IN 3";
+            this.ioIn3.IsOn = null;
+            this.ioIn3.Location = new System.Drawing.Point(306, 18);
+            this.ioIn3.Name = "ioIn3";
+            this.ioIn3.Size = new System.Drawing.Size(90, 24);
+            this.ioIn3.TabIndex = 4;
             // 
-            // ioIndicatorCtrl28
+            // ioIn2
             // 
-            this.ioIndicatorCtrl28.Desc = "OUT 3";
-            this.ioIndicatorCtrl28.IsOn = null;
-            this.ioIndicatorCtrl28.Location = new System.Drawing.Point(306, 18);
-            this.ioIndicatorCtrl28.Name = "ioIndicatorCtrl28";
-            this.ioIndicatorCtrl28.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl28.TabIndex = 4;
+            this.ioIn2.Desc = "IN 2";
+            this.ioIn2.IsOn = null;
+            this.ioIn2.Location = new System.Drawing.Point(145, 18);
+            this.ioIn2.Name = "ioIn2";
+            this.ioIn2.Size = new System.Drawing.Size(90, 24);
+            this.ioIn2.TabIndex = 4;
             // 
-            // ioIndicatorCtrl29
+            // ioIn16
             // 
-            this.ioIndicatorCtrl29.Desc = "OUT 2";
-            this.ioIndicatorCtrl29.IsOn = null;
-            this.ioIndicatorCtrl29.Location = new System.Drawing.Point(145, 18);
-            this.ioIndicatorCtrl29.Name = "ioIndicatorCtrl29";
-            this.ioIndicatorCtrl29.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl29.TabIndex = 4;
+            this.ioIn16.Desc = "IN 16";
+            this.ioIn16.IsOn = null;
+            this.ioIn16.Location = new System.Drawing.Point(477, 107);
+            this.ioIn16.Name = "ioIn16";
+            this.ioIn16.Size = new System.Drawing.Size(90, 24);
+            this.ioIn16.TabIndex = 4;
             // 
-            // ioIndicatorCtrl30
+            // ioIn15
             // 
-            this.ioIndicatorCtrl30.Desc = "OUT 16";
-            this.ioIndicatorCtrl30.IsOn = null;
-            this.ioIndicatorCtrl30.Location = new System.Drawing.Point(477, 107);
-            this.ioIndicatorCtrl30.Name = "ioIndicatorCtrl30";
-            this.ioIndicatorCtrl30.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl30.TabIndex = 4;
+            this.ioIn15.Desc = "IN 15";
+            this.ioIn15.IsOn = null;
+            this.ioIn15.Location = new System.Drawing.Point(306, 107);
+            this.ioIn15.Name = "ioIn15";
+            this.ioIn15.Size = new System.Drawing.Size(90, 24);
+            this.ioIn15.TabIndex = 4;
             // 
-            // ioIndicatorCtrl31
+            // ioIn14
             // 
-            this.ioIndicatorCtrl31.Desc = "OUT 15";
-            this.ioIndicatorCtrl31.IsOn = null;
-            this.ioIndicatorCtrl31.Location = new System.Drawing.Point(306, 107);
-            this.ioIndicatorCtrl31.Name = "ioIndicatorCtrl31";
-            this.ioIndicatorCtrl31.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl31.TabIndex = 4;
+            this.ioIn14.Desc = "IN 14";
+            this.ioIn14.IsOn = null;
+            this.ioIn14.Location = new System.Drawing.Point(145, 107);
+            this.ioIn14.Name = "ioIn14";
+            this.ioIn14.Size = new System.Drawing.Size(90, 24);
+            this.ioIn14.TabIndex = 4;
             // 
-            // ioIndicatorCtrl32
+            // ioIn13
             // 
-            this.ioIndicatorCtrl32.Desc = "OUT 14";
-            this.ioIndicatorCtrl32.IsOn = null;
-            this.ioIndicatorCtrl32.Location = new System.Drawing.Point(145, 107);
-            this.ioIndicatorCtrl32.Name = "ioIndicatorCtrl32";
-            this.ioIndicatorCtrl32.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl32.TabIndex = 4;
+            this.ioIn13.Desc = "IN 13";
+            this.ioIn13.IsOn = null;
+            this.ioIn13.Location = new System.Drawing.Point(9, 106);
+            this.ioIn13.Name = "ioIn13";
+            this.ioIn13.Size = new System.Drawing.Size(90, 24);
+            this.ioIn13.TabIndex = 4;
             // 
-            // ioIndicatorCtrl33
+            // ioIn9
             // 
-            this.ioIndicatorCtrl33.Desc = "OUT 13";
-            this.ioIndicatorCtrl33.IsOn = null;
-            this.ioIndicatorCtrl33.Location = new System.Drawing.Point(9, 106);
-            this.ioIndicatorCtrl33.Name = "ioIndicatorCtrl33";
-            this.ioIndicatorCtrl33.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl33.TabIndex = 4;
+            this.ioIn9.Desc = "IN 9";
+            this.ioIn9.IsOn = null;
+            this.ioIn9.Location = new System.Drawing.Point(9, 77);
+            this.ioIn9.Name = "ioIn9";
+            this.ioIn9.Size = new System.Drawing.Size(90, 24);
+            this.ioIn9.TabIndex = 4;
             // 
-            // ioIndicatorCtrl34
+            // ioIn8
             // 
-            this.ioIndicatorCtrl34.Desc = "OUT 9";
-            this.ioIndicatorCtrl34.IsOn = null;
-            this.ioIndicatorCtrl34.Location = new System.Drawing.Point(9, 77);
-            this.ioIndicatorCtrl34.Name = "ioIndicatorCtrl34";
-            this.ioIndicatorCtrl34.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl34.TabIndex = 4;
+            this.ioIn8.Desc = "IN 8";
+            this.ioIn8.IsOn = null;
+            this.ioIn8.Location = new System.Drawing.Point(477, 48);
+            this.ioIn8.Name = "ioIn8";
+            this.ioIn8.Size = new System.Drawing.Size(90, 24);
+            this.ioIn8.TabIndex = 4;
             // 
-            // ioIndicatorCtrl35
+            // ioIn7
             // 
-            this.ioIndicatorCtrl35.Desc = "OUT 8";
-            this.ioIndicatorCtrl35.IsOn = null;
-            this.ioIndicatorCtrl35.Location = new System.Drawing.Point(477, 48);
-            this.ioIndicatorCtrl35.Name = "ioIndicatorCtrl35";
-            this.ioIndicatorCtrl35.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl35.TabIndex = 4;
+            this.ioIn7.Desc = "IN 7";
+            this.ioIn7.IsOn = null;
+            this.ioIn7.Location = new System.Drawing.Point(306, 48);
+            this.ioIn7.Name = "ioIn7";
+            this.ioIn7.Size = new System.Drawing.Size(90, 24);
+            this.ioIn7.TabIndex = 4;
             // 
-            // ioIndicatorCtrl36
+            // ioIn12
             // 
-            this.ioIndicatorCtrl36.Desc = "OUT 7";
-            this.ioIndicatorCtrl36.IsOn = null;
-            this.ioIndicatorCtrl36.Location = new System.Drawing.Point(306, 48);
-            this.ioIndicatorCtrl36.Name = "ioIndicatorCtrl36";
-            this.ioIndicatorCtrl36.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl36.TabIndex = 4;
+            this.ioIn12.Desc = "IN 12";
+            this.ioIn12.IsOn = null;
+            this.ioIn12.Location = new System.Drawing.Point(477, 77);
+            this.ioIn12.Name = "ioIn12";
+            this.ioIn12.Size = new System.Drawing.Size(90, 24);
+            this.ioIn12.TabIndex = 4;
             // 
-            // ioIndicatorCtrl37
+            // ioIn11
             // 
-            this.ioIndicatorCtrl37.Desc = "OUT 12";
-            this.ioIndicatorCtrl37.IsOn = null;
-            this.ioIndicatorCtrl37.Location = new System.Drawing.Point(477, 77);
-            this.ioIndicatorCtrl37.Name = "ioIndicatorCtrl37";
-            this.ioIndicatorCtrl37.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl37.TabIndex = 4;
+            this.ioIn11.Desc = "IN 11";
+            this.ioIn11.IsOn = null;
+            this.ioIn11.Location = new System.Drawing.Point(306, 77);
+            this.ioIn11.Name = "ioIn11";
+            this.ioIn11.Size = new System.Drawing.Size(90, 24);
+            this.ioIn11.TabIndex = 4;
             // 
-            // ioIndicatorCtrl38
+            // ioIn10
             // 
-            this.ioIndicatorCtrl38.Desc = "OUT 11";
-            this.ioIndicatorCtrl38.IsOn = null;
-            this.ioIndicatorCtrl38.Location = new System.Drawing.Point(306, 77);
-            this.ioIndicatorCtrl38.Name = "ioIndicatorCtrl38";
-            this.ioIndicatorCtrl38.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl38.TabIndex = 4;
+            this.ioIn10.Desc = "IN 10";
+            this.ioIn10.IsOn = null;
+            this.ioIn10.Location = new System.Drawing.Point(145, 77);
+            this.ioIn10.Name = "ioIn10";
+            this.ioIn10.Size = new System.Drawing.Size(90, 24);
+            this.ioIn10.TabIndex = 4;
             // 
-            // ioIndicatorCtrl39
+            // ioIn6
             // 
-            this.ioIndicatorCtrl39.Desc = "OUT 10";
-            this.ioIndicatorCtrl39.IsOn = null;
-            this.ioIndicatorCtrl39.Location = new System.Drawing.Point(145, 77);
-            this.ioIndicatorCtrl39.Name = "ioIndicatorCtrl39";
-            this.ioIndicatorCtrl39.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl39.TabIndex = 4;
+            this.ioIn6.Desc = "IN 6";
+            this.ioIn6.IsOn = null;
+            this.ioIn6.Location = new System.Drawing.Point(145, 48);
+            this.ioIn6.Name = "ioIn6";
+            this.ioIn6.Size = new System.Drawing.Size(90, 24);
+            this.ioIn6.TabIndex = 4;
             // 
-            // ioIndicatorCtrl40
+            // ioIn5
             // 
-            this.ioIndicatorCtrl40.Desc = "OUT 6";
-            this.ioIndicatorCtrl40.IsOn = null;
-            this.ioIndicatorCtrl40.Location = new System.Drawing.Point(145, 48);
-            this.ioIndicatorCtrl40.Name = "ioIndicatorCtrl40";
-            this.ioIndicatorCtrl40.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl40.TabIndex = 4;
+            this.ioIn5.Desc = "IN 5";
+            this.ioIn5.IsOn = null;
+            this.ioIn5.Location = new System.Drawing.Point(9, 48);
+            this.ioIn5.Name = "ioIn5";
+            this.ioIn5.Size = new System.Drawing.Size(90, 24);
+            this.ioIn5.TabIndex = 4;
             // 
-            // ioIndicatorCtrl41
+            // ioIn1
             // 
-            this.ioIndicatorCtrl41.Desc = "OUT 5";
-            this.ioIndicatorCtrl41.IsOn = null;
-            this.ioIndicatorCtrl41.Location = new System.Drawing.Point(9, 48);
-            this.ioIndicatorCtrl41.Name = "ioIndicatorCtrl41";
-            this.ioIndicatorCtrl41.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl41.TabIndex = 4;
+            this.ioIn1.Desc = "IN 1";
+            this.ioIn1.IsOn = null;
+            this.ioIn1.Location = new System.Drawing.Point(9, 18);
+            this.ioIn1.Name = "ioIn1";
+            this.ioIn1.Size = new System.Drawing.Size(90, 24);
+            this.ioIn1.TabIndex = 4;
             // 
-            // ioIndicatorCtrl42
+            // timer1
             // 
-            this.ioIndicatorCtrl42.Desc = "OUT 1";
-            this.ioIndicatorCtrl42.IsOn = null;
-            this.ioIndicatorCtrl42.Location = new System.Drawing.Point(9, 18);
-            this.ioIndicatorCtrl42.Name = "ioIndicatorCtrl42";
-            this.ioIndicatorCtrl42.Size = new System.Drawing.Size(90, 24);
-            this.ioIndicatorCtrl42.TabIndex = 4;
+            this.timer1.Enabled = true;
+            this.timer1.Interval = 200;
+            this.timer1.Tick += new System.EventHandler(this.RefreshIOStatus);
             // 
             // CtrlMotionCardIOStatus
             // 
@@ -431,8 +439,8 @@
             this.Name = "CtrlMotionCardIOStatus";
             this.Size = new System.Drawing.Size(580, 288);
             this.tableLayoutPanel1.ResumeLayout(false);
-            this.groupBox5.ResumeLayout(false);
-            this.groupBox6.ResumeLayout(false);
+            this.groupBoxIOOut.ResumeLayout(false);
+            this.groupBoxIOIn.ResumeLayout(false);
             this.ResumeLayout(false);
 
         }
@@ -440,39 +448,40 @@
         #endregion
 
         private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
-        private System.Windows.Forms.GroupBox groupBox5;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl14;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl13;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl12;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl26;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl25;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl24;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl17;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl16;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl20;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl19;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl23;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl22;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl21;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl18;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl15;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl11;
-        private System.Windows.Forms.GroupBox groupBox6;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl27;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl28;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl29;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl30;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl31;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl32;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl33;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl34;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl35;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl36;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl37;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl38;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl39;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl40;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl41;
-        private Model.Winform.IOIndicatorCtrl ioIndicatorCtrl42;
+        private System.Windows.Forms.GroupBox groupBoxIOIn;
+        private Model.Winform.IOIndicatorCtrl ioIn4;
+        private Model.Winform.IOIndicatorCtrl ioIn3;
+        private Model.Winform.IOIndicatorCtrl ioIn2;
+        private Model.Winform.IOIndicatorCtrl ioIn16;
+        private Model.Winform.IOIndicatorCtrl ioIn15;
+        private Model.Winform.IOIndicatorCtrl ioIn14;
+        private Model.Winform.IOIndicatorCtrl ioIn13;
+        private Model.Winform.IOIndicatorCtrl ioIn9;
+        private Model.Winform.IOIndicatorCtrl ioIn8;
+        private Model.Winform.IOIndicatorCtrl ioIn7;
+        private Model.Winform.IOIndicatorCtrl ioIn12;
+        private Model.Winform.IOIndicatorCtrl ioIn11;
+        private Model.Winform.IOIndicatorCtrl ioIn10;
+        private Model.Winform.IOIndicatorCtrl ioIn6;
+        private Model.Winform.IOIndicatorCtrl ioIn5;
+        private Model.Winform.IOIndicatorCtrl ioIn1;
+        private System.Windows.Forms.GroupBox groupBoxIOOut;
+        private Model.Winform.IOIndicatorCtrl ioOut4;
+        private Model.Winform.IOIndicatorCtrl ioOut3;
+        private Model.Winform.IOIndicatorCtrl ioOut2;
+        private Model.Winform.IOIndicatorCtrl ioOut16;
+        private Model.Winform.IOIndicatorCtrl ioOut15;
+        private Model.Winform.IOIndicatorCtrl ioOut14;
+        private Model.Winform.IOIndicatorCtrl ioOut13;
+        private Model.Winform.IOIndicatorCtrl ioOut9;
+        private Model.Winform.IOIndicatorCtrl ioOut8;
+        private Model.Winform.IOIndicatorCtrl ioOut7;
+        private Model.Winform.IOIndicatorCtrl ioOut12;
+        private Model.Winform.IOIndicatorCtrl ioOut11;
+        private Model.Winform.IOIndicatorCtrl ioOut10;
+        private Model.Winform.IOIndicatorCtrl ioOut6;
+        private Model.Winform.IOIndicatorCtrl ioOut5;
+        private Model.Winform.IOIndicatorCtrl ioOut1;
+        private System.Windows.Forms.Timer timer1;
     }
 }
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs
index b136bdc..13762cf 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.cs
@@ -7,14 +7,51 @@
 using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;
+using Bro.Common.Model;
+using Bro.UI.Model.Winform;
+using static Bro.Common.Helper.EnumHelper;
 
 namespace Bro.UI.Device.Winform
 {
     public partial class CtrlMotionCardIOStatus : UserControl
     {
+        public List<IOItem> _monitorValues { get; set; }
+
         public CtrlMotionCardIOStatus()
         {
             InitializeComponent();
         }
+
+
+        public CtrlMotionCardIOStatus(List<IOItem> monitorValues)
+        {
+            InitializeComponent();
+            _monitorValues = monitorValues;
+        }
+
+        private void RefreshIOStatus(object sender, EventArgs e)
+        {
+            foreach (var ioItem in _monitorValues)
+            {
+                if (ioItem.IOType == Common.Helper.EnumHelper.IOType.INPUT)
+                {
+                    var ioInArray = groupBoxIOIn.Controls.Find("ioIn" + ioItem.IONum, false);
+                    if (ioInArray != null && ioInArray.Length == 1)
+                    {
+                        var ioIn = ioInArray[0] as IOIndicatorCtrl;
+                        ioIn.IsOn = ioItem.Value == IOValue.TRUE;
+                    }
+                }
+                else
+                {
+                    var ioOutArray = groupBoxIOOut.Controls.Find("ioOut" + ioItem.IONum, false);
+                    if (ioOutArray != null && ioOutArray.Length == 1)
+                    {
+                        var ioOut = ioOutArray[0] as IOIndicatorCtrl;
+                        ioOut.IsOn = ioItem.Value == IOValue.TRUE;
+                    }
+                }
+            }
+        }
     }
 }
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.resx b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.resx
index 1af7de1..1f666f2 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.resx
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.resx
@@ -117,4 +117,7 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
+  <metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
 </root>
\ No newline at end of file
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.Designer.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.Designer.cs
index dc93c7a..17368a9 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.Designer.cs
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.Designer.cs
@@ -33,6 +33,7 @@
             this.listBoxMsg = new System.Windows.Forms.ListBox();
             this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
             this.buttonMotionCardOperation = new System.Windows.Forms.Button();
+            this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel();
             this.tableLayoutPanel1.SuspendLayout();
             this.groupBox2.SuspendLayout();
             this.SuspendLayout();
@@ -44,6 +45,7 @@
             this.tableLayoutPanel1.Controls.Add(this.groupBox2, 0, 3);
             this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel1, 0, 1);
             this.tableLayoutPanel1.Controls.Add(this.buttonMotionCardOperation, 0, 0);
+            this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel2, 0, 2);
             this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
             this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
             this.tableLayoutPanel1.Name = "tableLayoutPanel1";
@@ -52,6 +54,7 @@
             this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
             this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
             this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 110F));
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
             this.tableLayoutPanel1.Size = new System.Drawing.Size(615, 587);
             this.tableLayoutPanel1.TabIndex = 5;
             // 
@@ -95,6 +98,14 @@
             this.buttonMotionCardOperation.UseVisualStyleBackColor = true;
             this.buttonMotionCardOperation.Click += new System.EventHandler(this.buttonMotionCardOperation_Click);
             // 
+            // flowLayoutPanel2
+            // 
+            this.flowLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.flowLayoutPanel2.Location = new System.Drawing.Point(3, 256);
+            this.flowLayoutPanel2.Name = "flowLayoutPanel2";
+            this.flowLayoutPanel2.Size = new System.Drawing.Size(609, 217);
+            this.flowLayoutPanel2.TabIndex = 13;
+            // 
             // CtrlMotionCardRunBase
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
@@ -114,5 +125,6 @@
         private System.Windows.Forms.ListBox listBoxMsg;
         private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
         private System.Windows.Forms.Button buttonMotionCardOperation;
+        private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2;
     }
 }
diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.cs
index 0499bf4..1583630 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.cs
+++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.cs
@@ -25,18 +25,6 @@
             Device = device;
 
             InitialLayout();
-
-            MotionCard.OnMonitorInvoke += MotionCard_OnMonitorInvoke;
-            //CvImage = new Canvas();
-            //CvImage.IsShowElementList = false;
-            //CvImage.IsShowROITool = false;
-            //CvImage.Dock = DockStyle.Fill;
-            //Controls.Add(CvImage);
-            //Camera.OnImageUpdated += Camera_UpdateShowImage;
-            //Camera.OnElementsUpdated += Camera_OnElementsUpdated;
-            //Camera.OnCameraOpModeChanged += Camera_OnCameraOpModeChanged;
-
-            //InitialToolBarVisible(); 
         }
 
         private void MotionCard_OnMonitorInvoke(DateTime arg1, string arg2, IDevice arg3, IMonitorSet arg4)
@@ -46,7 +34,19 @@
 
         private void InitialLayout()
         {
+            foreach (var axisConfig in MotionCard.IConfig.AxisSettings.FindAll(u => u.IsAxisEnabled))
+            {
+                var axisMovingStatus = MotionCard.AxisMovingOptionValues.FirstOrDefault(u=>u.AxisIndex== axisConfig.AxisIndex);
+                if (axisMovingStatus!=null)
+                {
+                    CtrlMotionCardAxisStatus ctrlMotionCardAxisStatus = new CtrlMotionCardAxisStatus(axisMovingStatus);
+                    ctrlMotionCardAxisStatus.Dock = DockStyle.Fill;
+                    flowLayoutPanel1.Controls.Add(ctrlMotionCardAxisStatus);
+                }
+            }
 
+            CtrlMotionCardIOStatus ctrlMotionCardIOStatus = new CtrlMotionCardIOStatus();
+            flowLayoutPanel2.Controls.Add(ctrlMotionCardIOStatus);
         }
 
         public IDevice Device { get; set; }
@@ -61,5 +61,6 @@
             FrmMotionCardOperationBase motionCardOperationBase = new FrmMotionCardOperationBase(Device);
             motionCardOperationBase.Show();
         }
+
     }
 }
diff --git a/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.Designer.cs b/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.Designer.cs
index fd5bb86..ce4360e 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.Designer.cs
+++ b/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.Designer.cs
@@ -32,6 +32,7 @@
             this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
             this.tabControl1 = new System.Windows.Forms.TabControl();
             this.tabPage1 = new System.Windows.Forms.TabPage();
+            this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
             this.tabPage2 = new System.Windows.Forms.TabPage();
             this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel();
             this.groupBoxPara = new System.Windows.Forms.GroupBox();
@@ -45,6 +46,7 @@
             this.buttonPositionReset = new System.Windows.Forms.Button();
             this.tableLayoutPanel1.SuspendLayout();
             this.tabControl1.SuspendLayout();
+            this.tabPage1.SuspendLayout();
             this.tabPage2.SuspendLayout();
             this.tableLayoutPanel3.SuspendLayout();
             this.groupBoxPara.SuspendLayout();
@@ -77,6 +79,7 @@
             // 
             // tabPage1
             // 
+            this.tabPage1.Controls.Add(this.flowLayoutPanel1);
             this.tabPage1.Location = new System.Drawing.Point(4, 22);
             this.tabPage1.Name = "tabPage1";
             this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
@@ -84,6 +87,14 @@
             this.tabPage1.TabIndex = 0;
             this.tabPage1.Text = "蹇嵎鎿嶄綔";
             this.tabPage1.UseVisualStyleBackColor = true;
+            // 
+            // flowLayoutPanel1
+            // 
+            this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.flowLayoutPanel1.Location = new System.Drawing.Point(3, 3);
+            this.flowLayoutPanel1.Name = "flowLayoutPanel1";
+            this.flowLayoutPanel1.Size = new System.Drawing.Size(464, 643);
+            this.flowLayoutPanel1.TabIndex = 0;
             // 
             // tabPage2
             // 
@@ -163,6 +174,7 @@
             this.btnStart.Text = "  鍚�  鍔�";
             this.btnStart.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
             this.btnStart.UseVisualStyleBackColor = true;
+            this.btnStart.Click += new System.EventHandler(this.btnStart_Click);
             // 
             // buttonClearStatus
             // 
@@ -172,6 +184,7 @@
             this.buttonClearStatus.TabIndex = 4;
             this.buttonClearStatus.Text = "娓呴櫎鐘舵��";
             this.buttonClearStatus.UseVisualStyleBackColor = true;
+            this.buttonClearStatus.Click += new System.EventHandler(this.buttonClearStatus_Click);
             // 
             // buttonEmergencyStop
             // 
@@ -181,6 +194,7 @@
             this.buttonEmergencyStop.TabIndex = 4;
             this.buttonEmergencyStop.Text = "绱ф�ュ仠姝�";
             this.buttonEmergencyStop.UseVisualStyleBackColor = true;
+            this.buttonEmergencyStop.Click += new System.EventHandler(this.buttonEmergencyStop_Click);
             // 
             // buttonServoEnable
             // 
@@ -190,6 +204,7 @@
             this.buttonServoEnable.TabIndex = 4;
             this.buttonServoEnable.Text = "浼烘湇浣胯兘";
             this.buttonServoEnable.UseVisualStyleBackColor = true;
+            this.buttonServoEnable.Click += new System.EventHandler(this.buttonServoEnable_Click);
             // 
             // buttonSmoothStop
             // 
@@ -199,6 +214,7 @@
             this.buttonSmoothStop.TabIndex = 4;
             this.buttonSmoothStop.Text = "骞虫粦鍋滄";
             this.buttonSmoothStop.UseVisualStyleBackColor = true;
+            this.buttonSmoothStop.Click += new System.EventHandler(this.buttonSmoothStop_Click);
             // 
             // buttonPositionReset
             // 
@@ -208,6 +224,7 @@
             this.buttonPositionReset.TabIndex = 4;
             this.buttonPositionReset.Text = "浣嶇疆娓呴浂";
             this.buttonPositionReset.UseVisualStyleBackColor = true;
+            this.buttonPositionReset.Click += new System.EventHandler(this.buttonPositionReset_Click);
             // 
             // FrmMotionCardOperationBase
             // 
@@ -218,6 +235,7 @@
             this.Name = "FrmMotionCardOperationBase";
             this.tableLayoutPanel1.ResumeLayout(false);
             this.tabControl1.ResumeLayout(false);
+            this.tabPage1.ResumeLayout(false);
             this.tabPage2.ResumeLayout(false);
             this.tableLayoutPanel3.ResumeLayout(false);
             this.groupBoxPara.ResumeLayout(false);
@@ -243,5 +261,6 @@
         private System.Windows.Forms.Button buttonPositionReset;
         private System.Windows.Forms.GroupBox groupBoxPara;
         private System.Windows.Forms.PropertyGrid propGrid;
+        private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
     }
 }
diff --git a/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.cs b/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.cs
index cfe0328..fd2a2f0 100644
--- a/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.cs
+++ b/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.cs
@@ -3,6 +3,7 @@
 using Bro.Common.Interface;
 using Bro.Common.Model;
 using System;
+using System.Linq;
 using System.Windows.Forms;
 
 namespace Bro.UI.Device.Winform
@@ -32,38 +33,20 @@
             InitializeComponent();
 
             Device = device;
-            MotionCardOperationConfig = new MotionCardOperationConfigBase();
-
+            InitialLayout();
         }
-
-        MovingOption movingConfig = null;
-
-        #region ILogoutput
-        public Action<LogMsg> OnLogMsgOutput { get; set; }
-
-        public void LogDisplay(LogMsg msg)
+        private void InitialLayout()
         {
-        }
-        #endregion
-
-
-        private void RadioButton_CheckedChanged(object sender, EventArgs e)
-        {
-            //鍔犺浇瀵瑰簲杩愬姩鐨� movingConfig
-            //if (radioP2P.Checked)
-            //{
-            //    movingConfig = MotionCardOperationConfig.MovingOps.FirstOrDefault(u => u.MoveMode == EnumHelper.MotorMoveMode.Normal);
-            //}
-            //else if (radioJog.Checked)
-            //{
-            //    movingConfig = MotionCardOperationConfig.MovingOps.FirstOrDefault(u => u.MoveMode == EnumHelper.MotorMoveMode.Jog);
-            //}
-            //else if (radioGoHome.Checked)
-            //{
-            //    movingConfig = MotionCardOperationConfig.MovingOps.FirstOrDefault(u => u.MoveMode == EnumHelper.MotorMoveMode.FindOri);
-            //}
-
-            propGrid.SelectedObject = movingConfig;
+            foreach (var axisConfig in MotionCard.IConfig.AxisSettings.FindAll(u => u.IsAxisEnabled))
+            {
+                var axisMovingStatus = MotionCard.AxisMovingOptionValues.FirstOrDefault(u => u.AxisIndex == axisConfig.AxisIndex);
+                if (axisMovingStatus != null)
+                {
+                    CtrlMotionCardAxisOperation axisOperation = new CtrlMotionCardAxisOperation(axisMovingStatus.AxisIndex, axisMovingStatus.AxisName);
+                    axisOperation.Dock = DockStyle.Fill;
+                    flowLayoutPanel1.Controls.Add(axisOperation);
+                }
+            }
         }
 
         private void buttonClearStatus_Click(object sender, EventArgs e)

--
Gitblit v1.8.0