• JKI SMO使用(1)


    为什么要用JKI SMO?

    1、习惯了使用JKI State Machine;

    2、JKI State Machine 是单进程的,无法处理多任务并发系统;

    3、对OOP知之甚少,绕过OOP设计的复杂性。

    安装工具包

    Demo演示:

    需求:采集电压并显示,超过3.5V时,报警提示。

    分析:需要2个SMO,1个负责不断采集电压信号;1个负责显示和报警

    实现步骤:

    1、新建项目,命名SMO Demo.lvproj

    2、打开SMO Ediror(脚本工具,和提供开发模板,便于开发),Tools  JKI state Machine Objects  SMO Editor

    3、创建SMO:

        创建2个SMO:   电压采集的SMO,不需要界面,创建时选择SMO.Basic模板;显示和报警的SMO,需要界面,选择SMO.UI.Basic模板

     

    4、分别给SMO创建事件

    (1)Volt Acquisition SMO 创建2个事件,

    发布采集的电压值+是否警告的状态

    a. 事件1:Volt

    事件2:Warning Status

    b. 在核心process.vi中编写核心程序,并进行发布。

    虽然创建了2个事件,但是是一个核心

    超时设成100ms,通过随机数模拟每100ms进行一次电压采集,并判断是否报警,并发布电压值和报警状态。

    (2)Signal Display  SMO 创建事件

     a. 显然 Signal Display SMO 是要依赖Volt Acquisition SMO,因此,需要将后者添加到前者的私有数据控件(.ctl)中。

     b. 右键Signal Display SMO菜单创建成员访问器Volt Acquisition(需先建个虚拟文件夹,把成员访问器放里面)

    (Signal Display SMO是依赖Volt Acquisition.lvclass的,是要去访问他的,因为他才提供了电压值和判断结果)

    创建完是这样:

    c. 在核心process.vi中编写核心程序

     打开Process.vi,Events:Register分支,去注册Volt Acquisition发布的Public Event,

    (3)添加两个事件分支User Event

    以上,完成了2个SMO的程式。

    在项目中新建Launcher.vi用来启动并测试:

     

     

  • 相关阅读:
    windows上设置代理
    docker 代理
    windbg随笔
    win10自带ssh server使用
    centos7 最小安装后,编译配置redsocks
    cef chromium 编译
    C++中的单例模式
    delete NULL
    音视频通讯能力提供商
    云视频会议解决方案
  • 原文地址:https://www.cnblogs.com/snoopingmind/p/14355696.html
Copyright © 2020-2023  润新知