CN114730168B - 可编程控制器 - Google Patents

可编程控制器 Download PDF

Info

Publication number
CN114730168B
CN114730168B CN201980102404.2A CN201980102404A CN114730168B CN 114730168 B CN114730168 B CN 114730168B CN 201980102404 A CN201980102404 A CN 201980102404A CN 114730168 B CN114730168 B CN 114730168B
Authority
CN
China
Prior art keywords
input
output
unit
controller
programmable controller
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.)
Active
Application number
CN201980102404.2A
Other languages
English (en)
Other versions
CN114730168A (zh
Inventor
太田贵也
长谷川瞬也
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of CN114730168A publication Critical patent/CN114730168A/zh
Application granted granted Critical
Publication of CN114730168B publication Critical patent/CN114730168B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

可编程控制器(1)具有存储部(20)和控制器模拟器部(13)。存储部(20)存储由作为模拟对象的可编程控制器执行的固件及控制程序、对作为模拟对象的可编程控制器的硬件进行模拟所需的硬件信息。控制器模拟器部(13)基于硬件信息对作为模拟对象的可编程控制器的硬件的动作进行模拟。控制器模拟器部(13)在模拟出的硬件上执行固件(211a)及控制程序(221a)。存储部(20)中的固件及硬件信息能够与作为模拟对象的可编程控制器对应地进行变更。

Description

可编程控制器
技术领域
本发明涉及应用了虚拟化技术的可编程控制器。
背景技术
可编程控制器通常是工厂内的装置控制所使用的控制器,执行由装置制造商等用户创建的装置控制用的控制程序。有时为了故障或新产品的更新而置换可编程控制器。但是,就可编程控制器而言,每个产品的程序规格不是统一的,因而,即使在置换为相同制造商的新产品的情况下,也无法原样地沿用以往的控制程序。因此,需要与置换后的产品相对应的控制程序的修改。
在专利文献1中公开了面向将过程控制作为对象的控制系统而应用了虚拟化技术的过程控制装置。虚拟化技术是在新的硬件上执行面向现有系统的软件的技术。专利文献1所记载的过程控制装置具有在硬件上作为硬件的替代品而进行动作的虚拟化部。另外,就专利文献1所记载的过程控制装置而言,在虚拟化部上在使得使用中的操作系统保持着能够进行动作的状态下安装调换后的操作系统。另外,在调换后的操作系统上安装与使用中的控制程序相同的控制程序。然后,将使用中的操作系统上的控制程序的动作与调换后的操作系统上的控制程序的动作进行比较而判定控制程序在调换后的操作系统上是否正常地进行动作。在正常地进行动作的情况下,切换为调换后的操作系统,但在没有正常地进行动作的情况下,停止所安装的新操作系统。
专利文献1:日本特开2015-5258号公报
发明内容
在考虑到可编程控制器的置换的情况下,优选不变更置换前的可编程控制器所执行的控制程序就能够由置换后的可编程控制器执行该控制程序。通常,在可编程控制器的情况下,根据产品,硬件架构的种类及所搭载的系统软件即固件的种类有很多。因此,在置换前与置换后之间,可编程控制器的硬件架构及固件大多不同。在将专利文献1所记载的过程控制装置应用于置换后的可编程控制器的情况下,需要针对每个置换前的可编程控制器而改变对硬件进行模拟的虚拟化部。特别地,在作为模拟对象的可编程控制器的命令集架构与在执行虚拟化部的控制器中搭载的硬件的命令集架构不同的情况下,命令集级别的模拟不可欠缺,需要准备各种种类的虚拟化部。为了应对这种情况,想到准备搭载有对不同的硬件进行模拟的虚拟化部的多种可编程控制器的方法,但在该方法中,存在产品类别的数量变得庞大的问题。
本发明就是鉴于上述课题而提出的,其目的在于,得到在对可编程控制器进行置换时,不依赖于置换前的可编程控制器的硬件及固件,不变更置换前的控制程序就能够使用的可编程控制器。
为了解决上述课题,达到目的,本发明的可编程控制器具有存储部和控制器模拟器部。存储部存储由作为模拟对象的可编程控制器执行的固件及控制程序、对作为模拟对象的可编程控制器的硬件进行模拟所需的硬件信息。控制器模拟器部基于硬件信息对作为模拟对象的可编程控制器的硬件的动作进行模拟。控制器模拟器部在模拟出的硬件上执行固件及控制程序。存储部中的固件及硬件信息能够与作为模拟对象的可编程控制器对应地进行变更。
发明的效果
本发明涉及的可编程控制器具有下述效果,即,在对可编程控制器进行置换时,不依赖于置换前的可编程控制器的硬件及固件,不变更置换前的控制程序就能够使用。
附图说明
图1是示意性地表示实施方式1涉及的可编程控制器的结构的一个例子的框图。
图2是示意性地表示实施方式1中的与控制程序的执行相关的各模块的关系的一个例子的图。
图3是表示控制器模拟器部与存储器区域之间的关系的一个例子的图。
图4是表示实施方式1涉及的可编程控制器的模拟处理的流程的一个例子的流程图。
图5是表示将实施方式1涉及的可编程控制器的虚拟输出变换为可编程控制器的实际输出的方法的一个例子的图。
图6是示意性地表示实施方式2涉及的可编程控制器的结构的一个例子的框图。
图7是示意性地表示实施方式2涉及的输入输出刷新的定时(timing)的调整的一个例子的时序图。
图8是表示实施方式2涉及的可编程控制器的模拟处理的流程的一个例子的流程图。
图9是表示将实施方式2涉及的由模拟得到的虚拟输出变换为可编程控制器的实际输出的方法的一个例子的图。
图10是示意性地表示实施方式3涉及的可编程控制器的结构的一个例子的框图。
图11是表示将实施方式3涉及的由模拟得到的虚拟输出变换为可编程控制器的实际输出的方法的一个例子的图。
图12是示意性地表示实施方式4涉及的可编程控制器的结构的一个例子的框图。
图13是表示在相同的运算部上执行的多个控制器模拟器部的切换定时的一个例子的图。
具体实施方式
以下,基于附图对本发明的实施方式涉及的可编程控制器详细进行说明。此外,本发明不受这些实施方式所限定。
在以下的实施方式中,以在对可编程控制器进行置换时通过置换后的可编程控制器来模拟置换前的可编程控制器的动作为例而进行说明。即,置换前的可编程控制器被置换为实施方式涉及的可编程控制器。以下,实施方式涉及的可编程控制器被简称为“可编程控制器”,成为置换对象的可编程控制器被称为“置换前的可编程控制器”。另外,在可编程控制器上模拟“置换前的可编程控制器”的动作时的虚拟化出的“置换前的可编程控制器”称为“虚拟控制器”。另外,“置换前的可编程控制器”是作为模拟对象的可编程控制器之一。
实施方式1
图1是示意性地表示实施方式1涉及的可编程控制器的结构的一个例子的框图。可编程控制器1具有运算部10、存储部20、通信接口部30和输入输出接口部40。运算部10、存储部20、通信接口部30、输入输出接口部40经由总线50而连接。
运算部10是按照预先确定的硬件架构而构成的微处理器及芯片组。运算部10也被称为微型计算机或微机。运算部10具有在可编程控制器1的硬件上对其它种类的可编程控制器1的硬件的执行控制程序的执行环境进行模拟的功能部即虚拟化部11。
虚拟化部11具有管理部12、控制器模拟器部13、映射信息生成部15和存储器映射I/O(Input/Output)区域14。
管理部12是进行由运算部10执行的软件的管理的功能部。在实施方式1中,管理部12是具有能够并行地执行多个软件的调度功能的操作系统(Operating System:OS)。
控制器模拟器部13是对置换前的可编程控制器的硬件的动作进行模拟的功能部。另外,控制器模拟器部13是在对从存储部20读出的由置换前的可编程控制器使用的固件及控制程序进行了模拟的硬件上执行的功能部。控制器模拟器部13所模拟的置换前的可编程控制器成为虚拟控制器。控制器模拟器部13使用与置换前的可编程控制器相关的后述的硬件信息而执行命令,另外,对置换前的可编程控制器的微机的周边设备的动作进行模拟而执行固件。并且,控制器模拟器部13在固件上执行控制程序。
存储器映射I/O区域14是对在由控制器模拟器部13进行的固件及控制程序的模拟时产生的微机的与周边设备之间的输入输出进行虚拟化的区域。存储器映射I/O区域14在一个例子中是将置换前的可编程控制器的微机所具有的输入输出控制寄存器虚拟化。作为要模拟的存储器区域,对存储器映射I/O区域14分配有地址。
映射信息生成部15是生成将可编程控制器1的输入输出端子的输入输出编号与置换前的可编程控制器的输入输出端子的输入输出编号关联起来的输入输出映射信息的功能部。映射信息生成部15将生成的输入输出映射信息保存于存储部20的输入输出映射信息存储部24。映射信息生成部15在一个例子中以使得置换前的可编程控制器的输入输出编号与可编程控制器1的输入输出编号相同的方式生成输入输出映射信息。另外,映射信息生成部15在一个例子中参照控制程序中的输入输出编号,将控制程序中的输入输出编号即置换前的可编程控制器的输入输出编号与可编程控制器1的输入输出编号进行关联。
存储部20具有固件存储部21、控制程序存储部22、硬件信息存储部23和输入输出映射信息存储部24。存储部20是能够对所存储的数据进行改写的存储装置,在一个例子中是硬盘装置或SSD(Solid State Drive)等非易失性的存储装置。另外,存储部20也可以具有在执行运算部10的处理时对程序进行加载或对数据临时进行保存的RAM(Random AccessMemory)等易失性的存储装置。
固件存储部21是对由置换前的可编程控制器执行的固件进行存储的功能部。此外,置换前的可编程控制器是作为模拟对象的可编程控制器之一。此外,固件存储部21对二进制数据形式的固件进行存储。控制程序存储部22是对由置换前的可编程控制器执行的控制程序进行存储的功能部。
硬件信息存储部23是存储对置换前的可编程控制器的硬件进行模拟所需的硬件信息的功能部。硬件信息具有依赖于控制器模拟器部13所模拟的置换前的可编程控制器的硬件的硬件结构信息。硬件结构信息包含存储器映射、命令模拟处理、寄存器结构、各寄存器操作时的模拟处理等。
输入输出映射信息存储部24是对输入输出映射信息进行存储的功能部。输入输出映射信息是向可编程控制器1的输入输出接口部40的输入输出端子附加的输入输出编号与向虚拟控制器的输入输出端子附加的输入输出编号被关联起来的信息。向虚拟控制器的输入输出端子附加的输入输出编号对应于向置换前的可编程控制器的输入输出端子附加的输入输出编号。输入输出映射信息是在控制器模拟器部13访问了存储器映射I/O区域14的情况下,在将存储器映射I/O区域14的输入输出编号变换为实际的输入输出接口部40的输入输出端子的输入输出编号时使用的。
通信接口部30与可编程控制器1的外部设备即人机接口70连接。人机接口70是能够对可编程控制器1的存储部20进行访问的装置。人机接口70例如是个人计算机等信息处理装置。人机接口70能够将固件、控制程序、硬件信息或输入输出映射信息存储于存储部20,或者将已经存储于存储部20的固件、控制程序、硬件信息或输入输出映射信息从存储部20删除。另外,人机接口70是能够接收输入输出映射信息的自动分配结果,或进行由用户实施的针对结果的确认的装置。并且,人机接口70是能够对输入输出映射信息的内容进行修改的装置。例如,用户能够一边通过人机接口70来观察输入输出映射信息一边进行向可编程控制器1的输入输出端子的配线。另外,用户能够在变更了向输入输出端子的配线的情况下,通过人机接口70对输入输出映射信息进行变更。
硬件信息和固件对置换前的可编程控制器的动作环境进行规定。因此,能够通过将想要模拟的置换前的可编程控制器的动作环境即硬件信息和固件从人机接口70写入至存储部20,由虚拟化部11来执行,从而对置换前的可编程控制器的所期望的动作进行模拟。
输入输出接口部40具有输入端子41、输出端子42和输入输出控制部43。输入端子41与输入设备经由配线而连接。输入设备的一个例子是开关、传感器或旋转编码器。输出端子42与输出设备经由配线而连接。输出设备的一个例子是继电器、阀或致动器。对输入端子41依次附加输入编号“0”至“N”(N是任意的自然数)的编号。对输出端子42依次附加输出编号“0”至“N”的编号。此外,在图1中,输入编号“i”被记作“输入i”(i是0至N的自然数),输出编号“i”被记作“输出i”。另外,在图1中,在输入编号“0”的输入端子41安装有开关81,在输出编号“0”的输出端子42安装有灯91。在本说明书中,输入端子41和输出端子42也合称为输入输出端子,输入设备和输出设备也合称为输入输出设备。
输入输出控制部43是对存储器映射I/O区域14与经由了输入端子41及输出端子42的输入输出设备之间的数据的传输进行控制的功能部。具体地说,输入输出控制部43在产生了向输入端子41或输出端子42的访问的情况下,与控制器模拟器部13协同地执行输入输出刷新处理。输入输出刷新处理是将计算出的输出信息经由输出端子42而设定给输出设备,经由输入端子41而接收来自输入设备的输入信息的处理。
在图1中示出了1台输入设备、1台输出设备与可编程控制器1连接的情况,但与可编程控制器1连接的输入设备和输出设备的台数不受限定。即,也可以是多台输入设备或多台输出设备与可编程控制器1连接。
另外,有时输入输出设备相对于置换前的可编程控制器的输入输出端子的连接方式与输入输出设备的相对于可编程控制器1的输入输出端子的连接方式不同。在这样的情况下,使用将向可编程控制器1的输入输出端子附加的输入输出编号与向置换前的可编程控制器的输入输出端子附加的输入输出编号之间的关系关联起来的输入输出映射信息。即,控制器模拟器部13使用输入输出映射信息将输出信息的输出目标从存储器映射I/O区域14中的虚拟化出的输出目标变换为可编程控制器1的实际的输出目标。另外,控制器模拟器部13将存储器映射I/O区域14中的虚拟化出的输入源变换为可编程控制器1的实际的输入源而接收输入信息。
图2是示意性地表示实施方式1中的与控制程序的执行相关的各模块的关系的一个例子的图。这里,将控制器模拟器部13、固件211a及控制程序221a作为模块而示出。
固件211a是作为能够由在置换前的可编程控制器中搭载的微机来执行的二进制数据形式的文件而提供的。
控制器模拟器部13是能够对表示固件211a的二进制文件进行解码而由软件进行解释、执行的命令集模拟器(Instruction Set Simulator:ISS)。另外,控制器模拟器部13是作为管理部12上的1个进程而构成的。此外,这里,说明了为了执行面向命令集架构不同的硬件的固件211a,控制器模拟器部13具体是ISS的情况,但也可以由具有同等功能的硬件功能来代替控制器模拟器部13。另外,在执行面向命令集架构相同的硬件的固件211a的情况下,也可以构成为在控制器模拟器部13的进程中直接执行固件211a。
控制程序221a是作为已变换为置换前的可编程控制器可执行的形式的数据而提供的。控制程序221a的数据形式及执行方式针对各可编程控制器是各种各样的。作为执行方式,想到由固件211a通过解释方式来执行的方式、搭载能够直接执行控制程序221a的专用硬件的方式或者将这两者组合起来的方式。在实施方式1中,将固件211a为对控制程序221a直接进行解释而执行的解释方式者设为对象。如图2所示,通过在控制器模拟器部13上执行固件211a,从而能够执行用于执行控制程序221a的逻辑,其结果,实现控制程序221a的执行。
图3是表示控制器模拟器部与存储器区域之间的关系的一个例子的图。在图3中示出控制器模拟器部13、控制器模拟器部13所模拟的存储器区域310、分配给控制器模拟器部13的进程的存储器空间350。
在存储器区域310中,对虚拟控制器所包含的ROM(Read Only Memory)、RAM及存储器映射I/O区域14分配有存储器地址。存储器映射I/O区域14是置换前的可编程控制器的微机的周边设备的寄存器区域。
在分配给控制器模拟器部13的进程的存储器空间350配置有已变换为面向可编程控制器1的执行代码的控制程序221a、二进制数据形式的固件211a、硬件信息231、输入输出映射信息241。
与置换前的可编程控制器相关的硬件信息231及输入输出映射信息241和由作为模拟对象的可编程控制器执行的控制程序221a及固件211a在被分配给控制器模拟器部13的进程的存储器空间350中展开。控制程序221a是存储器区域310的控制程序221被变换为面向可编程控制器1的执行代码后的程序。固件211a是存储器区域310的固件211被变换为二进制数据形式后的固件。上述控制程序221a、固件211a、硬件信息231及输入输出映射信息241根据需要而由控制器模拟器部13进行参照,或者进行值的更新。
在输入输出映射信息241中,附加于可编程控制器1的输入端子41的输入编号被分配给虚拟控制器的输入端子的输入编号。因此,可编程控制器1的输入端子41的输入编号与所分配的对虚拟控制器进行识别的信息及该虚拟控制器的输入端子的输入编号被关联起来。另外,在输入输出映射信息241中,附加于可编程控制器1的输出端子42的输出编号被分配给虚拟控制器。因此,可编程控制器1的输出端子42的输出编号与所分配的对虚拟控制器进行识别的信息及该虚拟控制器的输出端子的输出编号被关联起来。
控制器模拟器部13为了对包含CPU(Central Processing Unit)的运算部的动作进行模拟而具有虚拟程序计数器131和虚拟通用寄存器132。虚拟程序计数器131及虚拟通用寄存器132的实体都是控制器模拟器部13的进程上的1个数据。虚拟通用寄存器132对通过控制器模拟器部13的运算处理而产生的任意的数据进行储存。
虚拟程序计数器131是用于表示控制器模拟器部13当前正在执行的存储器区域上即所模拟的存储器区域310上的地址的数据。控制器模拟器部13对在虚拟程序计数器131保存的地址处的固件211进行解释、执行。该固件211的实体是向控制器模拟器部13的进程分配的存储器空间350上的固件211a。因此,控制器模拟器部13将在虚拟程序计数器131保存的地址变换为存储器空间350的地址,从存储器空间350进行实际的二进制数据形式的固件211a的数据的读出。
将二进制数据形式的固件211a作为命令而进行解释、执行的情况下的逻辑及用于对该解释后的命令进行模拟的处理被保存于硬件信息231。因此,控制器模拟器部13基于该硬件信息231而进行命令的模拟。
在通过固件211a的执行而产生了向所模拟的存储器区域310的存储器映射I/O区域14的访问的情况下,执行用于软件性地对相应的硬件动作进行模拟的处理。微机的周边设备的模拟处理被保存于硬件信息231,因而控制器模拟器部13基于该硬件信息231而对与向存储器映射I/O区域14的访问相关的硬件动作进行模拟。在相应的硬件动作是用于对可编程控制器1的输入输出进行控制的动作的情况下,控制器模拟器部13还参照输入输出映射信息241,按照输入输出映射信息241的分配而进行经由了实际的输入端子41或输出端子42的信息输入输出。例如,控制器模拟器部13将所访问的虚拟的输入输出端子的输入输出编号变换为实际的输入输出端子的输入输出编号,从实际的输入端子41接收输入信息,或将输出信息向实际的输出端子42输出。这是因为,由控制器模拟器部13运算出的存储器映射I/O区域14属于置换前的可编程控制器,因此,需要变换为进行可编程控制器1的实际的输入输出控制的寄存器的输入输出编号。
接下来,对这样的结构的可编程控制器1的动作进行说明。图4是表示实施方式1涉及的可编程控制器的模拟处理的流程的一个例子的流程图。
如果通过运算部10作为管理部12上的进程生成了控制器模拟器部13,则控制器模拟器部13从存储部20读出与置换前的可编程控制器相关的硬件信息231及输入输出映射信息241、由置换前的可编程控制器执行的固件211a及控制程序221a,加载至存储器上(步骤S11)。
接着,控制器模拟器部13将虚拟程序计数器131设定为启动固件211的地址即固件启动地址(步骤S12)。控制器模拟器部13将在初始状态下进行命令获取的地址设定为所模拟的存储器区域310上的固件启动地址。
然后,控制器模拟器部13将在虚拟程序计数器131设定的固件启动地址变换为加载至存储器的二进制数据形式的固件211a的地址,对相应的地址的1个命令量的固件211a进行解码而执行(步骤S13)。该处理被称为微机命令解码处理。这里,微机的命令存在通常运算、逻辑运算、浮点运算、跳转、比较、存储器转发、NOP(no operation;空操作)、特权命令各种类别,但控制器模拟器部13执行用于对这些命令进行模拟的处理。此外,特权命令存在控制寄存器操作、中断等级变更、主管调用等。
例如设为置换前的可编程控制器的微机具有“ADD R1、R2、#100”这一命令。该命令实现“向R1寄存器储存将R2寄存器的值和现值100相加后的结果”这一处理。虚拟化部11的控制器模拟器部13按照该命令而执行同等的处理,向虚拟通用寄存器132储存该结果。
接着,控制器模拟器部13对作为执行对象的命令是否为访问存储器的命令进行判定(步骤S14)。在作为执行对象的命令不是访问存储器的命令的情况下(在步骤S14中为No的情况下),控制器模拟器部13参照硬件信息231而执行作为执行对象的命令处理(步骤S15)。该处理被称为微机命令模拟处理。
另外,在作为执行对象的命令是访问存储器的命令的情况下(在步骤S14中为Yes的情况下),控制器模拟器部13对访问目标的地址是否为存储器映射I/O区域14进行判定(步骤S16)。在访问目标的地址不是存储器映射I/O区域14的情况下(在步骤S16中为No的情况下),执行步骤S15的微机命令模拟处理。另外,在访问目标的地址是存储器映射I/O区域14的情况下(在步骤S16中为Yes的情况下),控制器模拟器部13参照硬件信息231而执行与对应于作为执行对象的命令处理的周边设备相关的硬件模拟处理(步骤S17)。该处理被称为微机周边设备模拟处理。这里,控制器模拟器部13按照硬件信息231而对硬件动作进行模拟。另外,控制器模拟器部13在访问对象访问进行可编程控制器1的输入输出控制的寄存器的情况下,按照输入输出映射信息241而进行经由了实际的输入输出端子的输入信息或输出信息的反映。具体地说,控制器模拟器部13参照输入输出映射信息241,经由输入输出控制部43而进行输出信息向被分配给输入输出映射信息241的输出设备的输出或来自输入设备的输入信息的导入。
然后或在步骤S15之后,控制器模拟器部13将虚拟程序计数器131设定为与固件211的下一条命令对应的地址(步骤S18),处理返回步骤S13。
图5是表示将实施方式1涉及的可编程控制器的虚拟输出变换为可编程控制器的实际输出的方法的一个例子的图。这里,设为置换前的可编程控制器的输出控制为使用输出控制寄存器341而控制的规格。另外,输出控制寄存器341是向所模拟的存储器区域310的地址“0x10001000”映射的寄存器,各位(bit)“b0”至“b15”对应于置换前的可编程控制器的各输出编号的输出端子。
就置换前的可编程控制器而言,例如在要将输出编号“1”的输出端子设为“ON(接通)”的情况下,只要将输出控制寄存器341的第1位设定为“1”即可。
假设,在通过控制器模拟器部13上的固件即通过虚拟控制器执行了用于将输出编号“1”、“2”的输出端子设为“ON”的处理的情况下,控制器模拟器部13执行输出控制寄存器341的硬件模拟处理。即,控制器模拟器部13向与输出控制寄存器341对应的存储器映射I/O区域14中的虚拟寄存器141进行虚拟输出。此时,虚拟寄存器141的第1位的“X1”及第2位的“X2”的位被设为“ON”。该输出控制寄存器341是用于对可编程控制器1的输入输出进行控制的寄存器,因此,在参照了输入输出映射信息241的基础上,向可编程控制器1的实际的输入输出控制寄存器441输出硬件模拟处理的结果。即,输入输出控制部43基于输入输出控制寄存器441的内容而进行输入端子41或输出端子42的“ON”或“OFF(断开)”的控制。
在图5的输入输出映射信息241中,可编程控制器1的输出编号“0”、“1”、“2”分别与由控制器模拟器部13模拟的虚拟控制器上的输出编号“2”、“1”、“0”关联。因此,在虚拟控制器上的输出编号”0”、“1”、“2”的值分别是“0”、“1”、“1”的情况下,输出端子42的输出编号”0”、“1”、“2”的值分别被设定为“1”、“1”、“0”。关于虚拟控制器上的输出编号“3”及之后的输出端子的值,也同样地参照输入输出映射信息241而设定于被关联起来的可编程控制器1的输出编号的输出端子42。在图5的例子中,虚拟控制器上的输出编号“3”及之后的值都是“0”。
在实施方式1中,控制器模拟器部13一边对固件211a的1个命令进行解码一边执行固件211a的1个命令,进行该命令的模拟。另外,在命令的访问目标是存储器映射I/O区域14的情况下,也同时进行硬件的模拟。控制器模拟器部13如果完成1个命令的模拟,则继续进行以下处理,即,一边执行下一个命令一边进行模拟。这里,在固件211a的执行时参照的各命令的模拟处理及访问了存储器映射I/O区域14的情况下的硬件的模拟处理被保存于硬件信息231,并且,固件211及硬件信息231能够通过通信接口部30而进行变更。因此,能够通过对它们进行调换,从而自由地对作为模拟对象的可编程控制器进行调换。另外,在通过硬件的模拟处理而访问可编程控制器1的输入输出端子时参照的输入输出映射信息241能够由用户手动地进行变更,因此,能够自由地对在控制器模拟器部13上模拟的虚拟控制器的虚拟输入输出与可编程控制器1的实际的输入输出之间的关联进行变更。
此外,在实施方式1中,就置换前的可编程控制器而言,以固件对控制程序直接进行解释而执行控制程序的方式进行了说明,但是,即使在对搭载用于执行控制程序的专用硬件的可编程控制器进行模拟的情况下,也能够通过准备用于对该专用硬件进行模拟的硬件信息而同样地对控制程序的执行进行模拟。
另外,在实施方式1中,经由通信接口部30而调换了固件211、控制程序221及硬件信息231或者变更了输入输出映射信息241的内容。但是,可编程控制器1也可以构成为具有用于安装保存有这些信息的存储介质的接口,可编程控制器1经由该接口从存储介质读出数据而进行模拟动作。存储介质的一个例子是SD存储卡、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc或Digital Video Disc)-ROM、BD(Blu-ray(注册商标)Disc)-ROM、压缩闪存(注册商标)、软盘(注册商标)等。
实施方式2
图6是示意性地表示实施方式2涉及的可编程控制器的结构的一个例子的框图。以下,对与实施方式1不同的部分进行说明。另外,对与实施方式1相同的结构要素标注相同的标号,省略其说明。
在实施方式2中,控制器模拟器部13还具有以下功能,即,对由置换前的可编程控制器执行固件的命令所需的时间进行估算,计算出置换前的可编程控制器的输入输出刷新处理的开始时刻,将其结果通知给后述的输入输出定时调整部431。具体地说,控制器模拟器部13在每次以1个命令语句为单位对固件211a进行解码而执行固件211a时,对由置换前的可编程控制器实际地执行命令的时间即命令执行时间进行估算。另外,控制器模拟器部13对累积了从上次的输入输出刷新处理结束时算起的命令执行时间而得到的累积命令执行时间进行计算。然后,如果存在向输入输出刷新用的寄存器的访问,则控制器模拟器部13使用该时间点的累积命令执行时间对由置换前的可编程控制器执行控制程序的扫描处理结束的时刻即实际上开始输入输出刷新处理的时刻进行估算。控制器模拟器部13将估算出的输入输出刷新处理的开始时刻输出至输入输出定时调整部431。
可编程控制器1的输入输出控制部43还具有输入输出定时调整部431。输入输出定时调整部431基于使可编程控制器1的输入输出刷新的实施定时与置换前的可编程控制器的输入输出刷新的实施定时相同的功能。在成为控制器模拟器部13估算出的输入输出刷新处理的开始时刻之前,输入输出定时调整部431使输入输出控制部43处于等待状态,如果成为输入输出刷新处理的开始时刻,则可以进行由输入输出控制部43实现的输入输出刷新处理的执行。
图7是示意性地表示实施方式2涉及的输入输出刷新的定时的调整的一个例子的时序图。在图7中,上部分示出置换前的可编程控制器的动作,下部分示出控制器模拟器部13上的动作。如置换前的可编程控制器的动作所示的这样,通常,可编程控制器反复执行以下处理,即,执行控制程序的扫描511和进行外部的输入设备的输入信息的导入或向外部的输出设备的运算结果即输出信息的输出的输入输出刷新521。并且,由此实现装置等的控制。
这里,考虑到置换前的可编程控制器是旧型号且运算速度慢的情况。在这样的情况下,与置换前的可编程控制器上的扫描511的执行相比,控制器模拟器部13上的扫描512的执行更早地结束。因此,在实施方式2中,在这样的情况下,在控制器模拟器部13上的扫描512之后,输入输出定时调整部431设置图7所示的定时调整532的时间。由此,以置换前的可编程控制器的输入输出刷新521与控制器模拟器部13上的输入输出刷新522在相同的时刻开始的方式进行调整。其结果,来自作为控制对象的设备的输入、向该设备的输出定时与实际动作相同。
图8是表示实施方式2涉及的可编程控制器的模拟处理的流程的一个例子的流程图。此外,以下,对与实施方式1的图4不同的部分进行说明。
在步骤S11之后,控制器模拟器部13将累积命令执行时间初始化(步骤S31)。然后,处理转移至步骤S12。
在步骤S15之后,控制器模拟器部13对模拟的命令的置换前的可编程控制器的命令执行时间进行估算,相加至该时间点的累积命令执行时间(步骤S32)。加上命令执行时间后的累积命令执行时间成为新的累积命令执行时间。然后,处理转移至步骤S18。
当在步骤S16中访问目标地址是存储器映射I/O区域14的情况下(在步骤S16中为Yes的情况下),控制器模拟器部13对访问目标地址是否为输入输出刷新用的寄存器进行判定(步骤S33)。在访问目标地址不是输入输出刷新用的寄存器的情况下(在步骤S33中为No的情况下),控制器模拟器部13对相应的寄存器执行硬件模拟处理(步骤S34)。然后,处理向步骤S32转移。
另外,在访问目标地址是输入输出刷新用的寄存器的情况下(在步骤S33中为Yes的情况下),控制器模拟器部13取得该时间点的累积命令执行时间,根据累积命令执行时间对作为模拟对象的实际的可编程控制器的输入输出刷新处理的开始时刻进行估算(步骤S35)。接着,控制器模拟器部13将估算出的输入输出刷新处理的开始时刻输出至输入输出定时调整部431(步骤S36)。然后,控制器模拟器部13在从输入输出定时调整部431接收到输入输出刷新的执行完成的通知之前处于等待状态(步骤S37)。
输入输出定时调整部431如果接收到输入输出刷新处理的开始时刻,则对输入输出刷新处理的开始时刻进行设定(步骤S38)。然后,输入输出定时调整部431对当前的时刻是否成为输入输出刷新处理的开始时刻进行判定(步骤S39),在当前的时刻不是输入输出刷新处理的开始时刻的情况下(在步骤S39中为No的情况下),处于等待状态。
另外,在当前的时刻成为输入输出刷新处理的开始时刻的情况下(在步骤S39中为Yes的情况下),输入输出定时调整部431允许由输入输出控制部43实现的输入输出刷新处理的执行。即,输入输出控制部43执行进行输入信息的导入或输出信息的设定的输入输出刷新处理(步骤S40)。然后,输入输出定时调整部431将输入输出刷新处理的执行完成通知给控制器模拟器部13(步骤S41)。
如果控制器模拟器部13从输入输出定时调整部431接收到输入输出刷新处理的执行完成的通知(步骤S42),则处理转移至步骤S31。
此外,这里,说明了控制器模拟器部13在每次进行微机的命令执行时对实际的该命令的命令执行时间进行估算,通过该累积命令执行时间对实际的扫描时间进行估算的方式,但也可以使用除此以外的时间估算的方法。例如,也可以以控制程序221的每个命令为单位对命令执行时间进行估算,通过该累积命令执行时间对实际的扫描时间进行估算。
图9是表示将实施方式2涉及的由模拟得到的虚拟输出变换为可编程控制器的实际输出的方法的一个例子的图。这里,说明将值设定给在实施方式1中说明过的与输出控制寄存器341对应的虚拟寄存器141而将该值反映至实际输出的情况下的输出时的动作。
当在控制器模拟器部13所执行的固件211a上产生了向输出控制寄存器341的访问的情况下,以与置换前的可编程控制器的向输出控制寄存器341的输出相同的方式向虚拟寄存器141输出虚拟输出。虚拟输出以置换前的可编程控制器的输入输出设备的连接及硬件结构为前提。因此,在对实际的可编程控制器1的输入输出端子进行输入输出的情况下,与可编程控制器1的输入输出设备的连接及硬件结构匹配地对输出进行变换。即,参照输入输出映射信息241而将虚拟输出的输出编号变换为实际的输出编号。在实施方式2中,此时,控制器模拟器部13参照累积命令执行时间435而计算出输入输出刷新的开始时刻“A”。即,在这种情况下,计算出来自实际的输出端子42的输出信息的输出时刻。这里得到的实际的输出编号和输入输出刷新的开始时刻“A”被保存于输入输出定时调整部431。并且,如果成为开始时刻“A”,则输入输出定时调整部431向输入输出控制部43通知已成为输入输出刷新处理的开始时刻这一情况,输入输出控制部43进行各输出信息的输出。
在实施方式2中,控制器模拟器部13对在通过实际的作为模拟对象的可编程控制器执行由控制器模拟器部13执行的命令时所需的命令执行时间进行估算,进而对累积命令执行时间进行估算。并且,在作为执行对象的命令的访问目标地址是输入输出刷新用的寄存器的情况下,控制器模拟器部13使用累积命令执行时间对实际的作为模拟对象的可编程控制器的输入输出刷新处理的开始时刻进行估算。输入输出定时调整部431使用该输入输出刷新处理的开始时刻而调整可编程控制器1的进行输入输出刷新处理的定时。由此,具有下述效果,即,能够使可编程控制器1的进行输入输出刷新的定时与作为模拟对象的实际的可编程控制器相同。
实施方式3
图10是示意性地表示实施方式3涉及的可编程控制器的结构的一个例子的框图。以下,对与实施方式1不同的部分进行说明。另外,对与实施方式1相同的结构要素标注相同的标号,省略其说明。
在实施方式3中,可编程控制器1具有多个运算部10A、10B。运算部10A、10B各自与在实施方式1中说明过的运算部同样地,具有虚拟化部11A、11B。即,在可编程控制器1设置多个虚拟化部11A、11B。虚拟化部11A与实施方式1的运算部10同样地,具有管理部12A、控制器模拟器部13A、存储器映射I/O区域14A及映射信息生成部15A。同样地,虚拟化部11B具有管理部12B、控制器模拟器部13B、存储器映射I/O区域14B及映射信息生成部15B。由此,可编程控制器1能够对多个置换前的可编程控制器进行模拟。即,在虚拟化部11A上执行固件211a,在固件211a上执行控制程序221a。在虚拟化部11B上执行固件212a,在固件212a上执行控制程序222a。此外,在图10中,示出了设置2个运算部10A、10B的情况,但也可以设置有大于或等于3个运算部。
根据这样的结构,硬件信息存储部23对与在虚拟化部11A、11B设置的控制器模拟器部13A、13B对应数量的硬件信息进行存储。另外,固件存储部21对与在虚拟化部11A、11B设置的控制器模拟器部13A、13B对应数量的固件211a、212a进行存储,控制程序存储部22对与在虚拟化部11A、11B设置的控制器模拟器部13A、13B对应数量的控制程序221a、222a进行存储。输入输出映射信息存储部24对多个控制器模拟器部13之间共通的一个输入输出映射信息进行存储。
在图10中,在输入编号“60”的输入端子41还连接有开关82,在输出编号“60”的输出端子42还连接有磁性开关92。
就图10所示的可编程控制器1而言,由运算部10A执行控制程序221a,由运算部10B执行控制程序222a,通过这些控制程序221a、222a而对外部的输入设备及输出设备进行控制。
在图10的例子中,输入编号“0”至“59”的输入端子41和输出编号“0”至“59”的输出端子42由控制程序221a控制。另外,输入编号“60”至“139”的输入端子41和输出编号“60”至“139”的输出端子42由控制程序222a控制。
各控制器模拟器部13A、13B的动作与在实施方式1的图4的流程图中说明过的动作相同,各控制器模拟器部13A、13B独立地进行动作。这里,示出了可编程控制器1的硬件具有多个运算部10A、10B,不同的控制器模拟器部13A、13B在各运算部10A、10B上并行地执行的情况。但是,也可以是在可编程控制器1的硬件具有1个运算部10的情况下,通过以时间分割的方式对动作进行切换,从而虚拟化部11具有多个控制器模拟器部13A、13B。在这种情况下,一边以时间分割的方式对动作进行切换,一边执行各控制器模拟器部13A、13B的处理。
图11是表示将实施方式3涉及的由模拟得到的虚拟输出变换为可编程控制器的实际输出的方法的一个例子的图。在控制器模拟器部13A对输入输出接口部40进行访问的情况下,即,在如图4的步骤S17中的处理那样,固件进行了向进行输入输出控制的硬件的访问的情况下,参照输入输出映射信息241而进行向相应的实际的输出编号的输出端子42的输出。
此外,在图11中,输入输出映射信息241的内容与图5不同。在实施方式1中,运算部10对1个虚拟控制器进行模拟,但在实施方式3中,运算部10A、10B对2个虚拟控制器进行模拟。因此,在输入输出映射信息241的“虚拟控制器分配”的栏输入由运算部10A模拟的虚拟控制器A或由运算部10B模拟的虚拟控制器B。
这里,以在控制器模拟器部13A上执行的固件211a访问实际的输入输出端子的情况为例而进行说明。输出控制寄存器341与在实施方式1中说明过的输出控制寄存器相同,是作为模拟对象的实际的可编程控制器所具有的输出控制寄存器,各位与可编程控制器的各输出编号对应。
当在控制器模拟器部13A上进行向该输出控制寄存器341的第1位、第2位的写入的情况下,执行相应的硬件模拟处理。即,控制器模拟器部13A进行向与输出控制寄存器341对应的存储器映射I/O区域14的虚拟寄存器141的第1位和第2位的写入。并且,控制器模拟器部13A参照输入输出映射信息241而进行向实际的输出端子42的反映。在输入输出映射信息241中,输出编号“0”至“59”被分配给由控制器模拟器部13A模拟的“虚拟控制器A”,并且,可编程控制器1的输出编号”0”、“1”、“2”分别与控制器模拟器部13A上的虚拟寄存器的输出编号“2”、“1”、“0”关联。因此,控制器模拟器部13A将输出端子42的输出编号”0”、“1”、“2”的值分别设定为“1”、“1”、“0”而输出至实际的输入输出控制寄存器441。此外,在由控制器模拟器部13B访问了实际的输入输出端子的情况下,也同样地基于输入输出映射信息241的分配而进行向实际的输入输出端子的访问。
这样,参照共通的输入输出映射信息241而对多个控制器模拟器部13A、13B的输入输出动作进行模拟。由此,输入编号“0”至“59”的输入端子41和输出编号“0”至“59”的输出端子42由控制程序221a控制。另外,能够实现输入编号“60”至“139”的输入端子41和输出编号“60”至“139”的输出端子42由控制程序222a控制的动作。并且,能够通过变更输入输出映射信息241而变更多个控制器模拟器部13A、13B之间的向实际的输入端子41及输出端子42的分配关系。
此外,在上述说明中,各控制器模拟器部13A、13B的输入输出被分配给可编程控制器1的任意者的实际的输入端子41及输出端子42。但是,在需要控制器模拟器部13A、13B之间的输入输出的连接的情况下,也可以构成为控制器模拟器部13A、13B之间的输入输出在内部连接。在这种情况下,例如,当在输入输出映射信息241中预先记述有控制器模拟器部13A、13B之间的输入输出关系,一个控制器模拟器部访问了与另一个控制器模拟器部连接的输出的情况下,能够利用将该输出结果通过进程间通信而反映至另一个控制器模拟器部的输入的方法。
在实施方式3中,可编程控制器1具有多个控制器模拟器部13A、13B,由各控制器模拟器部13A、13B对不同的置换前的可编程控制器的动作进行模拟。由此,能够将多个现有的控制程序221a、222a整合于一个可编程控制器1的硬件上而同时地执行。
实施方式4
图12是示意性地表示实施方式4涉及的可编程控制器的结构的一个例子的框图。以下,对与实施方式1、3不同的部分进行说明。另外,对与实施方式1、3相同的结构要素标注相同的标号,省略其说明。
与实施方式3的情况同样地,可编程控制器1具有多个控制器模拟器部13A、13B。但是,在实施方式3中,可编程控制器1是具有物理上不同的多个运算部10A、10B,各运算部10A、10B具有控制器模拟器部13A、13B的结构,但在实施方式4中,可编程控制器1是具有1个运算部10,运算部10中的虚拟化部11具有多个控制器模拟器部13A、13B的结构。如上所述,在这样的情况下,运算部10一边以时间分割的方式对多个控制器模拟器部13A、13B进行切换一边使它们进行动作。
在图12中,在输入编号“0”的输入端子41连接有旋转编码器83,在输入编号“60”的输入端子41连接有开关82。另外,在输出编号“0”的输出端子42连接有灯91,在输出编号“60”的输出端子42连接有磁性开关92。
可编程控制器1的输入输出控制部43还具有优先事件检测部432。优先事件检测部432具有以下功能,即,在由多个控制器模拟器部13A、13B进行模拟动作处理的过程中,对与应优先处理的中断程序关联的事件的产生进行检测,将表示产生了事件这一情况的事件通知向运算部10进行通知。以下,将与应优先处理的中断程序关联的事件称为优先事件。
运算部10的管理部12还具有切换部121。切换部121是如下功能部,即,如果被从优先事件检测部432通知了事件通知,则即使与由于优先事件的产生而执行中断程序的控制器模拟器部不同的控制器模拟器部正在进行动作,也将处理切换至执行中断程序的控制器模拟器部。
可编程控制器1通常具有以特定的事件为契机而高速地进行动作的中断程序的执行功能。事件是输入信号的上升或下降、脉冲计数器的值的变动、内部定时器的加计数等。将这些事件作为契机而进行动作的中断程序以比正在执行的控制程序更高优先度地进行动作,实现高速的响应性。
当2个控制器模拟器部13A、13B在相同的运算部10上得到执行的情况下,有时在控制器模拟器部13A正在执行时产生应由控制器模拟器部13B进行处理的优先事件。在这种情况下,在经过了被分配给控制器模拟器部13A的时间之前,控制器模拟器部13B无法执行与优先事件对应的中断处理,因此,中断程序的响应性变差。
因此,在实施方式4中,为了提高优先事件产生时的响应性能,在输入输出控制部43设置优先事件检测部432,在管理部12设置切换部121。
这里,对产生中断的例子进行说明。对在旋转编码器83的脉冲计数达到了预先确定的设定值的情况下,由控制器模拟器部13B执行中断程序这一情况进行说明。
在优先事件检测部432设定通知所需的条件作为优先事件。优先事件是如果产生事件,则必须优先地执行中断程序的事件。这里,“与输入编号“0”的输入端子41相对的脉冲数成为预先确定的设定值的情况”被设定为条件。至于在控制器模拟器部13A、13B上模拟的固件211a、212a如何进行该设定,根据成为控制器模拟器部13A、13B的模拟对象的可编程控制器的硬件规格而不同。这里,将搭载有进行脉冲计数的专用硬件的可编程控制器设想为由控制器模拟器部13A进行模拟的可编程控制器而进行说明。面向搭载有专用硬件的可编程控制器的固件访问该专用硬件的寄存器。通过向该寄存器的访问,从而执行由控制器模拟器部13A进行的硬件模拟处理。在硬件模拟处理中,针对优先事件检测部432设定需要进行脉冲监视的输入编号“0”和成为事件条件的脉冲数。
在设定的优先事件的条件成立的情况下,优先事件检测部432向切换部121通知事件的产生。切换部121将在应该对优先事件进行处理的控制器模拟器部13B上的虚拟通用寄存器132存储的硬件寄存器信息设为产生了事件时的状态,并且,如果应该对优先事件进行处理的控制器模拟器部13B并未被执行,则进行在运算部10上执行的控制器模拟器部13A、13B的切换。
图13是表示在相同运算部上执行的多个控制器模拟器部的切换定时的一个例子的图。在该图中,上部分示出控制器模拟器部13A的动作的状态,下部分示出控制器模拟器部13B的动作的状态。另外,横轴是时间。
在未产生优先事件的情况下,控制器模拟器部13A、13B一边基于特定的执行周期以时间分割的方式进行切换一边执行处理。在图13中,首先,在执行周期551中,由控制器模拟器部13A执行处理,在之后的执行周期552中,由控制器模拟器部13B执行处理。在下一个执行周期553中,由控制器模拟器部13A执行处理,但在该执行周期553中的时刻t1,产生了优先事件560。这里,优先事件560是由旋转编码器83得到的脉冲计数值达到设定值。优先事件检测部432对优先事件560的产生进行检测,将表示优先事件的产生的事件通知向切换部121进行通知。切换部121如果接收到事件通知,则即使在控制器模拟器部13A进行动作的执行周期553的中途,也将处理从控制器模拟器部13A切换至控制器模拟器部13B,将控制器模拟器部13B设为可进行动作的状态。然后,控制器模拟器部13B执行与优先事件对应的中断程序。
这里,执行中断程序的时间即中断程序执行用分配时间570是基于特定的算法而计算出的。或者,中断程序执行用分配时间570也可以变更固件212a本身,在中断程序完成时追加挂钩处理,由此对中断程序的执行完成进行检测。在追加挂钩处理的方式的情况下,不需要预测中断程序的执行完成时刻,由此不需要中断程序执行用分配时间570的计算。如果经过了中断程序执行用分配时间570,则切换部121将处理切换至控制器模拟器部13A。并且,在执行周期554中,硬件寄存器信息被恢复为优先事件560的产生时的状态,由控制器模拟器部13A进行处理。
此外,在上述说明中,说明了优先事件检测部432是具有脉冲计数功能的功能模块,但实施方式不限定于此。例如,优先事件检测部432也可以构成为具有诸如输入信号的上升或下降等多个其它事件检测功能。
在实施方式4中,可编程控制器1具有对优先事件进行检测的优先事件检测部432和在检测出优先事件的情况下将处理切换至应进行中断处理的控制器模拟器部13A、13B的切换部121。由此,当在产生了优先事件时强制性地切换至执行中断程序的控制器模拟器部13A、13B,在相同的运算部10上执行多个控制器模拟器部13A、13B的情况下,能够提高针对优先事件的响应性。
另外,也可以将上述实施方式2与实施方式3、4进行组合。由此,能够使可编程控制器1的进行输入输出刷新的定时与作为模拟对象的实际的可编程控制器相同。
以上的实施方式所示的结构表示的是本发明的内容的一个例子,也可以与其它的公知技术进行组合,也可以在不脱离本发明的主旨的范围省略、变更结构的一部分。
标号的说明
1可编程控制器,10、10A、10B运算部,11、11A、11B虚拟化部,12、12A、12B管理部,13、13A、13B控制器模拟器部,14、14A、14B存储器映射I/O区域,15、15A、15B映射信息生成部,20存储部,21固件存储部,22控制程序存储部,23硬件信息存储部,24输入输出映射信息存储部,30通信接口部,40输入输出接口部,41输入端子,42输出端子,43输入输出控制部,50总线,70人机接口,81、82开关,83旋转编码器,91灯,92磁性开关,121切换部,131虚拟程序计数器,132虚拟通用寄存器,211、211a、212a固件,221、221a、222a控制程序,231硬件信息,241输入输出映射信息,431输入输出定时调整部,432优先事件检测部。

