| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 | 
							- using IMCS.Device;
 
- using IMCS.Device.body;
 
- using System.Collections.Generic;
 
- using System.Configuration;
 
- using System.Linq;
 
- using System.Net.NetworkInformation;
 
- using System.Text;
 
- using YG.Device;
 
- namespace YG
 
- {
 
-     /// <summary>
 
-     /// 命令列表
 
-     /// </summary>
 
-     public class DeviceManage
 
-     {
 
-         //public static DeviceInfo info = new DeviceInfo();
 
-         private static string RETVAL = "success";
 
-         private static int ASK_TIMES = 20;
 
-         private static string VirtualProgram = ConfigurationManager.AppSettings["VirtualProgram"];
 
-         private static int HEX_BINARY = 8;
 
-         private uint currentToolArea = 1;
 
-         private static string ConncetionRedisString = ConfigurationManager.AppSettings["ConncetionRedisString"];
 
-         private static string HttpServerUrlString = ConfigurationManager.AppSettings["HttpServerUrlString"];
 
-         private static string NcExtendPath = ConfigurationManager.AppSettings["NcExtendPath"];
 
-         private static string NcUpLoadPath = ConfigurationManager.AppSettings["NcUpLoadPath"];
 
-         private static string LocalNcPath = ConfigurationManager.AppSettings["LocalNcPath"];
 
-         private static string ClsSFTP_IP = ConfigurationManager.AppSettings["ClsSFTP_Ip"];
 
-         private static string ClsSFTP_Port = ConfigurationManager.AppSettings["ClsSFTP_Port"];
 
-         private static string ClsSFTP_UserName = ConfigurationManager.AppSettings["ClsSFTP_UserName"];
 
-         private static string ClsSFTP_PWD = ConfigurationManager.AppSettings["ClsSFTP_Pwd"];
 
-         private static string ConncetionDeviceListString = ConfigurationManager.AppSettings["ConncetionDeviceListString"];
 
-         private static string ClsSFTPListString = ConfigurationManager.AppSettings["ClsSFTPListString"];
 
-         /// <summary>
 
-         /// 柔性线-机器人地址
 
-         /// </summary>
 
-         private static string Path_Flexible_Roboot_Path = ConfigurationManager.AppSettings["Flexible_Roboot_Path"];
 
-         /// <summary>
 
-         /// 柔性线-机床1
 
-         /// </summary>
 
-         private static string Path_Flexible_Machine1_Path = ConfigurationManager.AppSettings["Flexible_Machine1_Path"];
 
-         /// <summary>
 
-         /// 柔性线-机床2
 
-         /// </summary>
 
-         private static string Path_Flexible_Machine2_Path = ConfigurationManager.AppSettings["Flexible_Machine2_Path"];
 
-         /// <summary>
 
-         /// 柔性线-机床3
 
-         /// </summary>
 
-         private static string Path_Flexible_Machine3_Path = ConfigurationManager.AppSettings["Flexible_Machine3_Path"];
 
-         /// <summary>
 
-         /// 柔性线-机床4
 
-         /// </summary>
 
-         private static string Path_Flexible_Machine4_Path = ConfigurationManager.AppSettings["Flexible_Machine4_Path"];
 
-         /// <summary>
 
-         /// 柔性线-打标机
 
-         /// </summary>
 
-         private static string Path_Flexible_Print_Path = ConfigurationManager.AppSettings["Flexible_Print_Path"];
 
-         /// <summary>
 
-         /// 柔性线-清洗剂
 
-         /// </summary>
 
-         private static string Path_Flexible_Clean_Path = ConfigurationManager.AppSettings["Flexible_Clean_Path"];
 
-         /// <summary>
 
-         /// 智能单元-机器人
 
-         /// </summary>
 
-         private static string Path_Intelligent_Roboot_Path = ConfigurationManager.AppSettings["Intelligent_Roboot_Path"];
 
-         /// <summary>
 
-         /// 智能单元-机床
 
-         /// </summary>
 
-         private static string Path_Intelligent_Machine_Path = ConfigurationManager.AppSettings["Intelligent_Machine_Path"];
 
-         /// <summary>
 
-         /// 质量中心-机器人
 
-         /// </summary>
 
-         private static string Path_Quality_Roboot_Path = ConfigurationManager.AppSettings["Quality_Roboot_Path"];
 
-         private static DeviceManage coml = new DeviceManage();
 
-         public static DeviceManage Instance { get { return coml; } }
 
-         /// <summary>
 
-         /// 设备列表管理
 
-         /// </summary>
 
-         public Dictionary<EnumDeviceList, DeviceList> device { get; set; } = new Dictionary<EnumDeviceList, DeviceList>();
 
-         public Dictionary<string, DeviceList> deviceList { get; set; } = new Dictionary<string, DeviceList>();
 
-         public DeviceManage()
 
-         {
 
-             device = new Dictionary<EnumDeviceList, DeviceList>();
 
-             Init();
 
-         }
 
-         //初始化信息 建立所有协议连接
 
-         public void Init()
 
-         {
 
-             List<ConnectDeviceBody> devices = GetConnectDeviceList();
 
-             foreach (ConnectDeviceBody connectDevice in devices)
 
-             {
 
-                 DeviceList deviceInfo = null;
 
-                 if (connectDevice.ProtocolType.Equals(DeviceType.OPCUa.ToString()))
 
-                 {
 
-                     deviceInfo = new Device.DeviceOPCUat("opc.tcp://" + connectDevice.ServerUrl, connectDevice.UserName, connectDevice.Password);
 
-                     deviceInfo.Dtype = DeviceType.OPCUa;
 
-                 }
 
-                 else if (connectDevice.ProtocolType.Equals(DeviceType.Socket.ToString()))
 
-                 {
 
-                     if (deviceList.Where(m => m.Key.Equals(connectDevice.ServerUrl)).Count() == 0)
 
-                     {
 
-                         deviceInfo = new Device.DeviceSocket(connectDevice.Ip, connectDevice.Port);//8074   
 
-                         deviceInfo.Dtype = DeviceType.Socket;
 
-                         deviceInfo.DeviceInit();
 
-                        
 
-                     }
 
-                 }
 
-                 else if (connectDevice.ProtocolType.Equals(DeviceType.PLC_S7.ToString()))
 
-                 {
 
-                     deviceInfo = new Device.DeviceS7(HslCommunication.Profinet.Siemens.SiemensPLCS.S1200, connectDevice.Ip);
 
-                     deviceInfo.Dtype = DeviceType.PLC_S7;
 
-                     deviceInfo.DeviceInit();
 
-                 }
 
-                 if (deviceInfo != null)
 
-                 {
 
-                     deviceInfo.ServerUrl = connectDevice.ServerUrl;
 
-                     deviceInfo.Ip = connectDevice.Ip;
 
-                     deviceList.Add(connectDevice.ServerUrl, deviceInfo);
 
-                 }
 
-             }
 
-         }
 
-        
 
-         /// 设备列表
 
-         public List<ConnectDeviceBody> GetConnectDeviceList()
 
-         {
 
-             List<ConnectDeviceBody> list = new List<ConnectDeviceBody>();
 
-             string[] deviceList = ConncetionDeviceListString.Split('#');
 
-             foreach (string dArray in deviceList)
 
-             {
 
-                 if (!string.IsNullOrEmpty(dArray))
 
-                 {
 
-                     string[] deviceArray = dArray.Split(';');
 
-                     ConnectDeviceBody deviceInfo = new ConnectDeviceBody();
 
-                     if ((deviceArray[0]).Ping())
 
-                     {
 
-                         deviceInfo.Ip = deviceArray[0];
 
-                         deviceInfo.Port = int.Parse(deviceArray[1]);
 
-                         deviceInfo.UserName = deviceArray[2];
 
-                         deviceInfo.Password = deviceArray[3];
 
-                         deviceInfo.ProtocolType = deviceArray[4];
 
-                         deviceInfo.ServerUrl = deviceInfo.Ip + ":" + deviceInfo.Port;
 
-                         list.Add(deviceInfo);
 
-                     }
 
-                 }
 
-             }
 
-             return list;
 
-         }
 
-         /// SFTP设备列表
 
-         public List<SFTPDeviceBody> GetSFTPDeviceList()
 
-         {
 
-             List<SFTPDeviceBody> list = new List<SFTPDeviceBody>();
 
-             string[] deviceList = ClsSFTPListString.Split('#');
 
-             foreach (string dArray in deviceList)
 
-             {
 
-                 if (!string.IsNullOrEmpty(dArray))
 
-                 {
 
-                     string[] deviceArray = dArray.Split(';');
 
-                     SFTPDeviceBody deviceInfo = new SFTPDeviceBody();
 
-                     deviceInfo.Ip = deviceArray[0];
 
-                     deviceInfo.Port = deviceArray[1];
 
-                     deviceInfo.UserName = deviceArray[2];
 
-                     deviceInfo.Password = deviceArray[3];
 
-                     deviceInfo.Path = deviceArray[4];
 
-                     deviceInfo.NcExtendPath = deviceArray[5];
 
-                     list.Add(deviceInfo);
 
-                 }
 
-             }
 
-             return list;
 
-         }
 
-         public SFTPDeviceBody GetSFTPOne(string ip)
 
-         {
 
-             List<SFTPDeviceBody> list = GetSFTPDeviceList();
 
-             SFTPDeviceBody retBody = new SFTPDeviceBody();
 
-             foreach (SFTPDeviceBody body in list)
 
-             {
 
-                 if (body.Ip.Equals(ip))
 
-                 {
 
-                     retBody = body;
 
-                 }
 
-             }
 
-             return retBody;
 
-         }
 
-         /// <summary>
 
-         /// 添加设备到设备列表
 
-         /// </summary>
 
-         /// <param name="devive"></param>
 
-         /// <param name="enumdev"></param>
 
-         public void DeviceAdd(DeviceList devive, EnumDeviceList enumdev)
 
-         {
 
-             device.Add(enumdev, devive);
 
-         }
 
-         public DeviceList GetOne(EnumDeviceList enumDeviceList)
 
-         {
 
-             return device.Where(m => m.Key.Equals(enumDeviceList)).FirstOrDefault().Value;
 
-         }
 
-         public DeviceList GetOne(string serviceUrl)
 
-         {
 
-             return deviceList.Where(m => m.Key.Equals(serviceUrl)).FirstOrDefault().Value;
 
-         }
 
-         public void DeviceSend(EnumDeviceList enumdev, EnumComList com)
 
-         {
 
-             Log.Instance.WriteLogAdd(string.Format("{0}发送一次数据{1}", enumdev, com));
 
-             device.Where(m => m.Key.Equals(enumdev)).FirstOrDefault().Value.DeviceSend(ReturnCom(com));
 
-             System.Threading.Thread.Sleep(500);
 
-         }
 
-         /// <summary>
 
-         /// 发送指令
 
-         /// </summary>
 
-         /// <param name="enumdev"></param>
 
-         public void DeviceClose()
 
-         {
 
-             foreach (var dc in device)
 
-             {
 
-                 dc.Value.DeviceClose();
 
-             }
 
-         }
 
-         public string ReturnCom(EnumComList enumComList)
 
-         {
 
-             return "";
 
-         }
 
-     }
 
- }
 
 
  |