Desarrollar una lógica de simulador de procesos

Se desarrolla una lógica que simula una tarea de larga ejecución.
Requisitos previos
Establezca el editor de código externo predeterminado. Consulte Establecer el editor de código predeterminado.
  1. Para desarrollar una lógica de simulador de procesos
  2. Cree el objeto ProcessVariableSimulator:
    1. En
      Vista del proyecto
      , haga clic con el botón derecho en
      Modelo
      y seleccione
      Nuevo
      Objeto
      .
    2. Pase el cursor por encima del objeto, seleccione
      Edit
      y escriba
      ProcessVariableSimulator
      .
    3. En
      Propiedades
      , agregue cuatro variables seleccionando
      Add
      y
      Variable
      .
    4. Para cambiar el nombre de las variables, pase el cursor por encima de cada variable, seleccione
      Edit
      y escriba:
      • IsRunning
      • Message
      • Step
      • Value
    5. Junto a
      IsRunning
      , seleccione
      Int32
      y seleccione
      Boolean
      .
    6. Junto a
      Message
      , seleccione
      Int32
      y seleccione
      String
      .
  3. Desarrolle el script ProcessVariableSimulatorLogic:
    1. Haga clic con el botón derecho en
      ProcessVariableSimulator
      y seleccione
      Nuevo
      NetLogic de tiempo de ejecución
      .
    2. Pase el cursor por encima de NetLogic, seleccione
      Edit
      y escriba
      ProcessVariableSimulatorLogic
    3. Haga doble clic en NetLogic.
      Se abre el editor de código externo.
    4. Reemplace el código existente por el siguiente código:
      using System.Threading; using UAManagedCore; public class ProcessVariableSimulatorLogic : FTOptix.NetLogic.BaseNetLogic { public override void Start() { var owner = (ProcessVariableSimulator)LogicObject.Owner; valueVariable = owner.ValueVariable; stepVariable = owner.StepVariable; messageVariable = owner.MessageVariable; isRunningVariable = owner.IsRunningVariable; increment = true; periodicTask = new PeriodicTask(IncrementDecrementTask, 500, LogicObject); periodicTask.Start(); longRunningTask = new LongRunningTask(MessageTask, LogicObject); longRunningTask.Start(); } public override void Stop() { periodicTask.Dispose(); periodicTask = null; longRunningTask.Dispose(); longRunningTask = null; } [FTOptix.NetLogic.ExportMethod] public void StartMethod() { periodicTask.Start(); isRunningVariable.Value = true; } [FTOptix.NetLogic.ExportMethod] public void StopMethod() { periodicTask.Cancel(); isRunningVariable.Value = false; } public void IncrementDecrementTask() { int currentValue = valueVariable.Value; int step = stepVariable.Value; if (increment) { currentValue += step; if (currentValue >= 100) { currentValue = 100; increment = false; } } else { currentValue -= step; if (currentValue <= 0) { currentValue = 0; increment = true; } } valueVariable.Value = currentValue; } public void MessageTask() { Thread.Sleep(2000); messageVariable.Value = "PHASE 1"; Thread.Sleep(2000); messageVariable.Value = "PHASE 2"; Thread.Sleep(2000); messageVariable.Value = "PHASE 3"; Thread.Sleep(2000); messageVariable.Value = "PHASE 4"; } private IUAVariable valueVariable; private IUAVariable stepVariable; private IUAVariable messageVariable; private IUAVariable isRunningVariable; private bool increment; private PeriodicTask periodicTask; private LongRunningTask longRunningTask; }
    5. Guarde el código.
  4. Convierta el objeto ProcessVariableSimulatorLogic en un tipo de objeto:
    1. En
      Vista Tipo
      , haga doble clic en
      Modelo
      .
    2. Arrastre
      ProcessVariableSImulator
      desde
      Vista del proyecto
      a
      Vista Tipo
      .
  5. Cree el objeto ProcessVariableSimulator1 arrastrando
    ProcessVariableSImulator
    desde
    Vista Tipo
    a la carpeta
    Modelo
    de
    Vista del proyecto
    .
  6. Configure el objeto ProcessVariableSimulator1:
    1. En
      Propiedades
      , establezca
      IsRunning
      en
      Verdadero
      .
    2. Establezca
      Step
      en
      1
Entregue su opinión
¿Tiene dudas o comentarios acerca de esta documentación? Por favor deje su opinión aquí.