首页> 中国专利> 一种基于STM32处理器的编译型PLC控制器系统及实现方法

一种基于STM32处理器的编译型PLC控制器系统及实现方法

摘要

本发明提供了一种基于STM32处理器的编译型PLC控制器系统及实现方法。所述基于STM32处理器的编译型PLC控制器系统包括PLC控制器和PC端开发软件,所述PLC控制器与所述PC端开发软件可通信连接,所述PLC控制器包括Boot.bin引导程序和用户程序,所述PC端开发软件包括模板工程、代码编译器及通信模块,所述模板工程用于新建用户工程,所述代码编译器将所述用户工程编译成可执行程序,所述PC端开发软件通过所述通信模块与所述Boot.bin引导程序中的通信模块通信连接,使所述可执行程序在所述PLC控制器中运行,所述资源分配表文件显示每个变量的运行地址,所述代码编译器为基于STM32处理器的代码编译器。本发明提高PLC控制器的运行效率、降低用户程序的调试难度。

著录项

  • 公开/公告号CN112269579A

    专利类型发明专利

  • 公开/公告日2021-01-26

    原文格式PDF

  • 申请/专利权人 中电凯杰科技有限公司;

    申请/专利号CN202011202853.5

  • 申请日2020-11-02

  • 分类号G06F8/41(20180101);G06F8/30(20180101);G06F11/36(20060101);G05B19/05(20060101);

  • 代理机构43220 长沙市护航专利代理事务所(特殊普通合伙);

  • 代理人莫晓齐

  • 地址 410129 湖南省长沙市经济技术开发区科技新城产业园

  • 入库时间 2023-06-19 09:41:38

说明书

技术领域

本发明涉及PLC控制器技术领域,特别涉及一种基于STM32处理器的编译型PLC控制器系统及实现方法。

背景技术

PLC控制器是一种广泛用于工业现场、数控系统、电力系统等领域的通用逻辑控制器,其主要由控制器设备对象和PC端开发软件两部分软件组成。其中控制器设备对象是用来实现对现场各种被控对象如电机、电磁阀、扬声器、指示灯等的控制的一个物理设备器件,其作用是控制现场的多种设备并使其按照设计的工作流程进行工作;而PC端开发软件就是一套设计工作流程的开发工具,供用户进行应用开发使用。PLC控制器使用IEC61131-3编程语言标准,使得PLC的应用相对于直接使用C语言或其他高级程序语言进行应用开发的专用控制器难度降低,因此被广泛使用。

目前市面上的PLC控制器分2种类型:编译型和解释型。解释型控制器需要在控制器中运行一个虚拟机对用户指令进行翻译执行,因为这种控制器在执行程序时需要先进行解释然后再执行因此控制器的运行效率不高;编译型控制器需要将用户代码编译成CPU可执行的二进制机器代码,加大了PC端软件开发难度,由于是可执行的二进制代码,其运行中很难进行干预,这样也加大了对用户程序的调试难度。

发明内容

本发明提供了一种基于STM32处理器的编译型PLC控制器系统及实现方法,其目的是为了解决背景技术中PLC控制器的运行效率不高、用户程序的调试难度大的技术问题。

为了达到上述目的,本发明提供的一种基于STM32处理器的编译型PLC控制器系统,包括PLC控制器和PC端开发软件,所述PLC控制器与所述PC端开发软件可通信连接,所述PLC控制器包括Boot.bin引导程序和用户程序,所述PC端开发软件包括模板工程、代码编译器及通信模块,所述模板工程用于新建用户工程,所述代码编译器将所述用户工程编译成可执行程序及资源分配表文件,所述PC端开发软件通过所述通信模块与所述Boot.bin引导程序中的通信模块通信连接,使所述可执行程序在所述PLC控制器中运行,所述代码编译器为基于STM32处理器的代码编译器。

优选地,所述PC端开发软件还包括UI配置软件,所述UI配置软件设计所述PC端开发软件界面。

优选地,新建所述用户工程具体包括如下步骤:

步骤1、编写ST脚本程序,添加包括变量、配置任务执行周期、属性的函数或常数;

步骤2、调用编译器模块将用户ST脚本程序简单映射为同等功能的C语言程序。

优选地,所述模板工程包括内置其中的用于变量读、写、程序控制功能的通信协议模块,所述Boot.bin引导程序包括内置其中的实现程序下载功能的通信模块,所述PLC端开发软件通过所述模板工程中内置的通信协议模块及所述Boot.bin引导程序中内置的通信模块与所述PLC控制器通信连接。

