CN102650861A - 一种plc梯形图代码硬解题方法 - Google Patents
一种plc梯形图代码硬解题方法 Download PDFInfo
- Publication number
- CN102650861A CN102650861A CN2012101361633A CN201210136163A CN102650861A CN 102650861 A CN102650861 A CN 102650861A CN 2012101361633 A CN2012101361633 A CN 2012101361633A CN 201210136163 A CN201210136163 A CN 201210136163A CN 102650861 A CN102650861 A CN 102650861A
- Authority
- CN
- China
- Prior art keywords
- cpu
- solving
- ladder diagram
- diagram code
- register
- 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.)
- Granted
Links
Images
Landscapes
- Programmable Controllers (AREA)
Abstract
本发明公开了一种PLC梯形图代码硬解题方法, PLC采用主控CPU和解题专用CPU双核架构模式,PLC系统运算处理由主控CPU完成,梯形图代码解题由解题专用CPU完成:1)主控CPU运行处理非梯形图代码内容,主控CPU在运行过程中发现是梯形图代码,即将控制权移交给解题专用CPU进行梯形图代码解题;2)解题专用CPU在进行梯形图代码解析过程中遇到功能块指令时,解题专用CPU将控制权移交给主控CPU调用功能块函数进行处理;3)两个CPU相互切换完成梯形图代码的解题过程。本发明使用解题专用的CPU进行梯形图代码的解析,具有速度快,性能稳定等特点,在运动控制、脉冲输出、高速计数等性能方面尤为突出。
Description
[技术领域]
本发明涉及可编程逻辑控制器,尤其涉及一种PLC梯形图代码硬解题方法。
[背景技术]
随着国内自动化企业数量规模不断扩大,PLC的需求量也日益突显,梯形图解题为PLC的核心功能,高效、快速、准确、稳定的解题功能是判定PLC性能的重要标准。梯形图解题分为二种方式,一种是使用程序实现,称为软件解题;另一种为使用专用的芯片来进行,称为硬件解题。本专利为使用硬件芯片来实现梯形图的解题。它较软解题方式有着运行速度快,性能稳定等特点。
目前市场大部分PLC解题方式采用的是使用通用处理器(主控CPU)来实现梯形图解题功能,通用处理器处理解题速度慢,正确率低,稳定性差,不能满足PLC在运动控制、脉冲输出、高速计数等性能的需要。
[发明内容]
本发明要解决的技术问题是提供一种解析速度快,性能稳定的PLC梯形图代码硬解题方法,以改善PLC在运动控制、脉冲输出、高速计数等方面的性能。
为了解决上述技术问题,本发明采用的技术方案是,一种PLC梯形图代码硬解题方法, PLC采用主控CPU和解题专用CPU双核架构模式,PLC系统运算处理由主控CPU完成,梯形图代码解题由解题专用CPU成:
1)主控CPU运行处理非梯形图代码内容,主控CPU在运行过程中发现是梯形图代码,即将控制权移交给解题专用CPU进行梯形图代码解题;
2)解题专用CPU在进行梯形图代码解析过程中遇到功能块指令时,解题专用CPU将控制权移交给主控CPU调用功能块函数进行处理;
3)两个CPU相互切换完成梯形图代码的解题过程。
以上所述的PLC梯形图代码硬解题方法,解题专用CPU解题专用CPU定义的寄存器组包括:垂直短路指示寄存器、 功能块向量寄存器、前导列状态寄存器、梯形图程序指针寄存器、高亮和模式控制寄存器、解题运行命令寄存器、功能块输出寄存器和解题配置寄存器。
以上所述的PLC梯形图代码硬解题方法,解题专用CPU所述的垂直短路指示寄存器为列格式寄存器,用来保存梯形图解析过程中,当前列哪一行有元件以及元件之间的关系;所述的功能块向量寄存器用于当解题遇到功能块指令时,将功能块号与功能块的前导列输入状态以及特殊向量位存在此寄存器,解题专用CPU将控制权交给主控CPU后,主控CPU通过读这个寄存器去调用对应的功能块函数。
以上所述的PLC梯形图代码硬解题方法,解题专用CPU所述的前导列状态寄存器用于记录解析过程中,当前列和前一个列的输出状态。将前一个列的输出状态作为当前列的输入状态,并根据当前列元件的开关,计算当前列的输出;所述的高亮和模式控制寄存器用于支持上位机编程软件的实时监视和调试功能,将运行中的中间状态通过此寄存器在高亮码状态下传给主控CPU。
以上所述的PLC梯形图代码硬解题方法,解题专用CPU所述的解题运行命令寄存器写任意数据均可启动一次解题专用CPU工作,至解题专用CPU遇到功能块、高亮码、结束码跳出运行,将控制权交还给主控CPU。
以上所述的PLC梯形图代码硬解题方法,解题专用CPU所述的功能块输出寄存器用于当功能块运行完毕后,输出功能块节点导通状态;所述的解题配置寄存器用来配置解题专用CPU的运行模式、速度、程序空间和IO空间。
以上所述的PLC梯形图代码硬解题方法,解题专用CPU主控CPU将控制权移交给解题专用CPU的过程包括:
1)主控CPU向解题专用CPU控制器发出命令;
2)解题专用CPU置高互斥请求线;
3)主控CPU在检测到该请求后,在一下个时钟周期锁住系统总线,然后置高互斥应答线,同时断开本身片选总线与外部的联系;
4)解题专用CPU在接到应答线后,置高占用线,同时将外部总线接管,并在下一个时钟周期开始运算解题。
以上所述的PLC梯形图代码硬解题方法,解题专用CPU 解题专用CPU将控制权移交给主控CPU的过程包括:
1)解题专用CPU当发现有外部中断,或者遇到需要调用主控CPU运算,或者程序运算完毕需要将控制权交回给主控CPU时,解题专用CPU断开总线的主控制,同时将占用线和请求线同时释放;
2)主控CPU检测到占用线和请求线释放后,将应答线释放,同时接管外部总线,并在下一个时钟周期释放系统总线,开始程序的接着运行;
3)如果是解题专用CPU调用主控CPU或者是程序运算完毕,主控CPU将接续原来的程序挂起点运行;如果是中断,则在下一个时钟周期释放系统总线,进入中断程序运行,并在中断返回后,再将控制权将给解题专用CPU。
以上所述的PLC梯形图代码硬解题方法,解题专用CPU当主控CPU将控制权交给解题专用CPU之前先关DCache,在重获控制权后再将DCache打开。
本发明PLC梯形图代码硬解题方法使用解题专用的CPU进行梯形图代码的解析,具有速度快,性能稳定等特点,在运动控制、脉冲输出、高速计数等性能方面尤为突出。
[附图说明]
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1是本发明PLC梯形图代码硬解题方法的流程图。
[具体实施方式]
本发明在PLC领域梯形图代码解题技术方面主要解决梯形图代码转化为PLC的逻辑控制指令采用硬件芯片进行实现。使用主控CPU与解题专用CPU双核架构模式,PLC一般系统运算处理由主控CPU(通用处理器)完成,梯形图代码解题由解题专用CPU(硬解题专用处理器)完成。
解题专用CPU与主控CPU的控制权相互切换功能的实现不影响PLC的正常运行,并且处理的结果正确。
解题专用CPU进行PLC解题实现采用VHDL(全名Very-High-Speed Integrated Circuit Hardware Description Language,硬件描述语言)进行实现。
PLC厂商都拥有一套属于自己的梯形图代码指令集。本发明实施例使用申请人的PLC指令集。通过硬件芯片实现用户所编写的梯形图代码转化为PLC能够识别的控制命令完成过程控制功能。
在申请人的PLC指令集中,定义了梯形图所有元件的指令含义,上位机编写的梯形图下载到PLC中均是以申请人PLC指令集HLS指令的方式存储在内存中。当PLC运行时启动梯形图代码的指令解析功能,最终将解析的结果通过通信传递给上位机或其他设备或PLC自身的数字量或模拟量输入输出点执行相应的动作。
需要定义硬解题处理器寄存器组包括:
Formatting_reg 垂直短路指示寄存器: 列格式寄存器主要用来保存梯形图解析过程中,当前列哪一行有元件以及元件之间的关系。
Function_vector_reg 功能块向量寄存器: 当解题遇到功能块指令时,将功能块号与功能块的前导列输入状态以及特殊向量位存在此寄存器,并将控制权交给主控CPU。主控CPU通过读这个寄存器去调用对应的功能块函数。
Column_reg 前导列状态寄存器:主要用来记录解析过程中,当前列和前一个列的输出状态。将前一个列的输出状态作为当前列的输入状态,并根据当前列元件的开关,计算当前列的输出。
PC_reg 梯形图程序指针寄存器:程序指针,用户程序在解题前对其进行初始化。
H_light_mode_reg 高亮和模式控制寄存器:高亮模式寄存器用于支持上位机编程软件的实时监视和调试功能,将运行中的中间状态通过此寄存器在高亮码状态下传给主控CPU。
LadderPU_r_comd_port 解题运行命令寄存器:写任意数据均可启动一次解题专用CPU工作,至解题专用CPU遇到功能块、高亮码、结束码跳出运行,将控制权交还给主控CPU。
Block_out_control_reg 功能块输出寄存器:当功能块运行完毕后,需要将功能块的位输出结果。
Config_reg 解题配置寄存器:用来配置解题专用CPU的运行模式、速度、程序空间、IO空间,常使用的设置为0x58B。
梯形图代码解题方式如下:
首先,在PLC内部主控CPU运行处理非梯形图代码内容,如函数调用、变量、参数压入堆栈、读写FLASH、SRAM,操作I/O口等。主控CPU在运行过程中发现如果是梯形图代码,则暂停当前工作,将控制权移交给解题专用CPU进行梯形图代码解题。
解题专用CPU在进行梯形图代码解析时,将一些解题过程中得到的数据填入到上述几个对应的寄存器中。它在解析过程中如果遇到功能块指令,解题专用CPU会将暂停当前工作把控制权交给主控CPU调用功能块函数。
两个处理的功能相互切换完成梯形图代码的解题,从而完成硬解题的全过程,实现过程控制。
使用解题专用CPU进行梯形图代码的解析,具有速度快,性能稳定等特点。在运动控制、脉冲输出、高速计数等性能方面尤为突出。
主控CPU使用的Leon 2 是一款32位,符合IEEE-1754(SPARC V8)结构的处理器IP核。
解题专用CPU使用自行开发的LadderPU处理器。
整个工作原理机制如下:
Leon2 —> LadderPU
Leon2 初始化完毕后,先扫描IO;
向LadderPU发出命令;
LadderPU置高互斥请求线;
Leon2在检测到该请求后,在一下个时钟周期锁住系统总线,然后置高互斥应答线,同时将本身的AMBAAHB总线断开与外部的联系;
LadderPU在接到应答线后,置高占用线,同时将外部总线接管,并在下一个时钟周期开始运算解题。
LadderPU —> Leon2
LadderPU当发现有外部中断,或者遇到需要调用Leon2运算,或者程序运算完毕需要将控制权交回给Leon2时。
LadderPU断开总线的主控制,同时将占用线和请求线同时释放。
Leon2检测到占用线和请求线释放后,将应答线释放,同时接管外部总线,并在下一个时钟周期释放系统总线开始程序的接着运行。
如果是LadderPU调用Leon2或者是程序运算完毕,Leon2将接续原来的程序挂起点运行;如果是中断,则在下一个时钟周期释放HOLD线,进入中断程序运行,并在中断返回后,由C程序控制再将控制权将给LadderPU。
Cache数据唯一性和一致性的问题的解决:
因为用户程序中的数据区是Leon2与LadderPU双方共用的,所以存在一种可能,当这一块区间被DCache命中后,这时控制转交给了LadderPU,而LadderPU修改了这一部分数据,并未让Leon2中的DCache知道,所以当控制权再转交给Leon2时,Leon2会仍然使用DCcache中的旧数据,这就造成了数据的一致性和唯一性被破坏了。
为了解决Dcache造成的数据不一致问题, Leon2将控制权交给LadderPU处理器之前先关DCache,在重获控制权后再将DCache打开,这样原来DCache中的数据将是无效的。
Claims (9)
1.一种PLC梯形图代码硬解题方法,其特征在于,PLC采用主控CPU和解题专用CPU双核架构模式,PLC系统运算处理由主控CPU完成,梯形图代码解题由解题专用CPU成:
101)主控CPU运行处理非梯形图代码内容,主控CPU在运行过程中发现是梯形图代码,即将控制权移交给解题专用CPU进行梯形图代码解题;
102)解题专用CPU在进行梯形图代码解析过程中遇到功能块指令时,解题专用CPU将控制权移交给主控CPU调用功能块函数进行处理;
103)两个CPU相互切换完成梯形图代码的解题过程。
2.根据权利要求1所述的PLC梯形图代码硬解题方法,其特征在于,解题专用CPU定义的寄存器组包括:垂直短路指示寄存器、 功能块向量寄存器、前导列状态寄存器、梯形图程序指针寄存器、高亮和模式控制寄存器、解题运行命令寄存器、功能块输出寄存器和解题配置寄存器。
3.根据权利要求2所述的PLC梯形图代码硬解题方法,其特征在于,所述的垂直短路指示寄存器为列格式寄存器,用来保存梯形图解析过程中,当前列哪一行有元件以及元件之间的关系;所述的功能块向量寄存器用于当解题遇到功能块指令时,将功能块号与功能块的前导列输入状态以及特殊向量位存在此寄存器,解题专用CPU将控制权交给主控CPU后,主控CPU通过读这个寄存器去调用对应的功能块函数。
4.根据权利要求2所述的PLC梯形图代码硬解题方法,其特征在于,所述的前导列状态寄存器用于记录解析过程中,当前列和前一个列的输出状态,将前一个列的输出状态作为当前列的输入状态,并根据当前列元件的开关,计算当前列的输出;所述的高亮和模式控制寄存器用于支持上位机编程软件的实时监视和调试功能,将运行中的中间状态通过此寄存器在高亮码状态下传给主控CPU。
5.根据权利要求2所述的PLC梯形图代码硬解题方法,其特征在于,所述的解题运行命令寄存器写任意数据均可启动一次解题专用CPU工作,至解题专用CPU遇到功能块、高亮码、结束码跳出运行,将控制权交还给主控CPU。
6.根据权利要求2所述的PLC梯形图代码硬解题方法,其特征在于,所述的功能块输出寄存器用于当功能块运行完毕后,输出功能块的节点导通状态;所述的解题配置寄存器用来配置解题专用CPU的运行模式、速度、程序空间和IO空间。
7.根据权利要求1所述的PLC梯形图代码硬解题方法,其特征在于,主控CPU将控制权移交给解题专用CPU的过程包括:
701)主控CPU向解题专用CPU控制器发出命令;
702)解题专用CPU置高互斥请求线;
703)主控CPU在检测到该请求后,在一下个时钟周期锁住系统总线,然后置高互斥应答线,同时断开本身片选总线与外部的联系;
704)解题专用CPU在接到应答线后,置高占用线,同时将外部总线接管,并在下一个时钟周期开始运算解题。
8.根据权利要求1所述的PLC梯形图代码硬解题方法,其特征在于, 解题专用CPU将控制权移交给主控CPU的过程包括:
解题专用CPU当发现有外部中断,或者遇到需要调用主控CPU运算,或者程序运算完毕需要将控制权交回给主控CPU时,解题专用CPU断开总线的主控制,同时将占用线和请求线同时释放;
801)主控CPU检测到占用线和请求线释放后,将应答线释放,同时接管外部总线,并在下一个时钟周期释放系统总线,开始程序的接着运行;
802)如果是解题专用CPU调用主控CPU或者是程序运算完毕,主控CPU将接续原来的程序挂起点运行;如果是中断,则在下一个时钟周期释放系统总线,进入中断程序运行,并在中断返回后,再将控制权将给解题专用CPU。
9.根据权利要求1所述的PLC梯形图代码硬解题方法,其特征在于,当主控CPU将控制权交给解题专用CPU之前先关DCache,在重获控制权后再将DCache打开。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210136163.3A CN102650861B (zh) | 2012-05-04 | 2012-05-04 | 一种plc梯形图代码硬解题方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210136163.3A CN102650861B (zh) | 2012-05-04 | 2012-05-04 | 一种plc梯形图代码硬解题方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102650861A true CN102650861A (zh) | 2012-08-29 |
CN102650861B CN102650861B (zh) | 2015-04-15 |
Family
ID=46692880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210136163.3A Active CN102650861B (zh) | 2012-05-04 | 2012-05-04 | 一种plc梯形图代码硬解题方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102650861B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291038A (zh) * | 2017-07-27 | 2017-10-24 | 浙江奇赛其自动化科技有限公司 | 一种软件plc指令解析执行方法 |
CN111679611A (zh) * | 2020-06-24 | 2020-09-18 | 航天新长征大道科技有限公司 | 一种Modbus总线控制器及其控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169646A (zh) * | 2007-10-26 | 2008-04-30 | 华中科技大学 | 分布式开放体系结构的数控系统 |
CN101303580A (zh) * | 2008-06-24 | 2008-11-12 | 杭州义益自动化有限公司 | 支持多种cpu构造plc控制器的实现方法 |
KR20110012342A (ko) * | 2009-07-30 | 2011-02-09 | 경상대학교산학협력단 | Plc 래더 로직 설계 및 래더 코드 생성방법 |
JP2011034378A (ja) * | 2009-08-03 | 2011-02-17 | Keyence Corp | プログラマブルコントローラ用プログラム作成支援装置及びプログラム作成支援装置におけるハイパーリンク情報管理方法 |
CN102298516A (zh) * | 2011-09-20 | 2011-12-28 | 北京航天自动控制研究所 | 一种plc梯形图硬件处理器 |
-
2012
- 2012-05-04 CN CN201210136163.3A patent/CN102650861B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169646A (zh) * | 2007-10-26 | 2008-04-30 | 华中科技大学 | 分布式开放体系结构的数控系统 |
CN101303580A (zh) * | 2008-06-24 | 2008-11-12 | 杭州义益自动化有限公司 | 支持多种cpu构造plc控制器的实现方法 |
KR20110012342A (ko) * | 2009-07-30 | 2011-02-09 | 경상대학교산학협력단 | Plc 래더 로직 설계 및 래더 코드 생성방법 |
JP2011034378A (ja) * | 2009-08-03 | 2011-02-17 | Keyence Corp | プログラマブルコントローラ用プログラム作成支援装置及びプログラム作成支援装置におけるハイパーリンク情報管理方法 |
CN102298516A (zh) * | 2011-09-20 | 2011-12-28 | 北京航天自动控制研究所 | 一种plc梯形图硬件处理器 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291038A (zh) * | 2017-07-27 | 2017-10-24 | 浙江奇赛其自动化科技有限公司 | 一种软件plc指令解析执行方法 |
CN107291038B (zh) * | 2017-07-27 | 2019-04-02 | 浙江奇赛其自动化科技有限公司 | 一种软件plc指令解析执行方法 |
CN111679611A (zh) * | 2020-06-24 | 2020-09-18 | 航天新长征大道科技有限公司 | 一种Modbus总线控制器及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102650861B (zh) | 2015-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6539500B1 (en) | System and method for tracing | |
US8549468B2 (en) | Method, system and computer readable storage device for generating software transaction-level modeling (TLM) model | |
US20180157531A1 (en) | Technologies for dynamic acceleration of general-purpose code using hardware accelerators | |
CA2866809C (en) | Run-time instrumentation directed sampling | |
CN101344865B (zh) | 一种cpu占用率测量方法及装置 | |
CN103440216A (zh) | 一种通过i2c从设备调试mcu的芯片及方法 | |
CN103729288A (zh) | 一种嵌入式多核环境下应用程序的调试方法 | |
EP2790106A2 (en) | Performance measurement unit, processor core including the same and process profiling method | |
CN101206614B (zh) | 仿真特殊功能寄存器的仿真器 | |
CN113849433A (zh) | 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质 | |
CN103793208B (zh) | 矢量dsp处理器和协处理器协同运作的数据处理系统 | |
CN111506512B (zh) | 调试信息的处理方法、装置、电子设备、存储介质及系统 | |
CN103198002B (zh) | 程序运行时间的测量方法及仿真器 | |
CN103714190A (zh) | 简单高效的在线仿真方法及接口电路 | |
CN110955503B (zh) | 任务调度方法及装置 | |
CN102650861A (zh) | 一种plc梯形图代码硬解题方法 | |
CN107423206A (zh) | 一种衡量系统管理中断时间的方法及装置 | |
CN111008133B (zh) | 粗粒度数据流架构执行阵列的调试方法及装置 | |
CN100474266C (zh) | 一种用于数字信号处理器的调试系统及其调试方法 | |
CN101639791A (zh) | 一种改善嵌入式实时操作系统中断延迟的方法 | |
CN115729742A (zh) | 一种错误处理方法、装置、电子设备及存储介质 | |
CN100492299C (zh) | 一种嵌入式软件开发的方法及系统 | |
CN114237557A (zh) | 调试逻辑系统设计的方法、电子设备及存储介质 | |
CN111143141B (zh) | 一种状态机设置方法及系统 | |
CN108874613B (zh) | 一种性能瓶颈定位量化方法、装置及嵌入式io系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |