Sviluppare una logica del simulatore di processo

Sviluppare una logica che simula un'attività di lunga durata.
Prerequisiti
Impostare l'editor di codice esterno predefinito. Vedere Impostare l'editor di codice predefinito.
  1. Come sviluppare una logica del simulatore di processo
  2. Creare l'oggetto ProcessVariableSimulator:
    1. In
      Vista progetto
      , fare clic con il pulsante destro del mouse su
      Modello
      e selezionare
      Nuovo
      Oggetto
      .
    2. Passare il puntatore del mouse sull'oggetto, selezionare
      Edit
      e immettere
      ProcessVariableSimulator
      .
    3. In
      Proprietà
      , aggiungere quattro variabili selezionando
      Add
      e selezionando
      Variabile
      .
    4. Rinominare le variabili passando il puntatore del mouse su ciascuna variabile, selezionando
      Edit
      e immettendo:
      • IsRunning
      • Message
      • Step
      • Value
    5. Accanto a
      IsRunning
      , selezionare
      Int32
      e selezionare
      Boolean
      .
    6. Accanto a
      Message
      , selezionare
      Int32
      e selezionare
      String
      .
  3. Sviluppare lo script ProcessVariableSimulatorLogic:
    1. Fare clic con il pulsante destro del mouse su
      ProcessVariableSimulator
      e selezionare
      Nuovo
      NetLogic di runtime
      .
    2. Passare il puntatore del mouse sulla NetLogic, selezionare
      Edit
      e immettere
      ProcessVariableSimulatorLogic
    3. Fare doppio clic sulla NetLogic.
      Viene aperto l'editor di codice esterno.
    4. Sostituire il codice esistente con il codice seguente:
      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. Salvare il codice.
  4. Convertire l'oggetto ProcessVariableSimulatorLogic in un tipo di oggetto:
    1. In
      Vista tipi
      , fare doppio clic su
      Modello
      .
    2. Trascinare
      ProcessVariableSImulator
      dalla
      Vista progetto
      nella
      Vista tipi
      .
  5. Creare l'oggetto ProcessVariableSimulator1 trascinando
    ProcessVariableSImulator
    dalla
    Vista tipi
    nella cartella
    Modello
    nel riquadro
    Vista progetto
    .
  6. Configurare l'oggetto ProcessVariableSimulator1:
    1. In
      Proprietà
      , impostare
      IsRunning
      su
      Vero
      .
    2. Impostare
      Step
      su
      1
Fornire un feedback
Hai domande o feedback su questa documentazione? invia il tuo feedback qui.