Agregar modo de lectura a ucAnalogTag, permitiendo la lectura condicional del valor. Se implementa la propiedad Read_Mode y se ajusta la lógica de actualización para utilizarla.

This commit is contained in:
Miguel 2025-09-04 11:59:32 +02:00
parent 3fe5b5497f
commit 6e48539d2e
1 changed files with 13 additions and 3 deletions

View File

@ -92,8 +92,16 @@ namespace CtrEditor.ObjetosSim
[property: Name("Valor")] [property: Name("Valor")]
public float value; public float value;
[ObservableProperty]
[property: Category("Simulación")]
[property: Description("Modo de lectura.")]
[property: Name("Modo Lectura")]
public bool read_Mode;
partial void OnValueChanged(float value) partial void OnValueChanged(float value)
{ {
if (!Read_Mode)
EscribirWordTagScaled(Tag, Value, Min_IN_Scaled, Max_IN_Scaled, Min_OUT_Scaled, Max_OUT_Scaled); EscribirWordTagScaled(Tag, Value, Min_IN_Scaled, Max_IN_Scaled, Min_OUT_Scaled, Max_OUT_Scaled);
} }
@ -106,7 +114,7 @@ namespace CtrEditor.ObjetosSim
Min_OUT_Scaled = 0; Min_OUT_Scaled = 0;
min_IN_Scaled = 0; min_IN_Scaled = 0;
max_IN_Scaled = 100; max_IN_Scaled = 100;
Read_Mode = false;
} }
public override void UpdateGeometryStart() public override void UpdateGeometryStart()
@ -116,6 +124,8 @@ namespace CtrEditor.ObjetosSim
} }
public override void UpdatePLC(PLCViewModel plc, int elapsedMilliseconds) public override void UpdatePLC(PLCViewModel plc, int elapsedMilliseconds)
{ {
if (Read_Mode)
Value = LeerWordTagScaled(Tag, Min_OUT_Scaled, Max_OUT_Scaled, Min_IN_Scaled, Max_IN_Scaled);
} }
public override void UpdatePLCPrimerCiclo() public override void UpdatePLCPrimerCiclo()