winform实时更新界面_变频恒流稳压微弧氧化电源的人机界面设计

本文主要是介绍winform实时更新界面_变频恒流稳压微弧氧化电源的人机界面设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于DSP2407A和MCGS触摸屏,设计了变频恒流稳压微弧氧化电源人机界面。通过设计串口通信规约及开发MCGS驱动程序和DSP解析程序,实现了人机界面对微弧氧化电源的数据采集及监控。该人机界面实现了数据存储和导出,为分析微弧氧化过程及优化工艺奠定了基础。

1 引言

微弧氧化(MAO)技术是一种金属表面处理技术,经过微弧氧化处理后提高了金属的耐磨性和耐腐蚀性,在国防装备、航天、机械、汽车、船舶等领域得到了应用。微弧氧化是将铝合金置于强电场环境的溶液中,器件表面因受到电压作用而发生微弧放电,产生高压高温使微区的铝原子与溶液中的氧结合生成一层以氧化铝为主要成分的陶瓷层。

微弧氧化作为一种等离子体电化学技术受到电流密度、电压、频率、占空比及氧化时间等能量参数的影响,故在微弧氧化过程中实时记录能量参数的变化对研究微弧氧化工艺有重要作用。本设计基于MCGS及控制微弧氧化的DSP2407A设计人机交互界面,实现了对微弧氧化过程中的电参数的实时记录及监视,并支持数据导出为分析微弧氧化过程及优化工艺奠定了基础。

本文主要有四部分组成,第一部分分析了人机界面在整个系统中的位置和作用;第二部分定义了通信帧结构和开发驱动;第三部分设计DSP通信帧解析程序;第四部分分析了微弧氧化过程中电参数变化过程。

2 电源特征

根据MAO的工艺要求,电源能输出高电压大电流且频率、占空比都可调节,输出波形如图1所示。

3a939e50bdc516c3fa43f55d1398f77d.png

图1 电压波形示意图

电源参数:正向电压0~600V可调,额定电流300A,脉冲个数1~32767个可调;负向电压0~100V,额定电流150A,脉冲个数1~32767个可调;占空比5%~100%可调。脉冲频率最高可达7.3KHZ。此外根据MAO过程正负电源可以分别选择在自动模式下运行,即开始阶段为恒流输出,当膜层长厚击穿电压达到限压值后为恒压输出,整个电源系统结构如图2所示。

77368bcfb717cf1ae5edcb3bbcca619f.png

图2 MAO系统结构示意图

整个系统大致可以分为主电路,DSP控制模块,人机界面等三个模块。系统开始运行时DSP的各个功能单元都是停止的,操作员在人机界面上设定好整个系统的参数后,MCGS通过串口通信协议将设置的参数值传递到DSP模块,DSP根据串口通信的命令帧中的命令将参数传递到各个控制模块,当参数设定后MCGS人机界面就可以发送启动系统的命令帧,DSP模块就根据先前的设定启动各个功能单元。

在系统的运行过程中MCGS不停的发送采集命令帧将DSP的模拟量AD转换结果和DA通道的输出值传送到MCGS中,MCGS通过各个组件把采集来的数据以波形或数值的形式显示在界面上,并根据条件进行数据存储;当微弧氧化过程结束后,可以通过人机界面的数据导出功能将微弧氧化过程中的数据导出进行更为深入的分析。

3 通信结构

3.1人机界面需求

根据系统的工作过程可知:(1)人机界面需要设置DSP功能模块的参数;(2)人机界面需要实时采集DSP的模拟量输入和输出;(3)人机界面需要发送特殊的命令来驱动DSP的功能模块。为方便理解在 DSP中参与通信的数据都以数组的方式进行存储,根据MCGS的通信需求,在DSP中分别建立模拟量采样数组ADData[]含16个元素,模拟量输出数组DAdata[]含4个元素,数据交换数组DataE[]含16个元素。

3.2 通信帧

为实现MCGS和DSP控制模块之间的通信,本文设计了一种通信帧结构如图3所示。

