支持多种cpu构造plc控制器的实现方法

文档序号:6293008阅读:201来源:国知局
专利名称:支持多种cpu构造plc控制器的实现方法
技术领域
本发明涉及PLC控制器构造技术,特别地,涉及一种支持多种CPU构造 PLC控制器的实现方法。
背景技术
作为现代工业控制设备三大支柱之一的可编程逻辑控制器(Progmmmable Logic Controller, PLC),以其较高的性价比在工业控制中得到广泛应用。但是, 由于可编程逻辑控制器中采用嵌入式芯片,控制程序只能针对PLC采用的特定 芯片进行幵发。由于嵌入式芯片品牌和型号的多样性,使得用户程序移植困难, 在更换了嵌入式芯片后,需要重复开发控制程序,使得开发效率低。

发明内容
本发明的目的在于针对现有技术的不足,提供一种支持多种CPU构造PLC 控制器的实现方法,提高效率。
本发明的目的是通过以下技术方案来实现的 一种支持多种CPU构造PLC 控制器的实现方法,包括以下步骤
(1) 实现指令翻译框架,实现IL或梯形图向汇编指令的转换;
(2) 根据通用引擎和针对CPU的引擎定制实现引擎构造;
(3) 选择CPU,根据应用通过图形界面配置硬件资源;
(4) 用户根据应用设计逻辑控制程序;
(5) 代码框架融合用户设计的逻辑控制程序生成可执行文件。 本发明的有益效果是通过支持多种CPU构造PLC控制器的实现方法快速
实现基于各种CPU的PLC控制器的开发,提高开发效率,方便控制程序在不同
CPU平台的移植。


图1是本发明支持多种CPU构造PLC控制器的软件实现方法结构框图2是基于支持多种CPU构造PLC控制器的软件实现方法设计流程图。
具体实施例方式
本发明为解决上述问题而提供一种支持多种CPU构造PLC控制器的软件实 现方法,分为核心部分和应用设计两大部分。核心部分实现指令框架、通用引 擎构造和CPU构造,实现硬件基础平台的构建。应用设计针对特定应用对首先 对硬件基础平台进行定制,选择需要用到的硬件资源和设置各类硬件参数,定 制部分通过条件编译技术和核心部分的硬件基础平台共同编译得到应用的代码 框架。然后用户根据实际的控制需要,通过IL或梯形图,设计逻辑控制程序, 代码框架和用户设计的逻辑控制程序编译后得到针对具体应用的PLC控制程 序,控制程序以二进制的方式通过BootLoader方式下载运行。
指令框架部分实现了 PLC算法指令到不同CPU汇编指令的转变,系统提供 了指令翻译框架,用户只要根据系统要求格式提供指令翻译规则宏库,系统自 动实现PLC算法指令到各种CPU平台下汇编指令的转换。
引擎构造实现通用引擎的描述,包括初始化、定时器、中断、通信等。通 用引擎包括了各类CPU共有的属性和框架,为针对特定CPU的引擎构造提供统 一的结构。
CPU构造针对特定CPU平台,设置CPU的各类硬件参数,包括数据总线、 输入输出端口数量和类型、定时器、PWM路数、串口、 SPI 口、 12C等。CPU 构造信息注入通用引擎,实现针对CPU的特定引擎的构造。
应用控制部分的设计平台,向用户提供IL或梯形图设计环境,用户根据具 体的控制需要设计逻辑控制程序,系统根据用户的设计结果将HL或梯形图程序 按转换成汇编指令,和核心部分及硬件构造部分生成的指令共同编译成可执行 文件。
本发明提供一种嵌入式软件自动生成技术和方法,结构参见图l,设计流程 参见图2。首先实现指令翻译框架,实现IL或梯形图向汇编指令的转换(步骤 101),根据通用引擎和针对CPU的引擎定制实现引擎构造(步骤102);选择 CPU,根据应用通过图形界面配置硬件资源(步骤103);用户根据应用设计逻辑控制程序(步骤104);代码框架融合用户设计的逻辑控制程序生成可执行文件(步
骤105)。
开放式的指令翻译框架,实现各类指令向汇编指令的转换。系统提供宏框 架接口,在宏中定义了指令翻译规则,系统根据宏定义实现指令翻译,包括指
令功能和参数表示规则。当更换了其他CPU后,只需替换相应的宏框架,即可 实现针对选择CPU的指令翻译。
通过对CPU的硬件属性设置实现CPU的构造,包括数据总线、输入输出端 口数量和类型、定时器、PWM路数、串口、 SPI 口、 12C和外部中断个数进行 设置。数据总线设置主要设置其数据宽度,包括8位、16位和32位等。端口属 性设置端口类型、端口个数、数据输入和输出特性,端口类型包括数字型和字 符型,输入和输出特性包括1~5次型。定时器设置首先设置用到的定时器个数, 对每个定吋器设置其PWM路数和是否硬件技术。
根据CPU构造信息生成引擎框架,包括各类CPU相关资源定义。主体部分 实现快速、慢速、lms定时器、10ms定时器、100ms定时器和1000ms定时器 操作。
通过文件实现端口定义和端口操作两部分,根据不同CPU进行定义如下
a. 真正CPU输入口数据寄存器重新映射PLCIN000—PLCIN***,如该CPU 输入口为多次型输入口 (即一次输入操作,需要对应多个寄存器),则需重新映 射所有输入数据寄存器PLCIN000R0 — PLCIN000R* , PLCIN000R0 — PLCIN* **R*;
b. 真正CPU输入口输入配置寄存器重新映射(可选),PLCINCFGOOO— PLCINCFG***,如该CPU输入配置为多次型配置口 (即配置输入操作,需要对 应多个寄存器),则需重新映射所有输入配置寄存器PLCINCFGO00CO — PLCINCFGOOOC* , PLCINCFG000C0—PLCINCFG**";
c. 真正CPU输出口数据寄存器重新映射PLCOUT000—PLCOUP"^,如该 CPU输出口为多次型输出口 (即一次输出操作,需要对应多个寄存器),则需重 新映射所有输出数据寄存器PLCOUT000S0—PLCOUT000S*, PLCOUTOOOSO— PLCOUT000***S*;
d. 真正CPU输出口输出配置寄存器重新映射(可选),PLCOUTCFG000 —PLCOUTCFG***,如该CPU输出配置为多次型配置口 (即配置输出操作,需 要对应多个寄存器),则需重新映射所有输入配置寄存器PLCOUTCFGOOOCO— PLCOUTCFG000C*, PLCOUTCFG000C0—PLCOUTCFG000***C*;e.如是当前是编写中/大型系统引擎,则还需进行CASS端口映射工作, 中型系统,PLCMIDIN000—PLCMIDIN007映射为该端口译码值,大型系统, PLCMIDINOOO—PLCMIDIN007映射为该端口对应的地址空间。 端口操作代码分成以下几个部分
a. 将整个直接CPU端口 PLCPORT配置成输入的宏定义
#defme CfglnputPort(PLCPORT) ... PLCPORT为相应的输入端口配置寄存

