diff --git a/Cs_HMI/Project/Device/Xbee.cs b/Cs_HMI/Project/Device/Xbee.cs index 1bee693..bcd5993 100644 --- a/Cs_HMI/Project/Device/Xbee.cs +++ b/Cs_HMI/Project/Device/Xbee.cs @@ -240,17 +240,17 @@ namespace Project.Device data[5] = (byte)((VAR.BOOL[eVarBool.FLAG_CHARGEONA] || VAR.BOOL[eVarBool.FLAG_CHARGEONM]) ? 1 : 0); // CartSt - if (PUB.AGV.signal.cart_detect1 && PUB.AGV.signal.cart_detect2) + if (PUB.AGV.signal2.cart_detect1 && PUB.AGV.signal2.cart_detect2) data[6] = 1; // 센서두개가 모두 감지되는 경우 - else if (PUB.AGV.signal.cart_detect1 == false && PUB.AGV.signal.cart_detect2 == false) + else if (PUB.AGV.signal2.cart_detect1 == false && PUB.AGV.signal2.cart_detect2 == false) data[6] = 0; // 센서두개가 모두 감지되지 않는 경우 else data[6] = 2; // 센서하나만 감지되는 경우 // LiftSt - if (PUB.AGV.signal.lift_up) + if (PUB.AGV.signal1.lift_up) data[7] = 1; // 위로 올라가는 경우 - else if (PUB.AGV.signal.lift_down) + else if (PUB.AGV.signal1.lift_down) data[7] = 0; // 아래로 내려가는 경우 else data[7] = 2; // unknown (기본값) diff --git a/Cs_HMI/Project/StateMachine/_AGV.cs b/Cs_HMI/Project/StateMachine/_AGV.cs index 9667ecf..f56ed8d 100644 --- a/Cs_HMI/Project/StateMachine/_AGV.cs +++ b/Cs_HMI/Project/StateMachine/_AGV.cs @@ -53,7 +53,7 @@ namespace Project var agv_chg = PUB.AGV.system1.Battery_charging; var agv_stp = PUB.AGV.system1.agv_stop; var agv_run = PUB.AGV.system1.agv_run; - var agv_mrk = PUB.AGV.signal.mark_sensor; + var agv_mrk = PUB.AGV.signal1.mark_sensor; //if (chg_run && PUB.AGV.system1.agv_run) PUB.Speak("이동을 시작 합니다"); @@ -129,10 +129,10 @@ namespace Project } //마크센서 상태가 변경이 되었다면 - if (VAR.BOOL[eVarBool.MARK_SENSOR] != PUB.AGV.signal.mark_sensor) + if (VAR.BOOL[eVarBool.MARK_SENSOR] != PUB.AGV.signal1.mark_sensor) { - PUB.logagv.Add($"MARK_SENSOR 변경({PUB.AGV.signal.mark_sensor})"); - VAR.BOOL[eVarBool.MARK_SENSOR] = PUB.AGV.signal.mark_sensor; + PUB.logagv.Add($"MARK_SENSOR 변경({PUB.AGV.signal1.mark_sensor})"); + VAR.BOOL[eVarBool.MARK_SENSOR] = PUB.AGV.signal1.mark_sensor; //AGV가 멈췄고 마크센서가 ON되었다면 마지막 RFID 위치가 확정된경우이다 if (agv_stp && VAR.BOOL[eVarBool.MARK_SENSOR]) diff --git a/Cs_HMI/Project/StateMachine/_TMDisplay.cs b/Cs_HMI/Project/StateMachine/_TMDisplay.cs index 68a35ac..f6459c6 100644 --- a/Cs_HMI/Project/StateMachine/_TMDisplay.cs +++ b/Cs_HMI/Project/StateMachine/_TMDisplay.cs @@ -649,7 +649,7 @@ namespace Project stMsg = Lang.전방에물체가감지되었습니다; //else if (PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_EMG)) // stMsg = Lang.비상정지신호가감지되었습니다; - else if (PUB.AGV.signal.front_gate_out == true) + else if (PUB.AGV.signal1.front_gate_out == true) stMsg = Lang.선로를이탈했습니다; else if (PUB.AGV.error.runerror_by_no_magent_line) stMsg = "마그네틱 라인을 벗어났습니다"; diff --git a/Cs_HMI/Project/ViewForm/fAgv.Designer.cs b/Cs_HMI/Project/ViewForm/fAgv.Designer.cs index 526a8e8..890059f 100644 --- a/Cs_HMI/Project/ViewForm/fAgv.Designer.cs +++ b/Cs_HMI/Project/ViewForm/fAgv.Designer.cs @@ -30,17 +30,18 @@ { this.components = new System.ComponentModel.Container(); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.richTextBox1 = new System.Windows.Forms.RichTextBox(); - this.richTextBox2 = new System.Windows.Forms.RichTextBox(); - this.richTextBox3 = new System.Windows.Forms.RichTextBox(); - this.richTextBox4 = new System.Windows.Forms.RichTextBox(); + this.rtSystem0 = new System.Windows.Forms.RichTextBox(); + this.rtSystem1 = new System.Windows.Forms.RichTextBox(); + this.rtSignal1 = new System.Windows.Forms.RichTextBox(); + this.rtError = new System.Windows.Forms.RichTextBox(); this.label1 = new System.Windows.Forms.Label(); this.timer1 = new System.Windows.Forms.Timer(this.components); this.panel1 = new System.Windows.Forms.Panel(); - this.lbIP = new System.Windows.Forms.Label(); this.button7 = new System.Windows.Forms.Button(); this.button6 = new System.Windows.Forms.Button(); this.button5 = new System.Windows.Forms.Button(); + this.button17 = new System.Windows.Forms.Button(); + this.lbIP = new System.Windows.Forms.Label(); this.button3 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button(); this.button1 = new System.Windows.Forms.Button(); @@ -56,7 +57,8 @@ this.button13 = new System.Windows.Forms.Button(); this.button10 = new System.Windows.Forms.Button(); this.button16 = new System.Windows.Forms.Button(); - this.button17 = new System.Windows.Forms.Button(); + this.rtData = new System.Windows.Forms.RichTextBox(); + this.rtSignal2 = new System.Windows.Forms.RichTextBox(); this.tableLayoutPanel1.SuspendLayout(); this.panel1.SuspendLayout(); this.panel2.SuspendLayout(); @@ -69,11 +71,13 @@ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tableLayoutPanel1.Controls.Add(this.richTextBox1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.richTextBox2, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.richTextBox3, 2, 0); - this.tableLayoutPanel1.Controls.Add(this.richTextBox4, 3, 0); + this.tableLayoutPanel1.Controls.Add(this.rtSignal2, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.rtSystem0, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.rtSystem1, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.rtSignal1, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.rtError, 3, 0); this.tableLayoutPanel1.Controls.Add(this.label1, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.rtData, 3, 1); this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; @@ -84,45 +88,47 @@ this.tableLayoutPanel1.Size = new System.Drawing.Size(1050, 461); this.tableLayoutPanel1.TabIndex = 6; // - // richTextBox1 + // rtSystem0 // - this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.richTextBox1.Location = new System.Drawing.Point(3, 3); - this.richTextBox1.Name = "richTextBox1"; - this.tableLayoutPanel1.SetRowSpan(this.richTextBox1, 2); - this.richTextBox1.Size = new System.Drawing.Size(256, 404); - this.richTextBox1.TabIndex = 1; - this.richTextBox1.Text = ""; + this.rtSystem0.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtSystem0.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); + this.rtSystem0.Location = new System.Drawing.Point(3, 3); + this.rtSystem0.Name = "rtSystem0"; + this.tableLayoutPanel1.SetRowSpan(this.rtSystem0, 2); + this.rtSystem0.Size = new System.Drawing.Size(256, 404); + this.rtSystem0.TabIndex = 1; + this.rtSystem0.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n"; // - // richTextBox2 + // rtSystem1 // - this.richTextBox2.Dock = System.Windows.Forms.DockStyle.Fill; - this.richTextBox2.Location = new System.Drawing.Point(265, 3); - this.richTextBox2.Name = "richTextBox2"; - this.tableLayoutPanel1.SetRowSpan(this.richTextBox2, 2); - this.richTextBox2.Size = new System.Drawing.Size(256, 404); - this.richTextBox2.TabIndex = 1; - this.richTextBox2.Text = ""; + this.rtSystem1.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtSystem1.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); + this.rtSystem1.Location = new System.Drawing.Point(265, 3); + this.rtSystem1.Name = "rtSystem1"; + this.tableLayoutPanel1.SetRowSpan(this.rtSystem1, 2); + this.rtSystem1.Size = new System.Drawing.Size(256, 404); + this.rtSystem1.TabIndex = 1; + this.rtSystem1.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n"; // - // richTextBox3 + // rtSignal1 // - this.richTextBox3.Dock = System.Windows.Forms.DockStyle.Fill; - this.richTextBox3.Location = new System.Drawing.Point(527, 3); - this.richTextBox3.Name = "richTextBox3"; - this.tableLayoutPanel1.SetRowSpan(this.richTextBox3, 2); - this.richTextBox3.Size = new System.Drawing.Size(256, 404); - this.richTextBox3.TabIndex = 1; - this.richTextBox3.Text = ""; + this.rtSignal1.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtSignal1.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); + this.rtSignal1.Location = new System.Drawing.Point(527, 3); + this.rtSignal1.Name = "rtSignal1"; + this.rtSignal1.Size = new System.Drawing.Size(256, 199); + this.rtSignal1.TabIndex = 1; + this.rtSignal1.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n"; // - // richTextBox4 + // rtError // - this.richTextBox4.Dock = System.Windows.Forms.DockStyle.Fill; - this.richTextBox4.Location = new System.Drawing.Point(789, 3); - this.richTextBox4.Name = "richTextBox4"; - this.tableLayoutPanel1.SetRowSpan(this.richTextBox4, 2); - this.richTextBox4.Size = new System.Drawing.Size(258, 404); - this.richTextBox4.TabIndex = 1; - this.richTextBox4.Text = ""; + this.rtError.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtError.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); + this.rtError.Location = new System.Drawing.Point(789, 3); + this.rtError.Name = "rtError"; + this.rtError.Size = new System.Drawing.Size(258, 199); + this.rtError.TabIndex = 1; + this.rtError.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n"; // // label1 // @@ -159,18 +165,6 @@ this.panel1.Size = new System.Drawing.Size(1050, 58); this.panel1.TabIndex = 7; // - // lbIP - // - this.lbIP.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbIP.Font = new System.Drawing.Font("Tahoma", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.lbIP.ForeColor = System.Drawing.Color.White; - this.lbIP.Location = new System.Drawing.Point(252, 0); - this.lbIP.Name = "lbIP"; - this.lbIP.Size = new System.Drawing.Size(638, 58); - this.lbIP.TabIndex = 8; - this.lbIP.Text = "000.000.000.000"; - this.lbIP.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // // button7 // this.button7.Dock = System.Windows.Forms.DockStyle.Right; @@ -204,6 +198,29 @@ this.button5.UseVisualStyleBackColor = true; this.button5.Click += new System.EventHandler(this.button5_Click); // + // button17 + // + this.button17.Dock = System.Windows.Forms.DockStyle.Right; + this.button17.Location = new System.Drawing.Point(810, 0); + this.button17.Name = "button17"; + this.button17.Size = new System.Drawing.Size(80, 58); + this.button17.TabIndex = 9; + this.button17.Text = "Run(Bwd)"; + this.button17.UseVisualStyleBackColor = true; + this.button17.Click += new System.EventHandler(this.button17_Click); + // + // lbIP + // + this.lbIP.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbIP.Font = new System.Drawing.Font("Tahoma", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbIP.ForeColor = System.Drawing.Color.White; + this.lbIP.Location = new System.Drawing.Point(252, 0); + this.lbIP.Name = "lbIP"; + this.lbIP.Size = new System.Drawing.Size(638, 58); + this.lbIP.TabIndex = 8; + this.lbIP.Text = "000.000.000.000"; + this.lbIP.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // // button3 // this.button3.Dock = System.Windows.Forms.DockStyle.Left; @@ -376,16 +393,25 @@ this.button16.UseVisualStyleBackColor = true; this.button16.Click += new System.EventHandler(this.button16_Click); // - // button17 + // rtData // - this.button17.Dock = System.Windows.Forms.DockStyle.Right; - this.button17.Location = new System.Drawing.Point(810, 0); - this.button17.Name = "button17"; - this.button17.Size = new System.Drawing.Size(80, 58); - this.button17.TabIndex = 9; - this.button17.Text = "Run(Bwd)"; - this.button17.UseVisualStyleBackColor = true; - this.button17.Click += new System.EventHandler(this.button17_Click); + this.rtData.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtData.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); + this.rtData.Location = new System.Drawing.Point(789, 208); + this.rtData.Name = "rtData"; + this.rtData.Size = new System.Drawing.Size(258, 199); + this.rtData.TabIndex = 3; + this.rtData.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n"; + // + // rtSignal2 + // + this.rtSignal2.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtSignal2.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); + this.rtSignal2.Location = new System.Drawing.Point(527, 208); + this.rtSignal2.Name = "rtSignal2"; + this.rtSignal2.Size = new System.Drawing.Size(256, 199); + this.rtSignal2.TabIndex = 4; + this.rtSignal2.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n"; // // fAgv // @@ -412,10 +438,10 @@ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; private System.Windows.Forms.Timer timer1; - private System.Windows.Forms.RichTextBox richTextBox1; - private System.Windows.Forms.RichTextBox richTextBox2; - private System.Windows.Forms.RichTextBox richTextBox3; - private System.Windows.Forms.RichTextBox richTextBox4; + private System.Windows.Forms.RichTextBox rtSystem0; + private System.Windows.Forms.RichTextBox rtSystem1; + private System.Windows.Forms.RichTextBox rtSignal1; + private System.Windows.Forms.RichTextBox rtError; private System.Windows.Forms.Panel panel1; private System.Windows.Forms.Button button1; private System.Windows.Forms.Button button2; @@ -438,5 +464,7 @@ private System.Windows.Forms.Button button13; private System.Windows.Forms.Label lbPortName; private System.Windows.Forms.Button button17; + private System.Windows.Forms.RichTextBox rtData; + private System.Windows.Forms.RichTextBox rtSignal2; } } \ No newline at end of file diff --git a/Cs_HMI/Project/ViewForm/fAgv.cs b/Cs_HMI/Project/ViewForm/fAgv.cs index a4dfdc6..12c2b82 100644 --- a/Cs_HMI/Project/ViewForm/fAgv.cs +++ b/Cs_HMI/Project/ViewForm/fAgv.cs @@ -38,10 +38,12 @@ namespace Project.ViewForm lbIP.Text = PUB.IP; label1.Text = PUB.AGV.LastSTS; - richTextBox1.Rtf = PUB.AGV.system0.ToRtfString(); - richTextBox2.Rtf = PUB.AGV.system1.ToRtfString(); - richTextBox3.Rtf = CombineRtfStrings(PUB.AGV.signal.ToRtfString(), PUB.AGV.data.ToRtfString()); - richTextBox4.Rtf = PUB.AGV.error.ToRtfString(); + rtSystem0.Rtf = PUB.AGV.system0.ToRtfString(); + rtSystem1.Rtf = PUB.AGV.system1.ToRtfString(); + rtSignal1.Rtf = PUB.AGV.signal1.ToRtfString(); + rtSignal2.Rtf = PUB.AGV.signal2.ToRtfString(); + rtData.Rtf = PUB.AGV.data.ToRtfString(); + rtError.Rtf = PUB.AGV.error.ToRtfString(); lbPortName.Text = $"AGV:{PUB.setting.Port_AGV}\nBMS:{PUB.setting.Port_BAT}"; timer1.Start(); } diff --git a/Cs_HMI/Project/ViewForm/fManual.cs b/Cs_HMI/Project/ViewForm/fManual.cs index 0a2dfb9..3276bf0 100644 --- a/Cs_HMI/Project/ViewForm/fManual.cs +++ b/Cs_HMI/Project/ViewForm/fManual.cs @@ -234,8 +234,8 @@ namespace Project.ViewForm //마크정보 guideSensor1.SensorValue = PUB.AGV.data.guidesensor; - guideSensor1.LMark = PUB.AGV.signal.mark_sensor_1; - guideSensor1.RMark = PUB.AGV.signal.mark_sensor_2; + guideSensor1.LMark = PUB.AGV.signal1.mark_sensor_1; + guideSensor1.RMark = PUB.AGV.signal1.mark_sensor_2; guideSensor1.Invalidate(); if (PUB.AGV.system1.agv_run || PUB.AGV.system1.agv_run_manual) diff --git a/Cs_HMI/SubProject/AGV/Narumi.cs b/Cs_HMI/SubProject/AGV/Narumi.cs index e4cc31f..37c00da 100644 --- a/Cs_HMI/SubProject/AGV/Narumi.cs +++ b/Cs_HMI/SubProject/AGV/Narumi.cs @@ -8,6 +8,7 @@ using System.Threading.Tasks; using System.Collections; using COMM; using AR; +using System.Xml; namespace arDev { @@ -220,7 +221,8 @@ namespace arDev public SystemFlag1 system1 = new SystemFlag1(); public ErrorFlag error = new ErrorFlag(); public AgvData data = new AgvData(); - public Signal signal = new Signal(); + public Signal1 signal1 = new Signal1(); + public Signal2 signal2 = new Signal2(); #region [수신] STS(AGV상태정보) 분석 public string LastSTS { get; set; } = string.Empty; @@ -263,42 +265,11 @@ namespace arDev data.guidesensor = int.Parse(rcvdNow.Substring(idx, 1)); idx += 1; //가이드 좌측부터 1~9 nDataTemp = Convert.ToByte(rcvdNow.Substring(idx, 2), 16); - signal.SetValue(nDataTemp); + signal1.SetValue(nDataTemp); idx += 2; - //data.Sts = encoding.GetString(bRcvData, 19, 3); //20210311 김정만 - SmartX FrameWork 사용 안함으로 주석처리 + //nDataTemp = Convert.ToByte(rcvdNow.Substring(idx, 2), 16); + //signal2.SetValue(nDataTemp); - //var Sts_cSpeed = encoding.GetString(bRcvData, 19, 1)[0]; - //var Sts_cDirection = encoding.GetString(bRcvData, 20, 1)[0]; - //var Sts_cFB = encoding.GetString(bRcvData, 21, 1)[0]; - - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////가이드센서 정보 (22)////////////////////////////////////////////////////////////////////////////////////////////////////////// - //var Sts_nGuide = 0; - //if (bRcvData[22] > 47 && bRcvData[22] < 58) { Sts_nGuide = Convert.ToInt32(encoding.GetString(bRcvData, 22, 1)); } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////마크센서 & 포토센서 정보 (23~24)//////////////////////////////////////////////////////////////////////////////////////////////////// - //nDataTemp = Convert.ToInt32(encoding.GetString(bRcvData, 23, 2), 16); - - //data.Sts_bMark1 = Convert.ToBoolean(nDataTemp & 0x4); - //data.Sts_bMark2 = Convert.ToBoolean(nDataTemp & 0x8); - //data.Sts_bCargo = Convert.ToBoolean(nDataTemp & 0x10); - - ////포토센서 - //if (Sts_cFB == 'F') - //{ - // system.Sts_nSenser = Convert.ToInt32(encoding.GetString(bRcvData, 26, 1)); - //} - //else if (Sts_cFB == 'B') - //{ - // system.Sts_nSenser = Convert.ToInt32(encoding.GetString(bRcvData, 27, 1)); - //} - - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //AGV 속도/분기/방향 (19~21)////////////////////////////////////////////////////////////////////////////////////////////////////////// - - ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// DataReceive?.Invoke(this, new DataEventArgs(DataType.STS)); } diff --git a/Cs_HMI/SubProject/AGV/Structure/ErrorFlag.cs b/Cs_HMI/SubProject/AGV/Structure/ErrorFlag.cs index e0db600..7c7dddf 100644 --- a/Cs_HMI/SubProject/AGV/Structure/ErrorFlag.cs +++ b/Cs_HMI/SubProject/AGV/Structure/ErrorFlag.cs @@ -24,22 +24,28 @@ namespace arDev Charger_pos_error, line_out_error = 4, - spare_5 , - spare_6 , - spare_7 , - spare_8 , - spare_9 , - /// /// 기동시 자석 감지 에러 /// - runerror_by_no_magent_line, + runerror_by_no_magent_line=5, /// /// 호출제어기 통신 오류 /// - controller_comm_error = 11, + controller_comm_error =6, + /// - /// 도착경보기 통신 오류 + /// 배터리 저전압 + /// + battery_low_voltage=7, + + spare08=8, + + lift_timeout=9, + lift_driver_overcurrent=10, + lift_driver_emergency = 11, + + /// + /// 도착경보기 통신 오류 /// arrive_ctl_comm_error, diff --git a/Cs_HMI/SubProject/AGV/Structure/Signals.cs b/Cs_HMI/SubProject/AGV/Structure/Signals.cs index f41bed1..185b659 100644 --- a/Cs_HMI/SubProject/AGV/Structure/Signals.cs +++ b/Cs_HMI/SubProject/AGV/Structure/Signals.cs @@ -4,10 +4,27 @@ namespace arDev { public partial class Narumi { - - public class Signal + public enum eSignal1 { - private COMM.Flag _value { get; set; } = new COMM.Flag(16); + front_gate_out = 0, + rear_gte_out, + mark_sensor_1, + mark_sensor_2, + lift_down_sensor, + lift_up_sensor, + magnet_relay, + charger_align_sensor, + } + public enum eSignal2 + { + cart_detect1 = 0, + cart_detect2, + } + + + public class Signal1 + { + private COMM.Flag _value { get; set; } = new COMM.Flag(8); public void SetValue(Int16 value) { this._value.writeValue(value); } public UInt16 Value { @@ -16,60 +33,37 @@ namespace arDev return (UInt16)_value.Value; } } - public enum eflag - { - front_gate_out = 0, - rear_gte_out, - mark_sensor_1, - mark_sensor_2, - front_left_sensor, - front_right_sensor, - front_center_sensor, - charger_align_sensor, - - lift_down, - lift_up, - magnet_on, - ChargetSensor, - cart_detect1, - cart_detect2, - Spare1, - Spare2 - } - public bool GetValue(eflag idx) + + public bool GetValue(eSignal1 idx) { return _value.Get((int)idx); } - public bool GetChanged(eflag idx) + public bool GetChanged(eSignal1 idx) { return _value.GetChanged((int)idx); } - public Boolean front_gate_out { get { return GetValue(eflag.front_gate_out); } } - public Boolean rear_sensor_out { get { return GetValue(eflag.rear_gte_out); } } - public Boolean mark_sensor_1 { get { return GetValue(eflag.mark_sensor_1); } } - public Boolean mark_sensor_2 { get { return GetValue(eflag.mark_sensor_2); } } + public Boolean front_gate_out { get { return GetValue(eSignal1.front_gate_out); } } + public Boolean rear_sensor_out { get { return GetValue(eSignal1.rear_gte_out); } } + public Boolean mark_sensor_1 { get { return GetValue(eSignal1.mark_sensor_1); } } + public Boolean mark_sensor_2 { get { return GetValue(eSignal1.mark_sensor_2); } } public Boolean mark_sensor { get { return mark_sensor_1 || mark_sensor_2; } } - public Boolean front_left_sensor { get { return GetValue(eflag.front_left_sensor); } } - public Boolean front_right_sensor { get { return GetValue(eflag.front_right_sensor); } } - public Boolean front_center_sensor { get { return GetValue(eflag.front_center_sensor); } } - public Boolean charger_align_sensor { get { return GetValue(eflag.charger_align_sensor); } } - public Boolean lift_up { get { return GetValue(eflag.lift_up); } } - public Boolean lift_down { get { return GetValue(eflag.lift_down); } } - public Boolean magnet_on { get { return GetValue(eflag.magnet_on); } } - public Boolean cart_detect1 { get { return GetValue(eflag.cart_detect1); } } - public Boolean cart_detect2 { get { return GetValue(eflag.cart_detect2); } } + public Boolean charger_align_sensor { get { return GetValue(eSignal1.charger_align_sensor); } } + public Boolean lift_up { get { return GetValue(eSignal1.lift_up_sensor); } } + public Boolean lift_down { get { return GetValue(eSignal1.lift_down_sensor); } } + public Boolean magnet_on { get { return GetValue(eSignal1.magnet_relay); } } + public override string ToString() { //모든사태값을 탭으로 구분하여 문자를 생성한다 var sb = new System.Text.StringBuilder(); for (int i = 0; i < 16; i++) { - var def = Enum.IsDefined(typeof(eflag), i); - if(def) + var def = Enum.IsDefined(typeof(eSignal1), i); + if (def) { - var flag = (eflag)i; + var flag = (eSignal1)i; var value = _value.Get(i); sb.AppendLine($"[{i:00}][{flag}] : {value}"); } @@ -86,10 +80,87 @@ namespace arDev for (int i = 0; i < 16; i++) { - var def = Enum.IsDefined(typeof(eflag), i); + var def = Enum.IsDefined(typeof(eSignal1), i); if (def) { - var flag = (eflag)i; + var flag = (eSignal1)i; + var value = _value.Get(i); + string line = $"[{i:00}][{flag}] : {value}"; + + // : true가 포함된 줄은 파란색 + if (value == true) + { + sb.AppendLine(@"\cf1 " + line + @"\cf0\line"); + } + else + { + sb.AppendLine(line + @"\line"); + } + } + } + + sb.AppendLine("}"); + return sb.ToString(); + } + + } + + + public class Signal2 + { + private COMM.Flag _value { get; set; } = new COMM.Flag(8); + public void SetValue(Int16 value) { this._value.writeValue(value); } + public UInt16 Value + { + get + { + return (UInt16)_value.Value; + } + } + + + public bool GetValue(eSignal2 idx) + { + return _value.Get((int)idx); + } + public bool GetChanged(eSignal2 idx) + { + return _value.GetChanged((int)idx); + } + + + public Boolean cart_detect1 { get { return GetValue(eSignal2.cart_detect1); } } + public Boolean cart_detect2 { get { return GetValue(eSignal2.cart_detect2); } } + public override string ToString() + { + //모든사태값을 탭으로 구분하여 문자를 생성한다 + var sb = new System.Text.StringBuilder(); + for (int i = 0; i < 16; i++) + { + var def = Enum.IsDefined(typeof(eSignal2), i); + if(def) + { + var flag = (eSignal2)i; + var value = _value.Get(i); + sb.AppendLine($"[{i:00}][{flag}] : {value}"); + } + + } + return sb.ToString(); + } + + public string ToRtfString() + { + var sb = new System.Text.StringBuilder(); + sb.AppendLine(@"{\rtf1\ansi\deff0"); + sb.AppendLine(@"{\colortbl ;\red0\green0\blue255;}"); // Color 1 = Blue + + for (int i = 0; i < 16; i++) + { + var def = Enum.IsDefined(typeof(eSignal2), i); + if (def) + { + var flag = (eSignal2)i; var value = _value.Get(i); string line = $"[{i:00}][{flag}] : {value}"; diff --git a/Cs_HMI/SubProject/CommUtil b/Cs_HMI/SubProject/CommUtil index ed05439..632b087 160000 --- a/Cs_HMI/SubProject/CommUtil +++ b/Cs_HMI/SubProject/CommUtil @@ -1 +1 @@ -Subproject commit ed05439991fdddba2d7123b7a89a89245bcd044c +Subproject commit 632b087c5be6b94ee953a374a25992aa54d56c7c diff --git a/Cs_HMI/SubProject/EnigProtocol b/Cs_HMI/SubProject/EnigProtocol index 2839104..14ff055 160000 --- a/Cs_HMI/SubProject/EnigProtocol +++ b/Cs_HMI/SubProject/EnigProtocol @@ -1 +1 @@ -Subproject commit 283910459e0024d10e2f8eb55243c82dfc7c8e05 +Subproject commit 14ff055fa98a3e692c796d961133635e21e9ff69