927a1cf481d3f7d48ebe9c79cae7b842.png

图3 通信帧结构

整个通信帧共有8个字节组成:

  • 首字节是起始码,用来标注通信帧命令的开始。
  • 第二字节为地址码,用来标注本通信帧要到达的设备的地址,地址值为0~255。
  • 第三字节为命令码,用来标注此通信帧的主要功能,命令码的取值区间为0~255,共可以容纳256个通信命令,在本设计中用到的命令码主要有:AD采集:0xAD;DA采集:0xDA;数据交换命令:0xDD;停止命令:0x00;启动命令:0x11;参数写入命令:0x22。
  • 第四字节为操作域,用来标注命令码操作的数据域,如果要采集AD采样结果的第二通道的值,那么命令码为:0xAD,操作域为0x01,解析程序就会把第二个AD采样通道的值填入返回帧中。
  • 第五字节是数据高8位,主要用于携带DSP存储单元中的高8位数据,在DSP中数据以16位为一个存储单元,而串口通信则以8位为一个单元,所以要传输一个DSP数据存储单元的值就得分为高8位和低8位。对于一些并不携带通信数据的命令,如启动命令:0x11,只要在DSP的通信帧解析中加以屏蔽即可,为了通信帧的统一性还是要保留数据位的通信。
  • 第六字节为数据位低8位,主要用于携带DSP存储单元中的低8位数据。
  • 第七字节为数据结束位,这是为多数据通信预留,以便实现用一帧传送多数据。
  • 第八字节为帧停止位,用来标注通信帧的结束。

4 驱动开发

在DSP的应用中为了实现对象控制往往需要一个人机界面,通常采用的方法是MCU+DSP,即用一个MCU做人机界面,用DSP做控制。这种方法虽然可以解决简单的人机界面问题,如键盘输入、LCD显示输出等,但很难实现变量变化趋势监控,而且开发难度大、风险大、难以实现大量数据存储查询等复杂功能。

北京昆仑通态公司推出的mcgsTpc系列嵌入式HMI(人机界面)产品广泛的应用于工控领域,性能稳定,提供了完整的开发平台,用户可以根据需要自行开发硬件的驱动程序,实现组态;而基于DSP设计变频恒流稳压微弧氧化电源控制器并非通用设备,MCGS并没有提供相应的设备驱动。

基于图3的通信帧结构,本文开发了变频恒流稳压微弧氧化电源控制器的MCGS驱动,将DSP和MCGS连接起来。MCGS上的驱动与DSP通信结构如图4所示。

9d051eb8250fa12cdc3917b28b13e326.png

图4 通信框架结构

MCGS上的驱动主要通过三种方式发送命令帧与DSP进行通信:

第一种周期采集,即周期的收发通信帧,主要是对AD、DA结果进行采集,如图4所示,驱动给出了与上层应用的接口:AD、DA通道。

第二种命令驱动,驱动给出设备命令函数,上层应用只要调用相应的函数就可以收发通信帧。设备命令有:Stop(发送停止命令)、ConGo(发送启动命令)、RDSP(CHL AS INTEGER,Fd AS INTEGER)(读通道值)、WDSP(发送数据更新命令)等。

第三种方式是数据改变时触发通信,收发通信帧。在上层的应用中,如果与数据交换通道相连的变量的值发生改变时,就会触发一次通信,完成通信帧的收发以实现数据交换。在MCGS开发环境中加载此驱动后就可以从设备驱动窗口看到驱动与上层交互界面的接口如图5所示。

403ec54521bb2b38da59add40aa12e57.png

图5 设备驱动界面

图5中对应数据对象栏是指窗口应用中的变量,通道类型为驱动通过的接口。

5 DSP通信解析

5.1DSP通信帧收发机制

从图4中可知,DSP需要对通信帧进行接收、解析、发送等三个操作才能实现与MCGS之间的通信。DSP通信帧收发流程如图6所示。