b. 将整个直接端口 PLCPORT配置成输出
Mefme CfgOutputPort(PLCPORT) ...PLCPORT为相应的输出端口配置寄存

c. 将直接CPU端口 PLCPORT第PROTNUM个管脚配置成输入 MefmeCfglnputPortBit(PLCPORT,PROTNUM) …
d. 将直接端口 PLCPORT第PROTNUM个管脚配置成输出 #defme CfgOutputPortBit(PLCPORT,PROTNUM)...
e. 将直接CPU端口 PLCPORT值读入到内存单元MemData中
#define ReadSingleDirectPort(MemData,PLCPORT) ...PLCPORT为对应的端 口输入数据寄存器
f. 将值MemData写入到直接端口 PLCPORT中
#defme WriteSingleDirectPort (MemData,PLCPORT) ...PLCPORT为对应的端 口输出数据寄存器
g. 将直接端口 PLCPORT第PORTNUM管脚的值读入到MemData中 #define ReadSingleDirectPortBit(MemData,PLCPORT,PORTNUM)
h. 将值MemData写入到直接端口 PLCPORT第PORTNUM管脚中 #defme WriteSingleDirectPortBit(MemData,PLCPORT,PORTNUM)
i. 将CASS端口 PLCPORT的值读入到MemData中 弁defmeReadSinglePort(MemData,PLCPORT;)...
PLCPORT因系统型号不同而不同,小型系统中为CPU输入端口数据寄存 器,中型系统中为该端口对应的译码值,大型系统中为该端口对应的地址空间 j.将值MemData写入到CASS端口 PLCPORT中 #defme WriteSinglePort(MemData,PLCPORT)...
PLCPORT因系统型号不同而不同,小型系统中为CPU输入端口数据寄存 器,中型系统中为该端口对应的译码值,大型系统中为该端口对应的地址空间。引擎中存在一个1MS的时钟节拍,该时钟节拍用于判断各个事件的时标,各个 事件包括快速周期控制事件、慢速周期控制事件、lms软定时器事件、10ms软 定时器事件、100ms软定时器事件以及通信事件,同时定义允许或禁止"全局中 断代码",以及定时器接口函数定义。
通过上述步骤实现了一个通用引擎的定义,在选择某款已构造的CPU引擎 进行PLC控制器时,根据需要和CPU引擎定义对硬件资源进行配置。
配置信息通过XML语言进行描述,描述包括对象和属性两部分。配置的信 息生成硬件定义代码文件,对CPU资源使用情况进行定义和配置,以核心部分 的CPU构造为基础,对CPU和外围电路进行配置,包括系统设置、1/0设置, 中断设置、快速计数器设置和内存设置。系统设置完成通讯(串口选择及相关 属性)、开关线及管脚、运行方式、模拟部件和时钟配置;I/O设置对输入输出 端口、使用方式和延时时间进行设置,使用方式包括快速、慢速逻辑的选择; 中断设置对串口使用中断、外部中断的选择及触发方式(高电平、低电平、上 跳变、下跳变)、定时器中断的选择和定时数、SPI 口以及I2C 口进行使用方式 和地址进行设置,并对每类中断指定处理函数名;快速计数器设置指定定时器 功能,包括lms定时器、PWM输出和快速计数器三类,对快速计数器设置其脉 冲方式,包括上跳变和下跳变。对于外部中断型快速计数器设置其外部中断名 和脉冲方式;内存设置描述是否扩展内存及扩展内存的大小,辅助继电器个数、 状态寄存器个数、软计数器个数、整型变量个数、软定时器个数、局部变量个 数,EEPROM设置。
通过硬件资源配置结合CPU构造,通过条件编译方式可以实现应用控制程 序框架的快速生成。
应用设计部分的软件设计平台,平台提供IL指令和梯形图两种设计方式。 1L指令通过核心部分实现的指令框架转换成汇编指令。梯形图向汇编指令的转 换,首先转换成IL指令,再转换成汇编指令。在设计时,先用XML描述梯形 图的设计结果,转换时将其信息存入一个二维数组中;在读取xml文件时,标 Mi梯形图中每行的末尾单元。分梯级将二维数组中各单元的信息构造有向图 (AVO图);最后扫描有向图,得出一个图中个顶点间的逻辑关系;根据得出的 逻辑关系及对应顶点信息,根据规则将其翻译成指令表。
以上所述仅为本发明一个实施例,当不能以此限制本发明范围,凡依据本 发明所做的结构上的变化、功能模块的增删,只要不失本发明的要义所在,都 应视为落入本发明保护范围之内受到制约。
权利要求
1.一种支持多种CPU构造PLC控制器的实现方法,其特征在于,包括以下步骤(1)实现指令翻译框架,实现IL或梯形图向汇编指令的转换。(2)根据通用引擎和针对CPU的引擎定制实现引擎构造。(3)选择CPU,根据应用通过图形界面配置硬件资源。(4)用户根据应用设计逻辑控制程序。(5)代码框架融合用户设计的逻辑控制程序生成可执行文件。
全文摘要
本发明公开了一种支持多种CPU构造PLC控制器的实现方法,本发明包括核心构造部分和应用设计两大部分。核心构造部分包括PLC指令框架、PLC引擎构造和CPU平台构造三部分,PLC指令框架实现PLC指令算法和汇编代码的转换,PLC引擎构造实现通用引擎的结构和框架定制,CPU构造实现各种CPU属性的定制和描述。应用设计部分包括硬件构造平台和软件设计平台两部分,硬件设计平台根据应用和核心部分的CPU构造,对各类硬件资源进行定制和描述,包括I/O、中断、定时器和可配置软元件等。软件设计平台实现IL指令编写和梯形图设计,向用户提供逻辑控制程序设计平台,用户逻辑控制程序和硬件构造平台对CPU的构造结果结合实现PLC控制器的定制开发。
文档编号G05B19/05GK101303580SQ20081006255
公开日2008年11月12日 申请日期2008年6月24日 优先权日2008年6月24日
发明者义 严, 赵建勇 申请人:杭州义益自动化有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1