CN114237146B - 一种软plc控制功能实现方法、装置、设备及存储介质 - Google Patents

一种软plc控制功能实现方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114237146B
CN114237146B CN202111407170.8A CN202111407170A CN114237146B CN 114237146 B CN114237146 B CN 114237146B CN 202111407170 A CN202111407170 A CN 202111407170A CN 114237146 B CN114237146 B CN 114237146B
Authority
CN
China
Prior art keywords
program
target user
user program
soft plc
data
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.)
Active
Application number
CN202111407170.8A
Other languages
English (en)
Other versions
CN114237146A (zh
Inventor
刘云
熊志伟
张宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Hpmont Technology Co Ltd
Original Assignee
Shenzhen Hpmont Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Hpmont Technology Co Ltd filed Critical Shenzhen Hpmont Technology Co Ltd
Priority to CN202111407170.8A priority Critical patent/CN114237146B/zh
Publication of CN114237146A publication Critical patent/CN114237146A/zh
Application granted granted Critical
Publication of CN114237146B publication Critical patent/CN114237146B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/054Input/output
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/11Plc I-O input output
    • G05B2219/1103Special, intelligent I-O processor, also plc can only access via processor
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

本申请公开了一种软PLC控制功能实现方法、装置、设备及存储介质,包括:获取目标用户程序并利用软PLC组件对所述目标用户程序进行解析;其中,所述软PLC组件为在预先安装在终端程序上的组件;利用所述软PLC组件将解析后的所述目标用户程序映射至预设数据库中得到与所述目标用户程序对应的目标数据库文件,并将所述预设数据库与所述终端程序运行平台建立链接关系;通过执行所述目标数据库文件的方式执行所述目标用户程序,以实现与所述目标用户程序对应的软PLC控制功能。本申请通过将数据库作为运行环境来执行相应的用户程序,提高开发效率,且采用数据库作为用户接口不受限于软硬件平台,无需针对各不同的操作系统进行适配性修改以实现跨平台移植。

Description

一种软PLC控制功能实现方法、装置、设备及存储介质
技术领域
本发明涉及自动化控制工程技术领域,特别涉及一种软PLC控制功能实现方法、装置、设备及存储介质。
背景技术
PLC为可编程逻辑控制器,是一种专门为在工业环境下应用而设计的数字运算操作电子系统。它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。
现有的PLC主要分为两种类型。其一是为基于特定的硬件平台(目标PLC产品)开发,资源受硬件平台所限制,仅能通过专门的模块进行资源拓展,软硬件高度耦合,资源拓展困难,难以移植。其二是基于以通用操作系统和PC为软硬件平台,用软件实现传统硬件PLC的控制功能。软件PLC系统是由开发系统和运行系统两部分组成,软件PLC开发系统实际上就是集编辑、调试和编译与一体的PLC编程器,其中编译部分是开发系统的核心。该类型虽然对软硬件实现解耦,但一般运行于大型系统,软PLC开发系统实现难度较大,跨平台移动需要对不同系统进行适配,依然有一定的移植门槛。该方案为硬PLC或基于以通用操作系统和PC为软硬件平台的PLC。
因此,如何提供一种移植简单、开发便捷且使用灵活的软PLC控制功能实现方案是本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本发明的目的在于提供一种软PLC控制功能实现方法、装置、设备及存储介质,提高开发效率且无需针对各不同的操作系统进行适配性修改以实现跨平台移植。其具体方案如下:
本申请的第一方面提供了一种软PLC控制功能实现方法,包括:
获取目标用户程序并利用软PLC组件对所述目标用户程序进行解析;其中,所述软PLC组件为在预先安装在终端程序上的组件;
利用所述软PLC组件将解析后的所述目标用户程序映射至预设数据库中得到与所述目标用户程序对应的目标数据库文件,并将所述预设数据库与所述终端程序运行平台建立链接关系;
通过执行所述目标数据库文件的方式执行所述目标用户程序,以实现与所述目标用户程序对应的软PLC控制功能。
可选的,所述获取目标用户程序并利用软PLC组件对所述目标用户程序进行解析,包括:
获取目标用户程序并判断所述目标程序是否为编译后程序,如果是,则利用所述软PLC组件对所述目标用户程序进行解析;
如果否,则对所述目标用户程序进行编译,并利用所述软PLC组件对编译后的所述目标程序进行解析。
可选的,所述利用所述软PLC组件将解析后的所述目标用户程序映射至预设数据库中得到与所述目标用户程序对应的目标数据库文件,包括:
利用所述软PLC组件将与解析后的所述目标用户程序对应的资源数据、程序数据、运行数据及运行调试接口数据存储至所述预设数据库中,以得到与所述目标用户程序对应的目标数据库文件;其中,所述资源数据为与外围设备进行交互的变量数据,所述程序数据为所述目标用户程序的指令数据,所述运行数据为程序运行后台数据,所述运行调试数据为运行方式控制数据。
可选的,所述通过执行所述目标数据库文件的方式执行所述目标用户程序,以实现与所述目标用户程序对应的软PLC控制功能,包括:
将所述预设数据库中的所述资源数据中的输入寄存器数据表复制至输入缓存表以进行输入刷新操作;
按照顺序执行的方式执行所述运行程序中的指令,当读取指令为结束指令,则将所述预设数据库中的输出缓存表复制至输出寄存器数据表以进行输出刷新操作。
可选的,所述按照顺序执行的方式执行所述运行程序中的指令之后,还包括:
当读取指令为非结束指令,则从所述预设数据库中读取执行所需参数以执行所述非结束指令并将相应的输出结果写入所述预设数据库中;
判断所述非结束指令是否发生指针跳转,如果否,则将程序运行指针后移以按照顺序执行的方式执行所述运行程序中的指令。
可选的,所述判断所述非结束指令是否发生指针跳转,包括:
如果所述非结束指令发生指针跳转,则判断所述非结束指令是否为程序调用,如果是,则对当前执行变量进行入栈操作,并跳转至与程序调用对应的程序;
如果否,则判断所述非结束指令是否为程序调用后返回,如果是,则对调用前的执行变量进行出栈操作,并跳转至与程序调用对应的程序。
可选的,所述预设数据库为SQLite数据库;
相应的,所述通过执行所述目标数据库文件的方式执行所述目标用户程序,以实现与所述目标用户程序对应的软PLC控制功能,包括:
通过执行所述SQLite数据库中的多个所述目标数据库文件的方式执行多个对应的所述目标用户程序,以实现与多个所述目标用户程序对应的多个软PLC控制功能。
本申请的第二方面提供了一种软PLC控制功能实现装置,包括:
获取模块,用于获取目标用户程序并利用软PLC组件对所述目标用户程序进行解析;其中,所述软PLC组件为在预先安装在终端程序上的组件;
映射模块,用于利用所述软PLC组件将解析后的所述目标用户程序映射至预设数据库中得到与所述目标用户程序对应的目标数据库文件,并将所述预设数据库与所述终端程序运行平台建立链接关系;
执行模块,用于通过执行所述目标数据库文件的方式执行所述目标用户程序,以实现与所述目标用户程序对应的软PLC控制功能。
本申请的第三方面提供了一种电子设备,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述软PLC控制功能实现方法。
本申请的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述软PLC控制功能实现方法。
本申请中,先获取目标用户程序并利用软PLC组件对所述目标用户程序进行解析;其中,所述软PLC组件为在预先安装在终端程序上的组件;然后利用所述软PLC组件将解析后的所述目标用户程序映射至预设数据库中得到与所述目标用户程序对应的目标数据库文件,并将所述预设数据库与所述终端程序运行平台建立链接关系;最后通过执行所述目标数据库文件的方式执行所述目标用户程序,以实现与所述目标用户程序对应的软PLC控制功能。可见,本申请在安装软PLC组件的基础上,利用软PLC组件将目标用户程序映射至预设数据库并建立与终端程序运行平台的链接关系,通过将数据库作为运行环境来执行相应的用户程序,提高开发效率。同时,以执行数据库文件的方式执行用户程序的方式也即采用数据库作为用户接口的方式,不受限于软硬件平台,无需针对各不同的操作系统进行适配性修改以实现跨平台移植。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种软PLC控制功能实现方法流程图;
图2为本申请提供的一种具体的软PLC控制功能实现设计架构示意图;
图3为本申请提供的一种具体的软PLC控制功能实现方法流程图;
图4为本申请提供的一种软PLC控制功能实现装置结构示意图;
图5为本申请提供的一种软PLC控制功能实现电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的不管是基于特定的硬件平台(目标PLC产品)开发还是基于以通用操作系统和PC为软硬件平台的PLC,均资源拓展困难,难以实现移植。针对上述技术缺陷,本申请提供一种软PLC控制功能实现方案,通过将数据库作为运行环境来执行相应的用户程序,提高开发效率,且采用数据库作为用户接口不受限于软硬件平台,无需针对各不同的操作系统进行适配性修改以实现跨平台移植。
图1为本申请实施例提供的一种软PLC控制功能实现方法流程图。参见图1所示,该软PLC控制功能实现方法包括:
S11:获取目标用户程序并利用软PLC组件对所述目标用户程序进行解析;其中,所述软PLC组件为在预先安装在终端程序上的组件。
本实施例中,获取目标用户程序并利用软PLC组件对所述目标用户程序进行解析。其中,所述目标用户程序为用户根据现场控制的需要,用PLC的程序语言编制的应用程序,用以实现各种控制要求。用户程序由用户用编程器键入到PLC内存。小型PLC的用户程序比较简单,不需要分段,而是顺序编制的。大中型PLC的用户程序很长,也比较复杂,为使用户程序编制简单清晰,可按功能结构或使用目的将用户程序划分成各个程序模块。按模块结构组成的用户程序,每个模块用来解决一个确定的技术功能,能使很长的程序编制得易于理解,还使得程序的调试和修改变得很容易。
所述软PLC组件为在预先安装在终端程序上的组件,可以识别.csv或.txt等格式的PLC程序文本,如指令表语言(IL)程序。所述软PLC组件使用灵活,不仅可以用于开发PLC产品,更可以安装嵌入各种软件中协助其处理功能,如安装到触摸屏软件中。一方面,借助触摸屏的串口连接拓展模块,即可简单的实现触控一体机,替代掉部分使用PLC+触摸屏的现场。另一方面,安装在个人电脑中,可PLC功能进行学习仿真。甚至还可以移植到路由器中,作为家庭物联网设置的控制器等。
不难理解,所述软PLC组件解析的程序需为编译后的可执行程序,因此,在获取到所述目标用户程序后,需要先判断所述目标程序是否为编译后程序,如果是,则利用所述软PLC组件对所述目标用户程序进行解析,如果否,则对所述目标用户程序进行编译,并利用所述软PLC组件对编译后的所述目标程序进行解析。
S12:利用所述软PLC组件将解析后的所述目标用户程序映射至预设数据库中得到与所述目标用户程序对应的目标数据库文件,并将所述预设数据库与所述终端程序运行平台建立链接关系。
本实施例中,先利用所述软PLC组件将解析后的所述目标用户程序映射至预设数据库中得到与所述目标用户程序对应的目标数据库文件,然后将所述预设数据库与所述终端程序运行平台建立链接关系。
本实施例基于SQLite移植方便、使用简单、应用广泛的特点,采用SQLite数据库作为数据存储和用户交互接口,以实现和硬软件无关、跨平台、资源可自定义的软PLC。SQLite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎。SQLite是在世界上最广泛部署的SQL数据库引擎,其源代码不受版权限制。该PLC基于纯C编程,运行环境仅依赖于SQLite数据库,可以很方便的和SQLite一起进行部署。本软PLC全面解耦封装,接口均使用SQLite命令进行控制,无需学习软件的接口函数,只要能够加载SQLite,用户可使用任意语言开发自己的接口程序。
本实施例基于图2所示架构图实现软PLC控制功能。在获取到所述目标用户程序后利用所述软PLC组件将与解析后的所述目标用户程序对应的资源数据、程序数据、运行数据及运行调试接口数据存储至SQLite数据库中,以得到与所述目标用户程序对应的目标数据库文件。其中,所述资源数据为与外围设备进行交互的变量数据,如输入触点信号、输出线圈信号、辅助继电器等;所述程序数据为所述目标用户程序的指令数据,如主程序、子程序等;所述运行数据为程序运行后台数据,如条件运算栈、输出缓存栈、刷新缓存等;所述运行调试数据为运行方式控制数据,如运行控制、运行状态、错误报警等。
本实施例中,软PLC运行中涉及到的数据文件均存储在数据库中,每个PLC程序拥有一个独立的数据库(.db文件),通过执行不同的数据库文件,不仅可实现在不同的PLC程序之间切换,还可以同时执行不同的PLC程序。所述软PLC组件读取程序会拆分为一条条指令保存在数据库文件中,下次运行时不必再次重复读取操作。在编译阶段,软PLC会根据已经配置好的程序和数据生产运行所需要的运行数据以及运行调试接口数据。本软PLC可通过新建数据库开始一个新的PLC程序,也可载入已有的数据库文件恢复运行。创建新的软PLC数据库后,需要先定义好PLC的资源数据。图2中定义了几种数据类型,如输入输出IO信号X/Y、内部寄存器D等,但地址范围并未进行限制,用户可对其重新命名,也可自行定义数据。资源数据定义和修改就是对该数据库文件中数据的创建和修改,所以采用SQLite命令即可完成对资源数据的设置。
另外,本软PLC的运行、停止、状态指示、错误报警以及仿真调试接口均通过数据库中的运行调试表中的数据实现,替代了当前PLC的运行停止开关、指示灯和调试套件。如通过向运行控制数据位中写入true或false可控制软PLC的运行停止,可通过错误报警监控程序执行状态,还可以通过用户程序触发器输出触发信号,可通过阻塞或触发等方式调用用户程序等。也即本软PLC不再控制实际的IO信号输出,用户可通过对数据库中的输入输出缓冲区数据表进行读写来进行交互。该信号可以是虚拟信号用来模拟仿真,也可以和实际端子进行绑定对外围进行控制。
S13:通过执行所述目标数据库文件的方式执行所述目标用户程序,以实现与所述目标用户程序对应的软PLC控制功能。
本实施例中,通过执行所述目标数据库文件的方式执行所述目标用户程序,以实现与所述目标用户程序对应的软PLC控制功能。进一步的,通过执行所述SQLite数据库中的多个所述目标数据库文件的方式执行多个对应的所述目标用户程序,以实现与多个所述目标用户程序对应的多个软PLC控制功能。由于每个PLC程序拥有一个独立的数据库(.db文件),因此通过执行不同的数据库文件,不仅可实现在不同的PLC程序之间切换,还可以同时执行不同的PLC程序。移植简单,采用纯C编程,使用环境仅需要SQLite,不受硬软件平台限制,无需针对各种操作系统进行适配。
本实施例中,软PLC的程序执行依然遵循PLC的循环扫描执行方式。在正常运行模式下,其执行流程如图3所示。在编译完成、系统初始化且正常运行模式下,将所述预设数据库中的所述资源数据中的输入寄存器数据表复制至输入缓存表以进行输入刷新操作,输入刷新也即将数据库中的输入寄存器X数据表复制到缓存X数据表中。然后将程序运行指针指向程序开头,开始按照顺序执行的方式执行所述运行程序中的指令,当读取指令为结束指令,则将所述预设数据库中的输出缓存表复制至输出寄存器数据表以进行输出刷新操作。当读取指令为结束指令时程序执行结束,进行输出刷新也即将数据库中的缓存Y数据表复制到输出寄存器Y数据表中。接着监测用户是否需要进行周期间处理,不需要直接重新开始循环,需要周期处理则等周期处理完成后再重新开始循环。
当读取程序指针处的指令为非结束指令,则从所述预设数据库中读取执行所需参数以执行所述非结束指令并将相应的输出结果写入所述预设数据库中。不难理解,在此之前可以先判读是否需要参数,如果需要则从数据库读取执行需要的参数并执行指令,如指令有输出则将执行结果写入数据库中。如果不需要则直接判断所述非结束指令是否发生指针跳转,如果否,则将程序运行指针后移以按照顺序执行的方式执行所述运行程序中的指令。如果所述非结束指令发生指针跳转,则判断所述非结束指令是否为程序调用,如果是,则对当前执行变量进行入栈操作,并跳转至与程序调用对应的程序;如果否,则判断所述非结束指令是否为程序调用后返回,如果是,则对调用前的执行变量进行出栈操作,并跳转至与程序调用对应的程序。也即判断指令是否为涉及程序跳转,如果涉及则进一步判断指令是否为程序调用,如果是则需先对当前执行变量进行入栈,入栈后将程序指令更改为跳转目标,此时本条指令结束,指针后移执行下一条指令。如果不是程序调用则还需判断指令是否为调用程序后返回,如果是则需先对调用前的执行变量进行出栈。
可见,本申请实施例先获取目标用户程序并利用软PLC组件对所述目标用户程序进行解析;其中,所述软PLC组件为在预先安装在终端程序上的组件;然后利用所述软PLC组件将解析后的所述目标用户程序映射至预设数据库中得到与所述目标用户程序对应的目标数据库文件,并将所述预设数据库与所述终端程序运行平台建立链接关系;最后通过执行所述目标数据库文件的方式执行所述目标用户程序,以实现与所述目标用户程序对应的软PLC控制功能。本申请实施例在安装软PLC组件的基础上,利用软PLC组件将目标用户程序映射至预设数据库并建立与终端程序运行平台的链接关系,通过将数据库作为运行环境来执行相应的用户程序,提高开发效率。同时,以执行数据库文件的方式执行用户程序的方式也即采用数据库作为用户接口的方式,不受限于软硬件平台,无需针对各不同的操作系统进行适配性修改以实现跨平台移植。
参见图4所示,本申请实施例还相应公开了一种软PLC控制功能实现装置,包括:
获取模块11,用于获取目标用户程序并利用软PLC组件对所述目标用户程序进行解析;其中,所述软PLC组件为在预先安装在终端程序上的组件;
映射模块12,用于利用所述软PLC组件将解析后的所述目标用户程序映射至预设数据库中得到与所述目标用户程序对应的目标数据库文件,并将所述预设数据库与所述终端程序运行平台建立链接关系;
执行模块13,用于通过执行所述目标数据库文件的方式执行所述目标用户程序,以实现与所述目标用户程序对应的软PLC控制功能。
可见,本申请实施例先获取目标用户程序并利用软PLC组件对所述目标用户程序进行解析;其中,所述软PLC组件为在预先安装在终端程序上的组件;然后利用所述软PLC组件将解析后的所述目标用户程序映射至预设数据库中得到与所述目标用户程序对应的目标数据库文件,并将所述预设数据库与所述终端程序运行平台建立链接关系;最后通过执行所述目标数据库文件的方式执行所述目标用户程序,以实现与所述目标用户程序对应的软PLC控制功能。本申请实施例在安装软PLC组件的基础上,利用软PLC组件将目标用户程序映射至预设数据库并建立与终端程序运行平台的链接关系,通过将数据库作为运行环境来执行相应的用户程序,提高开发效率。同时,以执行数据库文件的方式执行用户程序的方式也即采用数据库作为用户接口的方式,不受限于软硬件平台,无需针对各不同的操作系统进行适配性修改以实现跨平台移植。
在一些具体实施例中,所述获取模块11,具体包括:
判断单元,用于获取目标用户程序并判断所述目标程序是否为编译后程序,如果是,则利用所述软PLC组件对所述目标用户程序进行解析;
编译单元,用于如果否,则对所述目标用户程序进行编译,并利用所述软PLC组件对编译后的所述目标程序进行解析。
在一些具体实施例中,所述映射模块12,具体用于利用所述软PLC组件将与解析后的所述目标用户程序对应的资源数据、程序数据、运行数据及运行调试接口数据存储至所述预设数据库中,以得到与所述目标用户程序对应的目标数据库文件;其中,所述资源数据为与外围设备进行交互的变量数据,所述程序数据为所述目标用户程序的指令数据,所述运行数据为程序运行后台数据,所述运行调试数据为运行方式控制数据。
在一些具体实施例中,所述执行模块13,具体包括:
输入刷新单元,用于将所述预设数据库中的所述资源数据中的输入寄存器数据表复制至输入缓存表以进行输入刷新操作;
输出刷新单元,用于按照顺序执行的方式执行所述运行程序中的指令,当读取指令为结束指令,则将所述预设数据库中的输出缓存表复制至输出寄存器数据表以进行输出刷新操作;
参数读取单元,用于当读取指令为非结束指令,则从所述预设数据库中读取执行所需参数以执行所述非结束指令并将相应的输出结果写入所述预设数据库中;
跳转判断单元,用于判断所述非结束指令是否发生指针跳转,如果否,则将程序运行指针后移以按照顺序执行的方式执行所述运行程序中的指令;
入栈单元,用于如果所述非结束指令发生指针跳转,则判断所述非结束指令是否为程序调用,如果是,则对当前执行变量进行入栈操作,并跳转至与程序调用对应的程序;
出栈单元,用于如果否,则判断所述非结束指令是否为程序调用后返回,如果是,则对调用前的执行变量进行出栈操作,并跳转至与程序调用对应的程序。
在一些具体实施例中,当所述预设数据库为SQLite数据库,所述执行模块13,具体用于通过执行所述SQLite数据库中的多个所述目标数据库文件的方式执行多个对应的所述目标用户程序,以实现与多个所述目标用户程序对应的多个软PLC控制功能。
进一步的,本申请实施例还提供了一种电子设备。图5是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图5为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的软PLC控制功能实现方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的软PLC控制功能实现方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223可以包括电子设备20收集到的用户程序。
进一步的,本申请实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的软PLC控制功能实现方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的软PLC控制功能实现方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (9)

1.一种软PLC控制功能实现方法,其特征在于,包括:
获取目标用户程序并利用软PLC组件对所述目标用户程序进行解析;其中,所述软PLC组件为在预先安装在终端程序上的组件;
利用所述软PLC组件将解析后的所述目标用户程序映射至预设数据库中得到与所述目标用户程序对应的目标数据库文件,并将所述预设数据库与所述终端程序的运行平台建立链接关系;
通过执行所述目标数据库文件的方式执行所述目标用户程序,以实现与所述目标用户程序对应的软PLC控制功能;
所述利用所述软PLC组件将解析后的所述目标用户程序映射至预设数据库中得到与所述目标用户程序对应的目标数据库文件,包括:
利用所述软PLC组件将与解析后的所述目标用户程序对应的资源数据、程序数据、运行数据及运行调试接口数据存储至所述预设数据库中,以得到与所述目标用户程序对应的目标数据库文件;其中,所述资源数据为与外围设备进行交互的变量数据,所述程序数据为所述目标用户程序的指令数据,所述运行数据为程序运行后台数据,所述运行调试接口数据为运行方式控制数据。
2.根据权利要求1所述的软PLC控制功能实现方法,其特征在于,所述获取目标用户程序并利用软PLC组件对所述目标用户程序进行解析,包括:
获取目标用户程序并判断所述目标用户程序是否为编译后程序,如果是,则利用所述软PLC组件对所述目标用户程序进行解析;
如果否,则对所述目标用户程序进行编译,并利用所述软PLC组件对编译后的所述目标用户程序进行解析。
3.根据权利要求1所述的软PLC控制功能实现方法,其特征在于,所述通过执行所述目标数据库文件的方式执行所述目标用户程序,以实现与所述目标用户程序对应的软PLC控制功能,包括:
将所述预设数据库中的所述资源数据中的输入寄存器数据表复制至输入缓存表以进行输入刷新操作;
按照顺序执行的方式执行所述目标用户程序中的指令,当读取指令为结束指令,则将所述预设数据库中的输出缓存表复制至输出寄存器数据表以进行输出刷新操作。
4.根据权利要求3所述的软PLC控制功能实现方法,其特征在于,所述按照顺序执行的方式执行所述目标用户程序中的指令之后,还包括:
当读取指令为非结束指令,则从所述预设数据库中读取执行所需参数以执行所述非结束指令并将相应的输出结果写入所述预设数据库中;
判断所述非结束指令是否发生指针跳转,如果否,则将程序运行指针后移以按照顺序执行的方式执行所述目标用户程序中的指令。
5.根据权利要求4所述的软PLC控制功能实现方法,其特征在于,所述判断所述非结束指令是否发生指针跳转,包括:
如果所述非结束指令发生指针跳转,则判断所述非结束指令是否为程序调用,如果是,则对当前执行变量进行入栈操作,并跳转至与程序调用对应的程序;
如果否,则判断所述非结束指令是否为程序调用后返回,如果是,则对调用前的执行变量进行出栈操作,并跳转至与程序调用对应的程序。
6.根据权利要求1至5任一项所述的软PLC控制功能实现方法,其特征在于,所述预设数据库为SQLite数据库;
相应的,所述通过执行所述目标数据库文件的方式执行所述目标用户程序,以实现与所述目标用户程序对应的软PLC控制功能,包括:
通过执行所述SQLite数据库中的多个所述目标数据库文件的方式执行多个对应的所述目标用户程序,以实现与多个所述目标用户程序对应的多个软PLC控制功能。
7.一种软PLC控制功能实现装置,其特征在于,包括:
获取模块,用于获取目标用户程序并利用软PLC组件对所述目标用户程序进行解析;其中,所述软PLC组件为在预先安装在终端程序上的组件;
映射模块,用于利用所述软PLC组件将解析后的所述目标用户程序映射至预设数据库中得到与所述目标用户程序对应的目标数据库文件,并将所述预设数据库与所述终端程序的运行平台建立链接关系;
执行模块,用于通过执行所述目标数据库文件的方式执行所述目标用户程序,以实现与所述目标用户程序对应的软PLC控制功能;
所述映射模块,用于利用所述软PLC组件将与解析后的所述目标用户程序对应的资源数据、程序数据、运行数据及运行调试接口数据存储至所述预设数据库中,以得到与所述目标用户程序对应的目标数据库文件;其中,所述资源数据为与外围设备进行交互的变量数据,所述程序数据为所述目标用户程序的指令数据,所述运行数据为程序运行后台数据,所述运行调试接口数据为运行方式控制数据。
8.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至6任一项所述的软PLC控制功能实现方法。
9.一种计算机可读存储介质,其特征在于,用于存储计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至6任一项所述的软PLC控制功能实现方法。
CN202111407170.8A 2021-11-24 2021-11-24 一种软plc控制功能实现方法、装置、设备及存储介质 Active CN114237146B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111407170.8A CN114237146B (zh) 2021-11-24 2021-11-24 一种软plc控制功能实现方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111407170.8A CN114237146B (zh) 2021-11-24 2021-11-24 一种软plc控制功能实现方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN114237146A CN114237146A (zh) 2022-03-25
CN114237146B true CN114237146B (zh) 2024-04-05

Family

ID=80750966

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111407170.8A Active CN114237146B (zh) 2021-11-24 2021-11-24 一种软plc控制功能实现方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114237146B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114706590B (zh) * 2022-05-05 2023-06-13 北京万昇智能科技有限公司 Plc应用包生成方法、plc应用执行方法及相关装置和系统
CN115857428B (zh) * 2023-02-02 2023-06-16 杭州未名信科科技有限公司 一种控制plc设备的方法、装置、存储介质及终端
CN118092306A (zh) * 2024-04-26 2024-05-28 南京实点电子科技有限公司 Di信号采集方法、装置、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103823435A (zh) * 2014-02-08 2014-05-28 滁州市西控电子有限公司 一种基于软PLC的SuperView系统
CN104239115A (zh) * 2014-07-24 2014-12-24 汕头大学 一种plc编程语言的编译方法
CN104317236A (zh) * 2014-09-29 2015-01-28 上海电机学院 基于软plc技术的无线传感器网络控制终端

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103823435A (zh) * 2014-02-08 2014-05-28 滁州市西控电子有限公司 一种基于软PLC的SuperView系统
CN104239115A (zh) * 2014-07-24 2014-12-24 汕头大学 一种plc编程语言的编译方法
CN104317236A (zh) * 2014-09-29 2015-01-28 上海电机学院 基于软plc技术的无线传感器网络控制终端

Also Published As

Publication number Publication date
CN114237146A (zh) 2022-03-25

Similar Documents

Publication Publication Date Title
CN114237146B (zh) 一种软plc控制功能实现方法、装置、设备及存储介质
Neto et al. MARTe: A multiplatform real-time framework
CN110149800B (zh) 一种用于处理与源程序的源代码相关联的抽象语法树的装置
US11579856B2 (en) Multi-chip compatible compiling method and device
US5490266A (en) Process oriented logic simulation having stability checking
EP3273368B1 (en) Systems and methods for aggregating implicit and explicit event code of executable models
CN105204837B (zh) 一种逻辑编程的实现方法和装置
CN112882718A (zh) 编译处理方法、装置、设备及存储介质
CN107463421B (zh) 一种静态流程模型的编译执行方法及系统
CN115390809A (zh) 一种仿真调度方法及系统
Khatchadourian et al. [Engineering Paper] A Tool for Optimizing Java 8 Stream Software via Automated Refactoring
CN112400162B (zh) 模拟装置及其方法、以及ecu装置
CN115268879A (zh) 代码处理方法、装置、电子设备及存储介质
CN114064114A (zh) 一种动态库生成方法及装置
Naderlinger Simulating preemptive scheduling with timing-aware blocks in Simulink
Feng DCharts, a formalism for modeling and simulation based design of reactive software systems
Peraldi-Frati et al. Timing modeling with autosar-current state and future directions
CN105278445A (zh) 同步发电机励磁调节器控制程序的二次开发方法
US11714609B2 (en) Automatic generation of source code implementing a regular expression
Marcato et al. Pysmlib: A Python finite state machine library for EPICS
Asghar et al. Efficient debugging of large algorithmic modelica applications
Resmerita et al. Verification of embedded control systems by simulation and program execution control
CN112748905B (zh) 基础库的初始化调用方法、装置、电子设备及存储介质
Naderlinger Simulating execution time variations in MATLAB/Simulink
CN108181834B (zh) 基于pscad/emtdc的半实物仿真的方法以及系统

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
GR01 Patent grant
GR01 Patent grant