CN116627425A - 控制程序保存、还原方法及计算机设备 - Google Patents
控制程序保存、还原方法及计算机设备 Download PDFInfo
- Publication number
- CN116627425A CN116627425A CN202310615443.0A CN202310615443A CN116627425A CN 116627425 A CN116627425 A CN 116627425A CN 202310615443 A CN202310615443 A CN 202310615443A CN 116627425 A CN116627425 A CN 116627425A
- Authority
- CN
- China
- Prior art keywords
- file
- engineering
- controller
- control program
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000004044 response Effects 0.000 claims description 19
- 230000005540 biological transmission Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 7
- 230000006835 compression Effects 0.000 claims description 6
- 238000007906 compression Methods 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 50
- 230000004048 modification Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Automation & Control Theory (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种控制程序保存、还原方法、及计算机设备;控制程序保存方法可以响应于针对控制程序的编译命令,通过工程导出模块生成控制程序对应的编译文件和工程文件,编译文件包括控制器可执行的二进制文件,工程文件包括符合IEC61131‑10标准的XML格式文件,使得工程文件可适用于多种编程软件,响应于针对控制器的文件下载命令,向控制器传输编译文件和工程文件,以使控制器将工程文件保存在预设存储区域、以及运行编译文件;本申请的控制程序还原方法可以响应于针对控制器的文件上载命令,从控制器获取目标工程文件,解析该目标工程文件并将其包含的目标控制程序和目标工程配置信息显示在程序编辑页面上,实现对控制程序以及工程配置信息的快速还原。
Description
技术领域
本申请涉及工业自动化技术领域,尤其涉及一种控制程序保存、还原方法及计算机设备。
背景技术
控制器(Programmable Logic Controller,控制器)是一种用于自动化控制的数字逻辑控制器,可以基于用户在编程软件上设计的控制程序控制外部设备运行,编程软件安装在计算机设备,对于编译型控制器,编程软件可以将控制程序以及工程配置信息编译为编译文件,计算机设备可以与控制器建立通信连接,向控制器传输编译文件,控制器存储并运行该编译文件,从而实现控制外部设备运行的目的。
计算机设备若想要在计算机设备还原控制器上的编译文件,需要通过合适的反编译工具实现,由于不同控制器厂商的编码软件所采用的编译方式各不相同,使得反编译的过程复杂且失败率高,也就难以实现对控制程序和工程配置信息的还原。
申请内容
本申请提供了一种控制程序保存、还原方法及计算机设备,可以实现对控制程序以及工程配置信息的快速还原。
本申请实施例提供了一种控制程序保存方法,包括:
响应于针对控制程序的编译命令,通过工程导出模块生成控制程序对应的编译文件和工程文件,编译文件包括控制器可执行的二进制文件,工程文件包括符合IEC61131-10标准的XML格式文件,使得工程文件可以适用于多种编程软件;
响应于针对控制器的文件下载命令,向控制器传输编译文件和工程文件,以使控制器将工程文件保存在预设存储区域、以及运行编译文件。
相应地,本申请实施例提供一种控制程序保存装置,包括:
生成模块,用于响应于针对控制程序的编译命令,通过工程导出模块生成控制程序对应的编译文件和工程文件,编译文件包括控制器可执行的二进制文件,工程文件包括符合IEC61131-10标准的XML格式文件,使得工程文件可以适用于多种编程软件;
传输模块,用于响应于针对控制器的文件下载命令,向控制器传输编译文件和工程文件,以使控制器将工程文件保存在预设存储区域、以及运行编译文件。
在本申请的一些实施例中,工程配置信息包括通信配置信息,生成模块包括设置子模块、生成子模块和编译子模块,其中,
设置子模块,用于响应于针对控制程序的编译命令,为本地设备设置设备IP地址;
生成子模块,用于基于设备IP地址和控制程序,通过工程导出模块生成控制程序对应的工程文件;
编译子模块,用于通过工程导出模块生成控制程序对应的编译文件。
在本申请的一些实施例中,传输模块包括加密子模块和传输子模块,其中,
加密子模块,用于响应于针对控制器的文件下载命令,基于预设加密算法对工程文件加密得到加密后工程文件;
传输子模块,用于向控制器传输编译文件和加密后工程文件,以使控制器将加密后工程文件保存在预设存储区域、以及运行编译文件。
在本申请的一些实施例中,传输模块包括压缩子模块和传输子模块,其中,
压缩子模块,用于响应于针对控制器的文件下载命令,基于预设压缩算法对工程文件进行压缩,得到压缩后工程文件;
传输子模块,用于向控制器传输压缩后工程文件和编译文件,以使控制器将压缩后工程文件保存在预设存储区域、以及运行编译文件。
本申请实施例提供了一种控制程序还原方法,包括:
响应于针对控制器的文件上载命令,向控制器发送文件获取请求;
接收控制器返回的目标工程文件,目标工程文件基于文件获取请求确定,,目标工程文件包括符合IEC61131-10标准的XML格式文件,使得目标工程文件可以适用于多种编程软件;
对目标工程文件进行解析,得到目标工程文件包含的目标控制程序、以及目标控制程序对应的目标工程配置信息;
在程序编辑页面显示目标控制程序和目标工程配置信息。
相应地,本申请实施例提供一种控制程序还原装置,包括:
发送模块,用于响应于针对控制器的文件上载命令,向控制器发送文件获取请求;
接收模块,用于接收控制器返回的目标工程文件,目标工程文件基于文件获取请求确定,目标工程文件包括符合IEC61131-10标准的XML格式文件,使得目标工程文件可以适用于多种编程软件;
解析模块,用于对目标工程文件进行解析,得到目标工程文件包含的目标控制程序、以及目标控制程序对应的目标工程配置信息;
显示模块,用于在程序编辑页面显示目标控制程序和目标工程配置信息。
在本申请的一些实施例中,程序编辑页面还包括已有工程文件的已有控制程序、以及已有控制程序的已有工程配置信息,控制程序还原装置还包括:
差异模块,用于在程序编辑页面显示差异子页面,差异子页面包括程序差异信息和配置差异信息在内的至少一种差异信息,程序差异信息基于目标控制程序和已有控制程序而定,配置差异信息基于已有工程配置信息和目标工程配置信息而定。
在本申请的一些实施例中,接收模块可以具体用于:
接收控制器返回的加密后工程文件;
基于预设加密算法对加密后工程文件进行解密,得到目标工程文件。
相应地,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序适于处理器进行加载,以执行本申请实施例提供的任一种控制程序保存、还原方法。
相应地,本申请实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现本申请实施例提供的任一种控制程序保存、还原方法。
相应地,本申请实施例还提供了一种计算机设备控制器,控制器包括处理单元和存储单元,存储单元包括预设存储区域,预设存储区域用于存储工程文件,处理单元用于执行编译文件。
相应地,本申请实施例还提供了一种控制器,控制器包括处理单元和存储单元,存储单元包括预设存储区域,预设存储区域用于存储工程文件、压缩后工程文件、加密后工程文件中的至少一个,处理单元用于执行编译文件。
本申请中,可以响应于针对控制程序的编译命令,生成控制程序对应的工程文件,工程文件可以包括控制程序以及相应的工程配置信息,可以响应于针对控制器的文件下载命令,向控制器传输工程文件,使得控制器可以将工程文件保存在预设存储区域中。
相关人员在需要获取控制器中的控制程序时,可以通过所使用的编程软件所在计算机设备向控制器发送文件获取请求,接收控制器基于此文件获取请求返回的目标工程文件,对目标工程文件进行解析,得到其包含的目标控制程序和目标工程配置信息,在编程软件的程序编辑页面显示目标控制程序和目标工程配置信息。
本申请在控制器中预先存储工程文件,在需要时直接从控制器中获取该工程文件,相比于现有技术,无需进行复杂的反编译等操作,可以快速便捷地实现控制程序和工程配置信息的还原。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的场景示意图;
图2为本申请实施例提供的控制程序保存方法的流程示意图;
图3为本申请实施例提供的控制程序保存方法的另一流程示意图;
图4为本申请实施例提供的控制程序保存方法的另一流程示意图;
图5为本申请实施例提供的控制程序保存方法的另一流程示意图;
图6为本申请实施例提供的控制程序还原方法的流程示意图;
图7为本申请实施例提供的控制程序还原方法的另一流程示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
本申请提供了一种控制程序保存方法,具体地,控制程序保存方法可以集成在至少一个计算机设备中。
本申请提供了一种控制程序还原方法,具体地,控制程序还原方法可以集成在至少一个计算机设备中。
计算机设备可以包括终端、服务器在内的至少一种,终端可以包括个人电脑、笔记本电脑、智能手机、智能可穿戴设备、平板电脑等,服务器可以包括物理服务器、云服务器,物理服务器可以为单个服务器,也可以包括至少两个服务器构成的服务器集群、或分布式系统等。云服务器可以提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务。不同计算机设备之间可以通过有线或无线通信方式进行直接或间接连接,本申请对此不做限制。
比如,参见图1a,控制程序保存系统可以包括终端1和控制器,终端1安装有适用于控制器的编程软件1,工作人员可以在编程软件1进行编写控制程序、配置工程相关信息等事项,工作人员可以触发编程软件1上的编译控件,终端1生成以及响应针对控制程序的编译命令,生成控制程序对应的工程文件,工程文件可以包括该控制程序以及工程配置信息。终端1与控制器可以通过有线或无线的通信方式进行连接,工作人员可以触发编程软件1上的下载控件,终端1可以生成以及响应于针对控制器的文件下载命令,基于预设通信协议向控制器传输工程文件。控制器可以将接收到的工程文件保存到预设存储区域内。
比如,参见图1b,控制程序还原系统可以包括终端2和控制器,控制器的预设存储区域内保存有工程文件,终端2和控制器之间通过有线或无线的通信方式进行连接,终端2上可以安装有适用于控制器的编程软件2,当用户有工程还原需求时,用户可以触发编程软件2上的工程还原控件,终端2可以生成以及响应于针对控制器的文件上载命令,向控制器发送文件获取请求,接收控制器基于文件获取请求回传的工程文件,对工程文件进行解析,得到其包含的控制程序以及工程配置信息,在编程软件2的程序编辑页面显示控制程序和工程配置信息。
本申请中,控制程序保存方法和控制程序还原方法可以应用于同一计算机设备,比如,图1中的终端2和终端1可以为同一终端,编程软件2和编程软件1可以为相同或不同的软件。控制程序保存方法和控制程序还原方法可以应用于不同的计算机设备,比如,图1中的终端1和终端2可以为不同的终端,终端1生成工程文件以及向控制器传输该工程文件,终端2在用户想要工程还原时,从控制器获取工程文件,并对其进行解析得到控制程序和工程配置信息,在编程软件2的程序编辑页面显示控制程序和工程配置信息。
通过本申请的控制程序保存、还原方法,可以把在控制器中运行所需的控制程序和工程配置信息生成工程文件,将工程文件保存在控制器的预设存储空间,若用户需要对控制器进行工程还原,可以触发终端安装的编程软件上的工程还原控件,即可直接从控制器获取工程文件,终端对工程文件进行解析可得到其包含的控制程序和工程配置信息,还可以在程序编辑页面显示控制程序和工程配置信息,由此可快速便捷地对实现对控制器的工程还原,可以在程序编辑页面查看、修改控制程序以及工程配置信息。
下面将结合实施例对本申请控制程序保存方法进行详细介绍。控制程序保存方法可以集成在控制程序保存装置中,控制程序保存装置可以集成在计算机设备中,计算机设备可以包括终端或服务器等,参见图2,图2公开了本申请的控制程序保存方法的流程示意图,控制程序保存方法包括:
110、响应于针对控制程序的编译命令,通过工程导出模块生成控制程序对应的编译文件和工程文件,编译文件包括控制器可执行的二进制文件,工程文件包括符合IEC61131-10标准的XML格式文件,使得工程文件可以适用于多种编程软件。
控制程序可以包括控制控制器执行逻辑的程序,控制器可以根据控制程序控制与其连接的外部设备的运行,
控制程序可以基于至少一种控制器编程语言写成,控制程序可以包括程序组织单元(Program Organization Units,POU)源程序,控制器编程语言可以包括IL(一种控制器文本编程语言)、ST(一种控制器编程语言)、LD(一种控制器图形编程语言)、FBD(一种控制器编程语言)、SFC(一种控制器编程语言)、c语言、汇编语言等。
控制程序可以由工作人员在编程软件写成,也可以由AI机器人、自动编程软件等智能对象自动生成。如开发人员在控制程序的程序编辑器写成控制程序。程序编辑器可以包括用于编辑和管理控制程序的模块,支持多种符合控制器国际标准的编程语言。程序编辑器还可以用于调试程序等。
工程文件可以包括在控制器运行所需的控制程序和工程配置信息,工程配置信息可以包括任务配置信息、硬件配置信息(如输入/输出配置信息)、通信配置信息、变量表配置信息等。
任务配置信息可以包括表征控制程序所执行的任务类型,任务配置信息可以表征的任务类型可以包括循环任务,定时任务,中断任务等。
硬件配置信息可以包括编程软件所在设备或其中的相关模块、控制器或其中的相关模块、或与控制器连接的子设备或其中的相关模块的参数信息,设备或相关模块可以包括计数器、数字输入信号/数字输出信号(DI/DO)模块、脉冲输出模块、轴等。
计算机设备与控制器之间可以基于通信模块进行信息传输,不同的通信模块对应不同的通信配置信息。如串口通信模块等。
在一些实施例中,通信模块可以包括以太网通信模块,计算机设备可以相应于针对控制程序的编译命令,为计算机设备和/或控制器设置IP地址,计算机设备的IP地址和控制器的IP地址可以属于同一网段,也可以属于不同网段。用户也可以通过计算机设备的编程软件手动输出为计算机设备和/或控制器设置的IP地址。
在一些实施例中,工程文件还可以包括控制程序的版本信息,从而更好地记录控制程序,版本信息可以包括工程标识信息(如工程名)、版本标识信息(如版本号)、修改时间信息(如最新修改时间信息)、修改对象信息(如用户ID)、工程文件校验值(如MD5校验值)等。
在一些实施例中,计算机设备可以设置有工程导出模块,工程导出模块可以为编程软件的子模块,也可以为独立运行于计算机设备的软件,计算机设备可以通过工程导出模块,生成包含控制程序和工程配置信息的工程文件。
不同控制器生产厂家可以设计多种编程软件,不同种类的编程软件存在差异,在一种编程软件写出的控制程序在另一种编程软件可能无法还原,为了进一步提升本申请中工程文件的适用范围,可以基于控制器国际标准IEC61131-3生成工程文件,具体地可以参照国际标准的子集IEC61131-10标准,生成控制程序对应的工程文件,工程文件可以包括符合IEC61131-10标准的可扩展标记语言(eXtensible Markup Language,XML)格式文件,工程导出模块可以包括工程XML导出模块,XML格式的工程文件可以在不同种的编程软件中打开和显示,使得存储在控制器中的工程文件可以在多种编程软件中显示,有效提升工程文件的适用范围。
IEC61131-10指定了一种基于XML的交换格式,使信息可以在不同的编程环境(对应不同类型的编程软件)之间转移。具体地在本申请中,对控制器控制程序以及工程配置信息采用形式化描述的方法,使工程文件可以跨编程软件共享。
120、响应于针对控制器的文件下载命令,向控制器传输编译文件和工程文件,以使控制器将工程文件保存在预设存储区域、以及运行编译文件。
计算机设备可以通过通信模块与控制器建立通信连接,并基于通信模块对应的预设通信协议进行数据传输,通信模块可以如以太网通信模块、串口通信模块等,计算机设备与控制器可以以有线和/或无线等形式进行连接。计算机设备可以基于通信模块对应的通信协议向控制器传输工程文件。相对应地,控制器也设置有与计算机设备相同的通信模块,以实现计算机设备和控制器之间的数据传输。
比如,用户可以在计算机设备的通信配置页面选定向控制器传输所需的通信模块相关信息,如通信串口信息(如端口号)、通信协议信息、控制器的IP地址、网关的IP地址等,计算机设备可以基于用户选定的通信模块相关信息,与控制器的通信模块建立通信连接。
其中,文件下载命令可以用于指示向控制器传输工程文件,计算机设备可以响应于文件下载命令,可以向PLC传输工程文件。
预设存储区域可以包括控制器中预先设定的用于存储工程文件的区域。预设存储区域的大小和范围可以根据实际需求灵活确定。控制器可以将接收到的工程文件保存在预设存储区域中。由此可以将控制器运行时的控制程序和工程配置信息以工程文件的方式保存在控制器中。
在一些实施例中,为了提升工程文件在传输、保存过程的安全性,避免被非法获取,还可以对工程文件进行加密,具体地,可以基于预设加密算法对工程文件进行加密,得到加密后工程文件,再向控制器传输此加密后工程文件。预设机密算法可以如MD5算法(一种加密算法)、DES算法(一种加密算法)、AES算法(一种加密算法)等。
在一些实施例中,若预设存储区域的大小不能满足工程文件,可以基于预设压缩算法对工程文件进行压缩,得到占用更小内存的压缩后工程文件,向控制器传输该压缩后工程文件,控制器将压缩后工程文件保存在预设存储区域。预设压缩算法可以根据工程文件以及预设存储区域的相关信息灵活确定,在此不做限制。
本申请的一些实施例中,计算机设备响应于针对控制程序的编译命令,可以对控制程序进行编译,得到编译文件和工程文件,如通过编译器对控制程序进行编译和链接,得到编译文件,编译文件可以包括控制器可执行的二进制文件。计算机设备可以同时开始运行编译器和工程导出模块,对控制程序进行编译得到编译文件和工程文件。
通过编译器对控制程序进行编译可以得到二进制形式的目标文件,目标文件的文件名后缀可以如hex、bin等。计算机设备可以将控制器加载运行所需要的加载信息、目标文件、版本信息等进行链接得到编译文件。加载信息可以包括任务配置信息、输入/输出配置信息、通信配置信息、任务表信息、符号表信息等。
编译得到目标文件可以通过编译工具进行,如gcc交叉编译工具(一种编译工具)、gcc-arm-none-eabi工具(一种编译工具)等
可以通过makefile文件定制编译流程,编译流程包括:目标变量定义、C源代码文件位置、S启动文件位置、编译工具关联、特殊标志处理、H头文件位置、生成库处理和清除功能伪代码等。在一些应用场景下,编译文件也可以仅包括编译所得目标文件,具体可以根据实际情况灵活处理。控制程序的版本信息可以包括工程标识信息(如工程名)、版本标识信息(如版本号)、修改时间信息(如最新修改时间信息)、修改对象信息(如用户ID)、工程文件校验值(如MD5校验值)等。
计算机设备可以向控制器传输编译文件和工程文件。具体地,计算机设备与控制器建立通信连接后,计算机设备可以基于预设通信协议,依次将编译文件和工程文件分割为多个连续的数据包,依次传输这些数据包,数据包中可以包含工程文件的版本信息,当前的下载时间,数据包的序号以及根据时间戳的MD5数据校验码等。
控制器可以预先设定用于存储编译文件的第一内存区域和用于存储工程文件的第二存储区域,第一存储区域和第二存储区域的可以是连续区域也可以是分散区域,在此不做限制。控制器将接收到的编译文件和工程文件分别存储在第一存储区域和第二存储区域。
在一些实施例中,若控制器内已有运行的控制程序,可以向计算机设备回传提示信息,计算机设备可以根据提示信息在编程软件的页面显示若干操作控件,操作控件可以如密码输入控件、覆盖原程序控件、下载当前程序控件等,操作控件之间可以为并列或递进等关系,具体地可以根据应用场景灵活处理。
控制器可以加载和运行编译文件,从而控制与控制器连接的子设备运行。用户可以通过触发计算机设备中编程软件上的监控模式,查看控制器中控制程序的运行情况。比如,控制器上电时,可以从第一存储区域将编译文件导入处理器,以加载和运行控制程序。
在一些实施例中,不同版本的控制程序可能仅存在部分差异,为了降低数据传输和处理量,在控制器上快速运行最新版本的控制程序,计算机设备可以编译存在修改的部分控制程序,向控制器传输对部分控制程序编译后得到的部分编译文件,部分编译文件中可以包含此最新版本控制程序的版本标识信息、修改时间信息、修改对象信息等版本信息、部分编译文件、以及存在修改的加载信息。
此时,控制器可以接收部分编译文件,并通过停机更新或不停机更新的方式对其运行的控制程序进行更新。比如,为了保持控制器的运行状态,控制器可以在运行阶段的两个相邻扫描周期内,根据部分编译文件对控制器中运行的编译文件进行更新,使得控制器可以运行更新后的编译文件,不影响控制器的运行状态。
比如,参见图3,包含控制程序、工程配置信息和/或相关加载信息的PLC工程编辑完成后,编程软件可以对PLC工程进行全局编译,生成完整编译文件,导出完整工程文件。
若相比于PLC工程的历史版本,当前版本的PLC工程中只是若干信息存在变化,可以进行局部编译,生成更新编译文件(包含产生变化的部分信息),导出完整工程文件(包含PLC工程中的全部信息)。
比如,参见图4,编程软件生成下载命令,可以进行全局下载,完整编译文件和完整工程文件下载到PLC,PLC将完整编译文件和完整工程文件分别存入预设的存储区中。
若相比于PLC工程的历史版本,当前版本的PLC工程中只是若干信息存在变化,将更新编译文件和完整工程文件下载到PLC,PLC将完整编译文件和完整工程文件分别存入预设的存储区中。
比如,参见图5,计算机设备可以包括PLC编程软件,PLC编程软件可以包括PLC程序编辑器、PLC程序编码器、PLC工程XML导入/导出模块和通信模块等,PLC程序编辑器中可以包含开发人员写好的控制程序,PLC编程软件可以响应于开发人员触发的针对控制程序的编译控件,生成编译命令,PLC程序编译器可以响应于编译命令对控制程序进行编译,得到编译文件,编译文件的后缀可以包括bin,PLC工程XML导入/导出模块响应于编译命令对控制程序进行编译,得到工程文件,工程文件的后缀可以包括xml。PLC编程软件可以响应于开发人员触发的针对PLC的下载控件,生成文件下载命令,通信模块可以响应于文件下载命令,与PLC建立通信连接,基于预设通信协议向PLC传输编译文件和工程文件。
控制器可以包括通信模块、编译文件存储区、工程文件存储区、控制器运行系统等,控制器的通信模块可以与控制器编程软件的通信模块相对应,基于二者实现控制器编程软件与控制器之间的信息传输。控制器可以将基于通信模块接收的编译文件和工程文件分别存储在编译文件存储区和工程文件存储区,控制器还可以将编译文件存储区的编译文件导入控制器运行系统,通过控制器运行系统运行控制程序,实现对子设备的控制。
下面将结合实施例对本申请控制程序还原方法进行详细介绍。控制程序还原方法可以集成在控制程序还原装置中,控制程序还原装置可以集成在计算机设备中,计算机设备可以包括终端或服务器等,参见图6,图6公开了本申请的控制程序还原方法的流程示意图,控制程序还原方法包括:
210、响应于针对控制器的文件上载命令,向控制器发送文件获取请求。
控制器在运行过程中,工作人员可能存在工程还原的需求,工作人员可以通过工程还原在编程软件查看控制器运行所需的控制程序和工程配置信息。
计算机设备和控制器可以各自设置有通信模块,二者可以通过通信模块建立通信连接,进而进行信息传输,比如,计算机设备可以响应用户针对文件上载模块的触发操作,生成针对控制器的文件上载命令,以及基于通信接口对应的预设通信协议向控制器发送文件获取请求。文件获取请求可以包括用于请求目标工程文件的信息。
220、接收控制器返回的目标工程文件,目标工程文件基于文件获取请求确定,目标工程文件包括符合IEC61131-10标准的XML格式文件,使得目标工程文件可以适用于多种编程软件。
控制器可以设置有至少一个用于存储工程文件的存储区域,控制器可以根据文件获取请求,从预设区域获取目标工程文件,按照预设通信协议向计算机设备传输此目标工程文件。计算机设备可以基于预设通信协议接收此目标工程文件。
230、对目标工程文件进行解析,得到目标工程文件包含的目标控制程序、以及目标控制程序对应的目标工程配置信息。
计算机设备可以对目标工程文件进行解析,得到其包含的目标控制程序和目标工程配置信息。比如,计算机设备可以安装有编程软件,编程软件可以与生成目标工程文件的编程软件属于同一类型,此时计算机设备安装的编程软件可以对目标工程软件解析,得到其中包含的目标控制程序和目标工程配置信息。
在一些实施例中,编程软件可以包括多种类型,如不同控制器厂家设备的设计的编程软件存在较多差异,在一种类型的编程软件编写的控制程序可能无法在另一种类型的编程软件中查看和修改,为了进一步提升本申请中目标工程文件的适用范围,本申请的工程文件可以基于控制器国际标准IEC61131-3生成,具体地可以参照国际标准的子集IEC61131-10标准,生成控制程序对应的工程文件,工程文件可以包括符合IEC61131-10标准的可扩展标记语言(eXtensible Markup Language,XML)格式文件,工程导出模块可以包括工程XML导出模块,XML格式的工程文件可以在不同种的编程软件中打开和显示,使得存储在控制器中的工程文件可以在多种编程软件中显示,有效提升工程文件的适用范围。
240、在程序编辑页面显示目标控制程序和目标工程配置信息。
程序编辑页面可以包括计算机设备上可以进行程序编辑的页面,比如,计算机设备可以设置编程软件,编程软件可以包括程序编辑器,程序编辑页面可以包括程序编辑器所显示的页面。
在一些实施例中,本申请为了更好地显示不同工程文件之间的差异,可以在程序编辑页面显示差异子页面,差异子页面可以显示不同工程文件之间的差异信息。具体地,程序编辑页面可以显示已有工程文件的已有控制程序和已有工程配置信息,程序编辑页面还可以显示目标工程文件的目标控制程序和目标工程配置信息。
工程文件包含的控制程序和/或工程配置信息可能随着应用场景的变化进行升级,每一次升级对应一个版本的工程文件。本申请的已有工程文件和目标工程文件既可以属于同一工程的不同版本,也可以属于不同工程的不同版本。差异子页面中的差异信息可以包括已有控制程序和目标控制程序之间的程序差异信息,还可以包括已有工程配置信息和目标工程配置信息之间的配置差异信息。程序差异信息和配置差异信息的表现形式可以有多种,如文字提示差异部分,又如对程序编辑页面显示的已有控制程序和目标控制程序之间的差异部分突出显示,突出显示的方式如标红、标绿、下划线等,以实现警告提示用户此处存在差异的目的。
比如,参见图7,计算机设备设置的编程软件生成上载命令,向PLC发送文件获取请求,PLC基于文件获取请求从预设存储区域获取以及向计算机设备传输目标工程文件,目标工程文件可以为XML格式文件,编程软件加载和解析目标工程文件,若编程软件已有打开(显示)的工程文件,则编程软件对目标工程文件与已有工程文件的差异部分作出差异提示,进而辅助追溯已有工程文件的待优化部分、缺陷部分等,编程软件还可以还原和显示目标工程文件包含的目标控制程序和目标工程配置信息;若编程软件没有已有打开(显示)的工程文件,直接还原并显示目标工程文件包含的目标控制程序和目标工程配置信息。由此可以快速还原PLC中运行的控制程序以及工程配置信息,便捷高效地对查看、修改控制程序和/或工程配置信息。
需要说明的是,本申请的编程软件设置于计算机设备的方式可以包括多种,比如编程软件可以包括应用程序、小程序、网页等。本申请的控制器可以包括可编译逻辑控制器PLC、数字信号处理器DSP运动控制器、微控制器MCU等。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (12)
1.一种控制程序保存方法,其特征在于,包括:
响应于针对控制程序的编译命令,通过工程导出模块生成所述控制程序对应的编译文件和工程文件,所述编译文件包括控制器可执行的二进制文件,所述工程文件包括符合IEC61131-10标准的XML格式文件,使得所述工程文件可以适用于多种编程软件;
响应于针对控制器的文件下载命令,向所述控制器传输所述编译文件和所述工程文件,以使所述控制器将所述工程文件保存在预设存储区域、以及运行所述编译文件。
2.根据权利要求1所述的方法,其特征在于,所述响应于针对控制程序的编译命令,通过工程导出模块生成所述控制程序对应的编译文件和工程文件,包括:
响应于针对控制程序的编译命令,为本地设备设置设备IP地址;
基于所述设备IP地址和所述控制程序,通过工程导出模块生成所述控制程序对应的工程文件;
通过工程导出模块生成所述控制程序对应的编译文件。
3.根据权利要求1所述的方法,其特征在于,所述响应于针对控制器的文件下载命令,向所述控制器传输所述编译文件和所述工程文件,以使所述控制器将所述工程文件保存在预设存储区域、以及运行所述编译文件,包括:
响应于针对控制器的文件下载命令,基于预设加密算法对所述工程文件加密得到加密后工程文件;
向所述控制器传输所述编译文件和所述加密后工程文件,以使所述控制器将所述加密后工程文件保存在预设存储区域、以及运行所述编译文件。
4.根据权利要求1所述的方法,其特征在于,所述响应于针对控制器的文件下载命令,所述编译文件和所述工程文件,以使所述控制器将所述工程文件保存在预设存储区域、以及运行所述编译文件,包括:
响应于针对控制器的文件下载命令,基于预设压缩算法对所述工程文件进行压缩,得到压缩后工程文件;
向所述控制器传输所述压缩后工程文件和所述编译文件,以使所述控制器将所述压缩后工程文件保存在预设存储区域、以及运行所述编译文件。
5.一种控制程序还原方法,其特征在于,包括:
响应于针对控制器的文件上载命令,向所述控制器发送文件获取请求;
接收所述控制器返回的目标工程文件,所述目标工程文件基于所述文件获取请求确定,所述目标工程文件包括符合IEC61131-10标准的XML格式文件,使得所述目标工程文件可以适用于多种编程软件;
对所述目标工程文件进行解析,得到所述目标工程文件包含的目标控制程序、以及所述目标控制程序对应的目标工程配置信息;
在程序编辑页面显示所述目标控制程序和所述目标工程配置信息。
6.根据权利要求5所述的方法,其特征在于,所述程序编辑页面还包括已有工程文件的已有控制程序、以及所述已有控制程序的已有工程配置信息,所述方法还包括:
在所述程序编辑页面显示差异子页面,所述差异子页面包括程序差异信息和配置差异信息在内的至少一种差异信息,所述程序差异信息基于所述目标控制程序和所述已有控制程序而定,所述配置差异信息基于所述已有工程配置信息和所述目标工程配置信息而定。
7.根据权利要求5所述的方法,其特征在于,所述接收所述控制器返回的目标工程文件,所述目标工程文件基于所述文件获取请求确定,包括:
接收所述控制器返回的加密后工程文件;
基于预设加密算法对所述加密后工程文件进行解密,得到目标工程文件。
8.一种控制程序保存装置,其特征在于,包括:
生成模块,用于响应于针对控制程序的编译命令,通过工程导出模块生成所述控制程序对应的编译文件和工程文件,所述编译文件包括控制器可执行的二进制文件,所述工程文件包括符合IEC61131-10标准的XML格式文件,使得所述工程文件可以适用于多种编程软件;
传输模块,用于响应于针对控制器的文件下载命令,向所述控制器传输所述编译文件和所述工程文件,以使所述控制器将所述工程文件保存在预设存储区域、以及运行所述编译文件。
9.一种控制程序还原装置,其特征在于,包括:
发送模块,用于响应于针对控制器的文件上载命令,向控制器发送文件获取请求;
接收模块,用于接收所述控制器返回的目标工程文件,所述目标工程文件基于所述文件获取请求确定,所述目标工程文件包括符合IEC61131-10标准的XML格式文件,使得所述目标工程文件可以适用于多种编程软件;
解析模块,用于对所述目标工程文件进行解析,得到所述目标工程文件包含的目标控制程序、以及所述目标控制程序对应的目标工程配置信息;
显示模块,用于在程序编辑页面显示所述目标控制程序和所述目标工程配置信息。
10.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行权利要求1-8中任一项的方法。
11.一种计算机可读介质,其特征在于,所述计算机可读介质存储有多条计算机程序,所述计算机程序适于处理器进行加载,以执行如权利要求1-8任一项方法中的步骤。
12.一种控制器,其特征在于,所述控制器包括处理单元和存储单元,所述存储单元包括预设存储区域,所述预设存储区域用于存储如权利要求1-7任一项方法中的所述工程文件,所述处理单元用于执行如权利要求1-7任一项中的所述编译文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310615443.0A CN116627425A (zh) | 2023-05-26 | 2023-05-26 | 控制程序保存、还原方法及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310615443.0A CN116627425A (zh) | 2023-05-26 | 2023-05-26 | 控制程序保存、还原方法及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116627425A true CN116627425A (zh) | 2023-08-22 |
Family
ID=87609511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310615443.0A Pending CN116627425A (zh) | 2023-05-26 | 2023-05-26 | 控制程序保存、还原方法及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116627425A (zh) |
-
2023
- 2023-05-26 CN CN202310615443.0A patent/CN116627425A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112087454B (zh) | 一种物联网网关设备的通信方法、装置、设备及储存介质 | |
US20200019147A1 (en) | Abstraction layers for automation applications | |
CN111459539B (zh) | 基于镜像分层的持续集成流水线运行方法及装置 | |
US11307550B2 (en) | Sequence control of program modules | |
CN110674049B (zh) | 一种面向plc逻辑编程的智能形式化验证方法 | |
CN111399840B (zh) | 一种模块开发方法及装置 | |
CN110569250B (zh) | 一种物联网网元的解析库的管理方法及装置 | |
CN110297637B (zh) | 全平台客户端软件适用的资源文件热重载开发工具及方法 | |
JP2009146229A (ja) | プログラマブルコントローラシステム | |
CN104536398B (zh) | 一种变频器监控方法和系统 | |
CN107508846B (zh) | 应用客户端的更新方法和系统及终端设备 | |
CN111209001A (zh) | 批量生成安卓各渠道apk的方法、系统、设备和介质 | |
CN113050508A (zh) | 控制板的调试方法、装置、存储介质及调试设备 | |
Hopsu et al. | On portability of IEC 61499 compliant structures and systems | |
CN115827116A (zh) | 函数调用方法、装置、设备及计算机可读存储介质 | |
CN111923046B (zh) | 一种上位机对下位机示教方法、存储介质、示教装置 | |
CN116627425A (zh) | 控制程序保存、还原方法及计算机设备 | |
CN107918587A (zh) | 一种应用程序的调试方法及系统 | |
CN111800379A (zh) | 一种基于Lua的工控私有协议检测方法及装置 | |
CN116032978A (zh) | 基于云服务的软件定义工业物联控制方法及系统 | |
US11958511B2 (en) | Train signal system and linkage method therefor | |
CN111897565A (zh) | 基于物联网的数据处理方法、装置和设备 | |
CN112650189A (zh) | 一种嵌入式plc自动化测试系统及方法 | |
CN112639730A (zh) | 用于程序文件编写和运行处理的方法及装置、系统 | |
KR100294633B1 (ko) | 피엘씨의시뮬레이터 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |