一种基于PLC程序自动生成工业设备HMI界面的系统和方法

文档序号:37422953发布日期:2024-03-25 19:10阅读:10来源:国知局
一种基于PLC程序自动生成工业设备HMI界面的系统和方法

本发明涉及到工业自动化领域,尤其涉及到一种基于plc程序自动生成工业设备hmi界面的系统和方法。


背景技术:

1、在工业自动化领域,plc(programmable logic controller)是一种用于实现自动控制的数字计算机设备,通常用于控制机器或工厂生产线。为了更好地控制和监视plc所控制设备的内部状况,通常需要为plc程序配置相应的hmi(human machine interface)界面。

2、传统的hmi界面开发方法是工程师手动为plc程序编写对应的界面。详细地,为plc编写hmi界面需要手工按照以下流程进行:拖拉(组态)创建控件、将控件绑定到plc程序的指定变量上、编写页面读写数据脚本;手动编写hmi程序是一个复杂且耗时的过程,尤其当变量、页面增多时,开发者需要重复地去拖动控件排列控件布局,并进行变量绑定操作。开发过程中存在着大量的重复劳作,绑定变量时容易出现误操作,且当plc程序变量地址变动时,hmi程序也需要进行相应地变动。总的来说,手动编写hmi程序是一个繁琐的过程,这个过程耗时耗力且不易维护,不利于工业生产的高效和自动化。

3、故,针对现有技术存在的技术缺陷,实有必要提出一种解决方案以解决现有技术存在的技术问题。


技术实现思路

1、为解决上述问题,本发明提出了一种基于plc程序自动生成工业设备hmi界面的系统和方法,能够自动解析plc程序,并根据程序中的变量历史值和代码逻辑生成对应的hmi界面,大大提高了界面开发的效率和自动化水平。

2、为了解决现有技术存在的问题,本发明的技术方案如下:

3、一种基于plc程序自动生成工业设备hmi界面的系统,包括:

4、源代码获取单元,用于获取plc设备运行程序的源代码;

5、运行数据采集单元,用于获取plc设备运行过程中的变量数据;

6、数据处理单元,用于对获取的静态源代码和动态的变量数据进行数据处理得到变量基本信息并确定最佳匹配的控件类型;

7、hmi代码生成单元,用于根据变量基本信息和控件类型信息,生成hmi代码进而生成hmi界面。

8、作为进一步的改进方案,运行数据采集单元为外部监控脚本,该脚本周期性采集plc程序运行期间的变量值,并将其存储在数据库或文件中。

9、作为进一步的改进方案,数据处理单元根据采集的变量历史值和plc程序源码,分析并确定变量对应的控件类型;其中,数据处理单元中执行聚类算法,根据静态plc程序源代码及动态变量历史值得到变量特征以及进行聚类,输出变量控件类型和控件初始化参数。

10、作为进一步的改进方案,hmi代码生成单元中,根据变量特征到控件类型的映射以及预定义的控件模板库,生成控件并填充控件属性,将其数据源绑定到plc变量地址上,同时自动生成页面逻辑处理和控件布局xml文件。

11、作为进一步的改进方案,数据处理单元中执行聚类算法,将具有相似特征的变量划分为同一类别,并分配统一的控件类型;分类特征包括变量类型、变量历史值情况、语法结构、语句逻辑上下文和程序注释,各特征权重能够根据实际应用和需求进行调整,以确保最佳的控件类型匹配。

12、本发明还公开了一种基于plc程序自动生成工业设备hmi界面的方法,包括以下步骤:

13、步骤s1:获取plc设备运行程序的源代码以及获取plc设备运行过程中的变量数据;

14、步骤s2:根据步骤s1中采集的变量历史值和plc程序源码,对数据进行处理并确定变量对应的控件类型;

15、步骤s3:基于步骤s2的结果,结合预设模板进行自动代码生成,得到hmi控件和页面布局代码,并编译生成hmi可执行操作程序。

16、作为进一步的改进方案,步骤s1中,启动监控脚本对plc设备中运行的plc程序进行周期采集变量数据形成数据集d:

17、d={d1,d2,…,di}

18、其中,di为第i次采集周期内的所有变量值的集合;并将数据格式化为json或xml文本格式以方便处理和分析。

19、作为进一步的改进方案,步骤s2中,基于plc程序源代码执行静态代码分析,提取各变量基本信息,其中,定义静态分析函数as=sc→a,对于每个变量v∈sc,静态分析提取其属性av,包括数据类型、作用域范围和程序中的上下文信息:

20、av=(typev,scopev,contextv)

