《一种全新的开源LabVIEW编程框架-可通讯状态机框架(Communicable State Machine)_NI.pdf》由会员分享,可在线阅读,更多相关《一种全新的开源LabVIEW编程框架-可通讯状态机框架(Communicable State Machine)_NI.pdf(44页珍藏版)》请在三个皮匠报告上搜索。
1、可通讯状态机框架可通讯状态机框架(Communicable State Machine-CSM)Yao Li CHT Principal Application Engineer,ADG内容概要本分享将主要介绍一种新的LabVIEW 编程框架-可通讯状态机框架(Communicable State Machine-CSM)及其应用项目案例.通过CSM与常见程序框架的设计逻辑比较,说明高复用的程序框架设计内部逻辑,和如何在复杂项目中实现代码复用。分享内容主要包括:1.背景及 JKI State Machine 介绍2.高复用程序框架的设计逻辑3.可通讯状态机框架(Communicable Sta
2、te Machine)介绍4.比较常见的LabVIEW编程框架(Actor Framework/DQMH/SMO/CSM)5.案例分享Pre-reading:1.JKI State Machine:https:/ to DQMH:https:/ State Machine:https:/ Continuous Measurement and logging Example:https:/ 代码模块重复开发,人力资源浪费的问题不同项目基于不同的开发框架,维护学习成本高的问题 人员梯队技能熟练度不同,难以共同参与需协同的复杂项目开发 ATE自动化测试平台基于 OOP 编程的项目集成商/客户难以自主
3、维护 ATE标准自动化测试脚本化需求 等等JKI State Machine(JKISM)JKI State Machine(JKISM)介绍JKI State Machine(JKISM)简介JKI State Machine(JKISM)是一个 LabVIEW 事件驱动队列消息状态机,核心是队列消息状态机+用户界面交互处理模式。JKISM 采用规定格式的字符串描述字符串,利用字符串类型的移位寄存器构建消息队列。优点:1.字符串格式的消息队列、消息,易于编辑、操作和查看2.字符串消息可以携带附加的额外信息,构成消息+数据队列状态机3.支持注释、宏消息4.状态过程可通过文本描述,可以实现外部控
4、制状态转换5.模板内置错误处理机制6.JKISM Editor工具JKISoftware/JKI-State-Machine:JKI State Machine()Parse State Queue.vi:消息处理核心1.取出消息队列中下一条消息2.Error时进入“Error Handler”状态初始化状态(宏状态)队列操作消息队列为空时,进入事件结构等待用户操作消息队列模块内部数据消息消息参数/打开前界面UI:Front Panel State Open消息参数消息注释消息Core Category:Default:严重错误,捕获编程中使用未定义状态Initialize Core Data
5、:初始化框架所需资源Error Handler:处理错误Exit:退出JKISM的初始化过程(Macro:Initialize)/定义内部数据Data:Initialize/初始化框架数据Initialize Core Data/初始化界面UI:Initialize/操作前界面,参数为OpenUI:Front Panel State OpenJKISM的内部数据定义内部数据定义需要注意:1.不要删除框架的数据2.添加数据需要命名,Bundle 操作输出的簇自动包含名称,其他状态使用Unbundle by Name 时可以知道名称JKISM 退出过程(Macro:Exit)/操作前界面,参数为C
6、loseUI:Front Panel State Close/清理数据,关闭句柄等申请资源Data:Cleanup/退出状态机ExitJKISM探针(Probe)JKI State Machine(JKISM)介绍JKISM探针专为JKI状态机设计,应用在在状态连线上,显示下一个状态,如果没有则为空字符串。例子:在上述四个状态对应的代码中插入探针,每个状态的运行结果为:History探针VIPM中有多个历史列表探针库,安装后可以看到轮转的历史状态列表JKISM编辑器JKI State Machine(JKISM)介绍打开方式状态跳转/过滤状态调用状态跳转JKISM编程技巧JKI State M