adicionado atuador
This commit is contained in:
parent
aa827bb57b
commit
504277b6bd
|
|
@ -1335,7 +1335,8 @@ namespace AgroBase.Models.Modules
|
||||||
EnviarComandoFisicoBomba(
|
EnviarComandoFisicoBomba(
|
||||||
bomba,
|
bomba,
|
||||||
CanMessagePosicaoDados.Command2,
|
CanMessagePosicaoDados.Command2,
|
||||||
true,
|
setarControle: true,
|
||||||
|
status: true,
|
||||||
modo: bomba.Controle.Modo,
|
modo: bomba.Controle.Modo,
|
||||||
potenciaMinPid: bomba.Controle.PotenciaMinPID,
|
potenciaMinPid: bomba.Controle.PotenciaMinPID,
|
||||||
Kp: bomba.Controle.Kp,
|
Kp: bomba.Controle.Kp,
|
||||||
|
|
@ -1361,7 +1362,8 @@ namespace AgroBase.Models.Modules
|
||||||
EnviarComandoFisicoBomba(
|
EnviarComandoFisicoBomba(
|
||||||
agitador,
|
agitador,
|
||||||
CanMessagePosicaoDados.Command2,
|
CanMessagePosicaoDados.Command2,
|
||||||
true,
|
setarControle: true,
|
||||||
|
status: true,
|
||||||
modo: agitador.Controle.Modo,
|
modo: agitador.Controle.Modo,
|
||||||
potenciaMinPid: agitador.Controle.PotenciaMinPID,
|
potenciaMinPid: agitador.Controle.PotenciaMinPID,
|
||||||
Kp: agitador.Controle.Kp,
|
Kp: agitador.Controle.Kp,
|
||||||
|
|
@ -1431,7 +1433,8 @@ namespace AgroBase.Models.Modules
|
||||||
EnviarComandoFisicoBomba(
|
EnviarComandoFisicoBomba(
|
||||||
bomba,
|
bomba,
|
||||||
CanMessagePosicaoDados.Command1,
|
CanMessagePosicaoDados.Command1,
|
||||||
statusDesejado,
|
setarControle: false,
|
||||||
|
status: statusDesejado,
|
||||||
potencia: potenciaEfetiva,
|
potencia: potenciaEfetiva,
|
||||||
pressao: pressaoEfetiva
|
pressao: pressaoEfetiva
|
||||||
);
|
);
|
||||||
|
|
@ -1738,7 +1741,8 @@ namespace AgroBase.Models.Modules
|
||||||
EnviarComandoFisicoBico(
|
EnviarComandoFisicoBico(
|
||||||
bico,
|
bico,
|
||||||
CanMessagePosicaoDados.Command1,
|
CanMessagePosicaoDados.Command1,
|
||||||
statusDesejado,
|
setarControle: false,
|
||||||
|
status: statusDesejado,
|
||||||
angulo: anguloDesejado
|
angulo: anguloDesejado
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -1826,12 +1830,13 @@ namespace AgroBase.Models.Modules
|
||||||
|
|
||||||
bool pressaoDivergente = bomba.Sensor_ID_Num > -1 && Math.Abs(bomba._PressaoSP - pressaoEfetiva) > 0.05;
|
bool pressaoDivergente = bomba.Sensor_ID_Num > -1 && Math.Abs(bomba._PressaoSP - pressaoEfetiva) > 0.05;
|
||||||
|
|
||||||
if (potenciaDivergente || pressaoDivergente) // estadoDivergente ||
|
if (estadoDivergente || potenciaDivergente || pressaoDivergente)
|
||||||
{
|
{
|
||||||
EnviarComandoFisicoBomba(
|
EnviarComandoFisicoBomba(
|
||||||
bomba,
|
bomba,
|
||||||
CanMessagePosicaoDados.Command1,
|
CanMessagePosicaoDados.Command1,
|
||||||
statusDesejado,
|
setarControle: false,
|
||||||
|
status: statusDesejado,
|
||||||
potencia: potenciaEfetiva,
|
potencia: potenciaEfetiva,
|
||||||
pressao: pressaoEfetiva
|
pressao: pressaoEfetiva
|
||||||
);
|
);
|
||||||
|
|
@ -1853,6 +1858,7 @@ namespace AgroBase.Models.Modules
|
||||||
public void EnviarComandoFisicoBico(
|
public void EnviarComandoFisicoBico(
|
||||||
AtuadorBicoModel bico,
|
AtuadorBicoModel bico,
|
||||||
CanMessagePosicaoDados dado,
|
CanMessagePosicaoDados dado,
|
||||||
|
bool setarControle,
|
||||||
bool status,
|
bool status,
|
||||||
double? angulo = null
|
double? angulo = null
|
||||||
)
|
)
|
||||||
|
|
@ -1862,20 +1868,46 @@ namespace AgroBase.Models.Modules
|
||||||
if (dispAtu?.Dados?.Conectado != true || bico == null)
|
if (dispAtu?.Dados?.Conectado != true || bico == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
bool comandoControle = bico.ComandoAtuar;
|
||||||
|
double anguloControle = bico.AnguloControle;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
bico.ComandoAtuar = status;
|
bico.ComandoAtuar = status;
|
||||||
if (angulo.HasValue) bico.AnguloControle = angulo.Value;
|
|
||||||
|
if (angulo.HasValue)
|
||||||
|
bico.AnguloControle = angulo.Value;
|
||||||
|
|
||||||
(_, _, byte[] data) = bico.ProtocoloComando();
|
(_, _, byte[] data) = bico.ProtocoloComando();
|
||||||
|
|
||||||
dispAtu.AdicionarMensagemFila(bico.ID_Num, dado, dado, data, false);
|
dispAtu.AdicionarMensagemFila(
|
||||||
|
bico.ID_Num,
|
||||||
|
dado,
|
||||||
|
dado,
|
||||||
|
data,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
bico.UltimoComandoEnviado = DateTime.Now;
|
bico.UltimoComandoEnviado = DateTime.Now;
|
||||||
bico.UltimoStatusDesejado = status;
|
bico.UltimoStatusDesejado = status;
|
||||||
if (angulo.HasValue) bico.UltimoAnguloDesejado = angulo.Value;
|
|
||||||
|
if (angulo.HasValue)
|
||||||
|
bico.UltimoAnguloDesejado = angulo.Value;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if (!setarControle)
|
||||||
|
{
|
||||||
|
bico.ComandoAtuar = comandoControle;
|
||||||
|
bico.AnguloControle = anguloControle;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void EnviarComandoFisicoBomba(
|
public void EnviarComandoFisicoBomba(
|
||||||
AtuadorBombaModel bomba,
|
AtuadorBombaModel bomba,
|
||||||
CanMessagePosicaoDados dado,
|
CanMessagePosicaoDados dado,
|
||||||
|
bool setarControle,
|
||||||
bool status,
|
bool status,
|
||||||
double? potencia = null,
|
double? potencia = null,
|
||||||
double? pressao = null,
|
double? pressao = null,
|
||||||
|
|
@ -1891,9 +1923,24 @@ namespace AgroBase.Models.Modules
|
||||||
if (dispAtu?.Dados?.Conectado != true || bomba == null)
|
if (dispAtu?.Dados?.Conectado != true || bomba == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
bool comandoControle = bomba.ComandoAtuar;
|
||||||
|
double potenciaControle = bomba.PotenciaSP;
|
||||||
|
double pressaoControle = bomba.PressaoSP;
|
||||||
|
var modoControle = bomba.Controle.Modo;
|
||||||
|
double potenciaMinPidControle = bomba.Controle.PotenciaMinPID;
|
||||||
|
double kpControle = bomba.Controle.Kp;
|
||||||
|
double kiControle = bomba.Controle.Ki;
|
||||||
|
double kdControle = bomba.Controle.Kd;
|
||||||
|
|
||||||
|
bool ehComandoEstado = dado == CanMessagePosicaoDados.Command1;
|
||||||
|
|
||||||
|
if (ehComandoEstado)
|
||||||
|
{
|
||||||
bomba.ComandoAtuar = status;
|
bomba.ComandoAtuar = status;
|
||||||
if (potencia.HasValue) bomba.PotenciaSP = potencia.Value;
|
if (potencia.HasValue) bomba.PotenciaSP = potencia.Value;
|
||||||
if (pressao.HasValue) bomba.PressaoSP = pressao.Value;
|
if (pressao.HasValue) bomba.PressaoSP = pressao.Value;
|
||||||
|
}
|
||||||
|
|
||||||
if (modo.HasValue) bomba.Controle.Modo = modo.Value;
|
if (modo.HasValue) bomba.Controle.Modo = modo.Value;
|
||||||
if (potenciaMinPid.HasValue) bomba.Controle.PotenciaMinPID = potenciaMinPid.Value;
|
if (potenciaMinPid.HasValue) bomba.Controle.PotenciaMinPID = potenciaMinPid.Value;
|
||||||
if (Kp.HasValue) bomba.Controle.Kp = Kp.Value;
|
if (Kp.HasValue) bomba.Controle.Kp = Kp.Value;
|
||||||
|
|
@ -1908,6 +1955,18 @@ namespace AgroBase.Models.Modules
|
||||||
bomba.UltimoStatusDesejado = status;
|
bomba.UltimoStatusDesejado = status;
|
||||||
if (potencia.HasValue) bomba.UltimaPotenciaDesejada = potencia.Value;
|
if (potencia.HasValue) bomba.UltimaPotenciaDesejada = potencia.Value;
|
||||||
if (pressao.HasValue) bomba.UltimaPressaoDesejada = pressao.Value;
|
if (pressao.HasValue) bomba.UltimaPressaoDesejada = pressao.Value;
|
||||||
|
|
||||||
|
if (!setarControle)
|
||||||
|
{
|
||||||
|
bomba.ComandoAtuar = comandoControle;
|
||||||
|
bomba.PotenciaSP = potenciaControle;
|
||||||
|
bomba.PressaoSP = pressaoControle;
|
||||||
|
bomba.Controle.Modo = modoControle;
|
||||||
|
bomba.Controle.PotenciaMinPID = potenciaMinPidControle;
|
||||||
|
bomba.Controle.Kp = kpControle;
|
||||||
|
bomba.Controle.Ki = kiControle;
|
||||||
|
bomba.Controle.Kd = kdControle;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1967,7 +2026,8 @@ namespace AgroBase.Models.Modules
|
||||||
EnviarComandoFisicoBomba(
|
EnviarComandoFisicoBomba(
|
||||||
Bomba,
|
Bomba,
|
||||||
CanMessagePosicaoDados.Command2,
|
CanMessagePosicaoDados.Command2,
|
||||||
true,
|
setarControle: true,
|
||||||
|
status: true,
|
||||||
modo: op.Parametros.Controle.AtuModoControle,
|
modo: op.Parametros.Controle.AtuModoControle,
|
||||||
potenciaMinPid: Bomba.Controle.PotenciaMinPID,
|
potenciaMinPid: Bomba.Controle.PotenciaMinPID,
|
||||||
Kp: Bomba.Controle.Kp,
|
Kp: Bomba.Controle.Kp,
|
||||||
|
|
@ -1978,7 +2038,8 @@ namespace AgroBase.Models.Modules
|
||||||
EnviarComandoFisicoBomba(
|
EnviarComandoFisicoBomba(
|
||||||
Bomba,
|
Bomba,
|
||||||
CanMessagePosicaoDados.Command1,
|
CanMessagePosicaoDados.Command1,
|
||||||
true,
|
setarControle: true,
|
||||||
|
status: true,
|
||||||
potencia: 100,
|
potencia: 100,
|
||||||
pressao: op.Parametros.Controle.AtuPressaoLinha
|
pressao: op.Parametros.Controle.AtuPressaoLinha
|
||||||
);
|
);
|
||||||
|
|
@ -1989,7 +2050,8 @@ namespace AgroBase.Models.Modules
|
||||||
EnviarComandoFisicoBomba(
|
EnviarComandoFisicoBomba(
|
||||||
Bomba,
|
Bomba,
|
||||||
CanMessagePosicaoDados.Command1,
|
CanMessagePosicaoDados.Command1,
|
||||||
ligar,
|
setarControle: true,
|
||||||
|
status: ligar,
|
||||||
potencia: 100,
|
potencia: 100,
|
||||||
pressao: -1
|
pressao: -1
|
||||||
);
|
);
|
||||||
|
|
@ -2017,7 +2079,8 @@ namespace AgroBase.Models.Modules
|
||||||
EnviarComandoFisicoBico(
|
EnviarComandoFisicoBico(
|
||||||
Bico,
|
Bico,
|
||||||
CanMessagePosicaoDados.Command1,
|
CanMessagePosicaoDados.Command1,
|
||||||
true
|
setarControle: true,
|
||||||
|
status: true
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2028,7 +2091,8 @@ namespace AgroBase.Models.Modules
|
||||||
EnviarComandoFisicoBico(
|
EnviarComandoFisicoBico(
|
||||||
Bico,
|
Bico,
|
||||||
CanMessagePosicaoDados.Command1,
|
CanMessagePosicaoDados.Command1,
|
||||||
false
|
setarControle: true,
|
||||||
|
status: false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2052,7 +2116,8 @@ namespace AgroBase.Models.Modules
|
||||||
EnviarComandoFisicoBico(
|
EnviarComandoFisicoBico(
|
||||||
Bico,
|
Bico,
|
||||||
CanMessagePosicaoDados.Command1,
|
CanMessagePosicaoDados.Command1,
|
||||||
true
|
setarControle: true,
|
||||||
|
status: true
|
||||||
);
|
);
|
||||||
|
|
||||||
await Task.Delay(200);
|
await Task.Delay(200);
|
||||||
|
|
@ -2060,7 +2125,8 @@ namespace AgroBase.Models.Modules
|
||||||
EnviarComandoFisicoBico(
|
EnviarComandoFisicoBico(
|
||||||
Bico,
|
Bico,
|
||||||
CanMessagePosicaoDados.Command1,
|
CanMessagePosicaoDados.Command1,
|
||||||
false
|
setarControle: true,
|
||||||
|
status: false
|
||||||
);
|
);
|
||||||
|
|
||||||
await Task.Delay(200);
|
await Task.Delay(200);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue