掌桥专利:专业的专利平台
掌桥专利
首页

一种日立PLC系统下产线HMI画面回放的方法及系统

文献发布时间:2023-06-19 19:30:30


一种日立PLC系统下产线HMI画面回放的方法及系统

技术领域

本发明涉及自动化产线控制技术领域,特别涉及一种日立PLC系统下产线HMI画面回放的方法及系统。

背景技术

见图1,某钢厂采用的是日立PLC系统和原来的HIM画面,自动化产线客户端HMI计算机设置有原来的HMI画面,原来的HMI画面只能显示实时生产数据,没有回放历史数据的功能。原来的HMI画面通过调用原来的动态链接库,实现读取日立PLC系统硬件地址中实时数据的功能,当出现设备故障造成设备停机、操作不当引起操作事故、监护不到位产生质量问题时,通常的调查手段是通过原来的HMI画面提供关键数据的历史曲线查询或者历史操作记录进行分析或者操作报警信息的日志查询,生产管理人员无法捕捉设备运行全过程。

发明内容

为克服现有技术的不足,本发明的目的是提供一种日立PLC系统下产线HMI画面回放的方法及系统,修改后的HMI画面调用编制的动态链接库文件,读取编制的播放器放入计算机共享内存中的数据,代替原来的HMI画面通过调用原来的动态链接库读取PLC系统硬件地址中的实时数据,实现回放历史数据的功能。

为实现上述目的,本发明通过以下技术方案实现:

一种日立PLC系统下产线HMI画面回放的方法,修改后的HMI画面调用编制的动态链接库humoffline.dll文件并读取由编制的播放器存入计算机共享文件中的数据,通过原来的HMI画面实现回放产线上历史数据,为产线提供直观的历史画面展示,具体方法如下:

①编制的播放器读取已经保存的历史数据库,将某一历史时间节点的数据读取出来,存放在计算机共享内存中,通过编制的播放器上设置有的手动跳转或定时器切换不同时间节点的历史数据;

②编制的动态链接库humoffline.dll文件包括rmemry_winBit_offline方法和rmemry_win_offline方法,rmemry_winBit_offline方法和rmemry_win_offline方法分别用来替换原来的HMI画面使用的动态链接库humdll.dll中的rmemry_winBit方法和rmemry_win方法,rmemry_winBit_offline方法和rmemry_win_offline方法中传入的参数数量、参数顺序、参数类型、返回值与被替换的rmemry_winBit方法和rmemry_win方法保持一致;

③修改后的HMI画面需要在原来的HMI画面源代码基础上,添加对动态链接库humoffline.dll文件的引用,批量替换原来的HMI源代码中的字符串,将原来的“rmemry_winBit”替换成“rmemry_winBit_offline”,将原来的“rmemry_winBit”替换成“rmemry_winBit_offline”,注释掉可以操作现场设备的源代码,重新编译源代码生产新的HMI画面程序。

rmemry_winBit_offline方法用以读取计算机共享内存中数字型数据,rmemry_win_offline方法用以读取计算机共享内存中数值型数据。

编制的播放器读取已经保存的历史数据库文件并存放计算机共享内存中,具体包括以下步骤:

S1、打开历史数据库文件;

S2、打开计算机共享内存文件;

S3、建立映射关系;

S4、读取历史数据库中一条数据;

S5、将数据写入计算机共享内存中;

S6、通过定时器每隔一段时间读取历史数据库中下一条数据,重复S4、S5过程,实现修改后的HMI画面的顺序播放;

S7、停止定时器,没有新的数据写入计算机共享内存,实现画面的暂停功能;

S8、缩短定时器的时间间隔,实现快速播放;

S9、增加定时器的时间间隔,实现慢速播放;

S10、反向读取历史数据库中的数据,实现倒放功能;

S11、跳转历史数据库的记录指针,实现快速跳转时间进度的功能;

S12、收藏历史数据库记录指针值,实现某一时间点的收藏和快速切换。

方法rmemry_winBit_offline,具体包括以下步骤:

S1、打开计算机共享内存文件;

