Sviluppo di una logica del simulatore di processo

Sviluppare una logica che simula un'attività a esecuzione prolungata.
Prerequisiti
Impostare l'editor di codice esterno. Vedere Impostare l'editor di codice predefinito.
  1. Creare l'oggetto ProcessVariableSimulator:
    1. In
      Vista progetto
      , fare clic con il pulsante destro del mouse su
      Model
      e selezionare
      Nuovo
      Oggetti
      .
    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
      .
  2. 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.
  3. 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
      .
  4. Creare l'oggetto ProcessVariableSimulator1 trascinando
    ProcessVariableSImulator
    dalla
    Vista tipi
    nella cartella
    Modello
    nel riquadro
    Vista progetto
    .
  5. 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.