Développer une logique de simulateur de processus

Développez une logique qui simulera une tâche longue durée.
Conditions préalables
Définissez l’éditeur de code externe par défaut. Consultez la rubrique Définir l'éditeur de code par défaut.
  1. Pour développer une logique de simulateur de processus
  2. Créez l’objet ProcessVariableSimulator :
    1. Dans
      Vue de projet
      , cliquez avec le bouton droit de la souris sur
      Modèle
      et sélectionnez
      Nouveau
      Objet
      .
    2. Passez le curseur de la souris sur l’objet, sélectionnez
      Edit
      et saisissez
      ProcessVariableSimulator
      .
    3. Dans
      Propriétés
      , ajoutez quatre variables en sélectionnant
      Add
      et en sélectionnant
      Variable
      .
    4. Pour renommer les variables, passez le curseur de la souris sur chaque variable, sélectionnez
      Edit
      et saisissez :
      • IsRunning
      • Message
      • Step
      • Value
    5. En regard de
      IsRunning
      , sélectionnez
      Int32
      et sélectionnez
      Boolean
      .
    6. En regard de
      Message
      , sélectionnez
      Int32
      et sélectionnez
      String
      .
  3. Développez le script ProcessVariableSimulatorLogic :
    1. Cliquez avec le bouton droit de la souris sur
      ProcessVariableSimulator
      et sélectionnez
      Nouveau
      NetLogic d'exécution
      .
    2. Passez le curseur de la souris sur le NetLogic, sélectionnez
      Edit
      et saisissez
      ProcessVariableSimulatorLogic
    3. Double-cliquez sur NetLogic.
      L'éditeur de code externe s'ouvre.
    4. Remplacez le code existant par le code suivant :
      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. Enregistrez le code.
  4. Convertissez l’objet ProcessVariableSimulatorLogic en type d’objet :
    1. Dans
      Vue de type
      , double-cliquez sur
      Modèle
      .
    2. Faites glisser
      ProcessVariableSImulator
      depuis
      Vue de projet
      vers
      Vue de type
      .
  5. Créez l’objet ProcessVariableSimulator1 en faisant glisser
    ProcessVariableSImulator
    depuis
    Vue de type
    vers le dossier
    Modèle
    dans
    Vue de projet
    .
  6. Configurez l’objet ProcessVariableSimulator1 :
    1. Dans
      Propriétés
      , définissez
      IsRunning
      sur
      Vrai
      .
    2. Définissez
      Step
      sur
      1
Fournir une réponse
Vous avez des questions ou des commentaires sur cette documentation ? Veuillez envoyer vos commentaires ici.