S2、建立映射关系;

S3、读取计算机共享内存中当前存放的数据;

S4、根据调用rmemry_winBit_offline时传入的参数中的地址计算偏移量;

S5、从偏移量+1个地址开始,在计算机共享内存读出的数据中拷贝4位16进制字符;

S6、将4位16进制字符转换为10进制返回。

方法rmemry_win_offline,具体包括以下步骤:

S1、打开计算机共享内存文件;

S2、建立映射关系;

S3、读取计算机共享内存中当前存放的数据;

S4、根据调用rmemry_win_offline时传入的参数中的地址计算偏移量;

S5、从偏移量+1个地址开始,在计算机共享内存读出的数据中拷贝4位16进制字符;

S6、将4位16进制字符转换为16位2进制,根据调用rmemry_win_offline时传入的“位”参数中的位数据取出相应的0或1返回。

修改后的HMI画面源代码,具体包括以下步骤:

S1、在原来的HMI画面源代码文件中需要增加对humoffline.dll文件的引用及方法的声明;

S2、在原来的HMI画面源代码文件中需要将所有引用rmemry_win方法的代码批量替换成rmemry_win_offline方法,就是采用批量文本替换的方法,将所有“rmemry_win”字符串替换为“rmemry_win_offline”字符串即可完成,其余代码保持不变;

S3、在原来的HMI画面源代码文件中需要将所有引用rmemry_winBit方法的代码批量替换成rmemry_winBit_offline方法,采用批量文本替换的方法,将所有“rmemry_winBit”字符串替换为“rmemry_winBit_offline”字符串即可完成,其余代码保持不变。

S4、在原来的HMI画面源代码文件中涉及到可操作现场设备动作的代码全部注释掉;

S5、重新编译源代码生成的HMI画面程序即可实现回放功能;

S6、全部的原来的HMI画面都要进行S1-S5的步骤,将全部的原来的HMI画面都修改并重新编译生成新的HMI画面。

历史数据库文件保存在历史数据的数据库中,包括两个数据字段,分别为时间字段和该时间内的产线全部数据。

历史时间节点的数据为选取的时间节点或时间段获取历史研究的数据。

计算机共享内存中存放的是包含某一历史时间节点的全部生产数据拼接成的一段很长的字符串数据。

日立PLC系统下产线HMI画面回放系统,包括PLC系统、数据采集存储服务器、客户端HMI计算机,数据采集存储服务器通过端口与PLC系统连接,用于采集PLC系统的数据并保存历史数据库文件;

客户端HMI计算机通过端口与数据采集存储服务器连接,客户端HMI计算机设置有编制的播放器、修改后的HMI画面、编制的动态链接库、计算机共享内存,编制的播放器用于读取数据采集存储服务器的历史数据库文件并存放在计算机共享内存中,修改后的HMI画面用于调用编制的动态链接库文件并读取编制的播放器放入计算机共享内存中的数据。

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

1.修改后的HMI画面是对历史数据库中保存的历史数据的回放,实现随时查看、随时切换,数据占用计算机磁盘空间小,用更小的存储空间实现更长时间保存历史的画面回放;

2.编制的播放器读取已经保存的历史数据库文件并将保存的历史数据库文件存放在计算机共享内存中;

3.修改后的HMI画面调用编制的动态链接库文件并读取编制的播放器放入计算机共享内存中的数据,实现回放历史数据;

4.通过编制的播放器在修改后的HMI画面上实现正常速度播放、快进、快放、快退、倒放、收藏的功能。

附图说明

图1是本发明的HMI画面回放的系统构成示意图。

图2是实施例一的编制的播放器读取历史数据并将结果放入共享内存的流程图。

图3是实施例二的编制的动态链接库中读取共享内存中数值型数据方法rmemry_win_offline流程图。

图4是实施例三的编制的动态链接库中读取共享内存中数字型数据方法rmemry_winBit_offline流程图。

图5是实施例一的编制的播放器实例外观图。

图6是实施例四的回放画面时操作示意图图。

具体实施方式

