ApolloStudio高手之路(9):再议AplloStudio编程套路与技巧指南

经过前面几章功能细节的介绍,相信大家已经对ApolloStudio有了一个大概的认识,为什么仅仅只是大概?很多朋友会有这样的感觉:咦,看起来蛮简单诶,我也来试试看...结果打开脚本编辑器又茫然不知所措,由此笔者专门开此章来详尽讨论ApolloStudio的各种套路和捷径,希望在大家深入学习本章后会对ApolloStudio有更深一层的了解和认识。

架构体系

首先我们还是通过ApolloStudio的架构模式谈起,ApolloStudio采用的是.Net + Python双语系架构, 主程序是.Net框架下的,作为微软的亲儿子,在Windows环境下没有比.Net更适合开发桌面应用了,所以ApolloStudio本身继承了其强大而又简洁的特性,但是对于大多数用户而言,.Net编程还是需要很长一段时间去适应其编程思维以及掌握一门对应的编程语言,而真正在项目中使用又对其要求又更高了一些,需要达到灵活运用的层次,与此同时在行业应用中又会遇到方方面面的设备和各种协议,对于初学者来说更是难上加难,这是笔者多年前也曾遇到的困境;Python,一门借着人工智能(AI)、大数据浪潮近两年火的一塌糊涂的编程语言已经越来越广泛应用到方方面面,从嵌入式领域应用的micropython到风靡全球的Tensorflow人工智能框架亦或是布局Web网站的Django,无不是Python的应用战场,Python已经被纳入小学生课程范围进行编程启蒙......如何让用户即可使用强大而又简洁的.Net的同时,仅仅需要了解最基础的Python就能灵活自如的进行操控呢?ApolloStudio由此而生。不要求用户具备很高深的编程功底,以最低的门槛来解决用户的问题,这是ApolloStudio自诞生之初一直坚持至今的奋斗目标。

套路模式

谈完了架构,我们下一步来分析下作为一个使用者如何理解ApolloStudio的简单模式(套路),我们先借用在ApolloStudio高手之路(1)中所提到的模式图来做更进一步的分析:

在图中我们看到了ApolloStudio中,用户需要关心的仅仅只有2个部分UI布局文件 + 用户脚本 

UI布局文件

顾名思义,用户需要做的是结合自身的需要,将需要用到的控件“画”出来,这里应该是最直观也是对于用户来说最容易接受的,基本不需要经过学习即可自如操作,我们这里只需要特别注意一个地方:“控件自定义事件”,我们要深入理解ApolloStudio的内联模式:

页面通过控件的自定义事件设定一个触发请求,比如我们这里假定一个需求是通过按钮控制一个报警灯进行闪烁,在按钮的自定义事件中,我们将其设定为“绑定按钮标志位”并赋予一个数值序号(这里设置为0,这里的数值序号是将多个触发进行一个绑定,便于后台Python脚本执行对应的请求响应,我们这里打一个形象的比方,用户在UI界面上点选了一个按钮,就相当于你拨打119火警电话,消防员(这里就是脚本内循环扫描标志位操作)收到报警后,先挂断电话(这里就是脚本里面将报警标志位复位),然后火速赶紧处理火情(脚本内具体业务处理流程):

这里我们就绑定好了一个标志位。

“绑定勾选框”与“绑定按钮”的模式是一样的,区别是绑定的对象变成了一个勾选框。

“绑定到OPC DA”和“绑定到OPC UA”的模式也是一样,在ApolloStudio中,OPC DA/UA的节点数据是以内部序号的方式进行指定(在添加节点的时候系统会自动生成并自动绑定,注意观察),不过OPC数据绑定的对象这里限定为输出显示类型的控件,比如像指示灯(只能绑定布尔型)、报警灯(只能绑定布尔型)、数码管示数(数值型)、温度计(数值型)、仪表盘(数值型)等等。

运行第三方程序,该功能需要结合脚本一起使用,需要在脚本的While循环开始之前,通过脚本工具箱中的“UI界面点击执行程序的路径”进行路径指定,当按钮被触发时即可打开对应路径的exe文件。

打开文件选择框,可以通过脚本工具箱中的“UI界面点击选取的文件路径”在脚本执行过程中获取选择的路径。

急停激光标刻,在激光标刻过程中可紧急停止激光出光操作。

数据源管理器,可以打开SQLite或Access本地数据库进行配置。

切换指定序号的页面,该功能可以在正式运行时切换至指定序号的页面。

用户脚本

这里只需要熟悉基本的Python语法即可,在ApolloStudio中并不强调过多的语法技巧,即便是Python初学者也能得心应手,从上文中我们在介绍自定义事件时也提到了ApolloStudio流程式循环扫描的内联模型,都是非常符合初学者流程式处理思维,而且并不需要记忆成百个API功能函数,所有精髓都被详尽的集成在了脚本工具集这一利器中,到需要使用时,只需要完成双击复制》粘贴这2步操作即可。

 在使用脚本工具集时,有时候可能突然不确定想要的功能函数需要哪些传入参数?同样也不确定是否有返回值?以及返回值的数据类型又是什么?这个时候只需要将鼠标电源对应的功能函数后,将鼠标悬停在上面半秒,即可浮现原始的脚本功能原型,上面所述的问题也都迎刃而解了,下面我们来看一组例子:

我们以Modbus RTU读取输入线圈通断时的原型举例:bool Func_Modbus_RTU_ReadDiscreteInputs(uint indexnum, byte desStation, int address),在这个原型中我们可以清楚的认识到,该功能返回值为布尔类型,需要带入的参数为设备序号(在添加设备时系统会自动生成)、Modbus站号以及寄存器地址。

该技巧篇章为长期续更文章,后续将结合更多朋友的疑问而作持续更新用以解答。

***********************************************************************************************************************************************

ApolloStudio最新版下载地址(网盘有交流群号):

(点击跳转至首页文章,见文章最底部下载链接)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值