|
@@ -168,6 +168,8 @@ namespace WCS.Service
|
|
|
|
|
|
#endregion 创建虚拟PLC
|
|
|
|
|
|
+ var a = typeof(IStation520);
|
|
|
+
|
|
|
//日志发布事件s
|
|
|
Configs.PublishEvent += () =>
|
|
|
{
|
|
@@ -195,34 +197,9 @@ namespace WCS.Service
|
|
|
var dbProtocols = db.Default.Queryable<WCS_DEVICEPROTOCOL>().Includes(v => v.DB, p => p.PLC).ToList();
|
|
|
foreach (var dbProtocol in dbProtocols)
|
|
|
{
|
|
|
- if (dbProtocol.DEVICECODE.Contains("SRM"))
|
|
|
- {
|
|
|
- }
|
|
|
- else if (dbProtocol.DEVICECODE.Contains("RGV"))
|
|
|
- {
|
|
|
- }
|
|
|
- else if (dbProtocol.DEVICECODE.Contains("BCR"))
|
|
|
- {
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- if (dbProtocol.DB.CODE.Contains("520"))
|
|
|
- {
|
|
|
- Add<IStation520>(dbProtocol.DEVICECODE, dbProtocol.POSITION, (ushort)dbProtocol.DB.NO, dbProtocol.DB.PLC.IP);
|
|
|
- }
|
|
|
- else if (dbProtocol.DB.CODE.Contains("521"))
|
|
|
- {
|
|
|
- Add<IStation521>(dbProtocol.DEVICECODE, dbProtocol.POSITION, (ushort)dbProtocol.DB.NO, dbProtocol.DB.PLC.IP);
|
|
|
- }
|
|
|
- else if (dbProtocol.DB.CODE.Contains("523"))
|
|
|
- {
|
|
|
- Add<IStation522>(dbProtocol.DEVICECODE, dbProtocol.POSITION, (ushort)dbProtocol.DB.NO, dbProtocol.DB.PLC.IP);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- continue;
|
|
|
- }
|
|
|
- }
|
|
|
+#pragma warning disable CS8604 // 引用类型参数可能为 null。
|
|
|
+ Add(Type.GetType(dbProtocol.DB.PROTOCOL), dbProtocol.DEVICECODE, dbProtocol.POSITION, dbProtocol.DB, dbProtocol.DB.PLC);
|
|
|
+#pragma warning restore CS8604 // 引用类型参数可能为 null。
|
|
|
}
|
|
|
});
|
|
|
|
|
@@ -252,30 +229,37 @@ namespace WCS.Service
|
|
|
/// <summary>
|
|
|
/// 添加协议
|
|
|
/// </summary>
|
|
|
- /// <typeparam name="T"></typeparam>
|
|
|
- /// <param name="code"> </param>
|
|
|
- /// <param name="position"> </param>
|
|
|
- /// <param name="db"></param>
|
|
|
- /// <param name="ip"></param>
|
|
|
- public static void Add<T>(string code, int position, ushort db, string ip)
|
|
|
+ /// <param name="type">协议类型</param>
|
|
|
+ /// <param name="code">设备号</param>
|
|
|
+ /// <param name="position">地址</param>
|
|
|
+ /// <param name="db">db</param>
|
|
|
+ /// <param name="plc">PLC</param>
|
|
|
+ public static void Add(Type type, string code, int position, WCS_DATABLOCK db, WCS_PLC plc)
|
|
|
{
|
|
|
var info = new ProtocolInfo
|
|
|
{
|
|
|
Position = position,
|
|
|
DBInfo = new DBInfo
|
|
|
{
|
|
|
- No = db,
|
|
|
+ No = (ushort)db.NO,
|
|
|
PLCInfo = new PLCInfo
|
|
|
{
|
|
|
- IP = ip,
|
|
|
- Port = 102,
|
|
|
- Rack = 0,
|
|
|
- Slot = 1,
|
|
|
+ IP = plc.IP,
|
|
|
+ Port = plc.PORT,
|
|
|
+ Rack = plc.RACK,
|
|
|
+ Slot = plc.SLOT,
|
|
|
Type = Core.PLCType.Siemens
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
- Protocols<T>.Add(code, info);
|
|
|
+ try
|
|
|
+ {
|
|
|
+ Protocols.Add(type, code, info);
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ var a = ex;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|