MainMachine _IOMonitor.cs 2.0 KB
using CodeLibrary;
using OnlineStore;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DeviceLibrary
{
    partial class MainMachine
    {
        void ioMonitor()
        {
            airprocess();
        }
        DateTime LastHumiCheckTime = DateTime.Now.AddHours(2);
        void airprocess()
        {
            //var temp = HumitureController.QueryData();
            var temp = HumitureController.LastData;
            var Current_Humidity = temp.Humidity;
            var Current_Temperate = temp.Temperate;

            //var tempIsOK = Current_Temperate < ServerCM.Max_Temperature;
            var humiNeedStart = Current_Humidity > ServerCM.Max_Humidity - Setting_Init.Device_HumidityStartOffser;
            var humiNeedStop = Current_Humidity < ServerCM.Max_Humidity - Setting_Init.Device_HumidityEndOffser;
            if (Current_Humidity <= ServerCM.Max_Humidity)
                LastHumiCheckTime = DateTime.Now;
            else if ((DateTime.Now - LastHumiCheckTime).TotalSeconds > 30)
            {
                Msg.add(crc.GetString("Res0073.70dccffd","温湿度超限"), MsgLevel.alarm);
            }

            if (humiNeedStart && IOValue(IO_Type.StartOrStopBlow).Equals(IO_VALUE.LOW))
            {
                IOMove(IO_Type.StartOrStopBlow, IO_VALUE.HIGH);
                LogUtil.info($"开始吹气,当前最大湿度:{Current_Humidity} > {ServerCM.Max_Humidity}-{Setting_Init.Device_HumidityStartOffser}.");
            }
            else if (humiNeedStop && IOValue(IO_Type.StartOrStopBlow).Equals(IO_VALUE.HIGH))
            {                
                IOMove(IO_Type.StartOrStopBlow, IO_VALUE.LOW);
                LogUtil.info($"关闭吹气,当前最大湿度:{Current_Humidity} < {ServerCM.Max_Humidity}-{Setting_Init.Device_HumidityEndOffser}.");
            }
        }
    }
}