Browse Source

PLC参数指令设置

章政 6 years ago
parent
commit
95a78ebfa6

+ 13 - 0
UAS-出货标签管理(吉利通)/PublicMethod/LogicHandler.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Data;
+using UAS_LabelMachine.CustomControl;
 using UAS_LabelMachine.Entity;
 
 namespace UAS_LabelMachine.PublicMethod
@@ -37,6 +38,18 @@ namespace UAS_LabelMachine.PublicMethod
             adh.UpdateByCondition("prodiobarcode", "pib_ifpick=-1,pib_modify=-1", "pib_id=" + iPibID);
         }
 
+        public static void SendDataToPLC(SerialPortWithTag PLC, string Movement)
+        {
+            DataTable dt = (DataTable)adh.ExecuteSql("select * from plcinstruct", "select");
+            if (dt.Rows.Count > 0)
+            {
+                string DevStart = dt.Rows[0][Movement].ToString();
+                byte[] newbyte = new byte[1];
+                newbyte[0] = (byte)Convert.ToInt32(DevStart, 16);
+                PLC.Write(newbyte, 0, 1);
+            }
+        }
+
         public static void GetBarCode(string iPIID, string iPDID, int BarCodeNum, out string oBarCode)
         {
             oBarCode = "";

+ 198 - 0
UAS-出货标签管理(吉利通)/PublicMethod/PLCInstruct.cs

@@ -0,0 +1,198 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace UAS_LabelMachine.PublicMethod
+{
+    class PLCInstruct
+    {
+        /// <summary>
+        /// 设备启动
+        /// </summary>
+        private static string deviceStart= "deviceStart";
+        /// <summary>
+        /// 设备停止
+        /// </summary>
+        private static string deviceStop = "deviceStop";
+        /// <summary>
+        /// 数据到达
+        /// </summary>
+        private static string dataRecive = "dataRecive";
+        /// <summary>
+        /// 设备异常
+        /// </summary>
+        private static string devError = "devError";
+        /// <summary>
+        /// 堆叠料到达
+        /// </summary>
+        private static string stackMaterial = "stackMaterial";
+        /// <summary>
+        /// 复核料到达
+        /// </summary>
+        private static string checkMaterial = "checkMaterial";
+        /// <summary>
+        /// 前端扫描数据异常
+        /// </summary>
+        private static string frontDataDelete = "frontDataDelete";
+        /// <summary>
+        /// 前端数据通过
+        /// </summary>
+        private static string frontDataPass = "frontDataPass";
+        /// <summary>
+        /// 后端扫描数据异常
+        /// </summary>
+        private static string backDataDelete = "backDataDelete";
+        /// <summary>
+        /// 后端数据通过
+        /// </summary>
+        private static string backDataPass = "backDataPass";
+        /// <summary>
+        /// 料盘叠料
+        /// </summary>
+        private static string materialTray = "materialTray";
+
+        public static string DeviceStart
+        {
+            get
+            {
+                return deviceStart;
+            }
+
+            set
+            {
+                deviceStart = value;
+            }
+        }
+
+        public static string DataRecive
+        {
+            get
+            {
+                return dataRecive;
+            }
+
+            set
+            {
+                dataRecive = value;
+            }
+        }
+
+        public static string DevError
+        {
+            get
+            {
+                return devError;
+            }
+
+            set
+            {
+                devError = value;
+            }
+        }
+
+        public static string StackMaterial
+        {
+            get
+            {
+                return stackMaterial;
+            }
+
+            set
+            {
+                stackMaterial = value;
+            }
+        }
+
+        public static string CheckMaterial
+        {
+            get
+            {
+                return checkMaterial;
+            }
+
+            set
+            {
+                checkMaterial = value;
+            }
+        }
+
+        public static string FrontDataDelete
+        {
+            get
+            {
+                return frontDataDelete;
+            }
+
+            set
+            {
+                frontDataDelete = value;
+            }
+        }
+
+        public static string FrontDataPass
+        {
+            get
+            {
+                return frontDataPass;
+            }
+
+            set
+            {
+                frontDataPass = value;
+            }
+        }
+
+        public static string BackDataDelete
+        {
+            get
+            {
+                return backDataDelete;
+            }
+
+            set
+            {
+                backDataDelete = value;
+            }
+        }
+
+        public static string BackDataPass
+        {
+            get
+            {
+                return backDataPass;
+            }
+
+            set
+            {
+                backDataPass = value;
+            }
+        }
+
+        public static string MaterialTray
+        {
+            get
+            {
+                return materialTray;
+            }
+
+            set
+            {
+                materialTray = value;
+            }
+        }
+
+        public static string DeviceStop
+        {
+            get
+            {
+                return deviceStop;
+            }
+
+            set
+            {
+                deviceStop = value;
+            }
+        }
+    }
+}

+ 1 - 0
UAS-出货标签管理(吉利通)/UAS-出货标签管理(吉利通).csproj

@@ -264,6 +264,7 @@
     <Compile Include="PublicMethod\HttpHandler.cs" />
     <Compile Include="PublicMethod\LogicHandler.cs" />
     <Compile Include="PublicMethod\LogManager.cs" />
+    <Compile Include="PublicMethod\PLCInstruct.cs" />
     <Compile Include="SetLoadingWindow.cs">
       <SubType>Form</SubType>
     </Compile>

+ 18 - 7
UAS-出货标签管理(吉利通)/UAS_出货标签管理.cs

@@ -220,6 +220,10 @@ namespace UAS_LabelMachine
                 }
                 switch (port.Tag)
                 {
+                    case "PLC1":
+                        break;
+                    case "PLC2":
+                        break;
                     case "FrontendCheck":
                         //比对当前箱数量和容量
                         FrontCollect.Text = msg;
@@ -789,7 +793,7 @@ namespace UAS_LabelMachine
                     PI_ID = dt.Rows[0]["pi_id"].ToString();
                     if (dh.GetConfig("AutoBarcode", "ProdInOut!Sale").ToString() != "")
                     {
-                        string[] param = new string[] { PI_ID,  "" };
+                        string[] param = new string[] { PI_ID, "" };
                         dh.CallProcedure("GetCustBarcode", ref param);
                     }
                     //获取客户自定义设置
@@ -1768,21 +1772,28 @@ namespace UAS_LabelMachine
 
         private void PLCStart_Click(object sender, EventArgs e)
         {
+            //查询前端检验的端口号
             DataTable dt = (DataTable)adh.ExecuteSql("select * from cominfo", "select");
             DataRow[] dr = dt.Select("comtype='PLC1'");
             if (dr.Length > 0)
             {
-                PLC1.PortName = dr[0]["COM"].ToString();
-                PLC1.Tag = "FrontendCheck";
-                PLC1.BaudRate = int.Parse(dr[0]["BaudRate"].ToString());
-                PLC1.DataReceived += Serial_DataReceived;
-                PLC1.Open();
+                if (!PLC1.IsOpen)
+                {
+                    PLC1.PortName = dr[0]["COM"].ToString();
+                    PLC1.Tag = "FrontendCheck";
+                    PLC1.BaudRate = int.Parse(dr[0]["BaudRate"].ToString());
+                    PLC1.DataReceived += Serial_DataReceived;
+                    PLC1.Open();
+                }
+                LogicHandler.SendDataToPLC(PLC1, PLCInstruct.DeviceStart);
+                MessageLog.AppendText("PLC启动成功",Color.Blue);
             }
         }
 
         private void PLCStop_Click(object sender, EventArgs e)
         {
-
+            LogicHandler.SendDataToPLC(PLC1, PLCInstruct.DeviceStop);
+            MessageLog.AppendText("PLC暂停成功", Color.Blue);
         }
 
         private void ButtonCollectPass_Click(object sender, EventArgs e)