59dc5c68794adf631f378fad4da0b98d.png

图6 DSP通信帧收发流程

为了提高通信的效率,通信帧的接收和发送都是以中断的方式进行处理。在DSP中建立一个通信帧数组TMPCMD[]和接受完成标志Flag,当通信帧接收完成后SCI的接收中断服务程序就使Flag置1,主程序知道Flag置1后就会对接收的通信帧数组TMPCMD[]进行解析,解读其中内容进行相应的动作并且更新发送帧数组TMPCMDS[],更新完成后启动返回帧的发送Flag置0,SFlag置1,返回帧的实体就是TMPCMDS[]数组,返回帧发送完后SFlag置0。

5.2通信帧解析

解析就是对命令帧中的内容所具有的意义进行理解,并调用相应的函数完成通信帧中所赋予的意义。解析流程图如图7所示。

da5a3f74eaf3073fe2c7c7006b61736e.png

图7 通信帧解析流程

当通信帧接收完成后,接收中断就会对Flag置1,这时主程序就对通信帧进行解析,解析的第一步将通信帧中的命令码,操作域,携带数分别放入结构体TmpCmdMAP中的Code域,Field域,和Data域中。

第二步对Code域进行分析即图7中的判断块,其中的0x$$是指命令码的值。从3.2可知本文一共定义了AD采集:0xAD;DA采集:0xDA;数据交换命令:0xDD;停止命令:0x00;启动命令:0x11;参数写入命令:0x22等6个命令。

对于AD、DA命令码,解析程序会根据TmpCmdMAP中的Field域将相应的AD采样结果和DA输出结果更新到返回帧中相应的位置上,在返回帧中命令码保持与发送帧中的一致.

对于数据交换命令:0xDD解析程序会将接收帧中的数据携带值还原成16位格式,更新到TmpCmdMAP中的Data域中,并将该值更新到数据区数组DataE[TmpCmdMAP. Field]中。再将更新后的DataE[TmpCmdMAP. Field]值更新到返回帧数组中;对于停止命令:0x00解析程序会调用PWMStop()函数停止波形输出,及自动控制的所有功能,返回帧数据域、命令域均填0x00。

对于启动命令:0x11则调用PWMStart()函数启动波形输出,及自动控制的所有功能,返回帧数据域、命令域均填0X11;对于参数写入命令:0x22解析程序调用PWMStop()函数停止波形输出,再调用Refresh()函数,刷新控制模块的数据,主要是将人机界面设定值更新到各功能单元,返回帧数据域、命令域均填0X22。

6 人机界面窗口结构

开发好MCGS驱动和DSP通信解析程序后就可以进行人机交互窗口的设计,人机交互窗口如图8所示。

1ad8414080c45c2facdad0228590d8c7.png

图8 人机交互窗口结构

主要有封面、波形调整等10个窗口组成,在上层窗口中只用点击相应子窗口名的按钮就可以进入下一层窗口,在子窗口中只用单击就可以返回上一层窗口。

封面主要显示系统运行时间和各个子窗口的入口的按钮。

波形调整界面主要作用是设置波形参数,恒流稳压参数以及启动和停止DSP波形输出和PID系统。

PID设定窗口主要是用来调试PID,与波形调整界面中的调整不同,这个界面中还可以以Q15格式调整PID的Kp、Ki、Kd等参数。

时间设定界面主要是用来修正触摸屏的时间参数,设定系统运行时间以及系统进入稳压PID后的运行时间,时间控制值设定后起效。

历史波形参数查询界面主要用来查看以往的波形参数,并可以调用子窗口进行记录输出。

报警监视窗口主要用来监视系统的报警信息,主要是温度报警和通信报警。

模拟量监控窗口主要是对系统的电流、电压进行监控,以及输出模拟量记录以进行工艺分析。

6 实验结果

系统开发完成后用两个铝合金器件进行了实验,记录的电参数如图9所示,其中上图为电流变化记录,下图为电压变化记录。

