昆仑通态屏幕制作(连载3)---基础篇(按钮串口发送)
写在开始
经历了两天的努力,终于对这款嵌入式屏幕有了新的认识。下面做下类比:
单片机或者ARM:
(1)main函数开始,进行INIT初始化;
(2)while(1)循环;
(3)外部或内部中断。
以上三点是咱们熟悉的硬件常规编程
而昆仑通态屏幕脚本编程:
(1)初始化脚本;---对应INIT初始化
(2)采集脚本;---对应while(1)循环
(3)单通道写脚本;---对应中断
(4)退出脚本。
结论:这两种编程是一一对应的,只是昆仑通态屏幕脚本编程的时候多了一个退出脚本。也就是退出屏幕时执行的程序。
初始化和while(1)循环这两个没什么区别,单通道脚本里相当于中断,而通道值的变化就是触发单通道脚本执行的中断。这点下面会详细叙述。
第一节:回顾
上文中https://blog.csdn.net/weixin_45426095/article/details/119410084,《昆仑通态屏幕制作(连载2)------基础篇(初试篇)》详细介绍了怎么写脚本,怎么配置脚本和屏幕的链接,怎么制作屏幕,怎么调试,怎么验证。还不清楚的小伙伴可以移步上述链接。
现在打开窗口必须有三个:
(1)组态软件,也就是屏幕,随时拉模块,随时改变显示。
(2)脚本软件,随时修改脚本文件,然后连接到组态软件中。
(3)串口助手,方便调试。
注:利用虚拟串口软件,虚拟出成对的串口,组态软件连接到一个串口,串口助手连接到另一个串口,就可以不用硬件连接,直接通过虚拟的串口达到串口调试的目的。
昨天制作了取数、显示和串口发送的例程,今天加入新的东西:按钮发送数据,滑块输入其他显示,加减输入显示,串口数据显示。
第二节:按钮发送
1. 编写脚本
(1)加入通道:第一个按钮,设备通道直接数数,第三个。
(2)编写脚本:在单通道写脚本里。
DIM ButtonChannel as INTEGER
首先定义一个通道号,目的:取哪个通道变化了,也就是哪个设备通道有中断。
ButtonChannel = !GetCurrentChannelNum()
执行上述程序,可以得到哪个设备通道里面的值变了。
IF ButtonChannel = 3 THEN !Sleep(1000)nSendByteArr[1] = &H5B nSendByteArr[2] = &HB5 nSendByteArr[3] = &HFFnSendByteArr[4] = !BitRShift(gnGetData1, 8)nSendByteArr[5] = gnGetData1nSendByteArr[6] = !SvrByteArraySum(nSendByteArr,3,3)'和校验 !DevClearBuff() '清缓冲 !DevWriteAndReadByteArr(nSendByteArr,6,nRecvByteArr,6,通讯延时)ENDIF
因为第一个按钮是第三个通道,也就是第三个数,所以以下按行解释代码
如果按钮被按下,==3时,执行以下程序;
缓冲1000ms,这个是系统时间,不占空中断时间,所以可以放心的延时,对整个中断程序和while(1)的程序执行都无影响。
填充发送的buffer 6个数,
清缓存,发送6个数据,接收6个数据;
(3)保存。
2. 加载脚本和屏幕链接驱动
(1)打开昨天建立的文件:
(2)点击设备窗口:双击设备窗口,弹出对话框:因为脚本文件已经被改写,所以出现驱动已在外部被修改,
双击驱动:更新设备,在通道连接选项中,添加对应数据对象。这样脚本里的参数就可以被屏幕界面中的模块识别了。
(3)保存,退出,打开用户窗口。
3. 屏幕界面设置
(1)放置按钮模块,这个不会的话,在前面的教程里有详细介绍。
(2)修改参数:双击按钮,打开对话框,在操作属性中:
数值对象中,选择取反,问号里面选择第一个按钮。
注:这里必须点击取反,因为每次按键都要执行中断脚本程序,也就是单通道写脚本。选择其他的就只执行一次,或者执行多次。
(3)保存。
4. 验证
工具,下载配置,工程下载,启动运行:
(1)初始结果:昨天的发送程序,1s执行一次,报文正确。
(2)取数框中修改数据:显示框中跟随变化,串口显示变为0A,报文正确。
(3)点击按钮后,报文正确。
第三节:总结
(1)总的来说,编程思想和以前是一样的,但是编程内容接近于嵌入式,或许这个就是为啥叫嵌入式屏幕了吧。
(2)当编写好第一例程之后,下面的东西就是比葫芦画瓢了,一个一个的添加,然后去验证。从脑力劳动变成了体力劳动。
(3)屏幕入门有一定的门槛,特别是没有嵌入式ARM单片机等面向逻辑编写基础的小伙伴,应该有一定的困难。如果是面向对象编程的小伙伴,可以看看前面的文章,有介绍面向逻辑和面向对象编程的区别。之后就是有面向逻辑编写基础的小伙伴,如果没有一定的例程也非常难搞,要是有例程了,可以在此基础上改动,这个时候就比较容易了。
第四节:展望
现在先写一个按钮的程序,之后的教程会相继发出,毕竟编程序需要一定的时间,写文章也需要一定的时间,同时上班期间还有其他的工作需要干,请耐心等待,谢谢了!有需要讨论的小伙伴可以添加微信,大家一起进步:
昆仑通态屏幕制作(连载3)---基础篇(按钮串口发送)相关推荐
- 昆仑通态屏幕制作(连载2)---基础篇(设定与显示,串口发送)
写在之前 第一次经历过一个软件不会用的懵逼状态后,慢慢静下心来,好好的看看这个屏幕到底怎么弄,经历过多方帮助,终于慢慢的领悟到了昆仑通态屏幕怎么制作,下面分享给需要用到的小伙伴. 语言 还是那句话,自 ...
- 昆仑通态屏幕制作(连载4)---基础篇(图形设定与显示,按钮灯)
写在前面 经过三次的连载,差不多屏幕的基本套路已经清楚的展现的面前,当然这仅仅是基础的用法,后面应该还有很多高级的用法,至于工程里面需要多少东西,差不多现在都已经可以涵盖了. (1)参数设定,这个取数 ...
- 空压机数据采集系统,使用昆仑通态触摸屏制作,具备完善的数据采集和历史记录保存功能
空压机数据采集系统,使用昆仑通态触摸屏制作,具备完善的数据采集和历史记录保存功能,异常信息记录,系统运行稳定可靠,程序 ID:66500617212287592猫猫工控
- 昆仑通态复制的程序可以用吗_免费!最全MCGS昆仑通态视频合集!
加微信号"15021230050",邀请您加入"信控电气"微信群. 点击文章最下方"阅读原文",加入超级工控技术群. 招聘初级电气工程师(提 ...
- 基于NModbus4的C#上位机连接与读写(使用屏幕为昆仑通态)
文章目标: 1.与昆仑通态触摸屏完成TCP连接 2.读写0区.3区.4区寄存 NModbus4使用手册 https://wenku.baidu.com/view/1d50bd321ed9ad51f01 ...
- 昆仑通态通用版找不到驱动_2021深圳新安西门子伺服驱动电机回收合作共赢
2021深圳新安西门子伺服驱动电机回收合作共赢 一个企业,应尽量做到PLC的机型统主要考虑到以下三方面问题:机型统其模块可互为备用,便于备品备件的采购和管理.机型统其功能和使用方法类似,有利于技术力量 ...
- 昆仑通态复制的程序可以用吗_MCGS昆仑通态触摸屏
前面我有说过,我最喜欢用的触摸屏还是昆仑通态的触摸屏,因为我总是觉得它做的非常容易操作和简便,而且他的内部函数调用也非常方便,样例很清楚,但是由于公司的产品原因,而且昆仑通态触摸屏没有CE认证,所以我 ...
- android实现模拟自动点击_昆仑通态专题(十三):模拟实现全自动洗衣机系统的设计(案例)...
点击上方蓝色字体,关注我们 01目的 学习使用MCGS嵌入版组态软件设计实现对全自动洗衣机系统的模拟控制.用触摸屏来控制西门子S7-200的PLC模拟工作.实训特点:使用触摸屏进行输入和 显示输出, ...
- 昆仑通态复制的程序可以用吗_昆仑通态专题(七):MCGS组态软件的设备窗口...
点击上方蓝色字体,关注我们 设备窗口是MCGS嵌入版组态软件系统的重要组成部分,在设备窗口中建立系统与外部硬件设备的连接关系,使系统能够从外部设备读取数据并控制外部设备的工作状态,实现对工业过程设备的 ...
最新文章
- Android布局优化之include、merge、ViewStub
- 策略模式 是一种好策略 -07
- python中pep8规范_Python PEP8规范
- deian 授权用户 sudo权限
- Lucene 概念,定义应用场景
- coreseek实时索引更新之增量索引
- caffe之代码学习
- STL中间set具体用法!!!!
- Sphinx 2.2.3 安装和配置,英文数字中文搜索
- 麦子学院与阿里云战略合作 在线教育领军者技术实力被认可
- android9 三星 港版,三星S9+官方港版安卓9固件系统线刷包:TGY-G9650ZHU4CSE7
- Mobile移动5G通信技术详解
- 三八定律时间管理思想
- 2021.5.10-2021.5.16周报
- 错误页面不暴漏,显示到一个漂亮页面
- 数据猿专访网智天元莫倩:人工智能不仅是泡沫,而且会越来越大
- 关闭upupoo悬浮窗口
- Win10 Windows Defender添加信任文件的方法
- 卷积神经网络(CNN)经典模型分析(一)
- python 的 do ~ while 语法