优选地,所述PC端开发软件还包括编译校正模块,所述编译校正模块通过windows管道技术将编译的所述可执行程序信息重新定位到软件信息输出窗口中显示,使用户辨别编译是否正确。

优选地,所述用户工程包括周期执行程序,用户配置调用周期参数,模板工程中为每一个周期执行程序动态生成一个结构体对象,所述结构体对象包括函数指针和时钟计数器,内置周期函数通过所述函数指针和时钟计数器不停地轮询每个所述结构体对象,查询调用时间是否到达,如果到达则调用执行结构体对象中的函数指针,否则继续轮询。

优选地,所述用户工程包括中断执行程序,用户配置中断号,根据中断号,PC端开发软件将在模板工程对应的中断处理函数中,调用用户中断处理函数,每个中断可以挂接多个中断处理函数,当对应的中断发生时,STM32处理器自动执行对应的中断处理函数。

优选地,所述PC端开发软件还包括程序调试模块,所述程序调试模块根据用户需要监控的变量名,在所生成的所述资源分配表文件中查询到所监控变量的地址,同时根据用户工程获取到所监控变量的类型,根据变量类型计算出变量占用空间大小,为用户所监控的变量生成了一个包含变量名称,变量运行地址以及变量占用内存空间大小的列表。

优选地,所述程序调试模块周期性轮序所有变量,通过读取命令将变量的地址及大小通过通信方式发送给所述PLC控制器,所述PLC控制器中的通信模块收到后,读取指定地址中指定长度的数据返回给所述PC端开发软件中的所述程序调试模块,以实时显示变量运行数值。

本发明提供的一种基于STM32处理器的编译型PLC控制器系统的实现方法,包括如下步骤:

步骤S1、直接将PLC的一种编程语言ST脚本语言映射为同等功能的C语言,并加入到新建用户工程中;

步骤S2、调用基于STM32处理器的代码编译器、连接器对新建用户工程进行编译,生成可执行程序和资源分配表文件;所述资源分配表文件显示每个变量的运行地址;

步骤S3、将可执行程序通过通信方式下载到PLC控制器中运行;

步骤S4、PC端开发软件根据资源分配表文件以通信方式读取变量数值显示,实现对用户程序的调试。

采用本发明将用户ST脚本程序映射为功能相同的C语言程序,然后根据工程配置分配C语言程序块,最后调用与CPU相关的STM32编译器生成可执行程序,使用了一种极其简便的方法实现了PLC开发软件最难的程序生成功能;同时利用生成的资源分配表文件(map文件)来获取变量所在地址,并根据用户变量类型,通过通信方式读取PLC控制器中变量实时数据,实现了对用户程序调试功能。PLC控制器的运行效率高,用户程序的调试难度小。

附图说明

图1为本发明的一种基于STM32处理器的编译型PLC控制器系统及实现方法的示意图。

具体实施方式

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。

本发明针对现有的问题,提供了一种基于STM32处理器的编译型PLC控制器系统,如图1所示,包括PLC控制器和PC端开发软件,所述PLC控制器与所述PC端开发软件可通信连接,所述PLC控制器包括Boot.bin引导程序和用户程序,所述PC端开发软件包括模板工程、代码编译器及通信模块,所述模板工程用于新建用户工程,所述代码编译器将所述用户工程编译成可执行程序及资源分配表文件,所述PC端开发软件通过所述通信模块与所述Boot.bin引导程序中的通信模块通信连接,使所述可执行程序在所述PLC控制器中运行,所述代码编译器为基于STM32处理器的代码编译器。

所述PC端开发软件还包括UI配置软件,所述UI配置软件设计所述PC端开发软件界面。

新建所述用户工程具体包括如下步骤:

步骤1、编写ST脚本程序,添加包括变量、配置任务执行周期、属性的函数或常数;

步骤2、调用编译器模块将用户ST脚本程序简单映射为同等功能的C语言程序;映射语法如下表1所示;变量映射;变量映射只涉及到变量类型映射,映射过程如下表2所示。

表1常用ST语言到C语言映射表

表2常用数据类型映射表

所述模板工程包括内置其中的用于变量读、写、程序控制功能的通信协议模块,所述Boot.bin引导程序包括内置其中的实现程序下载功能的通信模块,所述PLC端开发软件通过所述模板工程中内置的通信协议模块及所述Boot.bin引导程序中内置的通信模块与所述PLC控制器通信连接。

