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
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++
}
}
|