LinxVIEW论坛-斯科道

 找回密码
 立即注册
查看: 19822|回复: 15
打印 上一主题 下一主题

JKI状态机最佳操练

[复制链接]

535

主题

746

帖子

2597

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2597
跳转到指定楼层
楼主
发表于 2018-1-29 15:01:12 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 Scadao 于 2018-1-29 23:29 编辑



近来JKI团队讨论了状态机的最佳操练模式,帮助LabVIEW开发者创建一款强劲的状态机模板,从而快速方便编写代码,同时也对LabVIEW工程师通过CLD考试颇有助益。



讨论结果,大家贡献了很多奇妙想法,这里从5个角度来梳理表述:
1. 不要在子VI中隐藏状态字符串;
2. 不要在事件结构中添加代码和逻辑判断;
3. 保留原生架构尺度(比如不要去催生壮大架构);

4.    使用宏替代链式序列状态;
5. 左对齐替代右对齐状态字符串


我们倾听大伙在JKI状态机操练过程的使用心得,请尽情建议,有什么好点子也敬请奉献,也许后续JKI状态机模板就会添加进你的想法。




回复

使用道具 举报

2

主题

20

帖子

288

积分

中级会员

Rank: 3Rank: 3

积分
288
16#
发表于 2019-7-23 17:08:22 | 只看该作者
这个结构,用了一段时间。如果说需要轮询一些网络、串口、或者采集卡的数据,这种情况该添加在什么地方?
回复 支持 反对

使用道具 举报

0

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
15#
发表于 2019-7-23 14:46:13 | 只看该作者
我见过的最详细的解释了~~   不知道Actor Framework 有没这么详细的介绍啊
回复 支持 反对

使用道具 举报

535

主题

746

帖子

2597

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2597
14#
 楼主| 发表于 2018-3-9 18:02:29 | 只看该作者
网友达人上传到优酷的教学视频:

视频上:http://8du.in/0N32au
视频下:http://8du.in/0N32bj
回复 支持 反对

使用道具 举报

535

主题

746

帖子

2597

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2597
13#
 楼主| 发表于 2018-3-9 17:57:44 | 只看该作者
默认自带的Case名称如下:

---------- Core ----------
Default:若一个state名称没有对应的case,执行这个Default,报错,告知开发者,state名称有误。
Initialize Core Data:绑定本VI的引用和是否退出时关闭前面板的信息到簇里面。
Error Handler:一旦某个case出错,下个状态就到这里执行报错程序,默认的比较简单,可以自行修改。
Exit:退出程序时最后执行的case。停止While循环。
---------- Data ----------
Data: Initialize:变量初始化
Data: Cleanup:退出之前清除一些信息,引用,串口引用,DAQ引用,其它的信息需要清除的。
---------- UI ----------
UI: Initialize:启动此VI时放置初始化UI的代码。
UI: Cursor Set:鼠标形状设置,暂没用过。
UI: Front Panel State:控制前面板打开,关闭,隐藏,最大化,最小化的case,默认只有打开和关闭的代码。
---------- Macro ----------
Macro: Initialize:调用此VI时首先执行的case,里面放置接下来要执行的state。
Macro: Exit:退出时首先执行的case,放置退出之前需要执行的state的命令。
---------- New Category ----------
New Category: 1:自行添加的自定义case名称。
回复 支持 反对

使用道具 举报

535

主题

746

帖子

2597

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2597
12#
 楼主| 发表于 2018-3-7 15:27:17 | 只看该作者



回复 支持 反对

使用道具 举报

535

主题

746

帖子

2597

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2597
11#
 楼主| 发表于 2018-3-7 15:07:09 | 只看该作者
JKI状态机编辑器——查找访问数据来源点

目前,状态机间共享数据访问时,可通过簇名称绑定(解绑)来实现,解绑数据访问来源可右键快捷菜单选项Find Data Accessors,从而弹出对话框列表出读写此数据所有相关条件状态帧,点击即可。




回复 支持 反对

使用道具 举报

535

主题

746

帖子

2597

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2597
10#
 楼主| 发表于 2018-1-31 17:15:42 | 只看该作者
本帖最后由 Scadao 于 2018-1-31 17:19 编辑

JKI状态机右键快捷菜单新功能



LabVIEW2015以后版本才拥有下面所述新近添加的右键快捷菜单新功能,要理解快捷菜单插件的开发用法,可浏览NI官网的帮助文档

·通过树形主题来可视化选择JKI状态机条件事件帧结构
·JKI状态机编辑器UI界面就是树形化状态显示,可通过左键单击选择查看每个状态帧的程序框图内容
·JKI状态机编辑器的向前、向后按钮可切换查看相应历史状态,第三按钮为清除历史记录
·可在JKI状态机编辑器中用鼠标拖拽状态主题进行重新分类编排
·右击状态主题可重命名、创建副本、删除等等
注意:JKI状态重命名将对整个VI状态发生更改
·在状态字符串上鼠标右键选择“Goto State”,可跳转切换到此状态的条件帧



回复 支持 反对

使用道具 举报

535

主题

746

帖子

2597

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2597
9#
 楼主| 发表于 2018-1-31 15:20:15 | 只看该作者
JKI状态机编辑器——添加动态事件



目前,LabVIEW工程师可通过JKI状态机中的条件分支右击快捷键选择“Add Dynamic Events”来添加动态用户事件注册到状态机当中,经测试可完好创建事件驱动应用。


也可通过状态机编辑器界面右键选择:


一旦选择,事件注册和事件注销将会在JKI状态机右键快捷菜单中添加上,从而每个状态都会有相应连线。


回复 支持 反对

使用道具 举报

535

主题

746

帖子

2597

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2597
8#
 楼主| 发表于 2018-1-31 14:49:58 | 只看该作者
JKI状态机编辑器——Quick Search Filter Box



Quick Search Filter Box的新功能可使LabVIEW工程师过滤输出相应状态,使窗口只显示你要的状态内容,经过测试反馈没发生状态丢失现象,在大型状态机的开发设计中尤其优势明显。


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|SCADAO  

GMT+8, 2024-5-5 17:19 , Processed in 0.058264 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表