调用通信模块下载程序到PLC控制器运行。在模板工程中内置了用于变量读、写、程序控制等功能的通信协议模块,同时在Boot.bin程序中也内置了主要实现程序下载功能的通信模块,因此在翻译后软件根据模板工程生成的C语言工程中自动包含了具备通信功能的模块。PC端开发软件通过通信命令控制PLC控制器中CPU处理器重新启动,重新启动后,处理器自动调用Boot.bin程序,此时Boot.bin程序将与PC端开发软件进行通信,下载生成的可执行程序到控制器设备中,Boot.bin程序在下载完程序后自动调用程序执行。

所述PC端开发软件还包括编译校正模块,所述编译校正模块通过windows管道技术将编译的所述可执行程序信息重新定位到软件信息输出窗口中显示,使用户辨别编译是否正确。

调用基于STM32处理器的代码编译器、连接器对用户工程进行编译,生成可执行程序和资源分配表文件(.map文件)。PC端开发软件通过调用现有处理器专用编译工具链来对生成的C语言工程进行编译,同时通过windows管道技术将编译信息重定位到软件信息输出窗口中显示,告诉用户编译是否正确,成功编译后将生成STM32可执行程序,同时模板工程中已经配置了map文件生成,因此在编译成功后也会生成map文件,该文件主要用来告诉软件每个变量的运行地址。

程序分为周期执行程序和中断执行程序,根据用户对程序配置确定程序属于周期性还是中断类型。对于周期性程序用户还需要配置调用周期参数(单位:ms),对于中断类型程序,用户需要配置中断号,具体如下:

所述用户工程包括周期执行程序,用户配置调用周期参数,模板工程中为每一个周期执行程序动态生成一个结构体对象,所述结构体对象包括函数指针和时钟计数器,内置周期函数通过所述函数指针和时钟计数器不停地轮询每个所述结构体对象,查询调用时间是否到达,如果到达则调用执行结构体对象中的函数指针,否则继续轮询。

所述用户工程包括中断执行程序,用户配置中断号,根据中断号,PC端开发软件将在模板工程对应的中断处理函数中,调用用户中断处理函数,每个中断可以挂接多个中断处理函数,当对应的中断发生时,STM32处理器自动执行对应的中断处理函数。

所述PC端开发软件还包括程序调试模块,所述程序调试模块根据用户需要监控的变量名,在所生成的所述资源分配表文件中查询到所监控变量的地址,同时根据用户工程获取到所监控变量的类型,根据变量类型计算出变量占用空间大小,为用户所监控的变量生成了一个包含变量名称,变量运行地址以及变量占用内存空间大小的列表。

所述程序调试模块周期性轮序所有变量,通过读取命令将变量的地址及大小通过通信方式发送给所述PLC控制器,所述PLC控制器中的通信模块收到后,读取指定地址中指定长度的数据返回给所述PC端开发软件中的所述程序调试模块,以实时显示变量运行数值。

本发明的实施例提供的一种基于STM32处理器的编译型PLC控制器系统的实现方法,包括如下步骤:

步骤S1、直接将PLC的一种编程语言ST脚本语言映射为同等功能的C语言,并加入到新建用户工程中;

步骤S2、调用基于STM32处理器的代码编译器、连接器对新建用户工程进行编译,生成可执行程序和资源分配表文件;所述资源分配表文件显示每个变量的运行地址;

步骤S3、将可执行程序通过通信方式下载到PLC控制器中运行;

步骤S4、PC端开发软件根据资源分配表文件以通信方式读取变量数值显示,实现对用户程序的调试。

采用本发明所提供的一种基于STM32处理器的编译型PLC控制器系统,其技术优点体现如下:

将用户ST脚本程序映射为功能相同的C语言程序,然后根据工程配置分配C语言程序块,将ST语言及变量简单映射为C语言程序及变量;

最后调用与CPU相关的STM32编译器生成可执行程序,采用模板工程,通过将新生成的C语言程序分配到模板中形成新工程;使用了一种极其简便的方法实现了PLC开发软件最难的程序生成功能;

同时利用生成的资源分配表文件(map文件)来获取变量所在地址,通过对map文件解析完成对变量地址获取,并根据用户变量类型,通过通信方式读取PLC控制器中变量实时数据,实现了对用户程序调试功能。

PLC控制器的运行效率高,用户程序的调试难度小。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号