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.
- Pour développer une logique de simulateur de processus
- Créez l’objet ProcessVariableSimulator :
- DansVue de projet, cliquez avec le bouton droit de la souris surModèleet sélectionnez .
- Passez le curseur de la souris sur l’objet, sélectionnez et saisissezProcessVariableSimulator.
- DansPropriétés, ajoutez quatre variables en sélectionnant et en sélectionnantVariable.
- Pour renommer les variables, passez le curseur de la souris sur chaque variable, sélectionnez et saisissez :
- IsRunning
- Message
- Step
- Value
- En regard deIsRunning, sélectionnezInt32et sélectionnezBoolean.
- En regard deMessage, sélectionnezInt32et sélectionnezString.
- Développez le script ProcessVariableSimulatorLogic :
- Cliquez avec le bouton droit de la souris surProcessVariableSimulatoret sélectionnez .
- Passez le curseur de la souris sur le NetLogic, sélectionnez et saisissezProcessVariableSimulatorLogic.
- Double-cliquez sur NetLogic.L'éditeur de code externe s'ouvre.
- 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; }
- Enregistrez le code.
- Convertissez l’objet ProcessVariableSimulatorLogic en type d’objet :
- DansVue de type, double-cliquez surModèle.
- Faites glisserProcessVariableSImulatordepuisVue de projetversVue de type.
- Créez l’objet ProcessVariableSimulator1 en faisant glisserProcessVariableSImulatordepuisVue de typevers le dossierModèledansVue de projet.
- Configurez l’objet ProcessVariableSimulator1 :
- DansPropriétés, définissezIsRunningsurVrai.
- DéfinissezStepsur1
Fournir une réponse