Commit 7bdb0072 LN

IOip配置方式修改

1 个父辈 a9301e4f
此文件类型无法预览
...@@ -136,7 +136,7 @@ namespace OnlineStore.ACSingleStore ...@@ -136,7 +136,7 @@ namespace OnlineStore.ACSingleStore
{ {
// txtIp.Text = io.DeviceName; // txtIp.Text = io.DeviceName;
txtDOIndex.Text = io.GetIOAddr().ToString(); txtDOIndex.Text = io.GetIOAddr().ToString();
txtDoName.Text = io.DeviceName; txtDoName.Text = io.IO_IP;
txtSlaveId.Text = io.SlaveID.ToString(); txtSlaveId.Text = io.SlaveID.ToString();
IOTextControl newControl = DOControlList[io.ProName]; IOTextControl newControl = DOControlList[io.ProName];
selectControl = newControl; selectControl = newControl;
......
...@@ -67,6 +67,7 @@ namespace OnlineStore.ACSingleStore ...@@ -67,6 +67,7 @@ namespace OnlineStore.ACSingleStore
if (store == null) if (store == null)
{ {
LogUtil.error(LOGGER, "找不到对应的料仓"); LogUtil.error(LOGGER, "找不到对应的料仓");
this.Close();
return; return;
} }
//txtSpeed.Text = store.Config.CompressAxis_EndSpeed.ToString(); //txtSpeed.Text = store.Config.CompressAxis_EndSpeed.ToString();
......
...@@ -451,11 +451,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -451,11 +451,11 @@ namespace OnlineStore.DeviceLibrary
{ {
if (configIO.ProType.Equals(ConfigItemType.DI)) if (configIO.ProType.Equals(ConfigItemType.DI))
{ {
return GetDIValue(configIO.DeviceName, configIO.SlaveID, configIO.GetIOAddr()); return GetDIValue(configIO.IO_IP, configIO.SlaveID, configIO.GetIOAddr());
} }
else if (configIO.ProType.Equals(ConfigItemType.DO)) else if (configIO.ProType.Equals(ConfigItemType.DO))
{ {
return GetDOValue(configIO.DeviceName, configIO.SlaveID, configIO.GetIOAddr()); return GetDOValue(configIO.IO_IP, configIO.SlaveID, configIO.GetIOAddr());
} }
} }
catch (Exception ex) catch (Exception ex)
......
...@@ -23,7 +23,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -23,7 +23,7 @@ namespace OnlineStore.DeviceLibrary
{ {
ConfigIO configIo = StoreManager.Config.StoreDOList[ioType]; ConfigIO configIo = StoreManager.Config.StoreDOList[ioType];
//DateTime time = DateTime.Now; //DateTime time = DateTime.Now;
instance.WriteSingleDO(configIo.DeviceName, configIo.SlaveID, configIo.GetIOAddr(), ioValue); instance.WriteSingleDO(configIo.IO_IP, configIo.SlaveID, configIo.GetIOAddr(), ioValue);
//TimeSpan span = DateTime.Now - time; //TimeSpan span = DateTime.Now - time;
//if (span.TotalMilliseconds > 100) //if (span.TotalMilliseconds > 100)
//{ //{
...@@ -43,13 +43,13 @@ namespace OnlineStore.DeviceLibrary ...@@ -43,13 +43,13 @@ namespace OnlineStore.DeviceLibrary
if (StoreManager.Config.StoreDIList.ContainsKey(ioType)) if (StoreManager.Config.StoreDIList.ContainsKey(ioType))
{ {
ConfigIO configIo = StoreManager.Config.StoreDIList[ioType]; ConfigIO configIo = StoreManager.Config.StoreDIList[ioType];
ioValue = instance.GetDIValue(configIo.DeviceName, configIo.SlaveID, configIo.GetIOAddr()); ioValue = instance.GetDIValue(configIo.IO_IP, configIo.SlaveID, configIo.GetIOAddr());
//UpdateDoValue(ioType, ioValue); //UpdateDoValue(ioType, ioValue);
} }
else if (StoreManager.Config.StoreDOList.ContainsKey(ioType)) else if (StoreManager.Config.StoreDOList.ContainsKey(ioType))
{ {
ConfigIO configIo = StoreManager.Config.StoreDOList[ioType]; ConfigIO configIo = StoreManager.Config.StoreDOList[ioType];
ioValue = instance.GetDOValue(configIo.DeviceName, configIo.SlaveID, configIo.GetIOAddr()); ioValue = instance.GetDOValue(configIo.IO_IP, configIo.SlaveID, configIo.GetIOAddr());
} }
else else
{ {
...@@ -63,7 +63,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -63,7 +63,7 @@ namespace OnlineStore.DeviceLibrary
if (StoreManager.Config.StoreDOList.ContainsKey(ioType)) if (StoreManager.Config.StoreDOList.ContainsKey(ioType))
{ {
ConfigIO configIo = StoreManager.Config.StoreDOList[ioType]; ConfigIO configIo = StoreManager.Config.StoreDOList[ioType];
ioValue = instance.GetDOValue(configIo.DeviceName, configIo.SlaveID, configIo.GetIOAddr()); ioValue = instance.GetDOValue(configIo.IO_IP, configIo.SlaveID, configIo.GetIOAddr());
} }
else else
{ {
......
...@@ -367,9 +367,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -367,9 +367,9 @@ namespace OnlineStore.DeviceLibrary
{ {
if (configIO.ProType.Equals(ConfigItemType.DI)) if (configIO.ProType.Equals(ConfigItemType.DI))
{ {
if (DIValueMap.ContainsKey(configIO.DeviceName)) if (DIValueMap.ContainsKey(configIO.IO_IP))
{ {
List<KNDIO> allIo = new List<KNDIO>(DIValueMap[configIO.DeviceName]); List<KNDIO> allIo = new List<KNDIO>(DIValueMap[configIO.IO_IP]);
List<KNDIO> list = (from m in allIo where m.IOAddress.Equals(configIO.GetIOAddr()) select m).ToList<KNDIO>(); List<KNDIO> list = (from m in allIo where m.IOAddress.Equals(configIO.GetIOAddr()) select m).ToList<KNDIO>();
if (list.Count > 0) if (list.Count > 0)
{ {
...@@ -379,9 +379,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -379,9 +379,9 @@ namespace OnlineStore.DeviceLibrary
} }
else if (configIO.ProType.Equals(ConfigItemType.DO)) else if (configIO.ProType.Equals(ConfigItemType.DO))
{ {
if (DOValueMap.ContainsKey(configIO.DeviceName)) if (DOValueMap.ContainsKey(configIO.IO_IP))
{ {
List<KNDIO> allIo = new List<KNDIO>(DOValueMap[configIO.DeviceName]); List<KNDIO> allIo = new List<KNDIO>(DOValueMap[configIO.IO_IP]);
List<KNDIO> list = (from m in allIo where m.SlaveId.Equals(configIO.SlaveID) && m.IOAddress.Equals(configIO.GetIOAddr()) select m).ToList<KNDIO>(); List<KNDIO> list = (from m in allIo where m.SlaveId.Equals(configIO.SlaveID) && m.IOAddress.Equals(configIO.GetIOAddr()) select m).ToList<KNDIO>();
if (list.Count > 0) if (list.Count > 0)
{ {
......
类型,说明,名称,属性值,设备名称,默认值,描述,电器定义,代码定义,SlaveID, 类型,说明,名称,属性值,设备名称,默认值,描述,电器定义,代码定义,SlaveID,
DI,急停,SuddenStop_BTN,0,192.168.200.11,0,急停,X01,DI-01,0, PRO,IO模块对应的DI数量,IO_DILength,192.168.200.11#8,,,,,,,
DI,复位,Reset_BTN,1,192.168.200.11,0,复位,X02,DI-02,0, PRO,模块对应的DO数量,IO_DOLength,192.168.200.11#8,,,,,,,
DI,门禁,DoorLimit,2,192.168.200.11,0,门禁,X03,DI-03,0, PRO,是否有仓门,HasDoor,1,,,,,,,
DI,料盘检测1(进料口),TrayCheck_Door,3,192.168.200.11,0,料盘检测1(进料口),X04,DI-04,0, PRO,IO模块IP,PRO_AOI_IP_1,192.168.200.11,,,,,,,
DI,料盘检测2(料叉),TrayCheck_Fixture,4,192.168.200.11,0,料盘检测2(料叉),X05,DI-05,0, ,,,,,,,,,,
DI,气压检测,Airpressure_Check,5,192.168.200.11,0,气压检测,X06,DI-06,0, DI,急停,SuddenStop_BTN,0,PRO_AOI_IP_1,0,急停,X01,DI-01,0,
DI,进料口门上升端,Door_Up,6,192.168.200.11,0,进料口门上升端,X07,DI-07,0, DI,复位,Reset_BTN,1,PRO_AOI_IP_1,0,复位,X02,DI-02,0,
DI,进料口门下降端,Door_Down,7,192.168.200.11,0,进料口门下降端,X08,DI-08,0, DI,门禁,DoorLimit,2,PRO_AOI_IP_1,0,门禁,X03,DI-03,0,
DO,自动指示灯,AutoRun_HddLed,0,192.168.200.11,0,自动指示灯,Y01,DO-01,0, DI,料盘检测1(进料口),TrayCheck_Door,3,PRO_AOI_IP_1,0,料盘检测1(进料口),X04,DI-04,0,
DO,故障指示灯,Alarm_HddLed,1,192.168.200.11,0,故障指示灯,Y02,DO-02,0, DI,料盘检测2(料叉),TrayCheck_Fixture,4,PRO_AOI_IP_1,0,料盘检测2(料叉),X05,DI-05,0,
DO,待机指示灯,RunSign_HddLed,2,192.168.200.11,0,待机指示灯,Y03,DO-03,0, DI,气压检测,Airpressure_Check,5,PRO_AOI_IP_1,0,气压检测,X06,DI-06,0,
DO,料仓运转ON,Run_Signal,3,192.168.200.11,0,料仓运转ON,Y04,DO-04,0, DI,进料口门上升端,Door_Up,6,PRO_AOI_IP_1,0,进料口门上升端,X07,DI-07,0,
DO,轴2刹车电源ON,Axis_Brake,4,192.168.200.11,0,轴2刹车电源ON,Y05,DO-05,0, DI,进料口门下降端,Door_Down,7,PRO_AOI_IP_1,0,进料口门下降端,X08,DI-08,0,
DO,料仓吹气SOL,StartOrStopBlow,5,192.168.200.11,0,料仓吹气SOL,Y06,DO-06,0, DO,自动指示灯,AutoRun_HddLed,0,PRO_AOI_IP_1,0,自动指示灯,Y01,DO-01,0,
DO,进料口门上升SOL,Door_Up,6,192.168.200.11,0,进料口门上升SOL,Y07,DO-07,0, DO,故障指示灯,Alarm_HddLed,1,PRO_AOI_IP_1,0,故障指示灯,Y02,DO-02,0,
DO,进料口门下降SOL,Door_Down,7,192.168.200.11,0,进料口门下降SOL,Y08,DO-08,0, DO,待机指示灯,RunSign_HddLed,2,PRO_AOI_IP_1,0,待机指示灯,Y03,DO-03,0,
DO,料仓运转ON,Run_Signal,3,PRO_AOI_IP_1,0,料仓运转ON,Y04,DO-04,0,
DO,轴2刹车电源ON,Axis_Brake,4,PRO_AOI_IP_1,0,轴2刹车电源ON,Y05,DO-05,0,
DO,料仓吹气SOL,StartOrStopBlow,5,PRO_AOI_IP_1,0,料仓吹气SOL,Y06,DO-06,0,
DO,进料口门上升SOL,Door_Up,6,PRO_AOI_IP_1,0,进料口门上升SOL,Y07,DO-07,0,
DO,进料口门下降SOL,Door_Down,7,PRO_AOI_IP_1,0,进料口门下降SOL,Y08,DO-08,0,
AXIS,(轴一)旋转轴,Middle_Axis,1,COM1,0,,,,, AXIS,(轴一)旋转轴,Middle_Axis,1,COM1,0,,,,,
AXIS,(轴二)升降轴轴,UpDown_Axis,2,COM1,0,,,,, AXIS,(轴二)升降轴轴,UpDown_Axis,2,COM1,0,,,,,
AXIS,(轴三)进出轴,InOut_Axis,3,COM1,0,,,,, AXIS,(轴三)进出轴,InOut_Axis,3,COM1,0,,,,,
...@@ -96,6 +101,4 @@ PRO,每次吹气的时间(分钟),BlowAir_Time,10,,,,,,, ...@@ -96,6 +101,4 @@ PRO,每次吹气的时间(分钟),BlowAir_Time,10,,,,,,,
PRO,两次吹气间隔(分钟),BlowAir_Interval,10,,,,,,, PRO,两次吹气间隔(分钟),BlowAir_Interval,10,,,,,,,
PRO,温湿度端口号,Humiture_Port,COM2,,,,,,, PRO,温湿度端口号,Humiture_Port,COM2,,,,,,,
,,,,,,,,, , ,,,,,,,,, ,
PRO,IO模块对应的DI数量,IO_DILength,192.168.200.11#8,,,,,, , ,,,,,,,,, ,
PRO,模块对应的DO数量,IO_DOLength,192.168.200.11#8,,,,,,,
PRO,是否有仓门,HasDoor,1,,,,,,,
...@@ -48,6 +48,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -48,6 +48,7 @@ namespace OnlineStore.DeviceLibrary
{ {
try try
{ {
StoreConfig.ProIOIpMap = new Dictionary<string, string>();
if (!isInit) if (!isInit)
{ {
string server = ConfigAppSettings.GetValue(Setting_Init.http_server); string server = ConfigAppSettings.GetValue(Setting_Init.http_server);
......
...@@ -32,14 +32,14 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -32,14 +32,14 @@ namespace OnlineStore.LoadCSVLibrary
/// 属性值 /// 属性值
/// </summary> /// </summary>
[CSVAttribute("属性值")] [CSVAttribute("属性值")]
public string ProVale { get; set; } public string ProValue { get; set; }
public ushort GetIOAddr() public ushort GetIOAddr()
{ {
ushort value = 0; ushort value = 0;
try try
{ {
value = (ushort)Convert.ToInt32(ProVale); value = (ushort)Convert.ToInt32(ProValue);
} }
catch (Exception ex) catch (Exception ex)
{ {
...@@ -49,20 +49,20 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -49,20 +49,20 @@ namespace OnlineStore.LoadCSVLibrary
} }
public virtual int GetValue() public virtual int GetValue()
{ {
if (ProVale.Equals("")) if (ProValue.Equals(""))
{ {
return -1; return -1;
} }
return Convert.ToInt32(ProVale); return Convert.ToInt32(ProValue);
} }
public override string ToString() public override string ToString()
{ {
return "ConfigBase。" + "类型:" + ProType + ",说明:" + Explain + ",名称:" + ProName + ",属性值:" + ProVale; return "ConfigBase。" + "类型:" + ProType + ",说明:" + Explain + ",名称:" + ProName + ",属性值:" + ProValue;
} }
public virtual void CheckField() public virtual void CheckField()
{ {
if (String.IsNullOrEmpty(ProType) || String.IsNullOrEmpty(ProName) || String.IsNullOrEmpty(ProVale)) if (String.IsNullOrEmpty(ProType) || String.IsNullOrEmpty(ProName) || String.IsNullOrEmpty(ProValue))
{ {
throw new CVSFieldNotMatchingExection(ToString() + ",【类型:ProType】【名称:ProName】【属性值:ProVale】必须配置值!"); throw new CVSFieldNotMatchingExection(ToString() + ",【类型:ProType】【名称:ProName】【属性值:ProVale】必须配置值!");
} }
...@@ -168,20 +168,20 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -168,20 +168,20 @@ namespace OnlineStore.LoadCSVLibrary
/// <returns></returns> /// <returns></returns>
public short GetAxisValue() public short GetAxisValue()
{ {
if (ProVale.Equals("") || ProVale.Equals("-1")) if (ProValue.Equals("") || ProValue.Equals("-1"))
{ {
return -1; return -1;
} }
return (short)Convert.ToInt32(ProVale); return (short)Convert.ToInt32(ProValue);
} }
public override string ToString() public override string ToString()
{ {
return "ConfigMoveAxis。" + "类型:" + ProType + ",说明:" + Explain + ",名称:" + ProName + ",属性值:" + ProVale + ",设备名称:" + DeviceName; return "ConfigMoveAxis。" + "类型:" + ProType + ",说明:" + Explain + ",名称:" + ProName + ",属性值:" + ProValue + ",设备名称:" + DeviceName;
} }
public override void CheckField() public override void CheckField()
{ {
if (String.IsNullOrEmpty( ProType) || String.IsNullOrEmpty( ProName ) || String.IsNullOrEmpty( DeviceName ) || String.IsNullOrEmpty( ProVale )) if (String.IsNullOrEmpty( ProType) || String.IsNullOrEmpty( ProName ) || String.IsNullOrEmpty( DeviceName ) || String.IsNullOrEmpty( ProValue ))
{ {
throw new CVSFieldNotMatchingExection(ToString() + ",【类型:ProType】【名称:ProName】【属性值:ProVale】【设备名称:DeviceName】必须配置值!"); throw new CVSFieldNotMatchingExection(ToString() + ",【类型:ProType】【名称:ProName】【属性值:ProVale】【设备名称:DeviceName】必须配置值!");
} }
...@@ -208,6 +208,28 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -208,6 +208,28 @@ namespace OnlineStore.LoadCSVLibrary
{ {
SlaveID = 0; SlaveID = 0;
} }
private string IP = "";
/// <summary>
/// 设备IP
/// </summary>
public string IO_IP
{
get
{
if (String.IsNullOrEmpty(IP))
{
if (StoreConfig.ProIOIpMap != null && StoreConfig.ProIOIpMap.ContainsKey(DeviceName))
{
IP = StoreConfig.ProIOIpMap[DeviceName];
}
else
{
IP = DeviceName;
}
}
return IP;
}
}
/// <summary> /// <summary>
/// 设备名称 /// 设备名称
/// </summary> /// </summary>
...@@ -262,26 +284,26 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -262,26 +284,26 @@ namespace OnlineStore.LoadCSVLibrary
} }
try try
{ {
if (ProVale.Equals("") || ProVale.Equals("-1")) if (ProValue.Equals("") || ProValue.Equals("-1"))
{ {
IoValue = -1; IoValue = -1;
} }
else if (ProType.Equals(ConfigItemType.DI)) else if (ProType.Equals(ConfigItemType.DI))
{ {
IoValue = Convert.ToInt32(ProVale, 8); IoValue = Convert.ToInt32(ProValue, 8);
} }
else if (ProType.Equals(ConfigItemType.DO)) else if (ProType.Equals(ConfigItemType.DO))
{ {
if (ProVale.Length == 2) if (ProValue.Length == 2)
{ {
int a = Convert.ToInt32(ProVale.Substring(0, 1), 16) - 8; int a = Convert.ToInt32(ProValue.Substring(0, 1), 16) - 8;
string str =a+ProVale.Substring(1,1); string str =a+ProValue.Substring(1,1);
IoValue = Convert.ToInt32( str, 8); IoValue = Convert.ToInt32( str, 8);
//IoValue = a + b; //IoValue = a + b;
} }
else else
{ {
IoValue = Convert.ToInt32(ProVale, 16) - Convert.ToInt32("80", 16); IoValue = Convert.ToInt32(ProValue, 16) - Convert.ToInt32("80", 16);
} }
} }
//LOGGER.Info("IO转换:(" + ElectricalDefinition + ")" + ProVale + "=" + IoValue); //LOGGER.Info("IO转换:(" + ElectricalDefinition + ")" + ProVale + "=" + IoValue);
...@@ -296,11 +318,11 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -296,11 +318,11 @@ namespace OnlineStore.LoadCSVLibrary
public override string ToString() public override string ToString()
{ {
return "ConfigIO。" + ProType + "," + Explain + "," + ProName + ",属性值:" + ProVale + ",设备名称:" + DeviceName + ",描述:" + Describe + ",电器定义:" + ElectricalDefinition + ",代码定义:" + CodeDefinition + ""; return "ConfigIO。" + ProType + "," + Explain + "," + ProName + ",属性值:" + ProValue + ",设备名称:" + DeviceName + ",描述:" + Describe + ",电器定义:" + ElectricalDefinition + ",代码定义:" + CodeDefinition + "";
} }
public override void CheckField() public override void CheckField()
{ {
if (String.IsNullOrEmpty(ProType) || String.IsNullOrEmpty(ProName) || String.IsNullOrEmpty(DeviceName) || String.IsNullOrEmpty(ProVale)) if (String.IsNullOrEmpty(ProType) || String.IsNullOrEmpty(ProName) || String.IsNullOrEmpty(DeviceName) || String.IsNullOrEmpty(ProValue))
{ {
throw new CVSFieldNotMatchingExection(ToString() + ",【类型:ProType】【名称:ProName】【属性值:ProVale】【设备名称:DeviceName】必须配置值!"); throw new CVSFieldNotMatchingExection(ToString() + ",【类型:ProType】【名称:ProName】【属性值:ProVale】【设备名称:DeviceName】必须配置值!");
} }
......
...@@ -4,11 +4,14 @@ using System.Collections.Generic; ...@@ -4,11 +4,14 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using System.Text; using System.Text;
namespace OnlineStore.LoadCSVLibrary namespace OnlineStore.LoadCSVLibrary
{ {
public class StoreConfig public class StoreConfig
{ {
public static Dictionary<string, string> ProIOIpMap = null;
public const string IOIP_Str = "PRO_AOI_IP";
public static readonly ILog LOGGER = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); public static readonly ILog LOGGER = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
/// <summary> /// <summary>
/// ID /// ID
...@@ -109,9 +112,21 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -109,9 +112,21 @@ namespace OnlineStore.LoadCSVLibrary
} }
else if (con.ProType == ConfigItemType.PRO) else if (con.ProType == ConfigItemType.PRO)
{ {
prop.SetValue(this, Convert.ChangeType(con.ProVale, prop.PropertyType), null);//赋值 prop.SetValue(this, Convert.ChangeType(con.ProValue, prop.PropertyType), null);//赋值
} }
} }
else
{
LOGGER.Error("配置文件:" + this.ConfigFilePath + ",属性名=" + con.ProName + "的属性未找到匹配字段!");
}
}
else if (!ProIOIpMap.ContainsKey(con.ProName) && con.ProName.ToUpper().Contains(IOIP_Str))
{
ProIOIpMap.Add(con.ProName, con.ProValue);
if (!DIODeviceNameList.Contains(con.ProValue))
{
DIODeviceNameList.Add(con.ProValue);
}
} }
else else
{ {
...@@ -123,7 +138,7 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -123,7 +138,7 @@ namespace OnlineStore.LoadCSVLibrary
if (IO_Type.GetTypeList().Contains(con.ProName)) if (IO_Type.GetTypeList().Contains(con.ProName))
{ {
ConfigIO io = (ConfigIO)con; ConfigIO io = (ConfigIO)con;
if (!DIODeviceNameList.Contains(io.DeviceName) && (io.GetIOValue() >= 0 || io.GetIOAddr() >= 0)) if (!DIODeviceNameList.Contains(io.DeviceName) && (io.GetIOValue() >= 0 || io.GetIOAddr() >= 0)&&io.DeviceName.Contains(IOIP_Str).Equals(false))
{ {
DIODeviceNameList.Add(io.DeviceName); DIODeviceNameList.Add(io.DeviceName);
} }
...@@ -139,7 +154,7 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -139,7 +154,7 @@ namespace OnlineStore.LoadCSVLibrary
if (IO_Type.GetTypeList().Contains(con.ProName)) if (IO_Type.GetTypeList().Contains(con.ProName))
{ {
ConfigIO io = (ConfigIO)con; ConfigIO io = (ConfigIO)con;
if (!DIODeviceNameList.Contains(io.DeviceName) && io.GetIOValue() >= 0) if (!DIODeviceNameList.Contains(io.DeviceName) && io.GetIOValue() >= 0 && io.DeviceName.Contains(IOIP_Str).Equals(false))
{ {
DIODeviceNameList.Add(io.DeviceName); DIODeviceNameList.Add(io.DeviceName);
} }
...@@ -204,7 +219,7 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -204,7 +219,7 @@ namespace OnlineStore.LoadCSVLibrary
} }
} }
public ConfigIO getWaitIO(string ioType) public ConfigIO getWaitIO(string ioType)
{ {
if (StoreDIList.ContainsKey(ioType)) if (StoreDIList.ContainsKey(ioType))
...@@ -216,6 +231,6 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -216,6 +231,6 @@ namespace OnlineStore.LoadCSVLibrary
return StoreDOList[ioType]; return StoreDOList[ioType];
} }
return null; return null;
} }
} }
} }
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!