开发过程模拟器逻辑

开发将模拟长期运行的任务的逻辑。
先决条件
设置默认外部代码编辑器。请参见设置默认代码编辑器
  1. 开发过程模拟器逻辑
  2. 创建 ProcessVariableSimulator 对象:
    1. 项目视图
      中,右键单击
      模型
      ,然后选择
      新建
      对象
    2. 将光标悬停在对象上,选择
      Edit
      并输入
      ProcessVariableSimulator
    3. 属性
      中,通过选择
      Add
      变量
      添加四个变量。
    4. 对这些变量进行重命名,方法是将光标悬停在每个变量上,选择
      Edit
      并输入以下内容:
      • IsRunning
      • Message
      • Step
      • Value
    5. 选择
      IsRunning
      旁边的
      Int32
      ,然后选择
      Boolean
    6. 选择
      Message
      旁边的
      Int32
      ,然后选择
      String
  3. 开发 ProcessVariableSimulatorLogic 脚本:
    1. 右键单击
      ProcessVariableSimulator
      ,然后选择
      新建
      运行时 NetLogic
    2. 将光标悬停在 NetLogic 上,选择
      Edit
      并输入
      ProcessVariableSimulatorLogic
    3. 双击 NetLogic。
      外部代码编辑器将打开。
    4. 使用以下代码替换现有代码:
      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. 保存代码。
  4. 将 ProcessVariableSimulatorLogic 对象转换为对象类型:
    1. 类型视图
      中,双击
      模型
    2. ProcessVariableSImulator
      项目视图
      拖到
      类型视图
      中。
  5. 通过将
    ProcessVariableSImulator
    类型视图
    拖到
    项目视图
    中的
    模型
    文件夹中,创建 ProcessVariableSimulator1 对象。
  6. 配置 ProcessVariableSimulator1 对象:
    1. 属性
      中,将
      IsRunning
      设置为
    2. Step
      设置为
      1
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