6bd0d1b13d6717a4d21c7d82dec846a8.png

图9 电参数变化关系

主要电参数:正向脉冲个数为15个,反向脉冲个数为5个,占空比为50%;恒流参数为正向电流3A,反向电流1A,正向稳压值为500V;反向稳压值为80V。

从图9中可以看出0—1200S时只有正向电流,正向电压,主要作用是在铝合金表面生成普通的氧化铝薄膜为微弧氧化做铺垫,1200S以后正向电流电压,反向电流电压都出现上升过程,这是电流PID的作用,然而随着微弧氧化的进行,陶瓷层氧化膜不断增厚,电流不断减小,电压在恒流PID作用下就达到了限压值,系统转入稳压PID程序。

电压进入稳压PID程序后大概到2500S处电压都是稳定不变的。进入恒压PID后,从图9中可以看到正向电流和反向电流都开始不断的减小。

在3500S处反向电流几乎等于0A。根据以往经验当反向电流接近0A后,继续微弧氧化就会增大样品表面的粗糙度。将反向电参数的控制方式改为手动,提高反向电压,从图9的电压图中可以看到,反向电压有一个向下的小口,是由于跳到手动挡后反向电压为0V造成的。反向电压手动升高后,正向电压依然是稳压PID,正向的电流和反向的电流都有所增大。

大约在8000S处正向电流在稳压PID作用下达到0.8A左右,为了延长微弧氧化时间采取与反向同样的方法,改为手动模式,所以就看到了正向电压向下的那条线。从正向电压的向下线后,可以看出电压只用向上调很小的范围电流就发生了很大的变化。第一个器件的微弧氧化在17000S左右因反向电流为0A而结束。第二个器件的微弧氧化过程与第一个基本相同。

7 结论

本人机界面的设计实现了:(1)提供友好的人机交互接口;(2)实时的记录了微弧氧化过程中的电参数,实现了对微弧氧化过程的监视;(3)成功的开发了一种适用于对DSP模拟量和数字量进行监控的通信协议。

(编自《电气技术》,作者为张正良、张东宁 等。)

这篇关于winform实时更新界面_变频恒流稳压微弧氧化电源的人机界面设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/733798

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

poj3468(线段树成段更新模板题)

题意:包括两个操作:1、将[a.b]上的数字加上v;2、查询区间[a,b]上的和 下面的介绍是下解题思路: 首先介绍  lazy-tag思想:用一个变量记录每一个线段树节点的变化值,当这部分线段的一致性被破坏我们就将这个变化值传递给子区间,大大增加了线段树的效率。 比如现在需要对[a,b]区间值进行加c操作,那么就从根节点[1,n]开始调用update函数进行操作,如果刚好执行到一个子节点,

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in

hdu1689(线段树成段更新)

两种操作:1、set区间[a,b]上数字为v;2、查询[ 1 , n ]上的sum 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdl

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

hdu 1754 I Hate It(线段树,单点更新,区间最值)

题意是求一个线段中的最大数。 线段树的模板题,试用了一下交大的模板。效率有点略低。 代码: #include <stdio.h>#include <string.h>#define TREE_SIZE (1 << (20))//const int TREE_SIZE = 200000 + 10;int max(int a, int b){return a > b ? a :

AI行业应用(不定期更新)

ChatPDF 可以让你上传一个 PDF 文件,然后针对这个 PDF 进行小结和提问。你可以把各种各样你要研究的分析报告交给它,快速获取到想要知道的信息。https://www.chatpdf.com/

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

GIS图形库更新2024.8.4-9.9

更多精彩内容请访问 dt.sim3d.cn ,关注公众号【sky的数孪技术】,技术交流、源码下载请添加微信:digital_twin123 Cesium 本期发布了1.121 版本。重大新闻,Cesium被Bentley收购。 ✨ 功能和改进 默认启用 MSAA,采样 4 次。若要关闭 MSAA,则可以设置scene.msaaSamples = 1。但是通过比较,发现并没有多大改善。

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.