AlarmConditionParameterData.cs 78 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456
  1. using Aitex.Core.RT.Log;
  2. using Aitex.Core.RT.ParameterCenter;
  3. using Caliburn.Micro.Core;
  4. using MECF.Framework.Common.ParameterCenter;
  5. using MECF.Framework.UI.Client.CenterViews.Editors.Recipe;
  6. using RecipeEditorLib.RecipeModel.Params;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Collections.ObjectModel;
  10. using System.Linq;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. using System.Windows;
  14. using System.Xml;
  15. namespace MECF.Framework.UI.Client.CenterViews.Parameter
  16. {
  17. public class AlarmConditionParameterData : ParameterDataBase
  18. {
  19. private ParameterProvider _parameterProvider = new ParameterProvider();
  20. private ParameterFormatBuilder _columnBuilder = new ParameterFormatBuilder();
  21. private Dictionary<string, ObservableCollection<ParameterTemplateColumnBase>> ParameterTemplate;
  22. public AlarmConditionParameterData() : base()
  23. {
  24. string vars = _parameterProvider.GetParameterFormatXml($"Parameter\\AlarmCondition");
  25. _columnBuilder.Build($"Parameter\\AlarmCondition");
  26. ParameterTemplate = _parameterProvider.GetGroupParameterTemplate();
  27. TableNumber = _columnBuilder.TableNumber;
  28. Version = _columnBuilder.Version;
  29. for (int i = 1; i < TableNumber + 1; i++)
  30. {
  31. Steps.Add(CreateStep());
  32. }
  33. }
  34. public override ParameterTable CreateStep(XmlNode stepNode = null)
  35. {
  36. ParameterTable step = new AlarmConditionTable();
  37. if (stepNode != null)
  38. {
  39. if (stepNode.Attributes["StepNo"] != null)
  40. step.StepNo = int.Parse(stepNode.Attributes["StepNo"].Value);
  41. if (stepNode.Attributes["Name"] != null)
  42. step.Name = stepNode.Attributes["Name"].Value;
  43. //if (stepNode.Attributes["UseTemp"] != null)
  44. // step.UseTemp = stepNode.Attributes["UseTemp"].Value;
  45. }
  46. else
  47. {
  48. step.StepNo = StepNo;
  49. step.Name = "Name" + StepNo.ToString();
  50. // step.UseTemp = "0";
  51. StepNo++;
  52. }
  53. int pIDIndex = 1;
  54. InitializationData(step);
  55. if (stepNode != null)
  56. {
  57. if (stepNode.Attributes["TempHeater"] != null)
  58. {
  59. ((AlarmConditionTable)step).SetHeaterTempData(stepNode.Attributes["TempHeater"].Value);
  60. }
  61. if (stepNode.Attributes["TempBoat"] != null)
  62. {
  63. ((AlarmConditionTable)step).SetBoatTempData(stepNode.Attributes["TempBoat"].Value);
  64. }
  65. if (stepNode.Attributes["FlowDeviation"] != null)
  66. {
  67. ((AlarmConditionTable)step).SetMFCFlowDeviationData(stepNode.Attributes["FlowDeviation"].Value);
  68. }
  69. if (stepNode.Attributes["Press"] != null)
  70. {
  71. ((AlarmConditionTable)step).SetPressData(stepNode.Attributes["Press"].Value);
  72. }
  73. if (stepNode.Attributes["AUX"] != null)
  74. {
  75. ((AlarmConditionTable)step).SetAUXData(stepNode.Attributes["AUX"].Value);
  76. }
  77. if (stepNode.Attributes["HWILK"] != null)
  78. {
  79. ((AlarmConditionTable)step).SetHWILKData(stepNode.Attributes["HWILK"].Value);
  80. }
  81. if (stepNode.Attributes["ValveILK"] != null)
  82. {
  83. ((AlarmConditionTable)step).SetValveIlkData(stepNode.Attributes["ValveILK"].Value);
  84. }
  85. if (stepNode.Attributes["TempController"] != null)
  86. {
  87. ((AlarmConditionTable)step).SetTempControlerData(stepNode.Attributes["TempController"].Value);
  88. }
  89. if (stepNode.Attributes["APCController"] != null)
  90. {
  91. ((AlarmConditionTable)step).SetAPCControlerData(stepNode.Attributes["APCController"].Value);
  92. }
  93. if (stepNode.Attributes["CLNAlarmList"] != null)
  94. {
  95. ((AlarmConditionTable)step).SetCLNAlarmListData(stepNode.Attributes["CLNAlarmList"].Value);
  96. }
  97. if (stepNode.Attributes["TransferError"] != null)
  98. {
  99. ((AlarmConditionTable)step).SetTransferErrorData(stepNode.Attributes["TransferError"].Value);
  100. }
  101. if (stepNode.Attributes["SerialLineDown"] != null)
  102. {
  103. ((AlarmConditionTable)step).SetSerialLineDownData(stepNode.Attributes["SerialLineDown"].Value);
  104. }
  105. if (stepNode.Attributes["LanLineDown"] != null)
  106. {
  107. ((AlarmConditionTable)step).SetLanLineDownData(stepNode.Attributes["LanLineDown"].Value);
  108. }
  109. //if (stepNode.Attributes["DeviceNetLineDown"] != null)
  110. //{
  111. // ((AlarmConditionTable)step).SetDeviceNetLineDownData(stepNode.Attributes["DeviceNetLineDown"].Value);
  112. //}
  113. if (stepNode.Attributes["Sensor"] != null)
  114. {
  115. ((AlarmConditionTable)step).SetSensorData(stepNode.Attributes["Sensor"].Value);
  116. }
  117. if (stepNode.Attributes["Other"] != null)
  118. {
  119. ((AlarmConditionTable)step).SetOtherData(stepNode.Attributes["Other"].Value);
  120. }
  121. }
  122. return step;
  123. }
  124. private void InitializationData(ParameterTable step)
  125. {
  126. foreach (var item in ParameterTemplate)
  127. {
  128. var keyName = item.Key.Split('\t')[0];
  129. switch (keyName)
  130. {
  131. case "TempHeater":
  132. string[] heaterList = item.Key.Split('\t');
  133. AlarmConditionHeaterTemp alarmConditionHeaterTemp = new AlarmConditionHeaterTemp();
  134. if (heaterList.Length == 3)
  135. alarmConditionHeaterTemp.ZoneName = heaterList[2];
  136. ParameterTemplateColumnBase alarmCom = null;
  137. ParameterTemplateColumnBase alarmDevHighCom = null;
  138. ParameterTemplateColumnBase alarmDevLowCom = null;
  139. ParameterTemplateColumnBase alarmUnitCom = null;
  140. ParameterTemplateColumnBase alarmDelayTimeCom = null;
  141. ParameterTemplateColumnBase alarmTimeCom = null;
  142. ParameterTemplateColumnBase alarmErrorCom = null;
  143. ParameterTemplateColumnBase errorCom = null;
  144. ParameterTemplateColumnBase errorDevHighCom = null;
  145. ParameterTemplateColumnBase errorDevLowCom = null;
  146. ParameterTemplateColumnBase errorUnitCom = null;
  147. ParameterTemplateColumnBase errorDelayTimeCom = null;
  148. ParameterTemplateColumnBase errorTimeCom = null;
  149. ParameterTemplateColumnBase errorErrorCom = null;
  150. foreach (var subitem in item.Value)
  151. {
  152. switch (subitem.ControlName)
  153. {
  154. case "AlarmCheck":
  155. alarmCom = subitem;
  156. break;
  157. case "AlarmDevHigh":
  158. alarmDevHighCom = subitem;
  159. break;
  160. case "AlarmDevLow":
  161. alarmDevLowCom = subitem;
  162. break;
  163. case "AlarmUnit":
  164. alarmUnitCom = subitem;
  165. break;
  166. case "AlarmTime":
  167. alarmTimeCom = subitem;
  168. break;
  169. case "AlarmDelayTime":
  170. alarmDelayTimeCom = subitem;
  171. break;
  172. case "AlarmErrorCommand":
  173. alarmErrorCom = subitem;
  174. break;
  175. case "ErrorCheck":
  176. errorCom = subitem;
  177. break;
  178. case "ErrorDevHigh":
  179. errorDevHighCom = subitem;
  180. break;
  181. case "ErrorDevLow":
  182. errorDevLowCom = subitem;
  183. break;
  184. case "ErrorUnit":
  185. errorUnitCom = subitem;
  186. break;
  187. case "ErrorDelayTime":
  188. errorDelayTimeCom = subitem;
  189. break;
  190. case "ErrorTime":
  191. errorTimeCom = subitem;
  192. break;
  193. case "ErrorErrorCommand":
  194. errorErrorCom = subitem;
  195. break;
  196. default:
  197. break;
  198. }
  199. }
  200. bool alarmIsCheck = false;
  201. if (alarmCom != null)
  202. {
  203. alarmIsCheck = alarmCom.Default == "ON" ? true : false;
  204. }
  205. DoubleParam alarmDevParam = null;
  206. if (alarmDevHighCom != null)
  207. {
  208. alarmDevParam = new DoubleParam()
  209. {
  210. Name = alarmDevHighCom.DisplayName,
  211. Minimun = alarmDevHighCom.Minimun,
  212. Maximun = alarmDevHighCom.Maximun,
  213. Value = alarmDevHighCom.Value.ToString()
  214. };
  215. }
  216. DoubleParam alarmDevLowParam = null;
  217. if (alarmDevLowCom != null)
  218. {
  219. alarmDevLowParam = new DoubleParam()
  220. {
  221. Name = alarmDevLowCom.DisplayName,
  222. Minimun = alarmDevLowCom.Minimun,
  223. Maximun = alarmDevLowCom.Maximun,
  224. Value = alarmDevLowCom.Value.ToString()
  225. };
  226. }
  227. string alarmUnit = "℃";
  228. if (alarmUnitCom != null)
  229. {
  230. alarmUnit = alarmUnitCom.Default;
  231. }
  232. DoubleParam alarmDelayTimeParam = null;
  233. if (alarmDelayTimeCom != null)
  234. {
  235. alarmDelayTimeParam = new DoubleParam()
  236. {
  237. Name = alarmDelayTimeCom.DisplayName,
  238. Minimun = alarmDelayTimeCom.Minimun,
  239. Maximun = alarmDelayTimeCom.Maximun,
  240. Value = alarmDelayTimeCom.Value.ToString()
  241. };
  242. }
  243. DoubleParam alarmTimeParam = null;
  244. if (alarmTimeCom != null)
  245. {
  246. alarmTimeParam = new DoubleParam()
  247. {
  248. Name = alarmTimeCom.DisplayName,
  249. Minimun = alarmTimeCom.Minimun,
  250. Maximun = alarmTimeCom.Maximun,
  251. Value = alarmTimeCom.Value.ToString()
  252. };
  253. }
  254. string alarmError = "";
  255. if (alarmErrorCom != null)
  256. {
  257. alarmError = alarmErrorCom.Default;
  258. }
  259. alarmConditionHeaterTemp.AlertTempData = new TempData()
  260. {
  261. Type = CheckType.Alert,
  262. IsCheck = alarmIsCheck,
  263. DevHigh = alarmDevParam != null ? alarmDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "0" },
  264. DevLow = alarmDevLowParam != null ? alarmDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "0" },
  265. Unit = alarmUnit,
  266. DelayTime = alarmDelayTimeParam != null ? alarmDelayTimeParam : new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },
  267. Time = alarmTimeParam != null ? alarmTimeParam : new DoubleParam() { Name = alarmTimeParam.DisplayName, Minimun = 0, Maximun = 99999, Value = "0" },
  268. ErrorCommand = alarmError
  269. };
  270. bool errorIsCheck = false;
  271. if (errorCom != null)
  272. {
  273. errorIsCheck = errorCom.Default == "ON" ? true : false;
  274. }
  275. DoubleParam errorDevParam = null;
  276. if (errorDevHighCom != null)
  277. {
  278. errorDevParam = new DoubleParam()
  279. {
  280. Name = errorDevHighCom.DisplayName,
  281. Minimun = errorDevHighCom.Minimun,
  282. Maximun = errorDevHighCom.Maximun,
  283. Value = errorDevHighCom.Value.ToString()
  284. };
  285. }
  286. DoubleParam errorDevLowParam = null;
  287. if (errorDevLowCom != null)
  288. {
  289. errorDevLowParam = new DoubleParam()
  290. {
  291. Name = errorDevLowCom.DisplayName,
  292. Minimun = errorDevLowCom.Minimun,
  293. Maximun = errorDevLowCom.Maximun,
  294. Value = errorDevLowCom.Value.ToString()
  295. };
  296. }
  297. string errorUnit = "℃";
  298. if (errorUnitCom != null)
  299. {
  300. errorUnit = errorUnitCom.Default;
  301. }
  302. DoubleParam errorDelayTimeParam = null;
  303. if (errorDelayTimeCom != null)
  304. {
  305. errorDelayTimeParam = new DoubleParam()
  306. {
  307. Name = errorDelayTimeCom.DisplayName,
  308. Minimun = errorDelayTimeCom.Minimun,
  309. Maximun = errorDelayTimeCom.Maximun,
  310. Value = errorDelayTimeCom.Value.ToString()
  311. };
  312. }
  313. DoubleParam errorTimeParam = null;
  314. if (errorTimeCom != null)
  315. {
  316. errorTimeParam = new DoubleParam()
  317. {
  318. Name = errorTimeCom.DisplayName,
  319. Minimun = errorTimeCom.Minimun,
  320. Maximun = errorTimeCom.Maximun,
  321. Value = errorTimeCom.Value.ToString()
  322. };
  323. }
  324. string errorError = "Buzzer";
  325. if (errorErrorCom != null)
  326. {
  327. errorError = errorErrorCom.Default;
  328. }
  329. alarmConditionHeaterTemp.AlarmTempData = new TempData()
  330. {
  331. Type = CheckType.Alarm,
  332. IsCheck = errorIsCheck,
  333. DevHigh = errorDevParam != null ? errorDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 99999, Value = "0" },
  334. DevLow = errorDevLowParam != null ? errorDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 99999, Value = "0" },
  335. Unit = errorUnit,
  336. DelayTime = errorDelayTimeParam != null ? errorDelayTimeParam : new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },
  337. Time = errorTimeParam != null ? errorTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" },
  338. ErrorCommand = errorError
  339. };
  340. ((AlarmConditionTable)step).HeaterTempList.Add(alarmConditionHeaterTemp);
  341. break;
  342. case "TempBoat":
  343. string[] boatList = item.Key.Split('\t');
  344. AlarmConditionBoatTemp alarmConditionBoatTemp = new AlarmConditionBoatTemp();
  345. if (boatList.Length == 3)
  346. {
  347. alarmConditionBoatTemp.BoatMotion = boatList[2];
  348. }
  349. var highLimitCom = item.Value.Where(x => x.ControlName == "HighLimit").FirstOrDefault();
  350. DoubleParam highLimitParam = null;
  351. if (highLimitCom != null)
  352. {
  353. highLimitParam = new DoubleParam()
  354. {
  355. Name = highLimitCom.DisplayName,
  356. Minimun = highLimitCom.Minimun,
  357. Maximun = highLimitCom.Maximun,
  358. Value = highLimitCom.Value.ToString()
  359. };
  360. }
  361. alarmConditionBoatTemp.HighLimit = highLimitParam != null ? highLimitParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "0" };
  362. var unitCom = item.Value.Where(x => x.ControlName == "Unit").FirstOrDefault();
  363. string unitStr = "℃";
  364. if (unitCom != null)
  365. {
  366. unitStr = unitCom.Default;
  367. }
  368. alarmConditionBoatTemp.Unit = unitStr;
  369. ((AlarmConditionTable)step).BoatTempList.Add(alarmConditionBoatTemp);
  370. break;
  371. case "FlowDeviation":
  372. string[] flowDeviationList = item.Key.Split('\t');
  373. AlarmConditionMFCFlowDeviation alarmConditionMFCFlowDeviation = new AlarmConditionMFCFlowDeviation();
  374. if (flowDeviationList.Length == 3)
  375. {
  376. alarmConditionMFCFlowDeviation.Index = Convert.ToInt32(flowDeviationList[1]);
  377. alarmConditionMFCFlowDeviation.MFCName = flowDeviationList[2];
  378. }
  379. alarmCom = null;
  380. alarmDevHighCom = null;
  381. alarmDevLowCom = null;
  382. alarmUnitCom = null;
  383. alarmDelayTimeCom = null;
  384. alarmTimeCom = null;
  385. alarmErrorCom = null;
  386. errorCom = null;
  387. errorDevHighCom = null;
  388. errorDevLowCom = null;
  389. errorUnitCom = null;
  390. errorDelayTimeCom = null;
  391. errorTimeCom = null;
  392. errorErrorCom = null;
  393. foreach (var subitem in item.Value)
  394. {
  395. switch (subitem.ControlName)
  396. {
  397. case "AlarmCheck":
  398. alarmCom = subitem;
  399. break;
  400. case "AlarmDevHigh":
  401. alarmDevHighCom = subitem;
  402. break;
  403. case "AlarmDevLow":
  404. alarmDevLowCom = subitem;
  405. break;
  406. case "AlarmUnit":
  407. alarmUnitCom = subitem;
  408. break;
  409. case "AlarmDelayTime":
  410. alarmDelayTimeCom = subitem;
  411. break;
  412. case "AlarmTime":
  413. alarmTimeCom = subitem;
  414. break;
  415. case "AlarmErrorCommand":
  416. alarmErrorCom = subitem;
  417. break;
  418. case "ErrorCheck":
  419. errorCom = subitem;
  420. break;
  421. case "ErrorDevHigh":
  422. errorDevHighCom = subitem;
  423. break;
  424. case "ErrorDevLow":
  425. errorDevLowCom = subitem;
  426. break;
  427. case "ErrorUnit":
  428. errorUnitCom = subitem;
  429. break;
  430. case "ErrorDelayTime":
  431. errorDelayTimeCom = subitem;
  432. break;
  433. case "ErrorTime":
  434. errorTimeCom = subitem;
  435. break;
  436. case "ErrorErrorCommand":
  437. errorErrorCom = subitem;
  438. break;
  439. default:
  440. break;
  441. }
  442. }
  443. alarmIsCheck = false;
  444. if (alarmCom != null)
  445. {
  446. alarmIsCheck = alarmCom.Default == "ON" ? true : false;
  447. }
  448. alarmDevParam = null;
  449. if (alarmDevHighCom != null)
  450. {
  451. alarmDevParam = new DoubleParam()
  452. {
  453. Name = alarmDevHighCom.DisplayName,
  454. Minimun = alarmDevHighCom.Minimun,
  455. Maximun = alarmDevHighCom.Maximun,
  456. Value = alarmDevHighCom.Value.ToString()
  457. };
  458. }
  459. alarmDevLowParam = null;
  460. if (alarmDevLowCom != null)
  461. {
  462. alarmDevLowParam = new DoubleParam()
  463. {
  464. Name = alarmDevLowCom.DisplayName,
  465. Minimun = alarmDevLowCom.Minimun,
  466. Maximun = alarmDevLowCom.Maximun,
  467. Value = alarmDevLowCom.Value.ToString()
  468. };
  469. }
  470. alarmUnit = "%fs";
  471. if (alarmUnitCom != null)
  472. {
  473. alarmUnit = alarmUnitCom.Default;
  474. }
  475. alarmDelayTimeParam = null;
  476. if (alarmDelayTimeCom != null)
  477. {
  478. alarmDelayTimeParam = new DoubleParam()
  479. {
  480. Name = alarmDelayTimeCom.DisplayName,
  481. Minimun = alarmDelayTimeCom.Minimun,
  482. Maximun = alarmDelayTimeCom.Maximun,
  483. Value = alarmDelayTimeCom.Value.ToString()
  484. };
  485. }
  486. alarmTimeParam = null;
  487. if (alarmTimeCom != null)
  488. {
  489. alarmTimeParam = new DoubleParam()
  490. {
  491. Name = alarmTimeCom.DisplayName,
  492. Minimun = alarmTimeCom.Minimun,
  493. Maximun = alarmTimeCom.Maximun,
  494. Value = alarmTimeCom.Value.ToString()
  495. };
  496. }
  497. alarmError = "";
  498. if (alarmErrorCom != null)
  499. {
  500. alarmError = alarmErrorCom.Default;
  501. }
  502. alarmConditionMFCFlowDeviation.AlertTempData = new TempData()
  503. {
  504. Type = CheckType.Alert,
  505. IsCheck = alarmIsCheck,
  506. DevHigh = alarmDevParam != null ? alarmDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "99" },
  507. DevLow = alarmDevLowParam != null ? alarmDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "11" },
  508. Unit = alarmUnit,
  509. Time = alarmTimeParam != null ? alarmTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" },
  510. DelayTime = alarmDelayTimeParam != null ? alarmDelayTimeParam : new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },
  511. ErrorCommand = alarmError
  512. };
  513. errorIsCheck = false;
  514. if (errorCom != null)
  515. {
  516. errorIsCheck = errorCom.Default == "ON" ? true : false;
  517. }
  518. errorDevParam = null;
  519. if (errorDevHighCom != null)
  520. {
  521. errorDevParam = new DoubleParam()
  522. {
  523. Name = errorDevHighCom.DisplayName,
  524. Minimun = errorDevHighCom.Minimun,
  525. Maximun = errorDevHighCom.Maximun,
  526. Value = errorDevHighCom.Value.ToString()
  527. };
  528. }
  529. errorDevLowParam = null;
  530. if (errorDevLowCom != null)
  531. {
  532. errorDevLowParam = new DoubleParam()
  533. {
  534. Name = errorDevLowCom.DisplayName,
  535. Minimun = errorDevLowCom.Minimun,
  536. Maximun = errorDevLowCom.Maximun,
  537. Value = errorDevLowCom.Value.ToString()
  538. };
  539. }
  540. errorUnit = "%fs";
  541. if (errorUnitCom != null)
  542. {
  543. errorUnit = errorUnitCom.Default;
  544. }
  545. errorDelayTimeParam = null;
  546. if (errorDelayTimeCom != null)
  547. {
  548. errorDelayTimeParam = new DoubleParam()
  549. {
  550. Name = errorDelayTimeCom.DisplayName,
  551. Minimun = errorDelayTimeCom.Minimun,
  552. Maximun = errorDelayTimeCom.Maximun,
  553. Value = errorDelayTimeCom.Value.ToString()
  554. };
  555. }
  556. errorTimeParam = null;
  557. if (errorTimeCom != null)
  558. {
  559. errorTimeParam = new DoubleParam()
  560. {
  561. Name = errorTimeCom.DisplayName,
  562. Minimun = errorTimeCom.Minimun,
  563. Maximun = errorTimeCom.Maximun,
  564. Value = errorTimeCom.Value.ToString()
  565. };
  566. }
  567. errorError = "Buzzer";
  568. if (errorErrorCom != null)
  569. {
  570. errorError = errorErrorCom.Default;
  571. }
  572. alarmConditionMFCFlowDeviation.AlarmTempData = new TempData()
  573. {
  574. Type = CheckType.Alarm,
  575. IsCheck = errorIsCheck,
  576. DevHigh = errorDevParam != null ? errorDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "33" },
  577. DevLow = errorDevLowParam != null ? errorDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "22" },
  578. Unit = errorUnit,
  579. Time = errorTimeParam != null ? errorTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" },
  580. DelayTime = errorDelayTimeParam != null ? errorDelayTimeParam : new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },
  581. ErrorCommand = errorError
  582. };
  583. ((AlarmConditionTable)step).MFCFlowDeviationList.Add(alarmConditionMFCFlowDeviation);
  584. break;
  585. case "Press":
  586. string[] pressList = item.Key.Split('\t');
  587. AlarmConditionPress alarmConditionPress = new AlarmConditionPress();
  588. if (pressList.Length == 3)
  589. {
  590. alarmConditionPress.Index = Convert.ToInt32(pressList[1]);
  591. alarmConditionPress.PressKindName = pressList[2];
  592. }
  593. alarmCom = null;
  594. alarmDevHighCom = null;
  595. alarmDevLowCom = null;
  596. alarmUnitCom = null;
  597. alarmDelayTimeCom = null;
  598. alarmTimeCom = null;
  599. alarmErrorCom = null;
  600. errorCom = null;
  601. errorDevHighCom = null;
  602. errorDevLowCom = null;
  603. errorUnitCom = null;
  604. errorDelayTimeCom = null;
  605. errorTimeCom = null;
  606. errorErrorCom = null;
  607. foreach (var subitem in item.Value)
  608. {
  609. switch (subitem.ControlName)
  610. {
  611. case "AlarmCheck":
  612. alarmCom = subitem;
  613. break;
  614. case "AlarmDevHigh":
  615. alarmDevHighCom = subitem;
  616. break;
  617. case "AlarmDevLow":
  618. alarmDevLowCom = subitem;
  619. break;
  620. case "AlarmUnit":
  621. alarmUnitCom = subitem;
  622. break;
  623. case "AlarmDelayTime":
  624. alarmDelayTimeCom = subitem;
  625. break;
  626. case "AlarmTime":
  627. alarmTimeCom = subitem;
  628. break;
  629. case "AlarmErrorCommand":
  630. alarmErrorCom = subitem;
  631. break;
  632. case "ErrorCheck":
  633. errorCom = subitem;
  634. break;
  635. case "ErrorDevHigh":
  636. errorDevHighCom = subitem;
  637. break;
  638. case "ErrorDevLow":
  639. errorDevLowCom = subitem;
  640. break;
  641. case "ErrorUnit":
  642. errorUnitCom = subitem;
  643. break;
  644. case "ErrorDelayTime":
  645. errorDelayTimeCom = subitem;
  646. break;
  647. case "ErrorTime":
  648. errorTimeCom = subitem;
  649. break;
  650. case "ErrorErrorCommand":
  651. errorErrorCom = subitem;
  652. break;
  653. default:
  654. break;
  655. }
  656. }
  657. alarmIsCheck = false;
  658. if (alarmCom != null)
  659. {
  660. alarmIsCheck = alarmCom.Default == "ON" ? true : false;
  661. }
  662. alarmDevParam = null;
  663. if (alarmDevHighCom != null)
  664. {
  665. alarmDevParam = new DoubleParam()
  666. {
  667. Name = alarmDevHighCom.DisplayName,
  668. Minimun = alarmDevHighCom.Minimun,
  669. Maximun = alarmDevHighCom.Maximun,
  670. Value = alarmDevHighCom.Value.ToString()
  671. };
  672. }
  673. alarmDevLowParam = null;
  674. if (alarmDevLowCom != null)
  675. {
  676. alarmDevLowParam = new DoubleParam()
  677. {
  678. Name = alarmDevLowCom.DisplayName,
  679. Minimun = alarmDevLowCom.Minimun,
  680. Maximun = alarmDevLowCom.Maximun,
  681. Value = alarmDevLowCom.Value.ToString()
  682. };
  683. }
  684. alarmUnit = "%fs";
  685. if (alarmUnitCom != null)
  686. {
  687. alarmUnit = alarmUnitCom.Default;
  688. }
  689. alarmDelayTimeParam = null;
  690. if (alarmDelayTimeCom != null)
  691. {
  692. alarmDelayTimeParam = new DoubleParam()
  693. {
  694. Name = alarmDelayTimeCom.DisplayName,
  695. Minimun = alarmDelayTimeCom.Minimun,
  696. Maximun = alarmDelayTimeCom.Maximun,
  697. Value = alarmDelayTimeCom.Value.ToString()
  698. };
  699. }
  700. alarmTimeParam = null;
  701. if (alarmTimeCom != null)
  702. {
  703. alarmTimeParam = new DoubleParam()
  704. {
  705. Name = alarmTimeCom.DisplayName,
  706. Minimun = alarmTimeCom.Minimun,
  707. Maximun = alarmTimeCom.Maximun,
  708. Value = alarmTimeCom.Value.ToString()
  709. };
  710. }
  711. alarmError = "Monitor";
  712. if (alarmErrorCom != null)
  713. {
  714. alarmError = alarmErrorCom.Default;
  715. }
  716. alarmConditionPress.AlertTempData = new TempData()
  717. {
  718. Type = CheckType.Alert,
  719. IsCheck = alarmIsCheck,
  720. DevHigh = alarmDevParam != null ? alarmDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 99999, Value = "0" },
  721. DevLow = alarmDevLowParam != null ? alarmDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 99999, Value = "0" },
  722. Unit = alarmUnit,
  723. DelayTime = alarmDelayTimeParam != null ? alarmDelayTimeParam : new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },
  724. Time = alarmTimeParam != null ? alarmTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" },
  725. ErrorCommand = alarmError
  726. };
  727. errorIsCheck = false;
  728. if (errorCom != null)
  729. {
  730. errorIsCheck = errorCom.Default == "ON" ? true : false;
  731. }
  732. errorDevParam = null;
  733. if (errorDevHighCom != null)
  734. {
  735. errorDevParam = new DoubleParam()
  736. {
  737. Name = errorDevHighCom.DisplayName,
  738. Minimun = errorDevHighCom.Minimun,
  739. Maximun = errorDevHighCom.Maximun,
  740. Value = errorDevHighCom.Value.ToString()
  741. };
  742. }
  743. errorDevLowParam = null;
  744. if (errorDevLowCom != null)
  745. {
  746. errorDevLowParam = new DoubleParam()
  747. {
  748. Name = errorDevLowCom.DisplayName,
  749. Minimun = errorDevLowCom.Minimun,
  750. Maximun = errorDevLowCom.Maximun,
  751. Value = errorDevLowCom.Value.ToString()
  752. };
  753. }
  754. errorUnit = "%fs";
  755. if (errorUnitCom != null)
  756. {
  757. errorUnit = errorUnitCom.Default;
  758. }
  759. errorDelayTimeParam = null;
  760. if (errorDelayTimeCom != null)
  761. {
  762. errorDelayTimeParam = new DoubleParam()
  763. {
  764. Name = errorDelayTimeCom.DisplayName,
  765. Minimun = errorDelayTimeCom.Minimun,
  766. Maximun = errorDelayTimeCom.Maximun,
  767. Value = errorDelayTimeCom.Value.ToString()
  768. };
  769. }
  770. errorTimeParam = null;
  771. if (errorTimeCom != null)
  772. {
  773. errorTimeParam = new DoubleParam()
  774. {
  775. Name = errorTimeCom.DisplayName,
  776. Minimun = errorTimeCom.Minimun,
  777. Maximun = errorTimeCom.Maximun,
  778. Value = errorTimeCom.Value.ToString()
  779. };
  780. }
  781. errorError = "Buzzer";
  782. if (errorErrorCom != null)
  783. {
  784. errorError = errorErrorCom.Default;
  785. }
  786. alarmConditionPress.AlarmTempData = new TempData()
  787. {
  788. Type = CheckType.Alarm,
  789. IsCheck = errorIsCheck,
  790. DevHigh = errorDevParam != null ? errorDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 99999, Value = "0" },
  791. DevLow = errorDevLowParam != null ? errorDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 99999, Value = "0" },
  792. Unit = errorUnit,
  793. DelayTime = errorDelayTimeParam != null ? errorDelayTimeParam : new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },
  794. Time = errorTimeParam != null ? errorTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" },
  795. ErrorCommand = errorError
  796. };
  797. ((AlarmConditionTable)step).PressList.Add(alarmConditionPress);
  798. break;
  799. case "AUX":
  800. string[] aUXList = item.Key.Split('\t');
  801. AlarmConditionAUX alarmConditionAUX = new AlarmConditionAUX();
  802. if (aUXList.Length == 3)
  803. {
  804. alarmConditionAUX.Index = Convert.ToInt32(aUXList[1]);
  805. alarmConditionAUX.AUXName = aUXList[2];
  806. }
  807. alarmCom = null;
  808. alarmDevHighCom = null;
  809. alarmDevLowCom = null;
  810. alarmUnitCom = null;
  811. alarmTimeCom = null;
  812. alarmErrorCom = null;
  813. errorCom = null;
  814. errorDevHighCom = null;
  815. errorDevLowCom = null;
  816. errorUnitCom = null;
  817. errorTimeCom = null;
  818. errorErrorCom = null;
  819. foreach (var subitem in item.Value)
  820. {
  821. switch (subitem.ControlName)
  822. {
  823. case "AlarmCheck":
  824. alarmCom = subitem;
  825. break;
  826. case "AlarmDevHigh":
  827. alarmDevHighCom = subitem;
  828. break;
  829. case "AlarmDevLow":
  830. alarmDevLowCom = subitem;
  831. break;
  832. case "AlarmUnit":
  833. alarmUnitCom = subitem;
  834. break;
  835. case "AlarmTime":
  836. alarmTimeCom = subitem;
  837. break;
  838. case "AlarmErrorCommand":
  839. alarmErrorCom = subitem;
  840. break;
  841. case "ErrorCheck":
  842. errorCom = subitem;
  843. break;
  844. case "ErrorDevHigh":
  845. errorDevHighCom = subitem;
  846. break;
  847. case "ErrorDevLow":
  848. errorDevLowCom = subitem;
  849. break;
  850. case "ErrorUnit":
  851. errorUnitCom = subitem;
  852. break;
  853. case "ErrorTime":
  854. errorTimeCom = subitem;
  855. break;
  856. case "ErrorErrorCommand":
  857. errorErrorCom = subitem;
  858. break;
  859. default:
  860. break;
  861. }
  862. }
  863. alarmIsCheck = false;
  864. if (alarmCom != null)
  865. {
  866. alarmIsCheck = alarmCom.Default == "ON" ? true : false;
  867. }
  868. alarmDevParam = null;
  869. if (alarmDevHighCom != null)
  870. {
  871. alarmDevParam = new DoubleParam()
  872. {
  873. Name = alarmDevHighCom.DisplayName,
  874. Minimun = alarmDevHighCom.Minimun,
  875. Maximun = alarmDevHighCom.Maximun,
  876. Value = alarmDevHighCom.Value.ToString()
  877. };
  878. }
  879. alarmDevLowParam = null;
  880. if (alarmDevLowCom != null)
  881. {
  882. alarmDevLowParam = new DoubleParam()
  883. {
  884. Name = alarmDevLowCom.DisplayName,
  885. Minimun = alarmDevLowCom.Minimun,
  886. Maximun = alarmDevLowCom.Maximun,
  887. Value = alarmDevLowCom.Value.ToString()
  888. };
  889. }
  890. alarmUnit = "%fs";
  891. if (alarmUnitCom != null)
  892. {
  893. alarmUnit = alarmUnitCom.Default;
  894. }
  895. alarmTimeParam = null;
  896. if (alarmTimeCom != null)
  897. {
  898. alarmTimeParam = new DoubleParam()
  899. {
  900. Name = alarmTimeCom.DisplayName,
  901. Minimun = alarmTimeCom.Minimun,
  902. Maximun = alarmTimeCom.Maximun,
  903. Value = alarmTimeCom.Value.ToString()
  904. };
  905. }
  906. alarmError = "";
  907. if (alarmErrorCom != null)
  908. {
  909. alarmError = alarmErrorCom.Default;
  910. }
  911. alarmConditionAUX.AlertTempData = new TempData()
  912. {
  913. Type = CheckType.Alert,
  914. IsCheck = alarmIsCheck,
  915. DevHigh = alarmDevParam != null ? alarmDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "99" },
  916. DevLow = alarmDevLowParam != null ? alarmDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "11" },
  917. Unit = alarmUnit,
  918. DelayTime = new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },
  919. Time = alarmTimeParam != null ? alarmTimeParam : new DoubleParam() { Name = alarmTimeParam.DisplayName, Minimun = 0, Maximun = 99999, Value = "0" },
  920. ErrorCommand = alarmError
  921. };
  922. errorIsCheck = false;
  923. if (errorCom != null)
  924. {
  925. errorIsCheck = errorCom.Default == "ON" ? true : false;
  926. }
  927. errorDevParam = null;
  928. if (errorDevHighCom != null)
  929. {
  930. errorDevParam = new DoubleParam()
  931. {
  932. Name = errorDevHighCom.DisplayName,
  933. Minimun = errorDevHighCom.Minimun,
  934. Maximun = errorDevHighCom.Maximun,
  935. Value = errorDevHighCom.Value.ToString()
  936. };
  937. }
  938. errorDevLowParam = null;
  939. if (errorDevLowCom != null)
  940. {
  941. errorDevLowParam = new DoubleParam()
  942. {
  943. Name = errorDevLowCom.DisplayName,
  944. Minimun = errorDevLowCom.Minimun,
  945. Maximun = errorDevLowCom.Maximun,
  946. Value = errorDevLowCom.Value.ToString()
  947. };
  948. }
  949. errorUnit = "%fs";
  950. if (errorUnitCom != null)
  951. {
  952. errorUnit = errorUnitCom.Default;
  953. }
  954. errorTimeParam = null;
  955. if (errorTimeCom != null)
  956. {
  957. errorTimeParam = new DoubleParam()
  958. {
  959. Name = errorTimeCom.DisplayName,
  960. Minimun = errorTimeCom.Minimun,
  961. Maximun = errorTimeCom.Maximun,
  962. Value = errorTimeCom.Value.ToString()
  963. };
  964. }
  965. errorError = "Buzzer";
  966. if (errorErrorCom != null)
  967. {
  968. errorError = errorErrorCom.Default;
  969. }
  970. alarmConditionAUX.AlarmTempData = new TempData()
  971. {
  972. Type = CheckType.Alarm,
  973. IsCheck = errorIsCheck,
  974. DevHigh = errorDevParam != null ? errorDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "33" },
  975. DevLow = errorDevLowParam != null ? errorDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "22" },
  976. Unit = errorUnit,
  977. DelayTime = new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },
  978. Time = errorTimeParam != null ? errorTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" },
  979. ErrorCommand = errorError
  980. };
  981. ((AlarmConditionTable)step).AUXList.Add(alarmConditionAUX);
  982. break;
  983. case "HWILK":
  984. string[] strHWILKList = item.Key.Split('\t');
  985. AlarmConditionHWILK alarmConditionHWILK = new AlarmConditionHWILK();
  986. if (strHWILKList.Length == 3)
  987. {
  988. alarmConditionHWILK.Index = Convert.ToInt32(strHWILKList[1]);
  989. alarmConditionHWILK.InterLockName = strHWILKList[2];
  990. }
  991. var ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault();
  992. string error = "Monitor";
  993. if (ErrorCom != null)
  994. {
  995. error = ErrorCom.Default;
  996. }
  997. alarmConditionHWILK.ErrorCommand = error;
  998. ((AlarmConditionTable)step).HWILKList.Add(alarmConditionHWILK);
  999. break;
  1000. case "ValveILK":
  1001. string[] strValveILKList = item.Key.Split('\t');
  1002. AlarmConditionValveILK alarmConditionValveILK = new AlarmConditionValveILK();
  1003. if (strValveILKList.Length == 3)
  1004. {
  1005. alarmConditionValveILK.Index = Convert.ToInt32(strValveILKList[1]);
  1006. alarmConditionValveILK.InterLockName = strValveILKList[2];
  1007. }
  1008. ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault();
  1009. error = "Monitor";
  1010. if (ErrorCom != null)
  1011. {
  1012. error = ErrorCom.Default;
  1013. }
  1014. alarmConditionValveILK.ErrorCommand = error;
  1015. ((AlarmConditionTable)step).ValveIlkList.Add(alarmConditionValveILK);
  1016. break;
  1017. case "TempController":
  1018. string[] strTempControlerList = item.Key.Split('\t');
  1019. AlarmConditionTempControler alarmConditionTempControler = new AlarmConditionTempControler();
  1020. if (strTempControlerList.Length == 3)
  1021. {
  1022. alarmConditionTempControler.Index = Convert.ToInt32(strTempControlerList[1]);
  1023. alarmConditionTempControler.InterLockName = strTempControlerList[2];
  1024. }
  1025. ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault();
  1026. error = "Monitor";
  1027. if (ErrorCom != null)
  1028. {
  1029. error = ErrorCom.Default;
  1030. }
  1031. alarmConditionTempControler.ErrorCommand = error;
  1032. ((AlarmConditionTable)step).TempControlerList.Add(alarmConditionTempControler);
  1033. break;
  1034. case "APCController":
  1035. string[] strAPCControlerList = item.Key.Split('\t');
  1036. AlarmConditionAPCControler alarmConditionAPCControler = new AlarmConditionAPCControler();
  1037. if (strAPCControlerList.Length == 3)
  1038. {
  1039. alarmConditionAPCControler.Index = Convert.ToInt32(strAPCControlerList[1]);
  1040. alarmConditionAPCControler.InterLockName = strAPCControlerList[2];
  1041. }
  1042. ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault();
  1043. error = "Monitor";
  1044. if (ErrorCom != null)
  1045. {
  1046. error = ErrorCom.Default;
  1047. }
  1048. alarmConditionAPCControler.ErrorCommand = error;
  1049. ((AlarmConditionTable)step).APCControlerList.Add(alarmConditionAPCControler);
  1050. break;
  1051. case "CLNAlarm":
  1052. string[] strCLNAlarmList = item.Key.Split('\t');
  1053. AlarmConditionCLNAlarm alarmConditionCLNAlarm = new AlarmConditionCLNAlarm();
  1054. if (strCLNAlarmList.Length == 3)
  1055. {
  1056. alarmConditionCLNAlarm.Index = Convert.ToInt32(strCLNAlarmList[1]);
  1057. alarmConditionCLNAlarm.InterLockName = strCLNAlarmList[2];
  1058. }
  1059. ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault();
  1060. error = "Monitor";
  1061. if (ErrorCom != null)
  1062. {
  1063. error = ErrorCom.Default;
  1064. }
  1065. alarmConditionCLNAlarm.ErrorCommand = error;
  1066. ((AlarmConditionTable)step).CLNAlarmList.Add(alarmConditionCLNAlarm);
  1067. break;
  1068. case "TransferError":
  1069. string[] strTransferErrorList = item.Key.Split('\t');
  1070. AlarmConditionTransferError alarmConditionTransferError = new AlarmConditionTransferError();
  1071. if (strTransferErrorList.Length == 3)
  1072. {
  1073. alarmConditionTransferError.Index = Convert.ToInt32(strTransferErrorList[1]);
  1074. alarmConditionTransferError.InterLockName = strTransferErrorList[2];
  1075. }
  1076. ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault();
  1077. error = "Monitor";
  1078. if (ErrorCom != null)
  1079. {
  1080. error = ErrorCom.Default;
  1081. }
  1082. alarmConditionTransferError.ErrorCommand = error;
  1083. ((AlarmConditionTable)step).TransferErrorList.Add(alarmConditionTransferError);
  1084. break;
  1085. case "SerialLineDown":
  1086. string[] strSerialLineDownList = item.Key.Split('\t');
  1087. AlarmConditionSerialLineDown alarmConditionSerialLineDown = new AlarmConditionSerialLineDown();
  1088. if (strSerialLineDownList.Length == 3)
  1089. {
  1090. alarmConditionSerialLineDown.Index = Convert.ToInt32(strSerialLineDownList[1]);
  1091. alarmConditionSerialLineDown.InterLockName = strSerialLineDownList[2];
  1092. }
  1093. ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault();
  1094. error = "Monitor";
  1095. if (ErrorCom != null)
  1096. {
  1097. error = ErrorCom.Default;
  1098. }
  1099. alarmConditionSerialLineDown.ErrorCommand = error;
  1100. ((AlarmConditionTable)step).SerialLineDownList.Add(alarmConditionSerialLineDown);
  1101. break;
  1102. case "LanLineDown":
  1103. string[] strLanLineDownList = item.Key.Split('\t');
  1104. AlarmConditionLanLineDown alarmConditionLanLineDown = new AlarmConditionLanLineDown();
  1105. if (strLanLineDownList.Length == 3)
  1106. {
  1107. alarmConditionLanLineDown.Index = Convert.ToInt32(strLanLineDownList[1]);
  1108. alarmConditionLanLineDown.InterLockName = strLanLineDownList[2];
  1109. }
  1110. ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault();
  1111. error = "Monitor";
  1112. if (ErrorCom != null)
  1113. {
  1114. error = ErrorCom.Default;
  1115. }
  1116. alarmConditionLanLineDown.ErrorCommand = error;
  1117. ((AlarmConditionTable)step).LanLineDownList.Add(alarmConditionLanLineDown);
  1118. break;
  1119. case "Sensor":
  1120. string[] sensorList = item.Key.Split('\t');
  1121. AlarmConditionSensor alarmConditionSensor = new AlarmConditionSensor();
  1122. if (sensorList.Length == 3)
  1123. alarmConditionSensor.SensorName = sensorList[2];
  1124. alarmCom = item.Value.Where(x => x.ControlName == "AlarmCheck").FirstOrDefault();
  1125. alarmIsCheck = false;
  1126. if (alarmCom != null)
  1127. {
  1128. alarmIsCheck = alarmCom.Default == "ON" ? true : false;
  1129. }
  1130. alarmDevHighCom = item.Value.Where(x => x.ControlName == "AlarmDevHigh").FirstOrDefault();
  1131. alarmDevParam = null;
  1132. if (alarmDevHighCom != null)
  1133. {
  1134. alarmDevParam = new DoubleParam()
  1135. {
  1136. Name = alarmDevHighCom.DisplayName,
  1137. Minimun = alarmDevHighCom.Minimun,
  1138. Maximun = alarmDevHighCom.Maximun,
  1139. Value = alarmDevHighCom.Value.ToString()
  1140. };
  1141. }
  1142. alarmDevLowCom = item.Value.Where(x => x.ControlName == "AlarmDevLow").FirstOrDefault();
  1143. alarmDevLowParam = null;
  1144. if (alarmDevLowCom != null)
  1145. {
  1146. alarmDevLowParam = new DoubleParam()
  1147. {
  1148. Name = alarmDevLowCom.DisplayName,
  1149. Minimun = alarmDevLowCom.Minimun,
  1150. Maximun = alarmDevLowCom.Maximun,
  1151. Value = alarmDevLowCom.Value.ToString()
  1152. };
  1153. }
  1154. alarmUnitCom = item.Value.Where(x => x.ControlName == "AlarmUnit").FirstOrDefault();
  1155. alarmUnit = "%fs";
  1156. if (alarmUnitCom != null)
  1157. {
  1158. alarmUnit = alarmUnitCom.Default;
  1159. }
  1160. alarmTimeCom = item.Value.Where(x => x.ControlName == "AlarmTime").FirstOrDefault();
  1161. alarmTimeParam = null;
  1162. if (alarmTimeCom != null)
  1163. {
  1164. alarmTimeParam = new DoubleParam()
  1165. {
  1166. Name = alarmTimeCom.DisplayName,
  1167. Minimun = alarmTimeCom.Minimun,
  1168. Maximun = alarmTimeCom.Maximun,
  1169. Value = alarmTimeCom.Value.ToString()
  1170. };
  1171. }
  1172. alarmErrorCom = item.Value.Where(x => x.ControlName == "AlarmErrorCommand").FirstOrDefault();
  1173. alarmError = "";
  1174. if (alarmErrorCom != null)
  1175. {
  1176. alarmError = alarmErrorCom.Default;
  1177. }
  1178. alarmConditionSensor.AlertTempData = new TempData()
  1179. {
  1180. Type = CheckType.Alert,
  1181. IsCheck = alarmIsCheck,
  1182. DevHigh = alarmDevParam != null ? alarmDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "99" },
  1183. DevLow = alarmDevLowParam != null ? alarmDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "11" },
  1184. Unit = alarmUnit,
  1185. DelayTime = new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },
  1186. Time = alarmTimeParam != null ? alarmTimeParam : new DoubleParam() { Name = alarmTimeParam.DisplayName, Minimun = 0, Maximun = 99999, Value = "0" },
  1187. ErrorCommand = alarmError
  1188. };
  1189. errorCom = item.Value.Where(x => x.ControlName == "ErrorCheck").FirstOrDefault();
  1190. errorIsCheck = false;
  1191. if (errorCom != null)
  1192. {
  1193. errorIsCheck = errorCom.Default == "ON" ? true : false;
  1194. }
  1195. errorDevHighCom = item.Value.Where(x => x.ControlName == "ErrorDevHigh").FirstOrDefault();
  1196. errorDevParam = null;
  1197. if (errorDevHighCom != null)
  1198. {
  1199. errorDevParam = new DoubleParam()
  1200. {
  1201. Name = errorDevHighCom.DisplayName,
  1202. Minimun = errorDevHighCom.Minimun,
  1203. Maximun = errorDevHighCom.Maximun,
  1204. Value = errorDevHighCom.Value.ToString()
  1205. };
  1206. }
  1207. errorDevLowCom = item.Value.Where(x => x.ControlName == "ErrorDevLow").FirstOrDefault();
  1208. errorDevLowParam = null;
  1209. if (errorDevLowCom != null)
  1210. {
  1211. errorDevLowParam = new DoubleParam()
  1212. {
  1213. Name = errorDevLowCom.DisplayName,
  1214. Minimun = errorDevLowCom.Minimun,
  1215. Maximun = errorDevLowCom.Maximun,
  1216. Value = errorDevLowCom.Value.ToString()
  1217. };
  1218. }
  1219. errorUnitCom = item.Value.Where(x => x.ControlName == "ErrorUnit").FirstOrDefault();
  1220. errorUnit = "%fs";
  1221. if (errorUnitCom != null)
  1222. {
  1223. errorUnit = errorUnitCom.Default;
  1224. }
  1225. errorTimeCom = item.Value.Where(x => x.ControlName == "ErrorTime").FirstOrDefault();
  1226. errorTimeParam = null;
  1227. if (errorTimeCom != null)
  1228. {
  1229. errorTimeParam = new DoubleParam()
  1230. {
  1231. Name = errorTimeCom.DisplayName,
  1232. Minimun = errorTimeCom.Minimun,
  1233. Maximun = errorTimeCom.Maximun,
  1234. Value = errorTimeCom.Value.ToString()
  1235. };
  1236. }
  1237. errorErrorCom = item.Value.Where(x => x.ControlName == "ErrorErrorCommand").FirstOrDefault();
  1238. errorError = "Buzzer";
  1239. if (errorErrorCom != null)
  1240. {
  1241. errorError = errorErrorCom.Default;
  1242. }
  1243. alarmConditionSensor.AlarmTempData = new TempData()
  1244. {
  1245. Type = CheckType.Alarm,
  1246. IsCheck = errorIsCheck,
  1247. DevHigh = errorDevParam != null ? errorDevParam : new DoubleParam() { Name = "DevHigh", Minimun = 0, Maximun = 700, Value = "33" },
  1248. DevLow = errorDevLowParam != null ? errorDevLowParam : new DoubleParam() { Name = "DevLow", Minimun = 0, Maximun = 700, Value = "22" },
  1249. Unit = errorUnit,
  1250. DelayTime = new DoubleParam() { Name = "DelayTime", Minimun = 0, Maximun = 99999, Value = "0" },
  1251. Time = errorTimeParam != null ? errorTimeParam : new DoubleParam() { Name = "Time", Minimun = 0, Maximun = 99999, Value = "0" },
  1252. ErrorCommand = errorError
  1253. };
  1254. ((AlarmConditionTable)step).SensorList.Add(alarmConditionSensor);
  1255. break;
  1256. case "Other":
  1257. string[] strOtherList = item.Key.Split('\t');
  1258. AlarmConditionOther alarmConditionOther = new AlarmConditionOther();
  1259. if (strOtherList.Length == 3)
  1260. {
  1261. alarmConditionOther.Index = Convert.ToInt32(strOtherList[1]);
  1262. alarmConditionOther.InterLockName = strOtherList[2];
  1263. }
  1264. ErrorCom = item.Value.FirstOrDefault(x => x.ControlName == "ErrorCommand");
  1265. error = "Monitor";
  1266. if (ErrorCom != null)
  1267. {
  1268. error = ErrorCom.Default;
  1269. }
  1270. alarmConditionOther.ErrorCommand = error;
  1271. ((AlarmConditionTable)step).OtherList.Add(alarmConditionOther);
  1272. break;
  1273. default:
  1274. break;
  1275. }
  1276. //if (item.Key.Contains("DeviceNetLineDown"))
  1277. //{
  1278. // string[] strDeviceNetLineDownList = item.Key.Split('\t');
  1279. // AlarmConditionDeviceNetLineDown alarmConditionDeviceNetLineDown = new AlarmConditionDeviceNetLineDown();
  1280. // if (strDeviceNetLineDownList.Length == 3)
  1281. // {
  1282. // alarmConditionDeviceNetLineDown.Index = Convert.ToInt32(strDeviceNetLineDownList[1]);
  1283. // alarmConditionDeviceNetLineDown.InterLockName = strDeviceNetLineDownList[2];
  1284. // }
  1285. // var ErrorCom = item.Value.Where(x => x.ControlName == "ErrorCommand").FirstOrDefault();
  1286. // string error = "Monitor";
  1287. // if (ErrorCom != null)
  1288. // {
  1289. // error = ErrorCom.Default;
  1290. // }
  1291. // alarmConditionDeviceNetLineDown.ErrorCommand = error;
  1292. // ((AlarmConditionTable)step).DeviceNetLineDownList.Add(alarmConditionDeviceNetLineDown);
  1293. //}
  1294. }
  1295. }
  1296. public override string GetXmlString()
  1297. {
  1298. XmlElement nodeData = _doc.SelectSingleNode($"Aitex/TableParameterData") as XmlElement;
  1299. nodeData.SetAttribute("CreatedBy", Creator);
  1300. nodeData.SetAttribute("CreationTime", CreateTime.ToString("yyyy-MM-dd HH:mm:ss"));
  1301. nodeData.SetAttribute("LastRevisedBy", Revisor);
  1302. nodeData.SetAttribute("LastRevisionTime", ReviseTime.ToString("yyyy-MM-dd HH:mm:ss"));
  1303. nodeData.SetAttribute("Description", Description);
  1304. nodeData.SetAttribute("ParameterChamberType", ChamberType);
  1305. nodeData.SetAttribute("Version", Version);
  1306. nodeData.SetAttribute("TableNumber", TableNumber.ToString());
  1307. nodeData.SetAttribute("Permission", Permission);
  1308. nodeData.SetAttribute("ParameterLevel", Level);
  1309. XmlNode nodeModule = _doc.SelectSingleNode($"Aitex/TableParameterData/Module[@Name='{_module}']");
  1310. if (nodeModule == null)
  1311. {
  1312. nodeModule = _doc.CreateElement("Module");
  1313. nodeData.AppendChild(nodeModule);
  1314. }
  1315. nodeModule.RemoveAll();
  1316. (nodeModule as XmlElement).SetAttribute("Name", _module);
  1317. int i = 0;
  1318. foreach (ParameterTable parameters in Steps)
  1319. {
  1320. XmlElement nodeStep = _doc.CreateElement("Step");
  1321. nodeStep.SetAttribute("StepNo", parameters.StepNo.ToString());
  1322. nodeStep.SetAttribute("Name", parameters.Name);
  1323. // nodeStep.SetAttribute("UseTemp", parameters.UseTemp);
  1324. var heaterDatas = ((AlarmConditionTable)parameters).HeaterTempList.Select(x => x.ToString()).ToArray();
  1325. nodeStep.SetAttribute($"TempHeater", string.Join("|", heaterDatas));
  1326. var boatDatas = ((AlarmConditionTable)parameters).BoatTempList.Select(x => x.ToString()).ToArray();
  1327. nodeStep.SetAttribute($"TempBoat", string.Join("|", boatDatas));
  1328. var flowDeviationDatas = ((AlarmConditionTable)parameters).MFCFlowDeviationList.Select(x => x.ToString()).ToArray();
  1329. nodeStep.SetAttribute($"FlowDeviation", string.Join("|", flowDeviationDatas));
  1330. var pressDatas = ((AlarmConditionTable)parameters).PressList.Select(x => x.ToString()).ToArray();
  1331. nodeStep.SetAttribute($"Press", string.Join("|", pressDatas));
  1332. var aUXDatas = ((AlarmConditionTable)parameters).AUXList.Select(x => x.ToString()).ToArray();
  1333. nodeStep.SetAttribute($"AUX", string.Join("|", aUXDatas));
  1334. nodeModule.AppendChild(nodeStep);
  1335. var strHWILKList = ((AlarmConditionTable)parameters).HWILKList.Select(x => x.ToString()).ToArray();
  1336. nodeStep.SetAttribute($"HWILK", string.Join("|", strHWILKList));
  1337. var strValveILKList = ((AlarmConditionTable)parameters).ValveIlkList.Select(x => x.ToString()).ToArray();
  1338. nodeStep.SetAttribute($"ValveILK", string.Join("|", strValveILKList));
  1339. var strTempControlerList = ((AlarmConditionTable)parameters).TempControlerList.Select(x => x.ToString()).ToArray();
  1340. nodeStep.SetAttribute($"TempController", string.Join("|", strTempControlerList));
  1341. var strAPCControlerList = ((AlarmConditionTable)parameters).APCControlerList.Select(x => x.ToString()).ToArray();
  1342. nodeStep.SetAttribute($"APCController", string.Join("|", strAPCControlerList));
  1343. var strCLNAlarmList = ((AlarmConditionTable)parameters).CLNAlarmList.Select(x => x.ToString()).ToArray();
  1344. nodeStep.SetAttribute($"CLNAlarmList", string.Join("|", strCLNAlarmList));
  1345. var strTransferErrorList = ((AlarmConditionTable)parameters).TransferErrorList.Select(x => x.ToString()).ToArray();
  1346. nodeStep.SetAttribute($"TransferError", string.Join("|", strTransferErrorList));
  1347. var strSerialLineDownList = ((AlarmConditionTable)parameters).SerialLineDownList.Select(x => x.ToString()).ToArray();
  1348. nodeStep.SetAttribute($"SerialLineDown", string.Join("|", strSerialLineDownList));
  1349. var strLanLineDownList = ((AlarmConditionTable)parameters).LanLineDownList.Select(x => x.ToString()).ToArray();
  1350. nodeStep.SetAttribute($"LanLineDown", string.Join("|", strLanLineDownList));
  1351. //var strDeviceNetLineDownList = ((AlarmConditionTable)parameters).DeviceNetLineDownList.Select(x => x.ToString()).ToArray();
  1352. //nodeStep.SetAttribute($"DeviceNetLineDown", string.Join("|", strDeviceNetLineDownList));
  1353. var strSensorList = ((AlarmConditionTable)parameters).SensorList.Select(x => x.ToString()).ToArray();
  1354. nodeStep.SetAttribute($"Sensor", string.Join("|", strSensorList));
  1355. var strOtherList = ((AlarmConditionTable)parameters).OtherList.Select(x => x.ToString()).ToArray();
  1356. nodeStep.SetAttribute($"Other", string.Join("|", strOtherList));
  1357. nodeModule.AppendChild(nodeStep);
  1358. i++;
  1359. }
  1360. return _doc.OuterXml;
  1361. }
  1362. public override void InitData(string prefixPath, string recipeName, string recipeContent, string module)
  1363. {
  1364. IsCompatibleWithCurrentFormat = false;
  1365. _module = module;
  1366. Name = recipeName;
  1367. PrefixPath = prefixPath;
  1368. try
  1369. {
  1370. _doc = new XmlDocument();
  1371. _doc.LoadXml(recipeContent);
  1372. if (!LoadHeader(_doc.SelectSingleNode("Aitex/TableParameterData")))
  1373. return;
  1374. XmlNodeList nodeSteps = _doc.SelectNodes($"Aitex/TableParameterData/Module[@Name='{module}']/Step");
  1375. if (nodeSteps == null)
  1376. nodeSteps = _doc.SelectNodes($"Aitex/TableParameterData/Step");
  1377. LoadSteps(nodeSteps);
  1378. var index = 1;
  1379. foreach (ParameterTable parameters in Steps)
  1380. {
  1381. parameters.Value = index.ToString();
  1382. index++;
  1383. }
  1384. // ValidLoopData();
  1385. XmlNode nodeConfig =
  1386. _doc.SelectSingleNode($"Aitex/TableParameterData/Module[@Name='{module}']/Config");
  1387. if (nodeSteps == null)
  1388. nodeConfig = _doc.SelectSingleNode($"Aitex/TableParameterData/Config");
  1389. IsCompatibleWithCurrentFormat = true;
  1390. }
  1391. catch (Exception ex)
  1392. {
  1393. LOG.Write(ex);
  1394. }
  1395. }
  1396. public override void LoadSteps(XmlNodeList steps)
  1397. {
  1398. Steps.Clear();
  1399. PopSettingSteps.Clear();
  1400. StepTolerances.Clear();
  1401. StepNos.Clear();
  1402. int index = 1;
  1403. foreach (XmlNode nodeStep in steps)
  1404. {
  1405. ParameterTable stepTable = this.CreateStep(nodeStep);
  1406. StepNos.Add(stepTable.StepNo);
  1407. Steps.Add(stepTable);
  1408. index++;
  1409. }
  1410. }
  1411. }
  1412. }