Example #1
0
        void CHxPumpSpeed(int Speed, enumPumpType Type)
        {
            if (CHxPumpSpeedOldSet[(int)Type] != Speed)
            {
                switch (Type)
                {
                case enumPumpType.SamplePump:
                    HoldingSingelWrite(Auto_08, Speed);
                    break;

                case enumPumpType.CH1Pump:
                    HoldingSingelWrite(Meter_27, Speed);
                    break;

                case enumPumpType.CH2Pump:
                    HoldingSingelWrite(Meter_32, Speed);
                    break;

                case enumPumpType.CH3Pump:
                    HoldingSingelWrite(Meter_37, Speed);
                    break;

                case enumPumpType.CH4Pump:
                    HoldingSingelWrite(Meter_42, Speed);
                    break;

                case enumPumpType.PumpMax:
                default:
                    return;
                }
                CHxPumpSpeedOldSet[(int)Type] = Speed;
                RTStatus.PumpSpeed[(int)Type] = Speed;
            }
        }
Example #2
0
        int CHxPumpPositionConvert(int ulPumpPosition, enumPumpType Type)
        {
            //	进样精度
            int   PumpPosition;
            int   PumpPositionMaxCHx;
            float JYJDCHx = JYJDCH2;

            switch (Type)
            {
            case enumPumpType.SamplePump:
                JYJDCHx            = JYJDCH2;
                PumpPositionMaxCHx = SamplePumpPositionMax;
                RTStatus.PumpPosition[(int)Type] = HoldingSingelRead(Auto_06);
                break;

            case enumPumpType.CH1Pump:
                JYJDCHx            = JYJDCH1;
                PumpPositionMaxCHx = PumpPositionMaxCH1;
                RTStatus.PumpPosition[(int)Type] = HoldingSingelRead(Meter_26);
                break;

            case enumPumpType.CH2Pump:
                JYJDCHx            = JYJDCH2;
                PumpPositionMaxCHx = PumpPositionMaxCH2;
                RTStatus.PumpPosition[(int)Type] = HoldingSingelRead(Meter_31);
                break;

            case enumPumpType.CH3Pump:
                JYJDCHx            = JYJDCH3;
                PumpPositionMaxCHx = PumpPositionMaxCH3;
                RTStatus.PumpPosition[(int)Type] = HoldingSingelRead(Meter_36);
                break;

            case enumPumpType.CH4Pump:
                JYJDCHx            = JYJDCH4;
                PumpPositionMaxCHx = PumpPositionMaxCH4;
                RTStatus.PumpPosition[(int)Type] = HoldingSingelRead(Meter_41);
                break;

            case enumPumpType.PumpMax:
            default:
                return(-1);
            }

            if (ulPumpPosition == 0)
            {
                PumpPosition = 0;
            }
            else if (ulPumpPosition > 0)
            {
                PumpPosition = (int)((float)(ulPumpPosition + JYJDCHx / 2) / JYJDCHx);
            }
            else
            {
                PumpPosition = (int)((float)(ulPumpPosition - JYJDCHx / 2) / JYJDCHx);
            }

            if ((int)RTStatus.PumpPosition[(int)Type] + PumpPosition > (PumpPositionMaxCHx + JYJDCHx / 2) / JYJDCHx)
            {
                PumpPosition = (int)((PumpPositionMaxCHx + JYJDCHx / 2) / JYJDCHx);
            }
            else if ((int)RTStatus.PumpPosition[(int)Type] + PumpPosition <= PumpZero)
            {
                PumpPosition = 0;
            }
            else
            {
                PumpPosition += RTStatus.PumpPosition[(int)Type];
            }
            return(PumpPosition);
        }