Claims (8)

1.一种可编程控制器,其特征在于,具有:
存储部,其存储由作为模拟对象的可编程控制器执行的固件及控制程序、对所述作为模拟对象的可编程控制器的硬件进行模拟所需的硬件信息;
控制器模拟器部,其基于所述硬件信息对所述作为模拟对象的可编程控制器的所述硬件的动作进行模拟;
输入输出端子,其与输入设备及输出设备连接;
输入输出控制部,其对相对于所述输入输出端子的信息的输入输出进行控制;以及
输入输出定时调整部,其根据通过所述控制器模拟器部执行了所述固件及所述控制程序时的由所述输入输出控制部得到的虚拟的输入输出对向所述输入输出端子的实际的输入输出的定时进行调整,
所述存储部中的所述固件及所述硬件信息能够与所述作为模拟对象的可编程控制器对应地进行变更,
所述存储部还存储输入输出映射信息,该输入输出映射信息规定出向所述输入输出端子的输入输出与所述虚拟的输入输出之间的对应关系,
所述控制器模拟器部在模拟出的所述硬件上执行所述固件及所述控制程序,参照所述输入输出映射信息,将执行了所述固件及所述控制程序时的所述虚拟的输入输出变换为向所述输入输出端子的输入输出,
所述控制器模拟器部在按照所述固件及所述控制程序对所述作为模拟对象的可编程控制器进行模拟时,对由实际的所述作为模拟对象的可编程控制器执行所述控制程序时的执行时间进行估算,基于所述执行时间,对由实际的所述作为模拟对象的可编程控制器进行的输入输出的开始时刻进行估算,
所述输入输出定时调整部在到达所述开始时刻之前,使由所述输入输出控制部实施的控制进行等待,如果到达所述开始时刻,则允许由所述输入输出控制部进行的向所述输入输出端子的输入输出的控制。
2.根据权利要求1所述的可编程控制器,其特征在于,
还具有通信接口部,该通信接口部与能够对所述输入输出映射信息的向所述输入输出端子的输入输出与所述虚拟的输入输出之间的关系进行变更的外部设备连接。
3.根据权利要求1或2所述的可编程控制器,其特征在于,
具有多个所述控制器模拟器部,
所述存储部具有由各所述控制器模拟器部执行的所述固件、所述控制程序及所述硬件信息。
4.根据权利要求3所述的可编程控制器,其特征在于,
还具有:
切换部,其对由多个所述控制器模拟器部进行的所述作为模拟对象的可编程控制器的所述硬件的模拟处理进行切换;以及
优先事件检测部,其对与中断处理关联的事件进行检测,
所述优先事件检测部如果检测到优先地执行所述中断处理的事件即优先事件的产生,则向所述切换部通知所述优先事件的产生,
所述切换部对多个所述控制器模拟器部的切换进行控制,以执行与所述优先事件关联的所述中断处理。
5.一种可编程控制器,其特征在于,具有:
存储部,其存储由作为模拟对象的可编程控制器执行的固件及控制程序、对所述作为模拟对象的可编程控制器的硬件进行模拟所需的硬件信息;
多个控制器模拟器部,它们基于所述硬件信息对所述作为模拟对象的可编程控制器的所述硬件的动作进行模拟;
切换部,其对由多个所述控制器模拟器部进行的所述作为模拟对象的可编程控制器的所述硬件的模拟处理进行切换;以及
优先事件检测部,其对与中断处理关联的事件进行检测,
所述控制器模拟器部在模拟出的所述硬件上执行所述固件及所述控制程序,
所述存储部中的所述固件及所述硬件信息能够与所述作为模拟对象的可编程控制器对应地进行变更,
所述存储部具有由各所述控制器模拟器部执行的所述固件、所述控制程序及所述硬件信息,
所述优先事件检测部如果检测到优先地执行所述中断处理的事件即优先事件的产生,则向所述切换部通知所述优先事件的产生,
所述切换部对多个所述控制器模拟器部的切换进行控制,以执行与所述优先事件关联的所述中断处理。
6.根据权利要求5所述的可编程控制器,其特征在于,
还具有:
输入输出端子,其与输入设备及输出设备连接;以及
输入输出控制部,其对相对于所述输入输出端子的信息的输入输出进行控制,
所述存储部还存储输入输出映射信息,该输入输出映射信息规定出向所述输入输出端子的输入输出与由所述控制器模拟器部执行了所述固件及所述控制程序时的虚拟的输入输出之间的对应关系,
所述控制器模拟器部参照所述输入输出映射信息,将执行了所述固件及所述控制程序时的所述虚拟的输入输出变换为向所述输入输出端子的输入输出。
7.根据权利要求6所述的可编程控制器,其特征在于,
还具有通信接口部,该通信接口部与能够对所述输入输出映射信息的向所述输入输出端子的输入输出与所述虚拟的输入输出之间的关系进行变更的外部设备连接。
8.根据权利要求6或7所述的可编程控制器,其特征在于,
还具有输入输出定时调整部,该输入输出定时调整部根据由所述输入输出控制部得到的所述虚拟的输入输出对向所述输入输出端子的实际的输入输出的定时进行调整,
所述控制器模拟器部在按照所述固件及所述控制程序对所述作为模拟对象的可编程控制器进行模拟时,对由实际的所述作为模拟对象的可编程控制器执行所述控制程序时的执行时间进行估算,基于所述执行时间,对由实际的所述作为模拟对象的可编程控制器进行的输入输出的开始时刻进行估算,
所述输入输出定时调整部在到达所述开始时刻之前,使由所述输入输出控制部实施的控制进行等待,如果到达所述开始时刻,则允许由所述输入输出控制部进行的向所述输入输出端子的输入输出的控制。
CN201980102404.2A 2019-11-26 2019-11-26 可编程控制器 Active CN114730168B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/046114 WO2021106064A1 (ja) 2019-11-26 2019-11-26 プログラマブルコントローラ