下面结合说明书附图对本发明进行详细地描述,但是应该指出本发明的实施不限于以下的实施方式。

日立PLC系统为原来的HMI画面提供一段指定的地址段(4096个地址),用于为原来的HMI画面显示数据用的,4096个地址用于显示全部产线上的信息,每个地址保存一个十六进制数据,通过调用日立PLC系统提供的原来的动态链接库humdll.dll中的方法rmemry_win,循环顺序读取全部4096个地址的数据并将数据依次拼接为一个长字符串,这个长字符串作为一个历史时间节点的数据并存储至历史数据库中,由于一次循环全部读取4096个地址的数据耗时约1毫秒,因此可以将这一次循环读取到的全部数据视为一个历史时间节点的全部数据。

见图1,数据采集存储服务器所保存的历史数据库详见专利公布号CN 115032938A公开的“一种日立PLC系统下产线数据采集查看系统及使用方法”,编制的播放器读取已经保存的历史数据库,将某一历史时间节点的数据读取出来,存放在计算机共享内存中,共享内存中存放的是包含某一历史时间节点的全部生产数据拼接成的一段很长的字符串数据;历史数据保存在数据库中,数据库文件通过MDB的格式进行保存,不限于此文件格式保存;历史数据库包括两个数据字段,分别为时间字段和该时间节点的产线全部数据,数据结构详见专利公布号CN 115032938 A公开的“一种日立PLC系统下产线数据采集查看系统及使用方法”所保存的数据结构。

动态链接库是计算机技术名词,是Windows操作系统的基础技术,动态链接库通常不能直接运行,其中包含能被可执行程序来完成某项工作的函数,只有在其他模块调用动态链接库中的函数时,才能发挥作用。编制的动态链接库humoffline.dll文件包含rmemry_winBit_offline方法和rmemry_win_offline方法,rmemry_winBit_offline方法用以读取计算机共享内存中数字型数据,rmemry_win_offline方法用以读取计算机共享内存中数值型数据;rmemry_winBit_offline方法和rmemry_win_offline方法分别用来替换原来的HMI画面使用的动态链接库humdll.dll中的rmemry_winBit方法和rmemry_win方法,rmemry_winBit_offline方法和rmemry_win_offline方法中传入的参数数量、参数顺序、参数类型、返回值与被替换的rmemry_winBit方法和rmemry_win方法保持一致。替换rmemry_winBit方法和rmemry_win方法就是改变原来的HMI画面取数据的方式,从由PLC硬件取数据转变为从共享内存中取数据,而共享内存中的数据又是由编制的播放器读取历史数据存入的。

修改后的HMI画面,需要在原来的HMI画面的源代码的基础上,添加对动态链接库humoffline.dll的引用,批量替换原来的HMI画面的源代码中的字符串,将原来的“rmemry_winBit”替换成“rmemry_winBit_offline”,将原来的“rmemry_winBit”替换成“rmemry_winBit_offline”,注释掉可以操作现场设备的源代码,重新编译源代码生成新的HMI画面程序,原来的HMI画面的外观显示不变;同理将原来所有的HMI画面都修改并重新编译生成新的HMI画面。

日立PLC系统下产线HMI画面回放系统,包括PLC系统、数据采集存储服务器、客户端HMI工控机,数据采集存储服务器通过端口与PLC系统连接,用于采集PLC系统的数据并保存历史数据库文件;客户端HMI计算机通过端口与数据采集存储服务器连接,客户端HMI计算机设置有编制的播放器、修改后的HMI画面、编制的动态链接库、计算机共享内存,编制的播放器用于读取数据采集存储服务器的历史数据库文件并存放在计算机共享内存中,修改后的HMI画面用于调用编制的动态链接库文件并读取编制的播放器放入计算机共享内存中的数据。

以下实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。下述实施例中所用方法如无特别说明均为常规方法。

【实施例1】

见图2,见图5,编制的播放器读取历史数据库文件并存入共享内存,具体包括以下步骤:

S1.打开历史数据库文件;

S2.打开共享内存文件;

/>

S3.建立映射关系;

S4.读取历史数据库中一条数据;

