CN101303580A - 支持多种cpu构造plc控制器的实现方法 - Google Patents
支持多种cpu构造plc控制器的实现方法 Download PDFInfo
- Publication number
- CN101303580A CN101303580A CNA2008100625534A CN200810062553A CN101303580A CN 101303580 A CN101303580 A CN 101303580A CN A2008100625534 A CNA2008100625534 A CN A2008100625534A CN 200810062553 A CN200810062553 A CN 200810062553A CN 101303580 A CN101303580 A CN 101303580A
- Authority
- CN
- China
- Prior art keywords
- cpu
- plc
- platform
- design
- realizes
- 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
Images
Classifications
-
- 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
- Programmable Controllers (AREA)
Abstract
本发明公开了一种支持多种CPU构造PLC控制器的实现方法,本发明包括核心构造部分和应用设计两大部分。核心构造部分包括PLC指令框架、PLC引擎构造和CPU平台构造三部分,PLC指令框架实现PLC指令算法和汇编代码的转换,PLC引擎构造实现通用引擎的结构和框架定制,CPU构造实现各种CPU属性的定制和描述。应用设计部分包括硬件构造平台和软件设计平台两部分,硬件设计平台根据应用和核心部分的CPU构造,对各类硬件资源进行定制和描述,包括I/O、中断、定时器和可配置软元件等。软件设计平台实现IL指令编写和梯形图设计,向用户提供逻辑控制程序设计平台,用户逻辑控制程序和硬件构造平台对CPU的构造结果结合实现PLC控制器的定制开发。
Description
技术领域
本发明涉及PLC控制器构造技术,特别地,涉及一种支持多种CPU构造PLC控制器的实现方法。
背景技术
作为现代工业控制设备三大支柱之一的可编程逻辑控制器(ProgrammableLogic 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口、I2C等。CPU构造信息注入通用引擎,实现针对CPU的特定引擎的构造。
应用控制部分的设计平台,向用户提供IL或梯形图设计环境,用户根据具体的控制需要设计逻辑控制程序,系统根据用户的设计结果将IL或梯形图程序按转换成汇编指令,和核心部分及硬件构造部分生成的指令共同编译成可执行文件。
本发明提供一种嵌入式软件自动生成技术和方法,结构参见图1,设计流程参见图2。首先实现指令翻译框架,实现IL或梯形图向汇编指令的转换(步骤101),根据通用引擎和针对CPU的引擎定制实现引擎构造(步骤102);选择CPU,根据应用通过图形界面配置硬件资源(步骤103);用户根据应用设计逻辑控制程序(步骤104);代码框架融合用户设计的逻辑控制程序生成可执行文件(步骤105)。
开放式的指令翻译框架,实现各类指令向汇编指令的转换。系统提供宏框架接口,在宏中定义了指令翻译规则,系统根据宏定义实现指令翻译,包括指令功能和参数表示规则。当更换了其他CPU后,只需替换相应的宏框架,即可实现针对选择CPU的指令翻译。
通过对CPU的硬件属性设置实现CPU的构造,包括数据总线、输入输出端口数量和类型、定时器、PWM路数、串口、SPI口、I2C和外部中断个数进行设置。数据总线设置主要设置其数据宽度,包括8位、16位和32位等。端口属性设置端口类型、端口个数、数据输入和输出特性,端口类型包括数字型和字符型,输入和输出特性包括1~5次型。定时器设置首先设置用到的定时器个数,对每个定时器设置其PWM路数和是否硬件技术。
根据CPU构造信息生成引擎框架,包括各类CPU相关资源定义。主体部分实现快速、慢速、1ms定时器、10ms定时器、100ms定时器和1000ms定时器操作。
通过文件实现端口定义和端口操作两部分,根据不同CPU进行定义如下:
a.真正CPU输入口数据寄存器重新映射PLCIN000-PLCIN***,如该CPU输入口为多次型输入口(即一次输入操作,需要对应多个寄存器),则需重新映射所有输入数据寄存器PLCIN000R0-PLCIN000R*,PLCIN000R0-PLCIN***R*;
b.真正CPU输入口输入配置寄存器重新映射(可选),PLCINCFG000-PLCINCFG***,如该CPU输入配置为多次型配置口(即配置输入操作,需要对应多个寄存器),则需重新映射所有输入配置寄存器PLCINCFG000C0-PLCINCFG000C*,PLCINCFG000C0-PLCINCFG***C*;
c.真正CPU输出口数据寄存器重新映射PLCOUT000-PLCOUT***,如该CPU输出口为多次型输出口(即一次输出操作,需要对应多个寄存器),则需重新映射所有输出数据寄存器PLCOUT000S0-PLCOUT000S*,PLCOUT000S0-PLCOUT000***S*;
d.真正CPU输出口输出配置寄存器重新映射(可选),PLCOUTCFG000-PLCOUTCFG***,如该CPU输出配置为多次型配置口(即配置输出操作,需要对应多个寄存器),则需重新映射所有输入配置寄存器PLCOUTCFG000C0-PLCOUTCFG000C*,PLCOUTCFG000C0-PLCOUTCFG000***C*;
e.如是当前是编写中/大型系统引擎,则还需进行CASS端口映射工作,
中型系统,PLCMIDIN000-PLCMIDIN007映射为该端口译码值,大型系统,PLCMIDIN000-PLCMIDIN007映射为该端口对应的地址空间。
端口操作代码分成以下几个部分:
a.将整个直接CPU端口PLCPORT配置成输入的宏定义
#define CfgInputPort(PLCPORT)...PLCPORT为相应的输入端口配置寄存器
b.将整个直接端口PLCPORT配置成输出
#define CfgOutputPort(PLCPORT)...PLCPORT为相应的输出端口配置寄存器
c.将直接CPU端口PLCPORT第PROTNUM个管脚配置成输入
#define CfgInputPortBit(PLCPORT,PROTNUM)...
d.将直接端口PLCPORT第PROTNUM个管脚配置成输出
#define CfgOutputPortBit(PLCPORT,PROTNUM)...
e.将直接CPU端口PLCPORT值读入到内存单元MemData中
#define ReadSingleDirectPort(MemData,PLCPORT)...PLCPORT为对应的端口输入数据寄存器
f.将值MemData写入到直接端口PLCPORT中
#define WriteSingleDirectPort(MemData,PLCPORT)...PLCPORT为对应的端口输出数据寄存器
g.将直接端口PLCPORT第PORTNUM管脚的值读入到MemData中
#define ReadSingleDirectPortBit(MemData,PLCPORT,PORTNUM)
h.将值MemData写入到直接端口PLCPORT第PORTNUM管脚中
#define WriteSingleDirectPortBit(MemData,PLCPORT,PORTNUM)
i.将CASS端口PLCPORT的值读入到MemData中
#define ReadSinglePort(MemData,PLCPORT)...
PLCPORT因系统型号不同而不同,小型系统中为CPU输入端口数据寄存器,中型系统中为该端口对应的译码值,大型系统中为该端口对应的地址空间
j.将值MemData写入到CASS端口PLCPORT中
#define WriteSinglePort(MemData,PLCPORT)...
PLCPORT因系统型号不同而不同,小型系统中为CPU输入端口数据寄存器,中型系统中为该端口对应的译码值,大型系统中为该端口对应的地址空间。引擎中存在一个1MS的时钟节拍,该时钟节拍用于判断各个事件的时标,各个事件包括快速周期控制事件、慢速周期控制事件、1ms软定时器事件、10ms软定时器事件、100ms软定时器事件以及通信事件,同时定义允许或禁止“全局中断代码”,以及定时器接口函数定义。
通过上述步骤实现了一个通用引擎的定义,在选择某款已构造的CPU引擎进行PLC控制器时,根据需要和CPU引擎定义对硬件资源进行配置。
配置信息通过XML语言进行描述,描述包括对象和属性两部分。配置的信息生成硬件定义代码文件,对CPU资源使用情况进行定义和配置,以核心部分的CPU构造为基础,对CPU和外围电路进行配置,包括系统设置、I/O设置,中断设置、快速计数器设置和内存设置。系统设置完成通讯(串口选择及相关属性)、开关线及管脚、运行方式、模拟部件和时钟配置;I/O设置对输入输出端口、使用方式和延时时间进行设置,使用方式包括快速、慢速逻辑的选择;中断设置对串口使用中断、外部中断的选择及触发方式(高电平、低电平、上跳变、下跳变)、定时器中断的选择和定时数、SPI口以及I2C口进行使用方式和地址进行设置,并对每类中断指定处理函数名;快速计数器设置指定定时器功能,包括1ms定时器、PWM输出和快速计数器三类,对快速计数器设置其脉冲方式,包括上跳变和下跳变。对于外部中断型快速计数器设置其外部中断名和脉冲方式;内存设置描述是否扩展内存及扩展内存的大小,辅助继电器个数、状态寄存器个数、软计数器个数、整型变量个数、软定时器个数、局部变量个数,EEPROM设置。
通过硬件资源配置结合CPU构造,通过条件编译方式可以实现应用控制程序框架的快速生成。
应用设计部分的软件设计平台,平台提供IL指令和梯形图两种设计方式。IL指令通过核心部分实现的指令框架转换成汇编指令。梯形图向汇编指令的转换,首先转换成IL指令,再转换成汇编指令。在设计时,先用XML描述梯形图的设计结果,转换时将其信息存入一个二维数组中;在读取xml文件时,标记出梯形图中每行的末尾单元。分梯级将二维数组中各单元的信息构造有向图(AVO图);最后扫描有向图,得出一个图中个顶点间的逻辑关系;根据得出的逻辑关系及对应顶点信息,根据规则将其翻译成指令表。
以上所述仅为本发明一个实施例,当不能以此限制本发明范围,凡依据本发明所做的结构上的变化、功能模块的增删,只要不失本发明的要义所在,都应视为落入本发明保护范围之内受到制约。
Claims (1)
1.一种支持多种CPU构造PLC控制器的实现方法,其特征在于,包括以下步骤:
(1)实现指令翻译框架,实现IL或梯形图向汇编指令的转换。
(2)根据通用引擎和针对CPU的引擎定制实现引擎构造。
(3)选择CPU,根据应用通过图形界面配置硬件资源。
(4)用户根据应用设计逻辑控制程序。
(5)代码框架融合用户设计的逻辑控制程序生成可执行文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100625534A CN101303580A (zh) | 2008-06-24 | 2008-06-24 | 支持多种cpu构造plc控制器的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100625534A CN101303580A (zh) | 2008-06-24 | 2008-06-24 | 支持多种cpu构造plc控制器的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101303580A true CN101303580A (zh) | 2008-11-12 |
Family
ID=40113511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100625534A Pending CN101303580A (zh) | 2008-06-24 | 2008-06-24 | 支持多种cpu构造plc控制器的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101303580A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101566839B (zh) * | 2009-06-01 | 2011-03-30 | 杭州电子科技大学 | 一种梯形图内嵌组态算法的实现方法 |
CN102298516A (zh) * | 2011-09-20 | 2011-12-28 | 北京航天自动控制研究所 | 一种plc梯形图硬件处理器 |
CN101561671B (zh) * | 2009-06-01 | 2012-01-11 | 杭州电子科技大学 | 基于构件的梯形图设计方法 |
CN102650861A (zh) * | 2012-05-04 | 2012-08-29 | 深圳市矩形科技有限公司 | 一种plc梯形图代码硬解题方法 |
CN102722142A (zh) * | 2011-12-09 | 2012-10-10 | 绍兴文理学院 | 基于图编程的轴承切削自动生产线专用控制系统 |
CN102799137A (zh) * | 2012-08-22 | 2012-11-28 | 国电联合动力技术有限公司 | 用于风电控制系统plc控制器软件跨平台移植的方法 |
CN103443721A (zh) * | 2012-04-04 | 2013-12-11 | 三菱电机株式会社 | Plc设计装置 |
CN105786500A (zh) * | 2016-02-26 | 2016-07-20 | 中国科学院光电技术研究所 | 一种嵌入式控制器程序框架自动生成方法 |
CN107368371A (zh) * | 2017-07-05 | 2017-11-21 | 杭州电子科技大学 | 嵌入式plc的编程资源分配方法 |
CN107861458A (zh) * | 2017-11-09 | 2018-03-30 | 山东省计算中心(国家超级计算济南中心) | 一种可自主配置硬件资源的plc快速构建方法 |
CN107861716A (zh) * | 2017-11-09 | 2018-03-30 | 山东省计算中心(国家超级计算济南中心) | 软件定义型控制系统及控制方法 |
CN109981635A (zh) * | 2019-03-20 | 2019-07-05 | 浪潮商用机器有限公司 | 一种数据处理方法及系统 |
CN110750250A (zh) * | 2019-09-06 | 2020-02-04 | 重庆东渝中能实业有限公司 | 一种使用宏编译判断io口是否冲突的方法 |
-
2008
- 2008-06-24 CN CNA2008100625534A patent/CN101303580A/zh active Pending
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101561671B (zh) * | 2009-06-01 | 2012-01-11 | 杭州电子科技大学 | 基于构件的梯形图设计方法 |
CN101566839B (zh) * | 2009-06-01 | 2011-03-30 | 杭州电子科技大学 | 一种梯形图内嵌组态算法的实现方法 |
CN102298516A (zh) * | 2011-09-20 | 2011-12-28 | 北京航天自动控制研究所 | 一种plc梯形图硬件处理器 |
CN102298516B (zh) * | 2011-09-20 | 2013-11-20 | 北京航天自动控制研究所 | 一种plc梯形图硬件处理器 |
CN102722142A (zh) * | 2011-12-09 | 2012-10-10 | 绍兴文理学院 | 基于图编程的轴承切削自动生产线专用控制系统 |
CN103443721B (zh) * | 2012-04-04 | 2016-08-03 | 三菱电机株式会社 | Plc设计装置 |
CN103443721A (zh) * | 2012-04-04 | 2013-12-11 | 三菱电机株式会社 | Plc设计装置 |
CN102650861A (zh) * | 2012-05-04 | 2012-08-29 | 深圳市矩形科技有限公司 | 一种plc梯形图代码硬解题方法 |
CN102650861B (zh) * | 2012-05-04 | 2015-04-15 | 深圳市矩形科技有限公司 | 一种plc梯形图代码硬解题方法 |
CN102799137A (zh) * | 2012-08-22 | 2012-11-28 | 国电联合动力技术有限公司 | 用于风电控制系统plc控制器软件跨平台移植的方法 |
CN102799137B (zh) * | 2012-08-22 | 2014-07-02 | 国电联合动力技术有限公司 | 用于风电控制系统plc控制器软件跨平台移植的方法 |
CN105786500A (zh) * | 2016-02-26 | 2016-07-20 | 中国科学院光电技术研究所 | 一种嵌入式控制器程序框架自动生成方法 |
CN105786500B (zh) * | 2016-02-26 | 2019-02-05 | 中国科学院光电技术研究所 | 一种嵌入式控制器程序框架自动生成方法 |
CN107368371A (zh) * | 2017-07-05 | 2017-11-21 | 杭州电子科技大学 | 嵌入式plc的编程资源分配方法 |
CN107368371B (zh) * | 2017-07-05 | 2020-12-15 | 杭州电子科技大学 | 嵌入式plc的编程资源分配方法 |
CN107861458A (zh) * | 2017-11-09 | 2018-03-30 | 山东省计算中心(国家超级计算济南中心) | 一种可自主配置硬件资源的plc快速构建方法 |
CN107861716A (zh) * | 2017-11-09 | 2018-03-30 | 山东省计算中心(国家超级计算济南中心) | 软件定义型控制系统及控制方法 |
CN107861716B (zh) * | 2017-11-09 | 2021-03-02 | 山东省计算中心(国家超级计算济南中心) | 软件定义型控制系统及控制方法 |
CN109981635A (zh) * | 2019-03-20 | 2019-07-05 | 浪潮商用机器有限公司 | 一种数据处理方法及系统 |
CN109981635B (zh) * | 2019-03-20 | 2021-09-24 | 浪潮商用机器有限公司 | 一种数据处理方法及系统 |
CN110750250A (zh) * | 2019-09-06 | 2020-02-04 | 重庆东渝中能实业有限公司 | 一种使用宏编译判断io口是否冲突的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101303580A (zh) | 支持多种cpu构造plc控制器的实现方法 | |
US7945895B2 (en) | Graphical programs with FIFO structure for controller/FPGA communications | |
US7606950B2 (en) | Graphical programs with direct memory access FIFO for controller/FPGA communications | |
US7934179B2 (en) | Systems and methods for logic verification | |
US20030121010A1 (en) | System, method, and article of manufacture for estimating a potential performance of a codesign from an executable specification | |
US20030140337A1 (en) | System, method, and article of manufacture for data transfer reporting for an application | |
CN102436385A (zh) | 一种可编程逻辑器件配置文件在线更新装置 | |
CN103823467A (zh) | 具备运动规划功能的工业机器人示教规划器的控制方法 | |
US6668312B2 (en) | System, method, and article of manufacture for dynamically profiling memory transfers in a program | |
CN102681465A (zh) | 具备运动规划功能的工业机器人示教规划器及其控制方法 | |
CN101017424A (zh) | 基于usb接口的打标控制器 | |
CN100498698C (zh) | 通用界面设计接口系统及使用该系统的界面开发方法 | |
US20030120460A1 (en) | System, method, and article of manufacture for enhanced hardware model profiling | |
Coyle et al. | From UML to HDL: a model driven architectural approach to hardware-software co-design | |
Chmiel et al. | Central processing units for PLC implementation in Virtex-4 FPGA | |
CN102722601A (zh) | 数控系统的模型转换形式化语义集成框架的实现方法 | |
CN102681941A (zh) | 一种可扩展的嵌入式仿真测试系统 | |
CN101349973B (zh) | 嵌入式Java处理器微码指令集动态装载方法 | |
US7523441B2 (en) | Implementing a synchronous reactive system in a graphical program | |
CN103049602B (zh) | 基于模型驱动工程的将aadl组件转换到接口自动机模型方法 | |
Luo et al. | Embedded C code generation and embedded target development based on RTW-EC | |
CN101609478B (zh) | 感潮河网与排水管网模型的集成方法 | |
CN100399292C (zh) | 一种快速开发嵌入式应用系统的方法及应用系统 | |
Corre et al. | Fast template-based heterogeneous mpsoc synthesis on fpga | |
CN100357909C (zh) | 一种仿真器芯片 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20081112 |