Publications (2)

Publication Number Publication Date
CN114730168A CN114730168A (zh) 2022-07-08
CN114730168B true CN114730168B (zh) 2023-06-06

Family

ID=71949438

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980102404.2A Active CN114730168B (zh) 2019-11-26 2019-11-26 可编程控制器

Country Status (4)

Country Link
JP (1) JP6739689B1 (zh)
CN (1) CN114730168B (zh)
DE (1) DE112019007840T5 (zh)
WO (1) WO2021106064A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58200363A (ja) * 1982-05-14 1983-11-21 Nec Corp 仮想システムの入出力制御方式
CN103403633A (zh) * 2011-03-15 2013-11-20 欧姆龙株式会社 可编程控制器的中央处理器单元、可编程控制器用系统程序以及存储了可编程控制器用系统程序的记录介质
JP2015026279A (ja) * 2013-07-26 2015-02-05 株式会社東芝 プラント監視制御装置及びプログラム
JP2016031658A (ja) * 2014-07-29 2016-03-07 株式会社東芝 プラント制御装置、及びプラント制御方法
CN109388098A (zh) * 2017-08-10 2019-02-26 欧姆龙株式会社 信息处理装置及方法及非易失性的计算机可读记录介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104903798B (zh) * 2013-01-16 2019-09-10 西门子公司 用于所模拟的可编程逻辑控制器的自动化输入模拟
JP5713056B2 (ja) 2013-06-24 2015-05-07 横河電機株式会社 プロセス制御装置及びシステム並びにその更新方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58200363A (ja) * 1982-05-14 1983-11-21 Nec Corp 仮想システムの入出力制御方式
CN103403633A (zh) * 2011-03-15 2013-11-20 欧姆龙株式会社 可编程控制器的中央处理器单元、可编程控制器用系统程序以及存储了可编程控制器用系统程序的记录介质
JP2015026279A (ja) * 2013-07-26 2015-02-05 株式会社東芝 プラント監視制御装置及びプログラム
JP2016031658A (ja) * 2014-07-29 2016-03-07 株式会社東芝 プラント制御装置、及びプラント制御方法
CN109388098A (zh) * 2017-08-10 2019-02-26 欧姆龙株式会社 信息处理装置及方法及非易失性的计算机可读记录介质

Also Published As

Publication number Publication date
DE112019007840T5 (de) 2022-08-04
WO2021106064A1 (ja) 2021-06-03
JP6739689B1 (ja) 2020-08-12
CN114730168A (zh) 2022-07-08
JPWO2021106064A1 (ja) 2021-12-02

Similar Documents

Publication Publication Date Title
US7783867B2 (en) Controlling instruction execution in a processing environment
CN101714091B (zh) 用于在操作系统初始化期间显示平台图形的方法和系统
IL210062A (en) Pause control for a visual processing device
JP2013250950A (ja) 計算機システム、仮想化機構、及び計算機システムの制御方法
US8457944B2 (en) Method and device for determining requirement parameters of at least one physical hardware unit
CN114328281B (zh) 固态硬盘异常掉电处理方法、装置、电子设备及介质
KR20150004284A (ko) 제어 장치의 작동 방법 및 모델 연산 유닛을 포함하는 제어 장치
CN108319533B (zh) 可关断地模拟控制装置内部的设备的系统和模拟器
JP2000020349A (ja) プログラム開発支援装置、プログラム開発支援方法及びプログラム開発支援用プログラムを記録した媒体
KR20100081366A (ko) Risc 프로세서 장치 및 그의 부동 소수점 스택 조작 에뮬레이션 방법
CN114730168B (zh) 可编程控制器
JP6874706B2 (ja) アプリケーションプログラムを生成する方法、装置、プログラム
JP4665760B2 (ja) 電子計算機、半導体集積回路、制御方法、プログラムの生成方法、及びプログラム
US8886512B2 (en) Simulation apparatus, computer-readable recording medium, and method
US6182207B1 (en) Microcontroller with register system for the indirect accessing of internal memory via auxiliary register
CN115292000A (zh) 一种虚拟机动态迁移的方法、装置及电子设备
US20200257545A1 (en) Simulation device, simulation method, and computer readable medium
JP2019179284A (ja) シミュレーションシステム、及びシミュレーションプログラム
JP2023032451A (ja) シミュレーション装置、及びシミュレーション方法
CN111078301B (zh) 一种多核心运算装置及其运作方法
US20140215467A1 (en) Method and Virtualization Controller for Managing a Computer Resource With at Least Two Virtual Machines
CN220154907U (zh) 存储装置
JP6691884B2 (ja) 計算機及びアプリケーション管理方法
CN113311931B (zh) 一种方便iap的双复位向量8位mcu架构及其方法
CN107145333B (zh) 数据操作方法及其装置、应用、单片机及嵌入式系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant