Desarrollar una lógica de simulador de procesos
Se desarrolla una lógica que simula una tarea de larga ejecución.
Requisitos previos
Establezca el editor de código externo predeterminado. Consulte Establecer el editor de código predeterminado.
- Para desarrollar una lógica de simulador de procesos
- Cree el objeto ProcessVariableSimulator:
- EnVista del proyecto, haga clic con el botón derecho enModeloy seleccione .
- Pase el cursor por encima del objeto, seleccione y escribaProcessVariableSimulator.
- EnPropiedades, agregue cuatro variables seleccionando yVariable.
- Para cambiar el nombre de las variables, pase el cursor por encima de cada variable, seleccione y escriba:
- IsRunning
- Message
- Step
- Value
- Junto aIsRunning, seleccioneInt32y seleccioneBoolean.
- Junto aMessage, seleccioneInt32y seleccioneString.
- Desarrolle el script ProcessVariableSimulatorLogic:
- Haga clic con el botón derecho enProcessVariableSimulatory seleccione .
- Pase el cursor por encima de NetLogic, seleccione y escribaProcessVariableSimulatorLogic
- Haga doble clic en NetLogic.Se abre el editor de código externo.
- Reemplace el código existente por el siguiente código: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; }
- Guarde el código.
- Convierta el objeto ProcessVariableSimulatorLogic en un tipo de objeto:
- EnVista Tipo, haga doble clic enModelo.
- ArrastreProcessVariableSImulatordesdeVista del proyectoaVista Tipo.
- Cree el objeto ProcessVariableSimulator1 arrastrandoProcessVariableSImulatordesdeVista Tipoa la carpetaModelodeVista del proyecto.
- Configure el objeto ProcessVariableSimulator1:
- EnPropiedades, establezcaIsRunningenVerdadero.
- EstablezcaStepen1
Entregue su opinión