GVA SUPPORT

³äïîâ³äü íà çàïèòàííÿ ¹ 1363015074
Text:
	ԲΠ= 7FINAL by Vanya vk.com/belecucema

 Çàïèòàííÿ:using System;
using System.Collections.Generic;
using System.Text;

namespace EXP
{
    partial class user
    //class user
    {
        static int Do(int N, int A, int F, int D_In) { return C.Do(N, A, F, D_In); } 
        public static void UserStendInit()
        {
            //---------Students code----------------BEGIN
            //C.SetStend1();		
            //C.SetStend2();
            C.SetStend3();
            //---------Students code----------------END
        }
//++++++++++++++++++++++++++++++++++++++++++++++++++++++
        public static void UserCrateInit()
        {
            // C.SetDAC(3);	        			//example
            //---------Students code----------------BEGIN
            C.SetStep(1);
            C.SetDAC(2); 
            C.SetADC(3); 
            C.SetDAC(4);
            C.SetADC(5);
            //---------Students code----------------END
        }
//++++++++++++++++++++++++++++++++++++++++++++++++++++++
        public static void UserConnect()
        {
            // Connect.Set(3, 1, 0, 3);			//example
            //---------Students code----------------BEGIN
            Connect.Set(1, 1, 0, 10); 
            Connect.Set(1, 2, 0, 11);
            Connect.Set(2, 1, 0, 1); 
            Connect.Set(3, 1, 0, 2);
            Connect.Set(4, 1, 0, 3);
            Connect.Set(5, 1, 0, 4);
            //---------Students code----------------END
        }
//++++++++++++++++++++++++++++++++++++++++++++++++++++++
        public static void Experiment()
        {
            /*
            double T1 = Time.get();
            for (int n = 0; n < 10; n++)
            {
                Console.Beep(5000, 200);
                Time.Pause(1.25);
            }
            double T2 = Time.get();
            double dT = T2 - T1;
            Console.Beep(3000, 500);
            return;
            */

            //---------Students code----------------BEGIN

            int U = 2047; //Voltage
            int K, W; //koordinate og step driver
            double dK = 0, dW = 0; 
            Do(1, 1, 16, 65); //axid in Y
            Do(1, 0, 16, -35); //water in X
            Time.Pause(2); //waiting
            Do(2, 0, 16, U); //set voltage of concentracion
            int U10 = Do(3, 0, 0, 0); //concentracion
            Do(4, 0, 16, U);             //set voltage of level
            int R20 = Do(5, 0, 0, 0); //level
            double CONSENTRACION_ZERO = (5000.0 * U10) / ((U - U10) * 1.0); //concentration on beginning
            double LEVEL_ZERO = (1000.0 * R20) / ((U - R20) * 1.0); //level on beginning
            K = 65; W = -35; //start step
            while (true)
            {   int R1 = Do(3, 0, 0, 0); //concentration voltage
                int R2 = Do(5, 0, 0, 0); //level voltage
                double Concentracion = (5000.0 * R1) / ((U - R1) * 1.0); //concentration
                double Level = (1000.0 * R2) / ((U - R2) * 1.0); //level
                if (Concentracion >= CONSENTRACION_ZERO) 
                {   if (dK < Math.Abs(Concentracion - CONSENTRACION_ZERO))//
                    { K += 9; } 
                    Do(1, 1, 16, K); //more axid
                    if (Level >= LEVEL_ZERO)
                    {   if (dW < Math.Abs(LEVEL_ZERO - Level))
                        { W += 9; } //increase X
                        Do(1, 0, 16, W); //more watter
                    }
                    else
                    {   if (dW < Math.Abs(LEVEL_ZERO - Level))
                        { W -= 9; } //deacrese X
                        Do(1, 0, 16, W); //less water
                    }
                }
                else
                {   if (dK < Math.Abs(Concentracion - CONSENTRACION_ZERO))
                    { K -= 9; } //decrease Y
                    Do(1, 1, 16, K); //less axid
                    if (Level >= LEVEL_ZERO) 
                    {   if (dW < Math.Abs(LEVEL_ZERO - Level))
                        { W += 9; } //increase X
                        Do(1, 0, 16, W); //more watter
                    }
                    else
                    {   if (dW < Math.Abs(LEVEL_ZERO - Level))
                        { W -= 9; } //decrease X
                        Do(1, 0, 16, W); //çìåíøóºìî ïîäà÷ó âîäè
                    }
                }
                dW = Math.Abs(LEVEL_ZERO - Level); //diference betwen start and end
                dK = Math.Abs(Concentracion - CONSENTRACION_ZERO); //diference betwen start and end
            }
            //---------Students code----------------END
        }

        //++++++++++++++++++++++++++++++++++++++++++++++++++++++
    }
}


	
Âàøà â³äïîâ³äü