示例#1
0
        internal int GetValue(string adr, out short[] values)
        {
            short[] buf = new short[2];

            Err    = plc.ReadDeviceBlock2(adr, 2, out buf[0]);
            values = buf;

            return(Err);
        }
示例#2
0
        public void updatePlcParameters()
        {
            int ReturnCode;

            short[] DeviceValue;
            DeviceValue = new short[1];
            while (true)
            {
                Thread.Sleep(500); //500ms
                if (isConnected)
                {
                    try
                    {
                        ReturnCode = plc.ReadDeviceRandom2("M0", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.FanRun = true;
                        }
                        else
                        {
                            BitStatus.FanRun = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M1", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.FanErr = true;
                        }
                        else
                        {
                            BitStatus.FanErr = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M2", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.ScrRun = true;
                        }
                        else
                        {
                            BitStatus.ScrRun = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M3", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.ScrErr = true;
                        }
                        else
                        {
                            BitStatus.ScrErr = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M4", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.HumidityRun = true;
                        }
                        else
                        {
                            BitStatus.HumidityRun = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M5", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.HumidityStop = true;
                        }
                        else
                        {
                            BitStatus.HumidityStop = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M6", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.HeaterRun = true;
                        }
                        else
                        {
                            BitStatus.HeaterRun = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M7", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.HeaterErr = true;
                        }
                        else
                        {
                            BitStatus.HeaterErr = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M8", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.HeaterStop = true;
                        }
                        else
                        {
                            BitStatus.HeaterStop = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M9", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.PumpRun = true;
                        }
                        else
                        {
                            BitStatus.PumpRun = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M10", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.PumpErr = true;
                        }
                        else
                        {
                            BitStatus.PumpErr = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M11", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.SoundAlarm = true;
                        }
                        else
                        {
                            BitStatus.SoundAlarm = false;
                        }

                        // M100-101-102
                        ReturnCode = plc.ReadDeviceRandom2("M100", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.SelectManualAuto = true;
                        }
                        else
                        {
                            BitStatus.SelectManualAuto = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M101", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.SelectAtSite = true;
                        }
                        else
                        {
                            BitStatus.SelectAtSite = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M102", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.SelectHMI = true;
                        }
                        else
                        {
                            BitStatus.SelectHMI = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M103", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.SelectRemote = true;
                        }
                        else
                        {
                            BitStatus.SelectRemote = false;
                        }

                        //Limit Xi Lanh
                        ReturnCode = plc.ReadDeviceRandom2("M136", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.bLimitXiLanh1UP = true;
                        }
                        else
                        {
                            BitStatus.bLimitXiLanh1UP = false;
                        }
                        ReturnCode = plc.ReadDeviceRandom2("M137", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.bLimitXiLanh1Down = true;
                        }
                        else
                        {
                            BitStatus.bLimitXiLanh1Down = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M140", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.bLimitXiLanh2UP = true;
                        }
                        else
                        {
                            BitStatus.bLimitXiLanh2UP = false;
                        }
                        ReturnCode = plc.ReadDeviceRandom2("M141", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.bLimitXiLanh2Down = true;
                        }
                        else
                        {
                            BitStatus.bLimitXiLanh2Down = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M142", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.bLimitXiLanh3UP = true;
                        }
                        else
                        {
                            BitStatus.bLimitXiLanh3UP = false;
                        }
                        ReturnCode = plc.ReadDeviceRandom2("M143", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.bLimitXiLanh3Down = true;
                        }
                        else
                        {
                            BitStatus.bLimitXiLanh3Down = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M144", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.bLimitXiLanh4UP = true;
                        }
                        else
                        {
                            BitStatus.bLimitXiLanh4UP = false;
                        }
                        ReturnCode = plc.ReadDeviceRandom2("M145", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.bLimitXiLanh4Down = true;
                        }
                        else
                        {
                            BitStatus.bLimitXiLanh4Down = false;
                        }

                        //Limit Servo
                        ReturnCode = plc.ReadDeviceRandom2("M146", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.bLimitSERVO1UP = true;
                        }
                        else
                        {
                            BitStatus.bLimitSERVO1UP = false;
                        }
                        ReturnCode = plc.ReadDeviceRandom2("M147", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.bLimitSERVO1Down = true;
                        }
                        else
                        {
                            BitStatus.bLimitSERVO1Down = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M150", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.bLimitSERVO2UP = true;
                        }
                        else
                        {
                            BitStatus.bLimitSERVO2UP = false;
                        }
                        ReturnCode = plc.ReadDeviceRandom2("M151", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.bLimitSERVO2Down = true;
                        }
                        else
                        {
                            BitStatus.bLimitSERVO2Down = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M152", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.bLimitSERVO3UP = true;
                        }
                        else
                        {
                            BitStatus.bLimitSERVO3UP = false;
                        }
                        ReturnCode = plc.ReadDeviceRandom2("M153", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.bLimitSERVO3Down = true;
                        }
                        else
                        {
                            BitStatus.bLimitSERVO3Down = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("M154", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.bLimitSERVO4UP = true;
                        }
                        else
                        {
                            BitStatus.bLimitSERVO4UP = false;
                        }
                        ReturnCode = plc.ReadDeviceRandom2("M155", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.bLimitSERVO4Down = true;
                        }
                        else
                        {
                            BitStatus.bLimitSERVO4Down = false;
                        }

                        //Update door
                        ReturnCode = plc.ReadDeviceRandom2("M132", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.Door1 = true;
                        }
                        else
                        {
                            BitStatus.Door1 = false;
                        }
                        ReturnCode = plc.ReadDeviceRandom2("M133", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.Door2 = true;
                        }
                        else
                        {
                            BitStatus.Door2 = false;
                        }
                        ReturnCode = plc.ReadDeviceRandom2("M134", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.Door3 = true;
                        }
                        else
                        {
                            BitStatus.Door3 = false;
                        }
                        ReturnCode = plc.ReadDeviceRandom2("M135", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.Door4 = true;
                        }
                        else
                        {
                            BitStatus.Door4 = false;
                        }

                        //Update status Servo
                        ReturnCode = plc.ReadDeviceRandom2("Y042", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.Servo1Up = true;
                        }
                        else
                        {
                            BitStatus.Servo1Up = false;
                        }
                        ReturnCode = plc.ReadDeviceRandom2("Y043", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.Servo1Down = true;
                        }
                        else
                        {
                            BitStatus.Servo1Down = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("Y044", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.Servo2Up = true;
                        }
                        else
                        {
                            BitStatus.Servo2Up = false;
                        }
                        ReturnCode = plc.ReadDeviceRandom2("Y045", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.Servo2Down = true;
                        }
                        else
                        {
                            BitStatus.Servo2Down = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("Y046", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.Servo3Up = true;
                        }
                        else
                        {
                            BitStatus.Servo3Up = false;
                        }
                        ReturnCode = plc.ReadDeviceRandom2("Y047", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.Servo3Down = true;
                        }
                        else
                        {
                            BitStatus.Servo3Down = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("Y050", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.Servo4Up = true;
                        }
                        else
                        {
                            BitStatus.Servo4Up = false;
                        }
                        ReturnCode = plc.ReadDeviceRandom2("Y051", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.Servo4Down = true;
                        }
                        else
                        {
                            BitStatus.Servo4Down = false;
                        }

                        //Update status xiLanh
                        ReturnCode = plc.ReadDeviceRandom2("Y052", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.XiLanh1Up = true;
                        }
                        else
                        {
                            BitStatus.XiLanh1Up = false;
                        }
                        ReturnCode = plc.ReadDeviceRandom2("Y053", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.XiLanh1Down = true;
                        }
                        else
                        {
                            BitStatus.XiLanh1Down = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("Y054", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.XiLanh2Up = true;
                        }
                        else
                        {
                            BitStatus.XiLanh2Up = false;
                        }
                        ReturnCode = plc.ReadDeviceRandom2("Y055", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.XiLanh2Down = true;
                        }
                        else
                        {
                            BitStatus.XiLanh2Down = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("Y056", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.XiLanh3Up = true;
                        }
                        else
                        {
                            BitStatus.XiLanh3Up = false;
                        }
                        ReturnCode = plc.ReadDeviceRandom2("Y057", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.XiLanh3Down = true;
                        }
                        else
                        {
                            BitStatus.XiLanh3Down = false;
                        }
                        //
                        ReturnCode = plc.ReadDeviceRandom2("Y060", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.XiLanh4Up = true;
                        }
                        else
                        {
                            BitStatus.XiLanh4Up = false;
                        }
                        ReturnCode = plc.ReadDeviceRandom2("Y061", 1, out DeviceValue[0]);
                        if (DeviceValue[0] == 1)
                        {
                            BitStatus.XiLanh4Down = true;
                        }
                        else
                        {
                            BitStatus.XiLanh4Down = false;
                        }

                        //Update Nhiet do
                        ReturnCode             = plc.ReadDeviceBlock2("D0", 1, out DeviceValue[0]);
                        DataTemperature.TS1    = (Math.Round(DeviceValue[0] / (double)10, 2));
                        ReturnCode             = plc.ReadDeviceBlock2("D1", 1, out DeviceValue[0]);
                        DataTemperature.TS2    = (Math.Round(DeviceValue[0] / (double)10, 2));
                        ReturnCode             = plc.ReadDeviceBlock2("D2", 1, out DeviceValue[0]);
                        DataTemperature.TS3    = (Math.Round(DeviceValue[0] / (double)10, 2));
                        ReturnCode             = plc.ReadDeviceBlock2("D3", 1, out DeviceValue[0]);
                        DataTemperature.TS4    = (Math.Round(DeviceValue[0] / (double)10, 2));
                        ReturnCode             = plc.ReadDeviceBlock2("D4", 1, out DeviceValue[0]);
                        DataTemperature.TS5    = (Math.Round(DeviceValue[0] / (double)10, 2));
                        ReturnCode             = plc.ReadDeviceBlock2("D5", 1, out DeviceValue[0]);
                        DataTemperature.TS6    = (Math.Round(DeviceValue[0] / (double)10, 2));
                        ReturnCode             = plc.ReadDeviceBlock2("D7", 1, out DeviceValue[0]);
                        DataTemperature.TS_AVG = (Math.Round(DeviceValue[0] / (double)10, 2));
                        ReturnCode             = plc.ReadDeviceBlock2("D8", 1, out DeviceValue[0]);
                        DataTemperature.TS_RH  = (Math.Round(DeviceValue[0] / (double)10, 2));


                        //Update settings
                        ReturnCode = plc.ReadDeviceBlock2("D67", 1, out DeviceValue[0]);
                        DataTemperature.TimeHeater = DeviceValue[0];

                        ReturnCode = plc.ReadDeviceBlock2("D502", 1, out DeviceValue[0]);
                        DataTemperature.TimeSET = DeviceValue[0];

                        ReturnCode = plc.ReadDeviceBlock2("D500", 1, out DeviceValue[0]);
                        DataTemperature.TemperatureSET = (Math.Round(DeviceValue[0] / (double)10, 2));

                        ReturnCode = plc.ReadDeviceBlock2("D501", 1, out DeviceValue[0]);
                        DataTemperature.HumiditySET = (Math.Round(DeviceValue[0] / (double)10, 2));

                        //Update data + time of PLC (READ DateTime)
                        ReturnCode         = plc.ReadDeviceBlock2("D60", 1, out DeviceValue[0]);
                        DataTimePLC.second = DeviceValue[0];
                        ReturnCode         = plc.ReadDeviceBlock2("D61", 1, out DeviceValue[0]);
                        DataTimePLC.minute = DeviceValue[0];
                        ReturnCode         = plc.ReadDeviceBlock2("D62", 1, out DeviceValue[0]);
                        DataTimePLC.hour   = DeviceValue[0];
                        ReturnCode         = plc.ReadDeviceBlock2("D63", 1, out DeviceValue[0]);
                        DataTimePLC.day    = DeviceValue[0];
                        ReturnCode         = plc.ReadDeviceBlock2("D64", 1, out DeviceValue[0]);
                        DataTimePLC.month  = DeviceValue[0];
                        ReturnCode         = plc.ReadDeviceBlock2("D65", 1, out DeviceValue[0]);
                        DataTimePLC.year   = DeviceValue[0];
                    }
                    catch { }
                }
            }
        }