|
@@ -1,6 +1,7 @@
|
|
|
using Aitex.Common.Util;
|
|
|
using Aitex.Core.RT.Device;
|
|
|
using Aitex.Core.RT.Log;
|
|
|
+using Aitex.Core.UI.Control;
|
|
|
using Aitex.Core.Util;
|
|
|
using MECF.Framework.Common.Device.Festo;
|
|
|
using MECF.Framework.Common.Device.Wago;
|
|
@@ -384,7 +385,7 @@ namespace CyberX8_Simulator.Devices
|
|
|
if (AINameIndexDic.ContainsKey("r_SYSTEM_EXHAUST")) AIShorts[AINameIndexDic["r_SYSTEM_EXHAUST"]] = 0x3A98;
|
|
|
if (DONameIndexDic.ContainsKey("c_HVD_1_ENABLE")) DOBytes[DONameIndexDic["c_HVD_1_ENABLE"]] = 1;
|
|
|
if (DONameIndexDic.ContainsKey("c_HVD_2_ENABLE")) DOBytes[DONameIndexDic["c_HVD_2_ENABLE"]] = 1;
|
|
|
-
|
|
|
+ //QDR
|
|
|
if (AINameIndexDic.ContainsKey("r_QDRD1_WATER_LEVEL")) AIShorts[AINameIndexDic["r_QDRD1_WATER_LEVEL"]] = 4000;
|
|
|
if (AINameIndexDic.ContainsKey("r_QDRD2_WATER_LEVEL")) AIShorts[AINameIndexDic["r_QDRD2_WATER_LEVEL"]] = 4000;
|
|
|
if (AINameIndexDic.ContainsKey("r_QDRD3_WATER_LEVEL")) AIShorts[AINameIndexDic["r_QDRD3_WATER_LEVEL"]] = 4000;
|
|
@@ -411,6 +412,11 @@ namespace CyberX8_Simulator.Devices
|
|
|
if (DINameIndexDic.ContainsKey("r_SRD2_200_FLIPPER1_OUT")) DIBytes[DINameIndexDic["r_SRD2_200_FLIPPER1_OUT"]] = 1;
|
|
|
if (DINameIndexDic.ContainsKey("r_SRD2_200_FLIPPER2_OUT")) DIBytes[DINameIndexDic["r_SRD2_200_FLIPPER2_OUT"]] = 1;
|
|
|
if (DINameIndexDic.ContainsKey("r_SRD2_200_FLIPPER3_OUT")) DIBytes[DINameIndexDic["r_SRD2_200_FLIPPER3_OUT"]] = 1;
|
|
|
+ //Metal
|
|
|
+ if (AINameIndexDic.ContainsKey("r_PUMP4_FLOW")) AIShorts[AINameIndexDic["r_PUMP4_FLOW"]] = 3277;
|
|
|
+
|
|
|
+ //Facility
|
|
|
+ if (AINameIndexDic.ContainsKey("r_DI_WATER_PRESSURE")) AIShorts[AINameIndexDic["r_DI_WATER_PRESSURE"]] = 16000;
|
|
|
|
|
|
}
|
|
|
#region 公共方法
|
|
@@ -717,7 +723,7 @@ namespace CyberX8_Simulator.Devices
|
|
|
return bytes;
|
|
|
}
|
|
|
/// <summary>
|
|
|
- /// 定时器
|
|
|
+ /// loader 定时器
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
private bool OnTimer()
|
|
@@ -731,7 +737,8 @@ namespace CyberX8_Simulator.Devices
|
|
|
/// <returns></returns>
|
|
|
private bool OnTimer1()
|
|
|
{
|
|
|
- RinseWaterLelveSimulator();
|
|
|
+ RinseWaterLevelSimulator();
|
|
|
+ PumpFlowSimulator();
|
|
|
return true;
|
|
|
}
|
|
|
#region 模拟方法
|
|
@@ -761,7 +768,7 @@ namespace CyberX8_Simulator.Devices
|
|
|
/// <summary>
|
|
|
/// QDR水位模拟
|
|
|
/// </summary>
|
|
|
- private void RinseWaterLelveSimulator()
|
|
|
+ private void RinseWaterLevelSimulator()
|
|
|
{
|
|
|
//QDR1
|
|
|
if (_rinse1FillValve && AIShorts[AINameIndexDic["r_QDRD1_WATER_LEVEL"]] < 25000)
|
|
@@ -819,6 +826,20 @@ namespace CyberX8_Simulator.Devices
|
|
|
AIShorts[AINameIndexDic["r_QDRD4_WATER_LEVEL"]] -= 2;
|
|
|
}
|
|
|
}
|
|
|
+ /// <summary>
|
|
|
+ /// metal pump流量模拟
|
|
|
+ /// </summary>
|
|
|
+ private void PumpFlowSimulator()
|
|
|
+ {
|
|
|
+ if (DOBytes[DONameIndexDic["c_METAL4_PUMP_ON"]] == 1)
|
|
|
+ {
|
|
|
+ AIShorts[AINameIndexDic["r_PUMP4_FLOW"]] = 6000;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ AIShorts[AINameIndexDic["r_PUMP4_FLOW"]] = 3277;
|
|
|
+ }
|
|
|
+ }
|
|
|
#endregion
|
|
|
}
|
|
|
}
|