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.
- Creare l'oggetto ProcessVariableSimulator:
- InVista progetto, fare clic con il pulsante destro del mouse suModele selezionare .
- Passare il puntatore del mouse sull'oggetto, selezionare e immettereProcessVariableSimulator.
- InProprietà, aggiungere quattro variabili selezionando e selezionandoVariabile.
- Rinominare le variabili passando il puntatore del mouse su ciascuna variabile, selezionando e immettendo:
- IsRunning
- Message
- Step
- Value
- Accanto aIsRunning, selezionareInt32e selezionareBoolean.
- Accanto aMessage, selezionareInt32e selezionareString.
- Sviluppare lo script ProcessVariableSimulatorLogic:
- Fare clic con il pulsante destro del mouse suProcessVariableSimulatore selezionare .
- Passare il puntatore del mouse sulla NetLogic, selezionare e immettereProcessVariableSimulatorLogic
- Fare doppio clic sulla NetLogic.Viene aperto l'editor di codice esterno.
- 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; }
- Salvare il codice.
- Convertire l'oggetto ProcessVariableSimulatorLogic in un tipo di oggetto:
- InVista tipi, fare doppio clic suModello.
- TrascinareProcessVariableSImulatordallaVista progettonellaVista tipi.
- Creare l'oggetto ProcessVariableSimulator1 trascinandoProcessVariableSImulatordallaVista tipinella cartellaModellonel riquadroVista progetto.
- Configurare l'oggetto ProcessVariableSimulator1:
- InProprietà, impostareIsRunningsuVero.
- ImpostareStepsu1
Fornire un feedback