예제 #1
0
 public DoraAllenBradleyNet(PLCServerConfig config) : base(config.IpAddress, config.Port)
 {
     this._config = config;
     this.Slot    = config.Slot;
     this.Name    = config.Name;
 }
예제 #2
0
 public DoraSiemensS7Net(PLCServerConfig config) : base(config.Siemens, config.IpAddress)
 {
     _config = config;
     Name    = config.Name;
 }
예제 #3
0
        // ReSharper disable once InconsistentNaming
        public static IPLC CreatePLCServer(PLCServerConfig config)
        {
            switch (config.ProviderName.ToUpper())
            {
            case "MELSECMCNET":
            {
                var tmp = new DoraMelsecMcNet(config.IpAddress, config.Port);
                tmp.LogNet = new HslCommunication.LogNet.LogNetSingle($"{AppDomain.CurrentDomain.BaseDirectory}/{DateTime.Now.ToString("yyyyMMdd")}.txt");
                tmp.SetPersistentConnection();
                var rst = tmp.ConnectServer();

                if (!rst.IsSuccess)
                {
                    tmp.LogNet.WriteError($"初始化PLC服务器失败,IP:{config.IpAddress},PORT:{config.Port},Message:{rst.Message}");
                }

                return(tmp);
            }

            case "MELSECMCASCIINET":
            {
                var tmp = new DoraMelsecMcAsciiNet(config.IpAddress, config.Port);
                tmp.LogNet = new HslCommunication.LogNet.LogNetSingle($"{AppDomain.CurrentDomain.BaseDirectory}/{DateTime.Now.ToString("yyyyMMdd")}.txt");

                tmp.SetPersistentConnection();
                var rst = tmp.ConnectServer();
                if (!rst.IsSuccess)
                {
                    tmp.LogNet.WriteError($"初始化PLC服务器失败,IP:{config.IpAddress},PORT:{config.Port},Message:{rst.Message}");
                }

                return(tmp);
            }

            case "MELSECA1ENET":
            {
                var tmp = new DoraMelsecA1ENet(config.IpAddress, config.Port);
                tmp.LogNet = new HslCommunication.LogNet.LogNetSingle($"{AppDomain.CurrentDomain.BaseDirectory}/{DateTime.Now.ToString("yyyyMMdd")}.txt");
                tmp.SetPersistentConnection();
                var rst = tmp.ConnectServer();
                if (!rst.IsSuccess)
                {
                    tmp.LogNet.WriteError($"初始化PLC服务器失败,IP:{config.IpAddress},PORT:{config.Port},Message:{rst.Message}");
                }

                return(tmp);
            }

            case "SIEMENSS7NET":
            {
                var tmp = new DoraSiemensS7Net(config);
                tmp.LogNet = new HslCommunication.LogNet.LogNetSingle($"{AppDomain.CurrentDomain.BaseDirectory}/{DateTime.Now.ToString("yyyyMMdd")}.txt");
                tmp.SetPersistentConnection();
                var rst = tmp.ConnectServer();
                if (!rst.IsSuccess)
                {
                    tmp.LogNet.WriteError($"初始化PLC服务器失败,IP:{config.IpAddress},PORT:{config.Port},Message:{rst.Message}");
                }

                return(tmp);
            }

            case "SIEMENSFETCHWRITENET":
            {
                var tmp = new DoraSiemensFetchWriteNet(config.IpAddress, config.Port);
                tmp.LogNet = new HslCommunication.LogNet.LogNetSingle($"{AppDomain.CurrentDomain.BaseDirectory}/{DateTime.Now.ToString("yyyyMMdd")}.txt");
                tmp.SetPersistentConnection();
                var rst = tmp.ConnectServer();
                if (!rst.IsSuccess)
                {
                    tmp.LogNet.WriteError($"初始化PLC服务器失败,IP:{config.IpAddress},PORT:{config.Port},Message:{rst.Message}");
                }

                return(tmp);
            }

            case "OMRONFINSNET":
            {
                var tmp = new DoraOmronFinsNet(config.IpAddress, config.Port);
                tmp.LogNet = new HslCommunication.LogNet.LogNetSingle($"{AppDomain.CurrentDomain.BaseDirectory}/{DateTime.Now.ToString("yyyyMMdd")}.txt");
                tmp.SetPersistentConnection();
                var rst = tmp.ConnectServer();
                if (!rst.IsSuccess)
                {
                    tmp.LogNet.WriteError($"初始化PLC服务器失败,IP:{config.IpAddress},PORT:{config.Port},Message:{rst.Message}");
                }

                return(tmp);
            }

            case "ALLENBRADLEYNET":
            {
                var tmp = new DoraAllenBradleyNet(config);
                tmp.SetPersistentConnection();
                var rst = tmp.ConnectServer();


                if (!rst.IsSuccess)
                {
                    tmp.LogNet.WriteError($"初始化PLC服务器失败,IP:{config.IpAddress},PORT:{config.Port},Message:{rst.Message}");
                }

                return(tmp);
            }

            default: return(null);
            }
        }