一种在plc梯形图中内嵌入c语言的方法

文档序号:1936766 发布日期:2021-12-07 浏览:20次 >En<

阅读说明:本技术 一种在plc梯形图中内嵌入c语言的方法 (Method for embedding C language into PLC ladder diagram ) 是由 龙敦梅 于 2021-09-09 设计创作,主要内容包括:本发明公开了PLC领域的一种在PLC梯形图中内嵌入C语言的方法,包括在组态软件里提供一个C语言函数的编写界面,使用编译工具将C语言的编译成可以在嵌入式系统里头使用的机器语言,并获取到C函数的入口地址;使用组态软件将生成的机器码与映射关系下载到PLC;在PLC中,将机器码放入相应的物理地址,然后通过分散加载的方式加载入了PLC;用户程序在PLC的梯形图调用C语言函数时,PLC通过下载的映射关系得到C函数的入口地址,并将入口地址转换成函数指针,通过函数指针跳转到用户C函数中执行,该在PLC梯形图中内嵌入C语言的方法,使得用户可在PLC系统中通过C语言进行复杂的算法,运行效率高,简化了编程,无需重新开发编译器系统和移植开源编译器。(The invention discloses a method for embedding C language in a PLC ladder diagram in the field of PLC, which comprises the steps of providing a compiling interface of a C language function in configuration software, compiling the C language into a machine language which can be used in an embedded system by using a compiling tool, and acquiring an entry address of the C function; downloading the generated machine code and the mapping relation to a PLC by using configuration software; in the PLC, the machine code is put into a corresponding physical address, and then the machine code is loaded into the PLC in a scattered loading mode; when a user program calls a C-language function in a ladder diagram of the PLC, the PLC obtains an entry address of the C-function through a downloaded mapping relation, converts the entry address into a function pointer, jumps to the C-function of the user through the function pointer and executes the C-language function.)

一种在PLC梯形图中内嵌入C语言的方法

技术领域

本发明涉及PLC领域,具体为一种在PLC梯形图中内嵌入C语言的方法。

背景技术

可编程逻辑控制器(PLC)和工业控制领域具有广泛的应用,梯形图(LD)是PLC使用最多的编程语言,具有使用简单,直观明了的优点,但它不适合实现复杂算法,C语言相对于梯形图语言来说,运行效率高,在做相对复杂的算法时,编程相对简单,将C语言加入PLC中执行,需要将C语言转换成机器码,需要经过1.预处理(Preprocessing),2.编译(Compilation),3.汇编(Assemble),4.链接(Linking)等步骤,也就是需要自己做一个编译器系统,工程量巨大,而且如果需要更换主芯片的话,又需要重新开发编译系统,如果将Gcc等开源编译器移植进入PLC固件,一来Gcc代码量巨大,移植难度高,二来增加PLC RAM和ROM大小,增加PLC的硬件成本,为此我们提出了一种在PLC梯形图中内嵌入C语言的方法。

发明内容

本发明的目的在于提供一种在PLC梯形图中内嵌入C语言的方法,以解决上述背景技术中提出了重新开发编译系统工程量大,移植开源编译器,移植难度高,增加硬件成本的问题。

为实现上述目的,本发明提供如下技术方案:一种在PLC梯形图中内嵌入C语言的方法,包括如下步骤:

步骤一:在组态软件里提供一个C语言函数的编写界面,使用编译工具将C语言的编译成可以在嵌入式系统里头使用的机器语言,并获取到C函数的入口地址;

步骤二:使用组态软件将生成的机器码与映射关系下载到PLC;

步骤三:在PLC中,将机器码放入相应的物理地址,相当于将用户编写的程序看作PLC固件的一部分,然后通过分散加载的方式加载入了PLC;

步骤四:用户程序在PLC的梯形图调用C语言函数时,PLC通过下载的映射关系得到C函数的入口地址,并将入口地址转换成函数指针,通过函数指针跳转到用户C函数中执行。

优选的,所述步骤一中提供一个C语言函数的编写界面,具体流程包括:提供编写C函数接口,然后用户编写C函数,最后在梯形图中调用C函数。

与现有技术相比,本发明的有益效果是:该在PLC梯形图中内嵌入C语言的方法,通过使用编译工具将C语言编译成可以在PLC系统中使用的机器语言,并在PLC梯形图中内嵌入C语言,使得用户可在PLC系统中通过C语言进行复杂的算法,运行效率高,简化了编程,无需重新开发编译器系统和移植开源编译器。

附图说明

图1为本发明方法流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供一种在PLC梯形图中内嵌入C语言的方法,请参阅图1,包括如下步骤;

步骤一:在组态软件里提供一个C语言函数的编写界面,使用编译工具将C语言的编译成可以在嵌入式系统里头使用的机器语言,并获取到C函数的入口地址;

步骤二:使用组态软件将生成的机器码与映射关系下载到PLC;

步骤三:在PLC中,将机器码放入相应的物理地址,相当于将用户编写的程序看作PLC固件的一部分,然后通过分散加载的方式加载入了PLC;

步骤四:用户程序在PLC的梯形图调用C语言函数时,PLC通过下载的映射关系得到C函数的入口地址,并将入口地址转换成函数指针,通过函数指针跳转到用户C函数中执行。

其中,步骤一中提供一个C语言函数的编写界面,具体流程包括:提供编写C函数接口,然后用户编写C函数,最后在梯形图中调用C函数。

综上所述,本发明中通过使用编译工具将C语言编译成可以在PLC系统中使用的机器语言,并在PLC梯形图中内嵌入C语言,使得用户可在PLC系统中通过C语言进行复杂的算法,运行效率高,简化了编程,无需重新开发编译器系统和移植开源编译器。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。

虽然在上文中已经参考实施例对本发明进行了描述,然而在不脱离本发明的范围的情况下,可以对其进行各种改进并且可以用等效物替换其中的部件。尤其是,只要不存在结构冲突,本发明所披露的实施例中的各项特征均可通过任意方式相互结合起来使用,在本说明书中未对这些组合的情况进行穷举性的描述仅仅是出于省略篇幅和节约资源的考虑。因此,本发明并不局限于文中公开的特定实施例,而是包括落入权利要求的范围内的所有技术方案。

5页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:还款计划生成方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!