self.ADOTable1.First;

S5.将数据写入共享内存中;

StrPCopy(pUserInfoShareMem.data,self.ADOTable1.FieldByName('数据').AsString);

S6.通过编制的播放器上设置的定时器,开发工具提供的控件Timer,每隔一段时间读取历史数据库中下一条数据,重复S4、S5过程;

self.ADOTable1.Next;//数据库指针转向下一条记录

StrPCopy(pUserInfoShareMem.data,self.ADOTable1.FieldByName('数据').AsString);

S7.停止定时器,没有新的数据写入共享内存,实现画面的暂停功能;

self.Timer1.Enabled:=false;

S8.缩短定时器的时间间隔,实现快速播放;

self.Timer1.Interval:=strtoint(edit1.Text);//给定时器间隔时间赋值,1000代表1秒,减小这个间隔,就可以实现快放;

S9.增加定时器的时间间隔,实现慢速播放;

self.Timer1.Interval:=strtoint(edit1.Text);//给定时器间隔时间赋值,1000代表1秒,增大这个间隔,就可以实现慢放;

S10.反向读取历史数据库中的数据,实现倒放功能;

self.ADOTable1.Prior;//数据库指针转向上一条记录

StrPCopy(pUserInfoShareMem.data,self.ADOTable1.FieldByName('数据').AsString);

S11.跳转历史数据库的记录指针,实现快速跳转时间进度的功能;

S12.收藏历史数据库记录指针值,实现某一时间点的收藏和快速切换。

【实施例2】

见图3,编制的动态链接库中读取共享内存中数值型数据方法rmemry_win_offline,具体包括以下步骤:

S1.打开共享内存文件;

S2.建立映射关系;

S3.读取共享内存中当前存放的数据;

S4.根据调用rmemry_winBit_offline时传入的地址计算偏移量,PLC硬件内存地址是连续的,用来存放HMI画面中显示的数据是从某一特定起始地址开始,这个地址不是0,而数据库文件中存放的数据是从0开始的,因此两者之间存在一个偏移量;

S5.从偏移量+1个地址开始从共享内存读出的数据中拷贝4个字符即4位16进制字符;

S6.将4位16进制字符转换位10进制返回。

/>

【实施例3】

见图4,编制的动态链接库中读取共享内存中数值型数据方法rmemry_winBit_offline,具体包括以下步骤:

S1.打开共享内存文件;

S2.读取共享内存中当前存放的数据;

S3.根据调用rmemry_win_offline时传入地址计算偏移量;

S4.从偏移量+1个地址开始从共享内存读出的数据中拷贝4个字符;

S5.将4位16进制字符转换为16位2进制,根据调用rmemry_win_offline时传入的“位”参数中的位数据取出相应的0或1返回;“位”参数即从0到15整型数字中表示的第几位数字;

【实施例4】

见图6,包括四幅修改后的HMI画面以及编制的播放器,不限于四副,可以任意切换所有的修改后的HMI画面,修改后的HMI画面所显示的数据在时间上保持一致。通过编制的播放器上的按钮来控制修改后的HMI画面的播放功能,任何一副可以实现回放功能的HMI画面都需要在原来代码的基础上,修改并重新编译生成新的可执行文件,原来的HMI画面主要调用rmemry_win方法和rmemry_winBit方法,rmemry_win方法用于读取数值型数据,某一个设备速度,比如轧机的运行速度,这是连续的数值类型数据;rmemry_winBit方法用于读取数字类型数据0或1,比如信号有无,接近开关有信号用1表示,无信号用0表示,表示0或1属于数字型数据。在修改后的HMI画面上显示的各类控件都是调用rmemry_win方法和rmemry_winBit方法来显示各类状态信息,rmemry_win方法和rmemry_winBit方法是在原来的动态链接库humdll.dll文件中定义和实现的。

