林豪 左 3 years ago
parent
commit
c1e940fcdd

+ 0 - 1
Projects/永冠OPP/WCS.Service/Handlers/Device.cs

@@ -152,7 +152,6 @@ public static class Device
     #endregion 静态方法
 }
 
-//TODO:需要把该配置转移到业务部分,便于在基础框架被封装后,现场实施进行改动
 /// <summary>
 /// 设备配置
 /// </summary>

+ 30 - 6
Projects/永冠OPP/WCS.Service/PLCAccessors/HuiChuangPLC.cs

@@ -1,12 +1,36 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+using HslCommunication.Profinet.AllenBradley;
+using System;
 
 namespace WCS.Service.PLCAccessors
 {
-    internal class HuiChuangPLC
+    /// <summary>
+    /// 汇川
+    /// TODO 具体内容需要重构,暂时使用AB基类
+    /// </summary>
+    public class HuiChuangPLC : AllenBradleyNet
     {
+        public AllenBradleyNet plc;
+
+        public HuiChuangPLC(string ipAddress)
+        {
+            plc = new AllenBradleyNet(ipAddress);
+        }
+
+        public byte[] ReadBytes(ushort db, ushort address, ushort length)
+        {
+            var addr = "DB" + db + "." + address;
+            var res = plc.Read(addr, length);
+            if (res.IsSuccess)
+                return res.Content;
+            throw new Exception("读取PLC数据失败:" + res.Message);
+        }
+
+        public void WriteBytes(ushort db, ushort address, byte[] data)
+        {
+            var start = db + address / 2;
+            var res = plc.Write("D" + start, data);
+            if (!res.IsSuccess)
+                throw new Exception("写入PLC数据失败:" + res.Message);
+        }
     }
 }

+ 7 - 12
Projects/永冠OPP/WCS.Service/PLCAccessors/MelsecPLC.cs

@@ -1,24 +1,19 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using WCS.Core;
-using WCS.Entity;
-using HslCommunication.Profinet.Melsec; 
+using HslCommunication.Profinet.Melsec;
+using System;
 
 namespace WCS.Service.PLCAccessors
-{ 
+{
     public class MelsecPLC : MelsecMcNet
     {
-        MelsecMcNet plc;
-        public MelsecPLC(string ip,int port)
+        private MelsecMcNet plc;
+
+        public MelsecPLC(string ip, int port)
         {
             plc = new MelsecMcNet(ip, port);
             plc.ConnectTimeOut = 3000;
             plc.ConnectServer();
-          
         }
+
         public byte[] ReadBytes(ushort db, ushort address, ushort length)
         {
             var res = plc.Read("D" + db, length);

+ 3 - 1
Projects/永冠OPP/WCS.Service/PLCAccessors/PLCAccessorsCreater.cs

@@ -13,7 +13,9 @@ namespace WCS.Service.PLCAccessors
             {
                 PLCType.西门子 => new SiemensS7PLC((int)data.MODEL, data.IP),
                 PLCType.三菱 => new MelsecPLC(data.IP, data.PORT),
-                //PLCType.AB=>
+                PLCType.AB => new AllenBradleyPLC(data.IP),
+                PLCType.欧姆龙 => expr,
+                PLCType.汇川 => new HuiChuangPLC(data.IP),
                 _ => throw new Exception("不支持此PLC")
             };
         }

+ 0 - 14
WCS Pedestal.sln

@@ -34,10 +34,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DBHelper-SqlSugar", "DBHelp
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SqlSugar", "..\..\..\..\开源\Src\Asp.NetCore2\SqlSugar\SqlSugar.csproj", "{9993C299-72BF-4F5A-AEAB-F1B41DF01FBC}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TEST", "TEST\TEST.csproj", "{71A6030B-66E3-4D6F-8EB6-6C102493AF74}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RabbitMQ", "RabbitMQ\RabbitMQ.csproj", "{8C246D8E-92CA-48EB-9694-4A9F4D03D9D0}"
-EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -84,14 +80,6 @@ Global
 		{9993C299-72BF-4F5A-AEAB-F1B41DF01FBC}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{9993C299-72BF-4F5A-AEAB-F1B41DF01FBC}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{9993C299-72BF-4F5A-AEAB-F1B41DF01FBC}.Release|Any CPU.Build.0 = Release|Any CPU
-		{71A6030B-66E3-4D6F-8EB6-6C102493AF74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{71A6030B-66E3-4D6F-8EB6-6C102493AF74}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{71A6030B-66E3-4D6F-8EB6-6C102493AF74}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{71A6030B-66E3-4D6F-8EB6-6C102493AF74}.Release|Any CPU.Build.0 = Release|Any CPU
-		{8C246D8E-92CA-48EB-9694-4A9F4D03D9D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{8C246D8E-92CA-48EB-9694-4A9F4D03D9D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{8C246D8E-92CA-48EB-9694-4A9F4D03D9D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{8C246D8E-92CA-48EB-9694-4A9F4D03D9D0}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -108,8 +96,6 @@ Global
 		{8F6C4A79-98EA-4019-B72A-29290328185A} = {2C6BCFE4-581D-4BC8-91EC-BD9FA91B9605}
 		{A3E602C7-597C-469F-A065-BBA5901FFE2C} = {2C6BCFE4-581D-4BC8-91EC-BD9FA91B9605}
 		{9993C299-72BF-4F5A-AEAB-F1B41DF01FBC} = {2C6BCFE4-581D-4BC8-91EC-BD9FA91B9605}
-		{71A6030B-66E3-4D6F-8EB6-6C102493AF74} = {2C6BCFE4-581D-4BC8-91EC-BD9FA91B9605}
-		{8C246D8E-92CA-48EB-9694-4A9F4D03D9D0} = {2C6BCFE4-581D-4BC8-91EC-BD9FA91B9605}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {75D30B04-ADD6-4FC6-8D7E-FAD45B731BB4}

+ 1 - 0
WCS.Entity/WCS_PLC.cs

@@ -71,6 +71,7 @@ namespace WCS.Entity
         三菱 = 2,
         AB = 3,
         欧姆龙 = 4,
+        汇川 = 5, 
     }
 
     /// <summary>