21、数据类型typev为变量的数据类型;

22、作用域范围scopev为变量的作用域范围,分为块级、函数级和全局级;

23、上下文信息contextv为变量在程序中的上下文,包括模块位置、嵌套层级和逻辑功能;

24、执行动态分析,利用从plc程序运行时采集的变量数据d,经过处理得到动态聚类特征,该特征描述了变量的行为模式,包括:

25、dv=(frequencyv,trendv,rangev,centerv,spreadv)

26、其中,频率特征frequencyv为:变量值变化的频率;

27、趋势特征trendv为:变量随时间的变化趋势;

28、趋势值集合rangev为:变量的变化范围;

29、聚类中心centerv为:在聚类分析中,变量数据分布的中心点;

30、分布范围spreadv为:变量数据在聚类中的分布范围或方差。

31、作为进一步的改进方案,步骤s2中,结合静态和动态特征dv和av,使用聚类算法c对变量进行分类,以确定变量合适的控件类型;

32、合并静态属性av和动态特征dv构造特征向量fv,其中,表示特征向量的链接操作:

33、

34、fv=(typev,scopev,contextv,frequencyv,trendv,rangev,centerv,spreadv)

35、聚类算法c依据特征向量fv提供对每个变量v进行聚类,以确定变量最合适的控件类型ti:

36、cv=cluster(fv)

37、聚类结果cv为一系列描述变量历史值分布的统计量,每个聚类中心或簇代表一组具有相似特征的变量,这些特征最适合于特定类型的控件,聚类中心或簇对应不同类型的控件。

38、作为进一步的改进方案,采用k均值聚类算法,获得变量控件类型的过程表示为迭代过程:

39、

40、其中k是聚类的数量,si是第i个聚类,μi是si的中心点;经过无监督学习的聚类算法处理,通过静态特征和动态特征划分得到多个类别ti,相同的类别将会被分配映射为同样的控件类型。

41、作为进一步的改进方案,步骤s1中,所述监控脚本可采用python或lua编写,运行于外部设备(如工控机),通过网络协议(如modbus、udp、opc等)与plc通信,周期性获取程序中所有变量实时值,以json、xml等文本格式存储到数据库中或文件中以便于后续分析使用。

42、作为进一步的改进方案,步骤s1中,所述变量实时值,即plc程序的运行过程中变量值结果,由监控脚本以预设的周期(远大于plc运行周期)与plc通信,通过plc所支持的通信协议采集。

43、作为进一步的改进方案,步骤s1中,plc程序是符合iec61131-3的文本语言(指令表、结构化文本)或者图形表格(梯形图、功能块、顺序功能流程图),plc程序是基于iec61131-3标准的五种编程语言(fbd(function block diagram),ld(ladder diagram),st(structured text),sfc(sequential function chart),il(instruction list))。图形表格经过解析和标记处理,以转换为等价的xml文本表示。

44、作为进一步的改进方案,步骤s2中,所述变量分析模型,输入是静态plc程序源代码及动态的变量历史值,输出是变量控件类型和控件初始化参数,模型算法主要包括但不限于k均值、层次聚类、均值漂移等聚类算法。

45、作为进一步的改进方案,步骤s2中,所述模型算法根据变量特征进行聚类,将具有相似特征的变量划分为同一类别,并分配统一的控件类型;分类特征包括但不限于变量类型、变量历史值情况、语法结构、语句逻辑上下文和程序注释,各特征权重可根据实际应用和需求进行调整,以确保最佳的控件类型匹配。

46、作为进一步的改进方案,步骤s3中,所述自动代码生成涉及到:系统根据预定义控件模板库生成hmi程序源代码;主要包括控件参数、数据同步逻辑和ui组件布局,填充控件属性并与绑定到变量地址。

47、作为进一步的改进方案,步骤s3中,所述人工核查涉及写操作,即人工评审数据同步代码中与写操作相关的控件变量地址、变量类型,确保对plc的写操作逻辑符合预期。

48、与现有技术相比,本发明的有益效果为:

49、1.实现了plc程序的解析和理解,自动分析得到变量对应的控件类型。从五种plc程序的静态源代码层面和动态运行时变量的真实值出发,通过聚类算法进行变量进行分析,从而得到变量对应合适的控件;

50、2.自动生成和控件绑定的变量,避免了地址绑定错误的情况,能有效地减少人工干预,提高hmi程序开发的准确性;

51、3.引入了自动代码生成,针对控件代码自动生成hmi程序,能作为半自动hmi程序开发方法,结合手工校正快速完成hmi程序的开发,极大地提高了开发效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1