动态链接库是计算机技术名词,是Windows操作系统的基础技术,动态链接库通常不能直接运行,其中包含能被可执行程序来完成某项工作的函数,只有在其他模块调用动态链接库中的函数时,才能发挥作用。编制的动态链接库humoffline.dll文件包含rmemry_winBit_offline方法和rmemry_win_offline方法,rmemry_winBit_offline方法用以读取计算机共享内存中数字型数据,rmemry_win_offline方法用以读取计算机共享内存中数值型数据;rmemry_winBit_offline方法和rmemry_win_offline方法分别用来替换原来的HMI画面使用的动态链接库humdll.dll中的rmemry_winBit方法和rmemry_win方法,rmemry_winBit_offline方法和rmemry_win_offline方法中传入的参数数量、参数顺序、参数类型、返回值与被替换的rmemry_winBit方法和rmemry_win方法保持一致。替换rmemry_winBit方法和rmemry_win方法就是改变原来的HMI画面取数据的方式,从由PLC硬件取数据转变为从共享内存中取数据,而共享内存中的数据又是由编制的播放器读取历史数据存入的。

修改后的HMI画面源代码,具体包括以下步骤:

S1.在原来的HMI画面源代码文件中需要新增对humoffline.dll文件的引用以及方法的声明;

//在HMI源代码中添加了对humoffline.dll中rmemry_winBit方法和rmemry_win方法的引用,添加引用后才可以在代码中使用rmemry_winBit方法和rmemry_win方法

Public Declare Function rmemry_win_offline Lib"humoffline.dll"_

(ByRefmadr As Integer,_

ByRefIOtypeAs Integer,_

ByRefIOadrAs Integer,_

ByRef word As Integer,_

ByValfmt As String,_

ByRefsystbl As Integer)As String

Public Declare Function rmemry_winBit_offline Lib"humoffline.dll"_

(ByRefmadr As Integer,_

ByRefIOtypeAs Integer,_

ByRefIOadrAs Integer,_

ByRef Bit As Integer,_

ByRefsystbl As Integer)As Integer

S2.在原来的HMI画面源代码文件中需要将所有引用rmemry_win方法的代码批量替换成rmemry_win_offline方法,就是用批量文本替换的方法,将所有“rmemry_win”字符串替换为“rmemry_win_offline”字符串即可完成,其余代码保持不变;

//HMI画面源代码中某一控件原来调用方法

StringTmp=

//需要修改的HMI画面源代码中这一控件现在调用方法

StringTmp=

S3.在原来的HMI画面源代码文件中需要将所有引用rmemry_winBit方法的代码批量替换成rmemry_winBit_offline方法;用批量文本替换的方法,将所有“rmemry_winBit”字符串替换为“rmemry_winBit_offline”字符串即可完成,其余代码保持不变;

//HMI画面源代码中某一控件原来调用方法

If

//需要修改的HMI画面源代码中这一控件现在调用方法

If

S4.在原来的HMI画面源代码文件中涉及到可操作现场设备动作的代码全部注释掉;

‘ControlEventMake()源代码中能够执行画面点击动作的关键语句注释掉,不影响程序展示,点击按钮不会发出指令,防止在观看回放时误操作设备;

S5.重新编译源代码生成的HMI画面程序就可以实现回放功能;

S6.全部的原来的HMI画面都要进行S1-S5的步骤,将全部原来的HMI画面都修改并重新编译生成新的HMI画面。

本发明通过修改后的HMI画面是对历史数据库中保存的历史数据的回放,实现随时查看、随时切换,数据占用计算机磁盘空间小,用更小的存储空间实现更长时间保存历史的画面回放;编制的播放器读取已经保存的历史数据库文件并将保存的历史数据库文件存放在计算机共享内存中;修改后的HMI画面调用编制的动态链接库文件并读取编制的播放器放入计算机共享内存中的数据,实现回放历史数据;通过编制的播放器在修改后的HMI画面上实现正常速度播放、快进、快放、快退、倒放、收藏,是对历史数据的回放。

相关技术
  • 一种PCIE Switch产品的产线测试方法、系统、介质及设备
  • 一种日立PLC系统下产线数据采集查看系统及使用方法
  • 基于PLC的列车缓冲器产线总控管理系统及管理方法
技术分类

06120115937552