CN105612466B - 用于对可编程逻辑控制器进行虚拟化的系统和方法 - Google Patents
用于对可编程逻辑控制器进行虚拟化的系统和方法 Download PDFInfo
- Publication number
- CN105612466B CN105612466B CN201380080261.2A CN201380080261A CN105612466B CN 105612466 B CN105612466 B CN 105612466B CN 201380080261 A CN201380080261 A CN 201380080261A CN 105612466 B CN105612466 B CN 105612466B
- Authority
- CN
- China
- Prior art keywords
- plc
- physics
- configuration data
- stored
- enlargement module
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Programmable Controllers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
提供了一种用于基于物理可编程逻辑控制器(PLC)创建虚拟PLC的方法(200)。所述方法(200)包括:(1)通过网络连接到物理PLC(201);(2)通过网络从物理PLC获得配置数据(202);(3)如果扩充模块耦合到物理PLC,则通过网络获得针对扩充模块的配置数据(204);(4)将针对物理PLC的配置数据存储在配置介质中(206);以及(5)如果针对扩充模块的配置数据被获得,则将针对扩充模块的配置数据存储在配置介质中(206)。
Description
技术领域
本申请涉及过程控制系统,并且更具体地涉及用于对可编程逻辑控制器(PLC)进行虚拟化的系统和方法。
背景技术
PLC通常用于过程控制和自动化应用。虚拟PLC是可以用于测试和诊断目的的物理PLC的功能性软件表示。作为有效的工具,虚拟PLC应当与其在被暴露于相同条件时所表示的物理PLC产生相同的结果。
虚拟PLC及其虚拟输入/输出(I/O)的配置可能是耗时的、易出错的且编程密集的。如此,存在针对用于对PLC进行虚拟化的改进系统和方法的需要。
发明内容
在一些实施例中,提供了一种用于基于物理可编程逻辑控制器(PLC)创建虚拟PLC的方法。所述方法包括:(1)通过网络连接到物理PLC;(2)通过网络从物理PLC获得配置数据;(3)如果扩充模块耦合到物理PLC,则通过网络获得针对扩充模块的配置数据;(4)将针对物理PLC的配置数据存储在配置介质中;以及(5)如果针对扩充模块的配置数据被获得,则将针对扩充模块的配置数据存储在配置介质中。
在一些实施例中,提供了一种其上存储有可执行程序的非瞬变计算机可读存储介质。该程序指令处理器以:(1)通过网络连接到物理PLC;(2)通过网络从物理PLC获得配置数据;(3)如果扩充模块耦合到物理PLC,则通过网络获得针对扩充模块的配置数据;(4)将针对物理PLC的配置数据存储在配置介质中;以及(5)如果针对扩充模块的配置数据被获得,则将针对扩充模块的配置数据存储在配置介质中。
在一些实施例中,提供了一种用于基于物理PLC创建虚拟PLC的系统。所述系统包括:(1)物理PLC,耦合到通信网络;(2)计算机系统,耦合到通信网络并被配置成:(a)通过通信网络连接到物理PLC;(b)通过通信网络从物理PLC获得配置数据;(c)如果扩充模块耦合到物理PLC,则通过通信网络获得针对扩充模块的配置数据;(d)将针对物理PLC的配置数据存储在配置介质中;以及(e)如果针对扩充模块的配置数据被获得,则将针对扩充模块的配置数据存储在配置介质中。
提供了许多其他方面。本发明的其他特征和方面将从以下详细描述、所附权利要求以及附图中变得更充分显而易见。
附图说明
图1是根据本文提供的实施例的用于基于物理PLC创建虚拟PLC的示例系统的示意图。
图2是根据本文提供的实施例的从物理PLC获得配置数据的方法的流程图。
图3是根据本文提供的实施例的创建虚拟PLC的方法的流程图。
具体实施方式
图1是根据本文提供的实施例的用于基于物理PLC创建虚拟PLC的示例系统100的示意图。参照图1,系统100包括:物理PLC 102,通过通信网络106与至少一个用户设备104a通信。一个或多个附加用户设备(一般由用户设备104m表示)可以与用户设备104a和/或物理PLC 102通信。
物理PLC 102可以是任何合适的PLC,诸如从Siemens Aktiengesellschaft,Munich, Germany可得的SIMATIC控制器(例如,S7或类似系列)或者另一商业可得的PLC。物理PLC 102可以包括:一个或多个扩充模块108a-n,其提供针对工厂或其他自动化应用的输入和/或输出(例如24 vDC、120 vAC、240 vAC、其他电压类型和/或范围、中继输出、电流输入或输出等)。示例扩充模块包括模拟信号模块、数字信号模块、中继模块、通信模块(例如,其提供串行通信、并行通信、(一个或多个)USB连接、以太网端口等等)等。商业可得的扩充模块包括从Siemens Aktiengesellschaft, Munich, Germany可得的信号模块等等。可以采用任何其他合适的PLC和/或扩充模块。在一些实施例中,可以没有扩充模块被物理PLC102采用。
物理PLC 102包括耦合到存储器112的处理器110,诸如微处理器、中央处理单元(CPU)、微控制器等等。示例存储器包括随机存取存储器(RAM)、动态RAM、闪速存储器、固态存储器、硬盘驱动器、远程或基于云的存储器等等。如下面进一步描述,在一些实施例中,存储器112存储针对物理PLC 102和/或耦合到物理PLC 102的外部模块的配置数据114。例如,配置数据114可以被存储在一个或多个存储器位置和/或数据库中。
处理器110可以执行在存储器112或另一存储器位置内存储的计算机程序代码,该计算机程序代码控制物理PLC 102和/或扩充模块108a-n的操作和/或通信服务。
物理PLC 102可以包括多个输入116和/或输出118(例如,通过I/O接口119而对接)。示例输入116可以是模拟输入、数字输入、整合输入、电压输入、电流输入等。示例输出118可以是模拟输出、数字输出、整合输出、电压输出、电流输出、定标输出等。可以采用其他数目、类型等的输入和/或输出。在一些实施例中,诸如发光二极管之类的输入指示器120可以指示输入116的状态,而输出指示器122可以指示输出118的状态。在一些实施例中,物理PLC 102可以不包括输入和/或输出,其中扩充模块108a-n提供针对物理PLC 102的输入和/或输出。
用户设备104a(和/或用户设备104m)可以是台式计算机、膝上型计算机、服务器、平板计算机、智能电话等。如图1中所示,用户设备104a可以包括耦合到存储器126的处理器124,诸如微处理器、中央处理单元(CPU)、微控制器等等。示例存储器包括RAM、动态RAM、闪速存储器、固态存储器、硬盘驱动器、远程或基于云的存储器等等。如下面进一步描述,在一些实施例中,存储器126可以充当存储从物理PLC 102获得的配置数据128的存储介质。在其他实施例中,这种配置数据128可以是远离用户设备104a(诸如,在远程存储设备、远程服务器等中)存储的,在图1中以虚线示作附图标记128'。示例配置数据可以包括与物理PLC 102的物理特性、针对物理PLC 102的其他配置数据、针对物理PLC 102的输入和/或输出的配置数据、耦合到物理PLC 102的扩充模块的标识、针对耦合到物理PLC 102的扩充模块的配置数据等等相关的信息。配置数据128可以被存储在一个或多个存储器位置和/或数据库中。
存储器126还可以包括:虚拟PLC程序130,其基于从物理PLC 102获得的配置数据来创建和/或执行虚拟PLC(如下面描述的那样)。处理器124可以执行在存储器126或另一存储器位置内存储的计算机程序代码,该计算机程序代码控制用户设备104a的操作和/或通信服务。还可以提供其他系统、方法、计算机程序产品和数据结构。本文描述的每个计算机程序产品可以由计算机可读的非瞬变介质(例如软盘、压缩盘、DVD、硬盘驱动器、随机存取存储器等)承载。
通信网络106可以包括诸如有线网络、无线网络、光网络、广域网、局域网或其他网络之类的任何合适的通信网络。
在操作中,PLC 102可以被采用以控制工厂自动化或其他过程的操作。用户设备104a或另一用户设备的处理器124可以执行虚拟PLC程序130,以通过通信网络106从PLC102和/或扩充模块108a-n获得配置数据和/或如下面参照图2和3描述的那样创建虚拟PLC。
图2是根据本文提供的实施例的从物理PLC获得配置数据的方法200的流程图。参照图2,在框201中,用户设备104a通过通信网络106与物理PLC 102连接。例如,处理器124可以连接到与物理PLC 102相关联的互联网协议(IP)地址或其他地址。下面提供针对框201的示例计算机程序代码和/或命令结构。可以采用其他类型的计算机程序代码和/或命令结构。
************************************************************************
// * 与物理PLC建立连接
//
************************************************************************
OpenNetworkConnection (PLC1) ;
EstablishLogicalSession (PLC1) ;
在框202中,用户设备104a针对配置数据而查询物理PLC 102。例如,用户设备104a可以向物理PLC 102发出针对与物理PLC 102和/或耦合到物理PLC 102的任何扩充模块有关的配置信息的请求。在一些实施例中,该请求可以是解析标识记录信息指令或跨网络106向物理PLC 102发出的类似命令。例如,该请求可以针对在物理PLC 102的存储器112中存储的配置数据114。在一些实施例中,配置数据可以包括与处理器110、存储器112、I/O接口119和/或扩充模块108a-n有关的信息,诸如设备类型、硬件修订、固件号、IP端口的数目、I/O端口的类型、I/O端口的映射(例如,因此,程序可以访问I/O端口)、端口的配置(例如,分立输出点、模拟输入、接受预定义范围中的电压的模拟输入等)、I/O端口的调谐、物理PLC 102和/或扩充模块的能力等等。其他类型的配置数据可以包括物理PLC 102的物理特性、针对物理PLC的输入和/或输出的其他配置数据、耦合到物理PLC 102的扩充模块的数目和/或类型的标识。在一些实施例中,例如,这种配置数据可以被存储在用户设备104a中(作为配置数据128)和/或被存储在另一存储位置中作为配置数据128'。
下面提供针对框202的示例计算机程序代码和/或命令结构。可以采用其他类型的计算机程序代码和/或命令结构。
//
************************************************************************
// * 处理PLC
//
************************************************************************
// *** 查询物理PLC以获得标识数据
PlcRecord = New (PlcRecord) ;
PlcRecord = ReadFromPLC ("PLC Identification Record");
// *** 解析标识记录信息并保存在本地Plc记录结构中
PlcConfigStruct = New (PlcConfigStruct) ;
PlcConfigStruct.Append ( Parse ( PlcRecord, Name) ) ;
PlcConfigStruct.Append ( Parse ( PlcRecord, DeviceType) ) ;
PlcConfigStruct.Append ( Parse ( PlcRecord, HardwareRevision) ) ;
PlcConfigStruct.Append ( Parse ( PlcRecord, FirmwareRevision) ) ;
PlcConfigStruct.Append ( Parse ( PlcRecord, SerialNumber) ) ;
PlcConfigStruct.Append ( Parse (PlcRecord,
NumberDiscreteInputs ) ) ;
PlcConfigStruct.Append ( Parse (PlcRecord,
NumberDiscreteOutputs ) ) ;
PlcConfigStruct.Append ( Parse (PlcRecord,
NumberAnalogInputs ) ) ;
..
.. // 许多更多的参数...,
..
PlcConfigStruct.Append ( Parse (PlcRecord,
NumberAnalogOutputs ) ) ;
// *** 查询物理PLC以获得I/O配置记录
PlcIoConfigRecord = New (PlcIoConfigRecord) ;
PlcIoConfigRecord = ReadFromPLC ("PLC I/O Configuration Record") ;
// *** 解析PLC I/O配置记录信息并保存在本地Plc I/O中
// *** 记录结构
PlcIoConfigStruct = New (PlcIoConfStruct) ;
PlcIoConfStruct.Append ( Parse ( PlcIoConfigRecord,
InputCapabilities) );
PlcIoConfStruct.Append ( Parse ( PlcIoConfigRecord,
InputRanges) ) ;
PlcIoConfStruct.Append ( Parse ( PlcIoConfigRecord,
InputFiltering) ) ;
PlcIoConfStruct.Append ( Parse ( PlcIoConfigRecord,
OutputCapabilities ) ) ;
PlcIoConfStruct.Append ( Parse ( PlcIoConfigRecord,
OutputRanges ) ) ;
..
.. // 许多更多的参数...,
..
PlcIoConfStruct.Append ( += Parse (PlcIoConfigRecord,
OutputStopBehavior) ) ;
在框203中,进行查询以确定是否已经针对耦合到物理PLC 102的所有扩充模块获得配置数据。例如,对于在框202中标识的每个扩充模块,用户设备104a可以确定是否所有相关配置数据已经被从物理PLC 102传送到用户设备104a(例如设备类型、硬件修订、固件号、I/O端口的数目、I/O端口的类型、I/O端口的映射、I/O端口的配置、I/O端口的调谐等)。
如果在框203中确定不是所有扩充模块都已经被检查,则在框204中,用户设备104a可以查询物理PLC 102和/或任何扩充模块以获得附加扩充模块配置数据。例如,可以针对与具体扩充模块有关的信息而查询物理PLC 102。可以重复框203和204,直到已经针对每个扩充模块108a-n获得所有相关配置数据为止。
下面提供针对框203和204的示例计算机程序代码和/或命令结构。可以采用其他类型的计算机程序代码和/或命令结构。
//
************************************************************************
// * 处理扩充I/O模块
//
************************************************************************
// *** 确定存在多少模块
Int NumModules = ReadFromPlc ("Number of modules present") ;
// *** 一次一个地处理模块
For (N=l to NumModules)
// *** 查询物理PLC以获得针对模块号'N'的
// *** 模块标识记录
ModuleRecord = New (ModuleRecord)
ModuleRecord = ReadFromPLC ("Module (N) Identification Record") ;
// *** 解析模块标识记录信息并存储在本地
// *** 模块记录结构中
ModuleConfigStruct (N) = New (ModuleConfigStruct (N) ) ;
ModuleConfigStruct (N).Append ( Parse (ModuleRecord, Name) ) ;
ModuleConfigStruct (N).Append ( Parse (ModuleRecord, Type) ) ;
ModuleConfigStruct (N).Append ( Parse (ModuleRecord,HardwareRevision) ) ;
ModuleConfigStruct (N).Append ( Parse (ModuleRecord,FirmwareRevision) ) ;
ModuleConfigStruct (N).Append ( Parse (ModuleRecord, SerialNumber) ) ;
ModuleConfigStruct (N).Append ( Parse (ModuleRecord,NumberDiscreteInputs) ) ;
ModuleConfigStruct (N).Append ( Parse (ModuleRecord,NumberDiscreteOutputs) ) ;
ModuleConfigStruct (N).Append ( Parse (ModuleRecord,NumberAnalogInputs) ;
..
.. // 许多更多的参数...,
..
ModuleConfigStruct (N).Append ( Parse (ModuleRecord,NumberAnalogOutputs) ) ;
// *** 查询物理PLC以获得针对模块号'N'的
// *** 模块I/O配置记录
New (ModuleIoRecord)
ModuleIoRecord = ReadFromPLC ("Module (N) I/O Record");
// *** 解析模块I/O记录信息并保存在本地模块记录结构中
New (ModuleIoStruct (N) ) ;
ModuleIoStruct (N).Append ( Parse (ModuleIoRecord, InputCapabilities ) ) ;
ModuleIoStruct (N).Append ( Parse (ModuleIoRecord, InputRanges) ) ;
ModuleIoStruct (N).Append ( Parse (ModuleIoRecord, InputFiltering) ;
ModuleIoStruct (N).Append ( Parse (ModuleIoRecord, OutputCapabilities ) ;
ModuleIoStruct (N).Append ( Parse (ModuleIoRecord, OutputRanges ) ;
..
.. // 许多更多的参数...,
..
ModuleIoStruct (N).Append ( += Parse (ModuleIoRecord,OutputStopCapabilities ) ;
Next
如果在框203中确定所有扩充模块已经被检查,则方法200继续至框205。
在框205中,完成物理PLC 102和任何扩充模块108a-n的检查。例如,可以终止物理PLC 102与用户设备104a之间的通信信道。
在框206中,将针对物理PLC 102和/或扩充模块的任何剩余配置数据存储在诸如用户设备104a或另一用户设备的存储器126之类的“配置介质”中、存储在本地或远程储存器中、存储在一个或多个数据库中和/或存储在任何其他位置中。在一些实施例中,将配置数据存储在可扩展标记语言(XML)文件(例如,包括XML格式化的数据和/或命令的文件)中。可以采用任何其他数据格式和/或文件类型。配置数据可以对任何数目的用户设备来说可访问。
下面提供针对框205和206的示例计算机程序代码和/或命令结构。可以采用其他类型的计算机程序代码和/或命令结构。
//
************************************************************************
// * 创建输出介质(XML文件)
//
************************************************************************
MediumFile = New ("MediumFile.xml") ;
MediumFile.Create ( ) ;
// *** 添加PLC信息
MediumFile.Append ( ConvertToXml (PlcConfigStruct) ) ;
MediumFile.Append ( ConvertToXml (PlcIoConfStruct) ) ;
// *** 添加针对所有扩充模块的信息
For (N=l to NumModules)
MediumFile.Append (
ConvertToXml (ModuleConfigStruct (N) ) ) ;
MediumFile.Append ( ConvertToXml (ModuleIoStruct (N) )
) ;
Next
MediumFile.Finalize ( ) ;
MediumFile.Close ( ) ;
//
************************************************************************
// * 结束
//
************************************************************************
CloseNetworkConnection (PLC1) ;
方法200可以被实现为在一个或多个计算机系统(诸如用户设备104a、其他用户设备、远程计算机系统等等)上可执行的一个或多个计算机程序产品。本文描述的每个计算机程序产品可以由计算机可读的非瞬变和/或有形介质(例如软盘、压缩盘、DVD、硬盘驱动器、随机存取存储器等)承载和/或在其上承载。方法200的步骤可以是按其他顺序执行的,和/或一些步骤的至少部分可以是同时执行的。
一旦已经使用图2的方法200针对物理PLC 102和/或耦合到物理PLC 102的扩充模块获得配置数据,就可以基于配置数据来创建虚拟PLC。例如,可以采用诸如从SiemensAktiengesellschaft, Munich, Germany可得的SIMATIC S7-PLCSIM或者另一合适的PLC仿真器之类的商业可得的PLC仿真器,以创建由通过图2的方法200获得的配置数据填充的虚拟PLC实例。
图3是根据本文提供的实施例的创建虚拟PLC的方法300的流程图。参照图3,在框301中,可以执行PLC仿真器程序的诸如用户设备104a之类的用户设备与包含针对物理PLC102和/或扩充模块108a-n的配置数据的配置介质连接。如所述,针对物理PLC 102和扩充模块108a-n的配置信息可以被存储在用户设备104a的存储器126内、存储在另一用户设备内、存储在远程或其他存储设备内等。在一些实施例中,针对物理PLC 102和/或扩充模块108a-n的配置数据可以被存储在基于XML的数据文件中,尽管可以使用其他数据格式和/或文件类型。
下面提供针对框301的示例计算机程序代码和/或命令结构。可以采用其他类型的计算机程序代码和/或命令结构。
//
************************************************************************
// * 启动仿真
// *
// * 这里假定PLC仿真器已经
// * 被处于物理PLC外部的计算机系统启动
// * 且已经创建PLC实例,对于该PLC实例,我们
// * 可以与该虚拟PLC数据建立连接。
// *
//
************************************************************************
//
************************************************************************
// * 与虚拟PLC建立连接,并且
// * 打开输入介质
//
************************************************************************
// *** 建立虚拟连接
OpenVirtualNetworkConnection (PLC1) ;
EstablishLogicalSession (PLC1) ;
// *** 打开输入介质
MediumFile = Open ("MediumFile.xml") ;
基于在配置文件内存储的数据,在框302中,创建虚拟PLC(例如,使用PLC仿真器来创建虚拟PLC实例并且利用根据本文提供的实施例而获得的数据来填充该虚拟PLC实例,以创建虚拟PLC)。例如,可以在对物理PLC 102的操作进行仿真的用户设备104a或另一用户设备上形成虚拟PLC的“实例”。可以创建虚拟扩充模块以对耦合到物理PLC 102的任何扩充模块的操作进行仿真。
下面提供针对框302的示例计算机程序代码和/或命令结构。可以采用其他类型的计算机程序代码和/或命令结构。
//
************************************************************************
// * 处理PLC
//
************************************************************************
// *** 创建PLC对象
PlcObject = New (PlcObject) ;
// *** 从介质读取配置数据并将其添加到PLC
New PlcConfigRecord = MediumFile.Read ("PlcConfigRecord") ;
PlcObject.WriteConfigRecord ( EncodeRecord (PlcConfigRecord)
) ;
// *** 从介质读取I/O配置数据并将其添加到PLC
New PlcIoConfigRecord =
MediumFile.Read ("PlcIoConfigRecord") ;
PlcObject.WriteIoConfigRecord (
EncodeRecord (PlcIoConfigRecord) ) ;
在框303中,进行查询以确定是否所有虚拟扩充模块都已经被创建。例如,对于在方法200的框202中标识的每个扩充模块,用户设备104a可以创建虚拟扩充模块以对物理扩充模块的操作进行仿真。
如果在框303中确定不是所有虚拟扩充模块都已经被创建,则在框304中,用户设备104a可以从所存储的配置数据获得附加信息并采用该信息以创建虚拟扩充模块。可以重复框303和304,直到所有相关虚拟扩充模块都已经被创建为止。
下面提供针对框303和/或304的示例计算机程序代码和/或命令结构。可以采用其他类型的计算机程序代码和/或命令结构。
//
************************************************************************
// * 处理扩充模块
//
************************************************************************
Int NumModules = MediumFile.Read ("Number of Modules") ;
For (N=l to NumModules)
// *** 创建扩充模块对象
ModuleObject (N) = New (ModuleObject) ;
// *** 从介质读取配置数据并将其添加到模块
New ModConfigRecord = MediumFile.Read ("Module (N) ConfigRecord") ;
ModuleObject (N).WriteConfigRecord (
EncodeRecord (ModConfigRecord) ) ;
// *** 从介质读取I/O配置数据并将其添加到模块
New ModIoConfigRecord = MediumFile.Read ("Module (N) IoConfigRecord") ;
ModuleObject (N).WriteIoConfigRecord (
EncodeRecord (ModIoConfigRecord) ) ;
Next
//
************************************************************************
// * 将个性传递到PLC及其扩充模块
//
************************************************************************
TransferObject (PlcObject) ;
For (N = 1 to NumberModules)
TransferObject (ModuleObject (N) ) ;
Next
//
************************************************************************
// * 结束
//
************************************************************************
如果在框303中确定所有扩充模块都已经被检查,则方法300继续至框305。在框305中,完成虚拟PLC和任何虚拟扩充模块的创建。然后可以采用虚拟PLC以对物理PLC 102的操作进行仿真。
下面提供针对框305的示例计算机程序代码和/或命令结构。可以采用其他类型的计算机程序代码和/或命令结构。
MediumFile.Close ( ) ;
DisconnectFromVirtualPlc () ;
方法300可以被实现为在一个或多个计算机系统(诸如用户设备104a、其他用户设备、远程计算机系统等等)上可执行的一个或多个计算机程序产品。本文描述的每个计算机程序产品可以由计算机可读的非瞬变和/或有形介质(例如软盘、压缩盘、DVD、硬盘驱动器、随机存取存储器等)承载和/或在其上承载。方法300的步骤可以是按其他顺序执行的,和/或一些步骤的至少部分可以是同时执行的。
相应地,尽管已经结合本发明的示例实施例公开了本发明,但是应当理解,其他实施例可以落在如所附权利要求所限定的本发明的精神和范围内。
Claims (16)
1.一种基于物理可编程逻辑控制器(PLC)创建虚拟PLC的方法(200),包括:
通过网络连接到物理PLC(201);
通过网络从物理PLC获得配置数据(202);
如果扩充模块耦合到物理PLC,则通过网络获得针对扩充模块的配置数据(204);
将针对物理PLC的配置数据存储在配置介质中(206);以及
如果针对扩充模块的配置数据被获得,则将针对扩充模块的配置数据存储在配置介质中(206);
其中从物理PLC获得配置数据包括:查询物理PLC以获得物理PLC的物理特性、针对物理PLC的输入和输出的配置数据、以及耦合到物理PLC的扩充模块的标识(202)。
2.根据权利要求1所述的方法,进一步包括:基于所存储的配置数据来创建虚拟PLC(302)。
3.根据权利要求2所述的方法,其中基于所存储的配置数据来创建虚拟PLC包括:
访问所存储的针对物理PLC的配置数据(301);
基于所存储的配置数据来创建虚拟PLC(302);以及
基于在配置介质中存储的扩充模块配置数据来创建虚拟扩充模块(304)。
4.根据权利要求1、2或3所述的方法,其中连接到物理PLC包括:通过以太网连接来连接到物理PLC(201)。
5.根据权利要求1、2或3所述的方法,其中存储针对物理PLC的配置数据包括:将针对物理PLC的配置数据的表示存储在基于XML的文件中(206)。
6.根据权利要求1、2或3所述的方法,其中配置介质是在计算机系统的存储器中存储(206)的基于XML的文件。
7.一种其上存储有可执行程序(130)的非瞬变计算机可读存储介质(126),其中该程序(130)指令处理器以:
通过网络连接到物理PLC(201);
通过网络从物理PLC获得配置数据(202);
如果扩充模块耦合到物理PLC,则通过网络获得针对扩充模块的配置数据(204);
将针对物理PLC的配置数据存储在配置介质中(206);以及
如果针对扩充模块的配置数据被获得,则将针对扩充模块的配置数据存储在配置介质中(206);
进一步包括被配置成执行下述操作的计算机程序代码:查询物理PLC以获得物理PLC的物理特性、针对物理PLC的输入和输出的配置数据、以及耦合到物理PLC的扩充模块的标识(202)。
8.根据权利要求7所述的计算机可读存储介质,进一步包括被配置成执行下述操作的计算机程序代码:基于所存储的配置数据来创建虚拟PLC(302)。
9.根据权利要求8所述的计算机可读存储介质,进一步包括被配置成执行下述操作的计算机程序代码:
访问所存储的针对物理PLC的配置数据(301);
基于所存储的配置数据来创建虚拟PLC(302);以及
基于在配置介质中存储的扩充模块配置数据来创建虚拟扩充模块(304)。
10.根据权利要求8或9所述的计算机可读存储介质,进一步包括被配置成执行下述操作的计算机程序代码:通过以太网连接来连接到物理PLC(201)。
11.根据权利要求7、8或9所述的计算机可读存储介质,进一步包括被配置成执行下述操作的计算机程序代码:将针对物理PLC的配置数据的表示存储在基于XML的文件中(206)。
12.一种用于基于物理可编程逻辑控制器(102)创建虚拟PLC的系统(100),包括:
物理PLC(102),耦合到通信网络(106);以及
计算机系统(104a),耦合到通信网络(106)并被配置成:
通过通信网络连接到物理PLC(201);
通过通信网络从物理PLC获得配置数据(202);
如果扩充模块耦合到物理PLC,则通过通信网络获得针对扩充模块的配置数据(204);
将针对物理PLC的配置数据存储在配置介质中(206);以及
如果针对扩充模块的配置数据被获得,则将针对扩充模块的配置数据存储在配置介质中(206);
其中所述计算机系统被配置成:查询物理PLC以获得物理PLC的物理特性、针对物理PLC的输入和输出的配置数据、以及耦合到物理PLC的扩充模块的标识(202)。
13.根据权利要求12所述的系统,其中所述计算机系统进一步被配置成:基于所存储的配置数据来创建虚拟PLC(302)。
14.根据权利要求13所述的系统,其中所述计算机系统被配置成:
访问所存储的针对物理PLC的配置数据(301);
基于所存储的配置数据来创建虚拟PLC(302);以及
基于在配置介质中存储的扩充模块配置数据来创建虚拟扩充模块(304)。
15.根据权利要求12、13或14所述的系统,其中所述计算机系统被配置成:通过以太网连接来连接到物理PLC(201)。
16.根据权利要求12、13或14所述的系统,其中所述计算机系统被配置成:将针对物理PLC的配置数据的表示存储在基于XML的文件中(206)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/057792 WO2015034458A1 (en) | 2013-09-03 | 2013-09-03 | Systems and methods for virtualizing a programmable logic controller |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105612466A CN105612466A (zh) | 2016-05-25 |
CN105612466B true CN105612466B (zh) | 2019-05-31 |
Family
ID=49226509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380080261.2A Active CN105612466B (zh) | 2013-09-03 | 2013-09-03 | 用于对可编程逻辑控制器进行虚拟化的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9954733B2 (zh) |
EP (1) | EP3042254B1 (zh) |
CN (1) | CN105612466B (zh) |
TW (1) | TW201523177A (zh) |
WO (1) | WO2015034458A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014051579A1 (en) * | 2012-09-27 | 2014-04-03 | Siemens Aktiengesellschaft | Simulation of programmable logic controller inputs and outputs |
US10114783B2 (en) * | 2014-03-26 | 2018-10-30 | Cae Inc. | Configurable input/output unit |
US10268183B2 (en) * | 2015-03-04 | 2019-04-23 | Omron Corporation | Control device and method of synchronizing control |
AU2016337406A1 (en) | 2015-10-13 | 2018-05-17 | Schneider Electric Industries Sas | Software defined automation system and architecture |
US20170364060A1 (en) * | 2016-06-21 | 2017-12-21 | Honeywell International, Inc. | System and method for identifying and managing defects in industrial process control and automation systems |
EP3444682A1 (de) * | 2017-08-16 | 2019-02-20 | Siemens Aktiengesellschaft | Verfahren zum rechnergestützten koppeln eines verarbeitungsmoduls in ein modulares technisches system und modulares technisches system |
JP6433635B1 (ja) * | 2017-09-05 | 2018-12-05 | 三菱電機株式会社 | シミュレーション装置およびシミュレーション方法 |
CN111108452A (zh) * | 2017-09-28 | 2020-05-05 | 西门子股份公司 | 用于为可编程逻辑控制器提供服务的方法和装置 |
US10447078B2 (en) * | 2017-10-02 | 2019-10-15 | Fisher-Rosemount Systems, Inc. | Smart function block for integration of PLCS into a control system and methods for the same |
WO2019127501A1 (zh) | 2017-12-29 | 2019-07-04 | 西门子公司 | 过程仪表的异常检测方法、系统及存储介质 |
EP3739405A1 (de) | 2019-05-15 | 2020-11-18 | Siemens Aktiengesellschaft | Verfahren und system zum ausführen eines softwarepakets |
CN111025933A (zh) * | 2019-11-12 | 2020-04-17 | 哈尔滨安天科技集团股份有限公司 | 工控系统中的plc仿真装置、方法、电子设备及存储介质 |
CN111660291B (zh) * | 2020-03-02 | 2023-05-26 | 广东弘讯智能科技有限公司 | 一种控制系统及方法 |
CN111522287B (zh) * | 2020-03-20 | 2021-07-16 | 广州明珞汽车装备有限公司 | 一种plc的安全信号处理方法、系统和存储介质 |
EP4235324A1 (de) * | 2022-02-24 | 2023-08-30 | Schneider Electric Industries SAS | Verfahren zur steuerung einer industriellen anlage |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1804744A (zh) * | 2004-12-10 | 2006-07-19 | 费舍-柔斯芒特系统股份有限公司 | 过程控制环境中的无线手持通信装置 |
EP1865394A1 (de) * | 2006-06-08 | 2007-12-12 | Endress + Hauser Process Solutions AG | Verfahren zum Austausch eines Feldgerätes der Automatisierungstechnik |
CN202331148U (zh) * | 2011-11-11 | 2012-07-11 | 中国科学院沈阳科学仪器研制中心有限公司 | 一种真空镀膜设备的plc虚拟设备控制系统 |
CN102799510A (zh) * | 2011-04-27 | 2012-11-28 | Ls产电株式会社 | 基于可重新配置组件的plc仿真器 |
EP2544057A1 (de) * | 2011-07-07 | 2013-01-09 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zum Abfragen zumindest eines Werts zumindest eines Parameters von einem Modul und Verfahren und Modul zum Bereistellen zumindest eines Wertes zumindest eines Parameters |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7007158B1 (en) * | 2002-02-14 | 2006-02-28 | Adaptec, Inc. | Method for providing a configuration extensible markup language (XML) page to a user for configuring an XML based storage handling controller |
US7987004B2 (en) * | 2007-02-27 | 2011-07-26 | Rockwell Automation Technologies, Inc. | Scalability related to controller engine instances |
-
2013
- 2013-09-03 CN CN201380080261.2A patent/CN105612466B/zh active Active
- 2013-09-03 WO PCT/US2013/057792 patent/WO2015034458A1/en active Application Filing
- 2013-09-03 US US14/912,735 patent/US9954733B2/en active Active
- 2013-09-03 EP EP13765837.3A patent/EP3042254B1/en active Active
-
2014
- 2014-08-25 TW TW103129174A patent/TW201523177A/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1804744A (zh) * | 2004-12-10 | 2006-07-19 | 费舍-柔斯芒特系统股份有限公司 | 过程控制环境中的无线手持通信装置 |
EP1865394A1 (de) * | 2006-06-08 | 2007-12-12 | Endress + Hauser Process Solutions AG | Verfahren zum Austausch eines Feldgerätes der Automatisierungstechnik |
CN102799510A (zh) * | 2011-04-27 | 2012-11-28 | Ls产电株式会社 | 基于可重新配置组件的plc仿真器 |
EP2544057A1 (de) * | 2011-07-07 | 2013-01-09 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zum Abfragen zumindest eines Werts zumindest eines Parameters von einem Modul und Verfahren und Modul zum Bereistellen zumindest eines Wertes zumindest eines Parameters |
CN202331148U (zh) * | 2011-11-11 | 2012-07-11 | 中国科学院沈阳科学仪器研制中心有限公司 | 一种真空镀膜设备的plc虚拟设备控制系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105612466A (zh) | 2016-05-25 |
US20160197778A1 (en) | 2016-07-07 |
EP3042254B1 (en) | 2018-05-30 |
WO2015034458A1 (en) | 2015-03-12 |
EP3042254A1 (en) | 2016-07-13 |
US9954733B2 (en) | 2018-04-24 |
TW201523177A (zh) | 2015-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105612466B (zh) | 用于对可编程逻辑控制器进行虚拟化的系统和方法 | |
CN108667807A (zh) | 一种基于监控云平台与网关的协议自适应方法及系统 | |
CN106980560B (zh) | 一种基于icd数据库多总线协议测试及仿真方法和平台 | |
CN112217656B (zh) | Sd-wan系统中的网络设备的配置信息同步方法和装置 | |
CN111683066B (zh) | 异构系统集成方法、装置、计算机设备和存储介质 | |
JP2018129020A (ja) | インダストリアル・インターネットオペレーティングシステムに基づくインダストリアル・プロセス制御管理方法と装置 | |
CN103634161A (zh) | 列车通信协议一致性检测装置和方法 | |
CN108984567A (zh) | 一种业务数据管理系统及方法 | |
CN108919762A (zh) | 基于工业以太网的控制方法及装置 | |
ES2643599T3 (es) | Sistema de interfaz integrado para un sistema de supervisión y control de un sistema eléctrico | |
CN103905410A (zh) | 一种将自定义协议转换成Modbus协议的多路通讯协议转换器 | |
WO2018179125A1 (ja) | ネットワーク構成情報生成方法および通信機器 | |
CN110098959B (zh) | 工控协议交互行为的建模方法、装置、系统及存储介质 | |
CN105302556B (zh) | 实现计算的方法和系统以及服务器装置 | |
CN111984248A (zh) | 页面编辑方法和装置、存储介质及电子装置 | |
CN108664519B (zh) | 业务规则管理的方法、装置、电子设备和存储介质 | |
JP2021174546A5 (zh) | ||
JP6802354B2 (ja) | 通信試験装置、通信試験方法及びプログラム | |
US11736338B2 (en) | Network management apparatus, method, and program | |
CN109788034B (zh) | 用于网关接入设备的配置方法、电子设备及存储介质 | |
WO2023016069A1 (zh) | 一种高效的电路仿真方法、装置、设备及存储介质 | |
CN110324280A (zh) | 工业云中的协议配置系统、装置和方法 | |
CN114489497A (zh) | 数据映射方法、服务端以及计算机可读存储介质 | |
CN113474737B (zh) | 管理装置、管理系统、管理方法及储存有程序的计算机可读取的非暂时性记录介质 | |
CN108429741B (zh) | 一种实现ncsi协议的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |