CN102540952B - 可编程控制器以及操作方法 - Google Patents
可编程控制器以及操作方法 Download PDFInfo
- Publication number
- CN102540952B CN102540952B CN201010601496.XA CN201010601496A CN102540952B CN 102540952 B CN102540952 B CN 102540952B CN 201010601496 A CN201010601496 A CN 201010601496A CN 102540952 B CN102540952 B CN 102540952B
- Authority
- CN
- China
- Prior art keywords
- processor
- instruction
- data
- logical operation
- programmable logic
- 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.)
- Expired - Fee Related
Links
Landscapes
- Programmable Controllers (AREA)
Abstract
本发明揭示一种可编程控制器及其操作方法。可编程控制器包括逻辑运算处理器和功能处理器。逻辑运算处理器用于根据数据流计算机架构执行逻辑运算指令。功能处理器用于与逻辑运算处理器进行通信以交换数据。功能处理器还用于基于数据流计算机架构执行功能指令。功能指令和逻辑运算指令以基本并行的方式分别被功能处理器和逻辑运算处理器执行。该可编程控制器及其操作方法以基本并行的方式执行基于数据流计算机架构的指令,解决传统的可编程控制器顺序执行指令所引起的执行效率不高的技术问题,取得提高指令执行效率的技术效果。
Description
技术领域
本发明涉及过程控制装置,特别涉及一种可编程控制器以及一种操作该可编程控制器的方法。
背景技术
可编程控制器或者可编程逻辑控制器(Programmable Controller orProgrammable Logic Controller,PLC)已被广泛应用于逻辑控制,顺序控制,运动控制,分布式系统控制等过程控制场合。作为过程控制的一部分,可编程控制器可以用于侦测各种输入传感器所感测到的输入信号。通过该输入传感器感测的输入信号可以报告被控过程中发生的事件以及状况。举例而言,可编程控制器可以侦测温度,压力,运动速度,流量等输入状况。一般而言,在可编程控制器内部的存储器存储有控制程序,该控制程序被执行时可以指示可编程控制器在遇到特定的输入信号或者状况时需要执行何种操作。响应输入传感器的输入信号,可编程控制器可以计算并生成输出信号,该输出信号被发送到各种输出装置以控制整个过程。举例而言,可编程控制器可以发布使传送带加速或者减速的输出信号,使机器人手臂转动的输出信号,开启或者关闭继电器的输出信号,提升或者降低温度的输出信号,以及诸如此类实现其他各种功能的输出信号。
传统的可编程控制器通常包括一个中央处理器,该中央处理器一般为可编程控制器的核心部件。该中央处理器可以执行可编程控制器的各种功能,例如输入/输出扫描,逻辑运算,通信以及自我诊断等功能。一般而言,上述的各种可编程控制器功能是通过中央处理器运行在重复的扫描周期(sweepcycle)的方式来实现的。图1示出了一个典型的可编程控制器100的一个扫描周期的示意图。该可编程控制器100的多个PLC功能典型地以顺序的方式被执行,其中每一个功能在全部执行完毕之后才会转而继续处理其他的功能。后续未被处理的PLC功能持续处于等待阶段或者处在队列中,直到之前的功能被执行完毕才开始执行。因此,如图1所示,一个完整的扫描周期包括每一个独立的PLC功能被执行所占用的执行时间1,2,3,4和5以及任何在各个执行时间之间的间隔时间7。顺序执行各个独立的PLC功能的方式导致了可编程控制器执行效率的低下。
因此,有必要提供一种可以具有较佳执行效率的可编程控制器以及操作该可编程控制器的方法以满足实际的需求。
发明内容
本发明的一个方面在于提供一种可编程控制器。可编程控制器包括逻辑运算处理器和功能处理器。逻辑运算处理器用于根据数据流计算机架构执行逻辑运算指令。功能处理器用于与逻辑运算处理器进行通信以交换数据。功能处理器还用于基于数据流计算机架构执行功能指令。功能指令和逻辑运算指令以基本并行的方式分别被功能处理器和逻辑运算处理器执行。
本发明的另一个方面在于提供一种操作可编程控制器的方法。该可编程控制器包括可以相互通讯的逻辑运算处理器和功能处理器。该操作方法至少包括如下步骤:根据数据流计算机架构通过逻辑运算处理器执行逻辑运算指令;以及根据数据流计算机架构通过功能处理器执行功能指令。
本发明的再一个方面在于提供一种可编程控制器。该可编程控制器包括第一存储器,第二存储器,第一处理器以及第二处理器。第一存储器用于存储第一程序,第二存储器用于存储第二程序。第一处理器与第一存储器相连接,第一处理器用于在该第一程序中的第一指令相关联的令牌数据(token)完备时执行该第一指令。第二处理器与第二存储器相连接,第二存储器用于与第一处理器相通信。第二处理器进一步用于在第二程序中的第二指令相关联的令牌数据完备时执行该第二指令。
本发明的可编程控制器以及操作可编程控制器的方法,通过多个处理器以基本并行的方式执行基于数据流计算机架构的指令,可以解决传统的可编程控制器顺序执行指令所引起的执行效率不高的技术问题,也即,本发明的可编程控制器及其操作方法至少可以取得提高指令执行效率的技术效果。
附图说明
通过结合附图对于本发明的实施方式进行描述,可以更好地理解本发明,在附图中:
图1所示为传统的可编程控制器在一个扫描周期的模块示意图。
图2所示为本发明可编程控制器一种实施方式的模块示意图。
图3所示为本发明可编程控制器一种实施方式的并行机制的模块示意图。
图4所示为本发明图2所示的可编程控制器运行于扫描周期的一种实施方式的模块示意图。
图5所示为本发明图2所示的可编程控制器运行于扫描周期的另一种实施方式的模块示意图。
图6所示为本发明图2所示的可编程控制器运行于扫描周期的再一种实施方式的模块示意图。
图7所示为本发明图2所示的可编程控制器硬件架构一种实施方式的模块示意图。
图8所示为本发明图2所示的可编程控制器中逻辑运算处理器一种实施方式的详细架构模块图。
图9所示为可供本发明图2所示的可编程控制器执行的一种实施方式的数据流图。
图10所示为本发明图2所示的可编程控制器中输入输出扫描处理器一种实施方式的详细架构模块图。
具体实施方式
本发明揭露的具体实施方式大致与过程控制装置相关,更具体言之,有关于可编程控制器以及操作该可编程控制器的方法。可编程控制器被设计成可以并行处理多个不同的PLC功能。通过在可编程控制器中引入数据流计算机架构可以使得至少多个PLC功能的一部分可以基本并行的被执行。
除非另作定义,此处使用的技术术语或者科学术语应当为本发明所属技术领域内具有一般技能的人士所理解的通常意义。
本发明专利申请说明书以及权利要求书中使用的“第一”“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。
“一个”或者“一”等类似词语并不表示数量限制,而是表示存在至少一个。
“包括”或者“包含”等类似的词语意指出现在“包括”或者“包含”前面的元件或者物件涵盖出现在“包括”或者“包含”后面列举的元件或者物件及其等同元件,并不排除其他元件或者物件。
“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
“可编程控制器”或者“可编程逻辑控制器”是指可以使用可编程存储器用作指令的内部存储装置,其可以用来执行特定的功能,例如逻辑功能,顺序功能,计时功能,计数功能以及算术运算等功能,并可以通过若干数字的或者模拟的输入模块以及输出模块控制各种各样的外部装置或者过程。在此所述的“可编程控制器”不应当将其限制在原始的含义,实际上可以包括任何具有相似能力或者功能的装置,例如可编程自动化控制器(programmableautomation controllers,PACs)以及分布式控制系统(distributed control systems,DCSs)等。众所周知,可编程控制器,可编程自动控制器以及分布式控制系统在功能上存在交叉之处,他们之间的界限已变得越来越模糊。
“数据流计算机”是指一种数据驱动形式的架构,其设计成在更细粒度水平上规划并行处理的方式。
“处理器”可以包括硬件,固件,和/或软件中的任何一种或者其组合。处理器可以使用基于机械的,气动的,液压的,电力的,磁的,光学的,信息的,化学的,和/或生物学的原理,信号,和/或输入,以执行一定的任务。在一些实施方式中,处理器可以对信息进行操作,分析,修改,转换和或传送等操作,以供可执行程序和/或信息装置使用,并可以将信息路由给输出装置。处理器可以作为中央处理单元,局部控制器,远程控制器,并行处理器和/或分布式处理器来运行。除非另作说明,处理器可以是通用目的之装置,例如微控制器和/或微处理器,或者专用目的之装置,例如被设计成以硬件或者固件方式执行的专用集成电路(ASIC)或者现场可编程门阵列(FPGA)。
“指令”是指由操作码及其操作数(如果有的话)组成的语句或者表达式,其可以被处理器解释以完成特定的功能或者操作。
图2所示为一种实施方式的可编程控制器200的模块图。请参阅图2,可编程控制器200可以与一个或多个外部装置70(例如,传感器)进行数据交换,以获取数据以及驱动致动器(actuator)以控制运动。可编程控制器200可以包括一个或者多个处理器以及与该一个或者多个处理器相连接的存储器10。存储器10可以用来存储一个或者多个程序,例如系统程序以及用户程序。存储器10还可以用来存储系统程序和用户程序在执行过程中所产生的中间结果和相关数据。
请参阅图2,在一种实施方式中,可编程控制器200可以包括输入输出扫描处理器20,逻辑运算处理器30,通信处理器40以及诊断处理器50。这些处理器可以被集成在单一的芯片中,例如场可编程门阵列器件。在其他实施方式中,可编程控制器200可以以多芯片的方式运作,该输入输出扫描处理器20,逻辑运算处理器30,通信处理器40以及诊断处理器50的子集分别集成于各个独立的芯片上。在一些具体的应用中,可编程逻辑控制200可以增加或者减少一个或者多个处理器。举例而言,在某些应用下,诊断处理器50可以从该可编程控制器200中省去。在此情形下,输入输出扫描处理器20或者逻辑运算处理器30可以用来被配置成用来执行诊断功能。再举例而言,当需要控制更多个外部装置时,可以增加另外一个或者多个输入输出扫描处理器20。概括而言,输入输出扫描处理器20,通信处理器40以及诊断处理器50可以被统称为功能处理器。
在一种实施方式中,每一个处理器被配置成负责一种功能。例如,请参阅图3,输入输出扫描处理器20负责输入输出扫描功能202,以通过一个或者多个输入输出模块60(显示在图2中)从外部装置70(显示在图2中)输入数据或者输出数据到外部装置70。逻辑运算处理器30负责逻辑运算功能302,例如,执行算术运算,以提供数据给输入输出扫描处理器20和通信处理器40使用。通信处理器40负责通信功能402,以将数据发送到人机界面(HMI)80(显示在图2中)或者其他可编程控制器。诊断处理器50负责诊断功能502,以检查可编程控制器200(显示在图2中)自身的各种硬件。
在一种实施方式中,与输入输出扫描处理器20,逻辑运算处理器30,通信处理器40以及诊断处理器50中每一者相联系的PLC功能可以通过基本并发的或者并行的方式被执行。在此所谓的“并发”或者“并行”是指至少两条指令基本同时被执行。可编程控制器200的至少一个处理器通过引入数据流计算机架构来执行这些指令。在一种实施方式中,可编程控制器200可以有两个处理器被配置成基于数据流计算机架构来执行指令。举例而言,输入输出扫描处理器20和逻辑运算处理器30可以配置成基于数据流计算机架构来执行输入输出扫描指令和逻辑运算指令。在其他实施方式中,该可编程控制器200也可以配置三个处理器来执行基于数据流计算机架构的指令。在此情形下,除上面所述的输入输出扫描处理器20和逻辑运算处理器30之外,通信处理器40可以进一步被配置成执行基于数据流计算机架构的指令。
继续参阅图3,在一种实施方式中,可以提供两种并行的机制来执行基于数据流计算机架构的指令。对于第一种并行机制而言,其为一种处理器间并行机制。在此所谓的“处理器间并行机制”是指至少两条不同的指令可以独立及并发地在两个处理器中执行。举例而言,如图3所示,输入输出扫描处理器20可以执行与输入输出扫描功能202相关的输入输出扫描指令。与此同时,通信处理器40可以执行与通信功能402相联系的通信指令。
继续参阅图3,对于第二种并行机制而言,其为一种处理器内并行机制。在此所谓的“处理器内并行机制”是指至少两条指令可以基本同时在同一个处理器内被执行。举例而言,如图3所示,由逻辑运算处理器30负责的逻辑运算功能302可以包括第一逻辑运算功能304和第二逻辑运算功能306。逻辑运算处理器30可以分配第一执行单元来执行与第一逻辑运算功能304相关联的第一逻辑运算指令,只要与第一逻辑运算指令相关联的令牌数据已经准备好。与此同时,逻辑运算处理器30也可以分配第二执行单元来执行与第二逻辑运算功能306相关联的第二逻辑运算指令,只要与第二逻辑运算指令相关联的令牌数据已经准备好。
如上所述,在一些实施方式中,可编程控制器200通过引入数据流计算机架构来执行各种PLC功能。在一种实施方式中,可编程控制器200的每一个处理器均配置成根据完全的数据流计算机架构来执行指令。“完全的数据流计算机架构”是指可编程控制器的多个处理器可以没有任何同步机制,也即,只要与各个处理器所要执行的指令的令牌数据已经准备好,相应的指令即可被执行。换言之,采用完全的数据流计算机架构,该多处理器结构的可编程控制器200在各个处理器之间可以具有较低的依赖度。在另一种实施方式中,可编程控制器200中的至少一部分处理器可以通过一定的同步方式来执行基于数据流计算机架构的指令。举例而言,输入输出扫描处理器20以及通信处理器40可以被同步执行对应的输入输出扫描指令以及通信指令,而逻辑运算处理器30则完全独立于输入输出扫描处理器20和通信处理器40来执行对应的逻辑运算指令。
在一种实施方式中,可编程控制器200的输入输出扫描处理器20,逻辑运算处理器30,通信处理器40以及诊断处理器50可以全部被同步来执行指令。请参阅图4,其示出一个扫描周期60用来同步以上所述的输入输出扫描处理器20,逻辑运算处理器30,通信处理器40以及诊断处理器50来执行对应的各种PLC功能。可编程控制器200可以采用一个计时器或者一个时钟单元来产生同步该可编程控制器200的多个处理器的时钟信号。在图示的实施方式中,对于输入输出扫描处理器20而言,扫描周期60包括同步时段601和运行时段603。输入输出扫描处理器20用来周期性的执行输入输出扫描功能。在一种实施方式中,该同步时段601和运行时段603设置成具有相同的时间间隔。在其他实施方式中,同步时段601和运行时段603也可以根据具体的需求设置成具有不同的时间间隔。
请继续参阅图4,在同步时段601,输入输出扫描处理器20可以配置成与其他处理器进行数据交换。在运行时段603,输入输出扫描处理器20可以配置成从外部装置获取数据或者将数据输出给外部装置。在一种实施方式中,该等输入输出扫描处理器20,逻辑运算处理器30,通信处理器40以及诊断处理器50可以在各自指令相关联的令牌数据完全准备好时独立切换到各自的运行时段。在另一种实施方式中,该等输入输出扫描处理器20,逻辑运算处理器30,通信处理器40以及诊断处理器50也可以在各自指令相关联的令牌数据部分准备好时即切换到各自的运行时段。
如图4所示,在一种实施方式中,输入输出扫描处理器20可以不用等待其他处理器而在运行时段603之后立即切换到同步时段601。因此,每一个处理器的同步时段和运行时段独立于其他处理器的同步时段和运行时段。举例而言,在任何给定的时刻,一些处理器可以处在同步时段,而其他处理器可以处在运行时段。在一种替换的实施方式中,如图5所示,在运行时段603之后,输入输出扫描处理器20并没有立即从运行时段603切换到同步时段601。在此实施方式中,输入输出扫描处理器20需要等到具有最长扫描周期的处理器完成其运行时段之后才会从运行时段603切换到同步时段601。举如图5所示的实施方式为例,输入输出扫描处理器20在逻辑运算处理器30执行完运行时段之后才从运行时段603切换到同步时段601。
在另一种替换实施方式中,如图6所示,可以定义一个最大时间间隔T_max以便于每个扫描周期60中运行时段到同步时段的切换。举例而言,尽管例如逻辑运算处理器30的最大扫描周期已经完成,输入输出扫描处理器20并不会立即切换到同步时段601。输入输出扫描处理器20在最大时间间隔T_max完成之后才会切换到同步时段601。可以理解,定义最大时间间隔T_max可以确保每一个处理器均可以更可靠的执行同步时段和运行时段。
请参阅图7,其所示为可编程控制器200(参看图2)的一部分详细示意图。如图7所示,输入输出扫描处理器20关联有一个局部存储器102和一个数据流存储器104。该局部存储器102和数据流处理器104可以划分自如图2所示的存储器10。局部存储器102被配置成存储与输入输出扫描功能相对应的输入输出扫描程序。在一种实施方式中,局部存储器102仅可以被输入输出扫描处理器20访问。数据流存储器104被配置成用来存储使得基于数据流计算架构的指令可被执行的数据。在一种实施方式中,数据流存储器104可以被输入输出扫描处理器20直接访问,并可以被逻辑运算处理器30间接访问。
请继续参阅图7,当存储在数据存储器104中的数据被逻辑运算处理器30间接访问时,输入输出扫描处理器20和逻辑运算处理器30之间可以建立处理器间的通信链路。在一种实施方式中,该通信链路可以包括第一先进先出(First-In-First-Out,FIFO)存储器312,以用于将数据从输入输出扫描处理器20传送到逻辑运算处理器30。该通信链路还可以包括第二先进先出存储器314,以用于将数据从逻辑运算处理器30传送到输入输出扫描处理器20。应当理解的是,在这里描述的先进先出存储器仅仅是一种例举,以说明数据如何在处理器中传递,因此权利要求不应当限缩在先进先出类型的存储器。在其他实施方式中,该通信链路也可以包括双端口随机存取存储器(dual-portrandom access memory)。在一种实施方式中,该双端口随机存取存储器可以提供一个通用的存储器,以供输入输出扫描处理器20和逻辑运算处理器30二者均可以访问。该通用的存储器可以用来在输入输出扫描处理器20和逻辑运算处理器30之间传递和分享数据。在另外一种实施方式中,该双端口随机访问存储器可以分割成第一存储区域和第二存储区域。该第一存储区域被配置成对输入输出扫描处理器20可读而对逻辑运算处理器30可写。该第二存储区域可以配置成对逻辑运算处理器30可读而对输入输出扫描处理器20可写。
如图7所示,该逻辑运算处理器30关联有一个局部存储器106和一个数据流存储器108。该局部存储器106和数据流处理器108可以划分自如图2所示的存储器10。该局部存储器106被配置成存储与逻辑运算功能相关的逻辑运算程序。在一种实施方式中,该局部存储器106可以被设置成仅可被逻辑运算处理器30完全访问。该数据流存储器108可以被配置成存储用于执行基于数据流计算机架构的指令相关的数据。在一种实施方式中,数据流存储器108可以被逻辑运算处理器30直接访问而被输入输出扫描处理器20间接访问。作为一种非限制性的例子,在此提及的局部存储器106和数据流存储器108,以及上文提及的局部存储器102和数据流存储器104可以包括,但不限于,静态随机存取存储器(SRAM),动态随机存取存储器(DRAM),同步动态随机存取记忆体(SDRAM),电可擦只读存储器(EEPROM)以及闪存。
如图7所示,输入输出扫描处理器20和逻辑扫描处理器30可以同步执行基于数据流计算机架构的指令。在输入输出扫描处理器20的同步时段,正如箭头R2所指示,该输入输出扫描处理器20可以通过第一先进先出存储器312传送从局部存储器102获取的数据in_io给数据流存储器108。在逻辑运算处理器30的同步时段,正如箭头R4所指示,该逻辑运算处理器30可以通过第二先进先出存储器314将中间结果数据out_logic从局部存储器106传送给数据流存储器104。在输入输出扫描处理器20的运行时段,正如箭头R1和R5所指示,该输入输出扫描处理器20可以执行输入输出扫描指令,以通过扫描输入模块305而将从外部装置获取的数据输入到数据流存储器104,并通过扫描输出模块306而将运算产生的数据输出给外部装置。在逻辑运算处理器30的运行时段,正如箭头R3所指,该逻辑运算处理器30可以使用数据流存储器108中的数据执行逻辑运算指令并将生成的中间结果数据out logic存储在局部存储器106中。
请参阅图8,其所示为逻辑运算处理器30一种实施方式的模块示意图。在一种实施方式中,逻辑运算处理器30可以包括用于临时存储令牌数据的令牌数据输入单元316和令牌数据输出单元338。在一种实施方式中,令牌数据输入单元316的令牌数据可以通过第一先进先出存储器312从输入输出扫描处理器20(请参看图7)中获取。在另外一种实施方式中,令牌数据输入单元316的令牌数据也可以通过先进先出存储器(图未示出)从与通信处理器40(参看图2)相关联的数据流存储器(图未示出)中获取。在更一种实施方式中,令牌数据也可以来自于逻辑运算处理器30的内部。举例而言,令牌数据可以来自于逻辑运算处理器30中的执行单元因执行指令而产生的数据。
请继续参阅图8,逻辑运算处理器30可以进一步包括与令牌数据输入单元316相连接的匹配单元318。该匹配单元318用于接收从令牌数据输入单元传送来的令牌数据。匹配单元318可以配置成判断存储在局部存储器106中的逻辑运算指令是否可以被执行。更具体而言,判别的方法可以通过检查与逻辑运算指令相关联的令牌数据是否已经在令牌数据输入单元312中准备好。
请继续参阅图8,在一种实施方式中,该逻辑运算处理器30可以包括与匹配单元318相连接的可执行指令存储单元324。该可执行指令存储单元324用于临时存储被匹配单元312判断为可供执行的逻辑运算指令,以及用来将该可供执行的逻辑运算指令及其相关的令牌数据发送给将在下文进一步描述的一个或者多个执行单元。
请继续参阅图8,在一种实施方式中,该逻辑运算处理器30可以进一步包括第一开关单元326和多个执行单元。举例而言,多个执行单元包括第一执行单元328,第二执行单元332以及第三执行单元334。该第一开关单元连接在可执行指令存储单元324和该多个执行单元之间。该第一开关单元326用于在该可执行指令存储单元324和可被分配用来执行指令的执行单元328,332,334的一者或者多者之间建立连接,以方便传送可供执行的指令。举例而言,当第一执行单元328可被分配用来执行指令时,该第一开关单元326可以切换到第一执行单元328并将可执行指令存储单元324中存储的逻辑运算指令以及相关联的令牌数据传送给第一执行单元328。
请继续参阅图8,在一种实施方式中,逻辑运算处理器30可以进一步包括第二开关单元336。该第二开关单元336与该多个执行单元328,332,334,令牌数据输入单元316以及令牌数据输出单元338相连接。该第二开关单元336可以被控制以选择性地将多个执行单元328,332,334产生的令牌数据传送给令牌数据输入单元316或者令牌数据输出单元338。举例而言,当经第一执行单元328执行逻辑运算指令而产生的令牌数据被判定为需要进一步被其他的逻辑运算指令使用时,该第二开关单元336可以切换到与令牌数据输入单元316相连接,以将该第一执行单元328产生的令牌数据传送给令牌数据输入单元316。再举例而言,当将该第二执行单元328执行逻辑运算指令而产生的令牌数据被判定为需要输出给外部装置时,该第二开关单元336可以切换到与令牌数据输出单元338相连接,以将该第二执行单元328产生的令牌数据传送给令牌数据输出单元338。进一步,令牌数据输出单元338可以通过第二先进先出存储器314将令牌数据传送给输入输出扫描处理器20。
请参阅图9,其所示为图8所示的逻辑运算处理器30执行基于数据流计算机架构的逻辑运算指令的数据流图(Dataflow graph)。如图9所示,该数据流图包括多个节点411,412,413,414,415,416,该每个节点均包括至少一个输入端和一个输出端。该每一节点411,412,413,414,415,416代表对出现在该至少一个输入端的数据所执行的逻辑操作。在此所谓的出现在每个节点至少一个输入端的数据也称为令牌数据。具体而言,节点411可以对出现在其输入端的两个令牌数据A和B执行加法运算。该节点411执行的加法运算消耗掉令牌数据A和B并产生令牌数据D。该令牌数据D可以通过其在节点411的输出端传送到节点412,413,416各自的一个输入端。节点412可以对出现在其输入端的两个令牌数据C和D执行乘法运算。该节点412执行的乘法运算消耗掉令牌数据C和D并产生令牌数据E。该令牌数据E可以通过其在节点412的输出端传送到节点413,414,415各自的一个输入端。节点413可以对出现在其输入端的两个令牌数据D和E执行减法运算。该节点413执行的减法运算消耗掉令牌数据D和E并产生令牌数据F。该令牌数据F可以通过其在节点413的输出端传送到节点414,415,416各自的一个输入端。进一步如图9所示,在与节点414,415,416相关联的令牌数据均准备好的情况下,分别与这三个节点相关的加法运算,第一除法运算,第二除法运算即可以基本以并行的方式被执行。在节点414执行的加法运算消耗掉令牌数据E和F并产生令牌数据G。在节点415执行的第一除法运算消耗掉令牌数据E和F并产生令牌数据H。在节点416执行的第二除法运算消耗掉令牌数据D和F并产生令牌数据K。
请参阅图10,其所示为输入输出扫描处理器20的模块示意图。该输入输出扫描处理器20可以包括令牌数据输入单元226,令牌数据输出单元227,匹配单元212,第一输入执行单元214,第二输入执行单元216,第一输出执行单元218以及第二输出执行单元222。该令牌数据输入单元226,令牌数据输出单元227被配置成临时保存令牌数据。在一种实施方式中,令牌数据输入单元226可以接收并存储通过第一先进先出存储器314传送而来的来自如图7所示的逻辑运算处理器30的令牌数据。举例而言,逻辑运算处理器30通过如图9所示的数据流图执行逻辑运算指令产生令牌数据G,H和K(参看图9)。该令牌数据输入单元226可以存储该等令牌数据G,H和K。在另一种实施方式中,该令牌数据输入单元226接收并存储的令牌数据也可以来自于通信处理器40,该令牌数据可以通过连接在输入输出扫描处理器20和通信处理器40(参看图2)之间的先进先出存储器(图未示出)进行传送。
请继续参阅图10,匹配单元212可以被配置成用来判断存储在局部存储器102中的输入输出扫描程序中的输入输出扫描指令是否可以被执行。判断的一个条件可以包括与输入输出扫描指令相联系的令牌数据是否已经准备好。该匹配单元121还可以被配置成判断是否有空闲的执行单元来执行输入输出扫描指令。举例而言,当从第一先进先出存储器314传送而来的来自如图7所示的逻辑运算处理器30的令牌数据已经存储在令牌数据输入单元226时,该匹配单元212可以进一步判定出令牌数据G和H已经准备好,同时判定出第一输出执行单元218以及第二输出执行单元222当前可供执行输出扫描指令。在此情形下,第一输出执行单元218执行第一输出扫描指令,第二输出执行单元222执行第二输出扫描指令。因此,令牌数据G可以输出到第一外部装置(图未示出),令牌数据H可以输出到第二外部装置(图未示出)。
在另外的实施方式中,在接收到来自于逻辑运算处理器30的请求之后,匹配单元212可以判定第一输入执行单元214和第二输入执行单元216可以执行输入扫描指令。因此,该第一输入执行单元214可以执行第一输入扫描指令,该第二输入执行单元216可以执行第二输入扫描指令,以从外部装置获取数据。获取的数据可以输出到令牌数据输出单元227,然后由令牌数据输出单元227将数据通过第一先进先出存储器312传送给逻辑运算处理器30。
由上所述,通过引入基于数据流计算机架构,至少逻辑运算处理器和输入输出扫描处理器可以并行执行多个逻辑运算功能以及多个输入输出扫描功能,因而可以更有效地提升可编程控制器的执行效率。
虽然结合特定的实施方式对本发明进行了说明,但本领域的技术人员可以理解,对本发明可以作出许多修改和变型。因此,要认识到,权利要求书的意图在于涵盖在本发明真正构思和范围内的所有这些修改和变型。
Claims (26)
1.一种可编程控制器,其特征在于:该可编程控制器包括:
逻辑运算处理器,该逻辑运算处理器用于根据数据流计算机架构执行逻辑运算指令;
功能处理器,该功能处理器用于与该逻辑运算处理器进行通信以交换数据,该功能处理器还用于基于数据流计算机架构执行功能指令;该功能指令和逻辑运算指令以基本并行的方式分别被该功能处理器和该逻辑运算处理器执行,
其中,该可编程控制器还包括局部存储器和数据流存储器,该局部存储器和该数据流存储器与该逻辑运算处理器连接,从功能处理器传送的令牌数据被接收并暂存在数据流存储器中,在判断与该局部存储器中的逻辑运算指令相关联的令牌数据已经准备好时,派送令牌数据已经准备好的逻辑运算指令到指令执行单元,通过执行逻辑运算指令产生的令牌数据被输出。
2.如权利要求1所述的可编程控制器,其特征在于:该逻辑运算处理器和该功能处理器被集成在一个单一的芯片中。
3.如权利要求1所述的可编程控制器,其特征在于:该逻辑运算处理器和该功能处理器被集成多个芯片中。
4.如权利要求1所述的可编程控制器,其特征在于:该可编程控制器被配置成循环运作于同步时段和运行时段。
5.如权利要求4所述的可编程控制器,其特征在于:该逻辑运算处理器和功能处理器在各自运行时段的指令均执行完毕后切换到同步时段。
6.如权利要求4中所述的可编程控制器,其特征在于:该逻辑运算处理器和该功能处理器在预设的最大时间间隔到达时基本同时切换到同步时段。
7.如权利要求4所述的可编程控制器,其特征在于:该逻辑运算处理器和该功能处理器在对应的标记数据部分或者全部完备时分别切换到各自的运行时段。
8.如权利要求1所述的可编程控制器,其特征在于:该可编程控制器包括连接在该逻辑运算处理器和该功能处理器之间的通信链路,该通信链路用于使该逻辑运算处理器和该功能处理器之间进行数据交换。
9.如权利要求8所述的可编程控制器,其特征在于:该通信链路包括第一先进先出存储器和第二先进先出存储器,该第一先进先出存储器用于将数据从功能处理器传送到逻辑运算处理器,该第二先进先出存储器用于将数据从逻辑运算处理器传送到功能处理器。
10.如权利要求8所述的可编程控制器,其特征在于:该通信链路包括可供逻辑运算处理器读取而可供功能处理器写入的第一存储区,该通信链路还包括可供功能处理器读取而可供逻辑运算处理器写入的第二存储区。
11.如权利要求1所述的可编程控制器,其特征在于:该局部存储器可完全被逻辑运算处理器访问,该局部存储器用于存储逻辑运算程序的逻辑运算指令以及中间数据,该数据流存储器可被该逻辑运算处理器直接访问并可被该功能处理器间接访问。
12.如权利要求11所述的可编程控制器,其特征在于:该逻辑运算处理器包括:
令牌数据输入单元,该令牌数据输入单元用于接收并暂存令牌数据;
匹配单元,该匹配单元与该令牌数据输入单元连接,该匹配单元用于通过检查与逻辑运算指令相联系的令牌数据是否已在令牌数据输入单元准备好来判断存储于局部存储器中的逻辑运算指令是否可供执行;
可执行指令存储单元,该可执行指令存储单元连接于该匹配单元,该可执行指令存储单元用于暂存并派送经匹配单元判断为可执行的逻辑运算指令;以及
多个执行单元,该多个执行单元用于执行从该可执行指令存储单元派送而来的可执行逻辑运算指令。
13.如权利要求12所述的可编程控制器,其特征在于:该逻辑运算处理器进一步包括第一开关单元,该第一开关单元用于将该可执行指令存储单元与该多个执行单元中空闲的一个执行单元相连接,以使得该空闲的执行单元可以执行从该可执行指令存储单元派送的可执行逻辑运算指令。
14.如权利要求13所述的可编程控制器,其特征在于:该可编程控制器进一步包括第二开关单元以及令牌数据输出单元,该第二开关单元用于选择性地将该多个执行单元产生的令牌数据传送给至少该令牌数据输入单元和令牌数据输出单元中之一者。
15.如权利要求1所述的可编程控制器,其特征在于:该功能处理器包括用于执行输入输出扫描功能的输入输出扫描处理器。
16.如权利要求15所述的可编程控制器,其特征在于:该局部存储器可完全被该输入输出扫描处理器访问,该局部存储器用于存储输入输出扫描程序的输入输出扫描指令以及中间数据,该数据流存储器可被该输入输出扫描处理器直接访问并可被该逻辑运算处理器间接访问,该数据流存储器用于存储与该输入输出扫描指令相联系的令牌数据。
17.如权利要求16所述的可编程控制器,其特征在于:该输入输出扫描处理器包括:
输入执行单元,该输入执行单元用于从输入装置输入数据;
输出执行单元,该输出执行单元用于输出数据到输出装置;
令牌数据输入单元和令牌数据输出单元,该令牌数据输入单元和令牌数据输出单元用于暂存令牌数据;以及
匹配单元,该匹配单元用于通过检查与输入扫描指令或者输出扫描指令相联系的令牌数据是否已经在令牌数据输入单元或者令牌数据输出单元中准备好来判断该输入扫描指令或者该输出扫描指令是否可被执行;该匹配单元进一步用于判断该输入执行单元是否可以用来执行该输入扫描指令,以及用于判断该输出执行单元是否可以用来执行该输出扫描指令。
18.如权利要求1所述的可编程控制器,其特征在于:该功能处理器包括用于执行通信功能的通信处理器。
19.如权利要求18所述的可编程控制器,其特征在于:该局部存储器可完全被该通信处理器访问,该局部存储器用于存储通信程序的通信指令以及中间数据,该数据流存储器可被该通信处理器直接访问并可被该逻辑运算处理器间接访问,该数据流存储器用于存储与该通信指令相联系的令牌数据。
20.如权利要求1所述的可编程控制器,其特征在于:该功能处理器包括用于执行诊断功能的诊断处理器。
21.如权利要求20所述的可编程控制器,其特征在于:该局部存储器可完全被该诊断处理器访问,该局部存储器用于存储诊断程序的诊断指令以及中间数据,该数据流存储器可被该诊断处理器直接访问并可被该逻辑运算处理器间接访问,该数据流存储器用于存储与该诊断程序相联系的令牌数据。
22.一种操作可编程控制器的方法,该可编程控制器包括可以相互通讯的逻辑运算处理器和功能处理器,其特征在于:该方法包括如下步骤:
逻辑运算处理器执行基于数据流计算机架构的逻辑运算指令;以及
功能处理器执行基于数据流计算机架构的功能指令,
其中该逻辑运算处理器包括局部存储器和数据流存储器,该局部存储器和该数据流存储器与该逻辑运算处理器连接,其中该方法还包括如下步骤:
接收从功能处理器传送的令牌数据并暂存在数据流存储器中;
判断与该局部存储器中的逻辑运算指令相关联的令牌数据是否已经准备好;
派送令牌数据已经准备好的逻辑运算指令到指令执行单元;以及
输出通过执行逻辑运算指令产生的令牌数据。
23.如权利要求22所述的方法,其特征在于:该方法还包括如下步骤:执行逻辑运算指令和功能指令时对逻辑运算处理器和功能处理器执行同步操作。
24.如权利要求22所述的方法,其中该功能处理器可以为从包括输入输出扫描处理器,通信处理器以及诊断处理器的集合中选取的一种,其特征在于:该方法还包括从包括如下步骤的集合中选择的一种步骤:
输入输出扫描处理器执行输入输出扫描指令;
通信处理器执行通信指令;
诊断处理器执行诊断指令。
25.如权利要求22所述的方法,其特征在于:该方法还包括如下步骤:
判断多个指令执行单元中的至少一者是否可以用来执行指令;以及
操作第一开关单元使该多个指令执行单元中之至少一者用来执行指令。
26.如权利要求25所述的方法,其特征在于:该方法还包括如下步骤:
识别通过指令执行单元产生的令牌数据的目的地址;以及
通过第二开关单元选择性地将该指令执行单元产生的令牌数据至少传送给令牌数据输入单元和令牌数据输出单元中的一者。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010601496.XA CN102540952B (zh) | 2010-12-09 | 2010-12-09 | 可编程控制器以及操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010601496.XA CN102540952B (zh) | 2010-12-09 | 2010-12-09 | 可编程控制器以及操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102540952A CN102540952A (zh) | 2012-07-04 |
CN102540952B true CN102540952B (zh) | 2015-05-20 |
Family
ID=46348047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010601496.XA Expired - Fee Related CN102540952B (zh) | 2010-12-09 | 2010-12-09 | 可编程控制器以及操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102540952B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5916677B2 (ja) * | 2013-09-20 | 2016-05-11 | 株式会社日立製作所 | 制御コントローラ及びそのプログラミング方法 |
JP6516874B2 (ja) * | 2016-01-07 | 2019-05-22 | 三菱電機株式会社 | プログラマブルコントローラ及び同期制御プログラム |
CN106292515B (zh) * | 2016-08-30 | 2019-06-21 | 厦门海为科技有限公司 | 一种可编程控制器的通讯指令执行方式 |
CN107942894B (zh) * | 2016-10-13 | 2019-12-10 | 中国石油天然气集团公司 | 主输入输出子模块及其诊断方法、可编辑逻辑控制器 |
CN109932953A (zh) * | 2017-12-19 | 2019-06-25 | 陈新 | 智能超算可编程控制器 |
CN110045698A (zh) * | 2019-04-11 | 2019-07-23 | 重庆川仪控制系统有限公司 | 一种基于dcs控制系统的控制器 |
CN113341864A (zh) * | 2021-06-07 | 2021-09-03 | 重庆高新技术产业研究院有限责任公司 | 一种基于plc的控制相似性可逆向逻辑系统及其分析方法 |
CN114047727B (zh) * | 2021-11-10 | 2024-03-05 | 中国电信股份有限公司 | 控制方法、可编程逻辑控制器及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3718639A1 (de) * | 1987-06-04 | 1988-12-22 | Kloeckner Moeller Elektrizit | Verfahren und schaltungsanordnung zum betreiben von zwei oder mehr mikroprozessoren im parallelbetrieb, insbesondere in speicherprogrammierbare steuerungen |
EP0304880A2 (en) * | 1987-08-26 | 1989-03-01 | Allen-Bradley Company, Inc. | Programmable controller with parallel processors |
CN1384410A (zh) * | 2001-03-30 | 2002-12-11 | 欧姆龙株式会社 | 可编程控制器 |
-
2010
- 2010-12-09 CN CN201010601496.XA patent/CN102540952B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3718639A1 (de) * | 1987-06-04 | 1988-12-22 | Kloeckner Moeller Elektrizit | Verfahren und schaltungsanordnung zum betreiben von zwei oder mehr mikroprozessoren im parallelbetrieb, insbesondere in speicherprogrammierbare steuerungen |
EP0304880A2 (en) * | 1987-08-26 | 1989-03-01 | Allen-Bradley Company, Inc. | Programmable controller with parallel processors |
CN1384410A (zh) * | 2001-03-30 | 2002-12-11 | 欧姆龙株式会社 | 可编程控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN102540952A (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102540952B (zh) | 可编程控制器以及操作方法 | |
US8631160B2 (en) | Development of parallel/distributed applications | |
US20160091882A1 (en) | System and method of multi-core based software execution for programmable logic controllers | |
CN103530187A (zh) | 为多处理器系统设计程序 | |
US7904615B2 (en) | Asynchronous computer communication | |
CN102667649A (zh) | 基于多处理器的可编程逻辑控制器及其操作方法 | |
CN102968364A (zh) | 一种基于通用调试接口的SoC硬件调试器 | |
CN111566616A (zh) | 多处理器系统的编程流程 | |
JP6655028B2 (ja) | 高位合成におけるシステムアーキテクチャの抽出 | |
CN110717584A (zh) | 神经网络编译方法、编译器、计算机设备及可读存储介质 | |
Lastra et al. | An IEC 61499 application generator for scan-based industrial controllers | |
Holcombe et al. | A general framework for agent-based modelling of complex systems | |
Canedo et al. | Towards parallel execution of IEC 61131 industrial cyber-physical systems applications | |
CN114035916A (zh) | 计算图的编译、调度方法及相关产品 | |
Chmiel et al. | Central processing units for PLC implementation in Virtex-4 FPGA | |
CN101727423A (zh) | 可重配置fpga上可抢占硬件多任务系统及其实现方法 | |
CN101751373A (zh) | 基于单一指令集微处理器运算单元的可配置多核/众核系统 | |
CN102681941A (zh) | 一种可扩展的嵌入式仿真测试系统 | |
CN106528217B (zh) | 一种现场可编程门阵列程序加载系统和方法 | |
CN111767995B (zh) | 运算方法、装置及相关产品 | |
Derin et al. | A system-level approach to adaptivity and fault-tolerance in NoC-based MPSoCs: The MADNESS project | |
JP2006294005A (ja) | プログラマブル・コントローラ | |
Khamis et al. | Control system design based on modern embedded systems | |
US11815935B2 (en) | Programming a coarse grained reconfigurable array through description of data flow graphs | |
Bosse | Design of Material-integrated Distributed Data Processing Platforms with Mobile Multi-agent Systems in Heterogeneous Networks. |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150520 Termination date: 20151209 |
|
EXPY | Termination of patent right or utility model |