|
@@ -1272,7 +1272,7 @@ namespace IMCS.CCS.Service.Impl
|
|
foreach (EquipmentMonitor equipment in equipmentMonitors)
|
|
foreach (EquipmentMonitor equipment in equipmentMonitors)
|
|
{
|
|
{
|
|
Device device = devices.Where(x => x.Ip == equipment.IP).FirstOrDefault();
|
|
Device device = devices.Where(x => x.Ip == equipment.IP).FirstOrDefault();
|
|
- if (device != null && !device.UseState)
|
|
|
|
|
|
+ if (device != null && !device.UseState)
|
|
{
|
|
{
|
|
if (equipment.Status != "离线")
|
|
if (equipment.Status != "离线")
|
|
{
|
|
{
|
|
@@ -1291,7 +1291,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
|
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- else if (device != null && equipment.Name == "机械手")
|
|
|
|
|
|
+ else if (device != null && (equipment.Name == "机械手" || equipment.Name == "保障中心_伺服舵机"))
|
|
{
|
|
{
|
|
//缓存取PLC tagvalue 值
|
|
//缓存取PLC tagvalue 值
|
|
List<CcsTagValue> tagValues = new List<CcsTagValue>();
|
|
List<CcsTagValue> tagValues = new List<CcsTagValue>();
|
|
@@ -1404,6 +1404,7 @@ namespace IMCS.CCS.Service.Impl
|
|
{
|
|
{
|
|
ProductionStatus productionStatus = new ProductionStatus();
|
|
ProductionStatus productionStatus = new ProductionStatus();
|
|
productionStatus.id = alarmEquipment.Id.ToString();
|
|
productionStatus.id = alarmEquipment.Id.ToString();
|
|
|
|
+ productionStatus.ip = onlineDevice.Ip;
|
|
productionStatus.alertMsg = responseData.errorsInfo;
|
|
productionStatus.alertMsg = responseData.errorsInfo;
|
|
productionStatus.alarmState = true;//报警
|
|
productionStatus.alarmState = true;//报警
|
|
productionStatusList.Add(productionStatus);
|
|
productionStatusList.Add(productionStatus);
|
|
@@ -1428,6 +1429,7 @@ namespace IMCS.CCS.Service.Impl
|
|
{
|
|
{
|
|
ProductionStatus productionStatus = new ProductionStatus();
|
|
ProductionStatus productionStatus = new ProductionStatus();
|
|
productionStatus.id = alarmEquipment.Id.ToString();
|
|
productionStatus.id = alarmEquipment.Id.ToString();
|
|
|
|
+ productionStatus.ip = onlineDevice.Ip;
|
|
productionStatus.alertMsg = string.Join(",", msgs.ToArray());
|
|
productionStatus.alertMsg = string.Join(",", msgs.ToArray());
|
|
productionStatus.alarmState = true;//报警
|
|
productionStatus.alarmState = true;//报警
|
|
productionStatusList.Add(productionStatus);
|
|
productionStatusList.Add(productionStatus);
|
|
@@ -1462,26 +1464,38 @@ namespace IMCS.CCS.Service.Impl
|
|
//获取机械手报警信息
|
|
//获取机械手报警信息
|
|
CcsTagValue plcWarnValue = tagValues.Where(x => x.Ip == alarmEquipment.IP && x.Address == "DB200.34").FirstOrDefault();
|
|
CcsTagValue plcWarnValue = tagValues.Where(x => x.Ip == alarmEquipment.IP && x.Address == "DB200.34").FirstOrDefault();
|
|
if (plcWarnValue != null && plcWarnValue.TagValue != "0")
|
|
if (plcWarnValue != null && plcWarnValue.TagValue != "0")
|
|
- {
|
|
|
|
- ToolDto ccsDictionary = new ToolDto();
|
|
|
|
- ccsDictionary.Type = "PlcWarnInfo";
|
|
|
|
-
|
|
|
|
- List<ToolDto> dictList = await _dictionaryService.GetList(ccsDictionary);
|
|
|
|
- if (dictList.Count > 0 && dictList[0] != null)
|
|
|
|
|
|
+ {
|
|
|
|
+ //从字典中查询具体描述
|
|
|
|
+ List<Dictionary> dictList = new List<Dictionary>() ;
|
|
|
|
+ string dict_value_redis_key = imcs_redis_key + RedisKeyEnum.DictKeyList;
|
|
|
|
+ var dictData = await _redisService.Database.StringGetAsync(dict_value_redis_key);
|
|
|
|
+ if (dictData.IsNullOrEmpty)
|
|
{
|
|
{
|
|
-
|
|
|
|
- ToolDto dictObj = dictList.Where(x => x.Code.ToString() == plcWarnValue.TagValue && x.state).FirstOrDefault();
|
|
|
|
- if (null != dictObj && !string.IsNullOrEmpty(dictObj.DictValue.Trim()))
|
|
|
|
|
|
+ Dictionary ccsDictionary = new Dictionary();
|
|
|
|
+ dictList = await _dictionaryService.GetList(ccsDictionary);
|
|
|
|
+ //首次设置redis
|
|
|
|
+ if (dictList != null && dictList.Count > 0)
|
|
{
|
|
{
|
|
- ProductionStatus productionStatus = new ProductionStatus();
|
|
|
|
- productionStatus.id = alarmEquipment.Id.ToString();
|
|
|
|
- productionStatus.alertMsg = dictObj.Description.Trim();
|
|
|
|
- productionStatus.onlineStatus = "1";
|
|
|
|
- productionStatus.alarmState = true; //报警
|
|
|
|
- productionStatusList.Add(productionStatus);
|
|
|
|
|
|
+ await _redisService.Database.StringSetAsync(dict_value_redis_key, JsonConvert.SerializeObject(dictList));
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ dictList = JsonConvert.DeserializeObject<List<Dictionary>>(dictData);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Dictionary dictObj = dictList.Where(x => x.Type == onlineDevice.Ip && x.Code.ToString() == plcWarnValue.TagValue && x.state).FirstOrDefault();
|
|
|
|
+ if (null != dictObj && !string.IsNullOrEmpty(dictObj.DictValue.Trim()))
|
|
|
|
+ {
|
|
|
|
+ ProductionStatus productionStatus = new ProductionStatus();
|
|
|
|
+ productionStatus.id = alarmEquipment.Id.ToString();
|
|
|
|
+ productionStatus.ip = onlineDevice.Ip;
|
|
|
|
+ productionStatus.alertMsg = dictObj.Description.Trim();
|
|
|
|
+ productionStatus.onlineStatus = "1";
|
|
|
|
+ productionStatus.alarmState = true; //报警
|
|
|
|
+ productionStatusList.Add(productionStatus);
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1551,6 +1565,7 @@ namespace IMCS.CCS.Service.Impl
|
|
if (oldDevice != null && oldDevice.State)
|
|
if (oldDevice != null && oldDevice.State)
|
|
{
|
|
{
|
|
device.State = false;
|
|
device.State = false;
|
|
|
|
+ device.DisconnectUpdateTime = DateTime.Now;
|
|
await _deviceService.UpdateAndCache(device);
|
|
await _deviceService.UpdateAndCache(device);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1564,6 +1579,7 @@ namespace IMCS.CCS.Service.Impl
|
|
if (oldDevice != null && !oldDevice.State)
|
|
if (oldDevice != null && !oldDevice.State)
|
|
{
|
|
{
|
|
oldDevice.State = true;
|
|
oldDevice.State = true;
|
|
|
|
+ device.DisconnectUpdateTime = DateTime.Now;
|
|
await _deviceService.UpdateAndCache(oldDevice);
|
|
await _deviceService.UpdateAndCache(oldDevice);
|
|
}
|
|
}
|
|
Log.Instance.WriteLogAdd(device.Ip + ":"+ device.ProtocolType + "连接成功", LOG_TITLE_DEVICE);
|
|
Log.Instance.WriteLogAdd(device.Ip + ":"+ device.ProtocolType + "连接成功", LOG_TITLE_DEVICE);
|