CN109100981B - 在plc控制设备中日志记录过程数据的方法 - Google Patents

在plc控制设备中日志记录过程数据的方法 Download PDF

Info

Publication number
CN109100981B
CN109100981B CN201810642638.3A CN201810642638A CN109100981B CN 109100981 B CN109100981 B CN 109100981B CN 201810642638 A CN201810642638 A CN 201810642638A CN 109100981 B CN109100981 B CN 109100981B
Authority
CN
China
Prior art keywords
data table
value
received
task
tag
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
CN201810642638.3A
Other languages
English (en)
Other versions
CN109100981A (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.)
Tetra Laval Holdings and Finance SA
Original Assignee
Tetra Laval Holdings and Finance SA
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 Tetra Laval Holdings and Finance SA filed Critical Tetra Laval Holdings and Finance SA
Publication of CN109100981A publication Critical patent/CN109100981A/zh
Application granted granted Critical
Publication of CN109100981B publication Critical patent/CN109100981B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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
    • G05B19/058Safety, monitoring
    • 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/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • 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/048Monitoring; Safety
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/14Plc safety
    • G05B2219/14055Make log, journal, history file of state changes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Programmable Controllers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种在PLC控制设备中日志记录过程数据的方法。该PLC应用程序代码的部分包括被配置为以特定执行速率执行程序功能的任务。每个所述任务包括具有分配为标签的专用存储区域的程序功能,并且该过程数据的每个数据条目包括标签值和相关的过程值。该方法包括从该PLC应用程序代码接收过程数据,由此将过程值分配给线程池的线程,以及对于每个所述线程,在与每个所述线程相关的相应数据表中,接收所接收的过程数据的该标签值和过程值,以及根据相应数据表的哈希函数为每个所述标签确定哈希码以根据所述哈希码将该标签值和该相关的过程值布置在相应数据表中。

Description

在PLC控制设备中日志记录过程数据的方法
技术领域
本发明一般涉及日志记录(logging)过程数据的领域。更具体地,本发明涉及一种在运行PLC应用程序代码的PLC控制设备(如在涉及灌装机的系统或用于生产密封包装的相关系统中的PLC控制设备)中日志记录过程数据的方法,其中该PLC应用程序代码的部分包括被配置为以特定执行速率执行程序功能的任务,以及相关的计算机程序产品和被配置为日志记录此类过程数据的装置。
背景技术
为了保持或提高PLC控制机器的性能,需要日志记录大量的过程数据。对这些过程数据的日志记录和分析是PLC控制机器(如在用于灌装和密封包装容器的系统中采用的那些PLC控制机器)的开发过程的不可或缺的部分。过程数据的处理是工业数字化的关键驱动因素,相应地,当此类系统的功能和设计复杂性增加,连同有检索完整的过程概览(“机器-DNA”或“指纹”)的挑战时,过程数据的处理则变为基石。然而,之前的日志记录技术的问题阻碍了基于机器生成的数据改进这些系统的努力。通常情况下,通过在日志记录解决方案上耗费可用的资源,只能够日志记录复杂系统中生成的数据中的一小部分。存在各种手动日志记录解决方案,然而这些解决方案消耗了不合理的资源量,却没有足够高效或无法管理。为了更加自动化的日志记录过程,可以提供独立解决方案,该独立解决方案需要针对特定应用程序实施和定制,但其受困于此类实施的复杂性以及检索所有可用输出数据所需的相关资源量。所提及的复杂性可能,例如来自与现有的机器控制基础设施的不兼容性,从而需要更多的用于各种定制操作的资源。此外,在实时执行多个并行功能的更复杂的系统中,上述独立解决方案已被证明会在记录的数据中产生相当大的抖动。
因此,一种在运行PLC应用程序代码的PLC控制设备中日志记录过程数据的改进方法将是有利的,具体地允许避免更多上述问题和折衷,包含提供在更快、更稳定且高效的过程中随着时间的推移日志记录和处理来自PLC控制设备的增加量的数据。这种改进的方法可以允许对系统的更有效的调试,即验证和确认,以促进故障排除,经由更完整和全面的过程概览作为生产可追溯性和产品开发的使能技术。
发明内容
因此,本发明的实例优选地试图单独地或组合地,通过提供根据下文[0021]段的条款所述的装置来减轻、缓和或根除,一个或多个例如以上确认的,本领域中的缺陷、缺点或问题。
根据第一方面,提供了一种在运行PLC应用程序代码的PLC控制设备中日志记录过程数据的方法。该PLC应用程序代码的部分包括被配置为以特定执行速率执行程序功能的任务,其中第一任务具有与该PLC应用程序代码中的第二任务的第二执行速率不同的相关执行速率。每个所述任务包括具有分配为标签的专用存储区域的程序功能,并且该过程数据的每个数据条目包括标签值和从该PLC应用程序代码分配的相关的过程值。该方法包括从该PLC应用程序代码接收过程数据,由此将与所述第一任务相关的过程值分配给线程池的线程,并行地将与所述第二任务相关的过程值相应分配给该线程池的线程。该方法进一步包括:对于每个所述线程,在与每个所述线程相关的相应数据表中,接收所接收的过程数据的标签值和过程值,以及根据相应数据表的哈希函数为每个所述标签确定哈希码以根据所述哈希码将该标签值和该相关的过程值布置在相应数据表中。
根据第二方面,一种包括指令的计算机程序产品,当由计算机执行程序时,该指令使计算机执行根据第一方面所述的方法的步骤。
根据第三方面,提供了一种被配置为在运行PLC应用程序代码的PLC控制设备中日志记录过程数据的装置。该PLC应用程序代码的部分包括被配置为以特定执行速率执行程序功能的任务,其中第一任务具有与该PLC应用程序代码中的第二任务的第二执行速率不同的相关执行速率。每个所述任务包括具有分配为标签的专用存储区域的程序功能,并且该过程数据的每个数据条目包括标签值和从该PLC应用程序代码分配的相关的过程值。该装置包括:第一处理模块,该第一处理模块被配置为从该PLC应用程序代码接收过程数据;以及第二处理模块,该第二处理模块被配置为将与所述第一任务相关的过程值分配给线程池的线程,并行地将与所述第二任务相关的过程值相应分配给该线程池的线程。该第二处理模块进一步被配置为针对每个线程,在与每个线程相关的相应数据表中,接收所接收的过程数据的标签值和过程值,以及根据相应数据表的哈希函数为每个所述标签值确定哈希码以根据该哈希码将该标签值和该相关的过程值布置在相应数据表中。
本发明的其他实例在下文[0021]段的条款2-11、14和15中得以阐述,其中本披露内容的第二和第三方面的特征是对第一方面的必要修改。
本披露内容的一些实例提供了一种改进的在具有多个并行执行的功能的复杂PLC机器系统中日志记录增加量的过程数据的方法。
本披露内容的一些实例提供了对PLC系统中过程数据的更快和更稳定的日志记录。
本披露内容的一些实例提供了对PLC系统中过程数据的改进日志记录,该PLC系统在不同的时标或域下,需要不同的日志记录速度来执行多个功能或任务。
本披露内容的一些实例提供了获得了对PLC机器系统的更全面的过程理解以及对机器开发的改善能力。
本披露内容的一些实例提供了降低了在PLC系统中实现过程数据的日志记录的复杂性。
本披露内容的一些实例提供了在对PLC系统的功能性的影响最小的情况下实现过程数据的日志记录。
本披露内容的一些实例提供了在对现有PLC系统的基础结构改变最小的情况下实现过程数据的日志记录。
本披露内容的一些实例提供了改进的生产可追溯性。
本披露内容的一些实例提供了对机器的改进的并且耗时更少的故障排除过程。
本披露内容的一些实例提供了对资源的更有效的使用以识别机器中的错误行为或开发其改进。
本披露内容的一些实例提供了更有效的机器质量评估程序。
应该强调的是,当在本说明书中使用时,术语“包括/包含”用于指定所陈述的特征、整体、步骤或组件的存在,但不排除一个或多个其他特征、整体、步骤、其组件或群组的存在或增加。
具体而言,本发明的一些方面可以阐述如下:
1.一种在运行PLC应用程序代码的PLC控制设备中日志记录过程数据的方法100,
其中该PLC应用程序代码的部分包括被配置为以特定执行速率执行程序功能的任务T1,T2,其中第一任务T1具有与该PLC应用程序代码中的第二任务T2的第二执行速率不同的相关执行速率,
由此每个所述任务包括具有分配为标签的专用存储区域的程序功能,
其中所述过程数据的每个数据条目包括标签值TG1,TGn和从该PLC应用程序代码分配的相关的过程值V1,Vn
其中该方法包括:
从该PLC应用程序代码接收101过程数据,由此将与所述第一任务相关的过程值分配102给线程池的线程TRD1,并行地将与所述第二任务相关的过程值相应分配给该线程池的线程TRD2
对于每个所述线程,在与每个所述线程相关的相应数据表DT1,DT2中,接收103所接收的过程数据的标签值和过程值,以及
根据相应数据表的哈希函数HF为每个所述标签确定104哈希码HC1,HCm以根据所述哈希码将该标签值和该相关的过程值布置105在相应数据表中。
2.根据条款1所述的方法,其包括:
依赖于日志条件L1,L2确定106针对该过程数据的日志记录事件,该日志条件L1,L2包括至少一个逻辑运算符或从该PLC应用程序代码接收的一个或多个过程值的阈值;以及
针对日志记录事件,从该数据表接收107该过程数据的至少一部分。
3.根据条款2所述的方法,
其中,对于从该PLC应用程序代码接收的每个数据条目,该方法包括:
将与该数据条目相关的相应标签的所接收的过程值与该日志条件进行比较108,以确定109该数据条目是否将针对日志记录事件而被接收。
4.根据条款2或3所述的方法,其包括:
依赖于每个所述线程的日志条件确定110针对该过程数据的日志记录事件。
5.根据条款2-4中任一项所述的方法,其包括:
将push和/或pull运算符应用(111)于从该PLC应用程序代码接收到的过程数据堆栈,以评估该日志条件。
6.根据条款1-5中任一项所述的方法,其包括:
基于该标签值和过程值确定104针对该数据表的哈希函数。
7.根据条款6所述的方法,其包括:
基于该标签值和过程值的数据类型确定104针对该数据表的哈希函数。
8.根据条款1-7中任一项所述的方法,其包括:
基于标签的数量来确定104针对该数据表的哈希函数。
9.根据条款1-8中任一项所述的方法,其包括:
针对分配给相同哈希码的多个标签,将链接方法应用112到该哈希函数。
10.根据条款1-9中任一项所述的方法,其中该第一任务与通信协议相关,该通信协议不同于该第二任务的通信协议,该方法包括:
封装101’该第一任务和第二任务的相应通信协议的协议特定属性,使得并行地接收从其接收到的过程数据,而不受该协议特定属性的影响。
11.根据条款1-10中任一项所述的方法,其中
该第一任务具有在1-10ms范围内的执行速率,并且该第二任务具有在100-1000ms范围内的执行速率。
12.一种包括指令的计算机程序产品,当由计算机执行程序时,所述指令使计算机执行根据条款1-11中任一项所述的方法的步骤。
13.一种装置200,其被配置为在运行PLC应用程序代码的PLC控制设备中日志记录过程数据,
其中该PLC应用程序代码的部分包括被配置为以特定执行速率执行程序功能的任务T1,T2,其中第一任务T1具有与该PLC应用程序码中的第二任务T2的第二执行速率不同的相关执行速率,
由此每个所述任务包括具有分配为标签的专用存储区域的程序功能,
其中所述过程数据的每个数据条目包括标签值TG1,TGn和从该PLC应用程序代码分配的相关的过程值V1,Vn
其中该装置包括:
第一处理模块201,该第一处理模块201被配置为从该PLC应用程序代码接收(101)过程数据,
第二处理模块202,该第二处理模块202被配置为:
将与所述第一任务相关的过程值分配102给线程池的线程TRD1,TRD2,并行地将与所述第二任务相关的过程值分别分配给该线程池的线程,
对于每个所述线程,在与每个所述线程相关的相应数据表DT1,DT2中,接收103所接收到的过程数据的标签值和过程值,以及
根据相应数据表的哈希函数HF为每个所述标签值确定104哈希码HC1,HCm,以根据所述哈希码将该标签值和该相关的过程值布置105在相应的数据表中。
14.根据条款13所述的装置,其中该第二处理模块被配置为依赖于日志条件L1,L2确定106针对该过程数据的日志记录事件,该日志条件L1,L2包括至少一个逻辑运算符或从该PLC应用程序代码接收的一个或多个过程值的阈值;以及针对日志记录事件,从该数据表接收107该过程数据的至少一部分。
15.根据条款13或14所述的装置,其中该第一任务与通信协议相关,该通信协议不同于该第二任务的通信协议,其中该第一处理模块被配置为:
封装101’该第一任务和第二任务的相应通信协议的协议特定属性,使得并行地接收从其接收到的过程数据,而不受该协议特定属性的影响。
附图说明
本发明能够实施的这些和其他方面、特征和优点将参考附图,根据以下对本发明实例的说明而阐明并变得清楚,其中:
图1是示出了根据本披露内容的实例的被配置为在运行PLC应用程序代码的PLC控制设备中日志记录过程数据的方法和装置的示意图;
图2是示出了根据本披露内容的实例,确定过程标签的哈希码和相关数据表的示意图;
图3是示出了根据本披露内容的实例,将push或pull运算符应用于过程数据堆栈的示意图;
图4a是根据本披露内容的实例的在运行PLC应用程序代码的PLC控制设备中日志记录过程数据的方法的流程图;
图4b是根据本披露内容的实例的被配置为在运行PLC应用程序代码的PLC控制设备中日志记录过程数据的装置和相关方法的示意图;以及
图5是根据本披露内容的实例的被配置为在运行PLC应用程序代码的PLC控制设备中日志记录过程数据的装置和相关方法的示意图。
具体实施方式
现在将参照附图描述本发明的具体实例。然而,本发明可以以许多不同的形式来体现,并且不应该被解释为限于在此阐述的实例;相反,提供这些实例是为了使本披露内容透彻且完整,并且将本发明的范围充分地传达给本领域技术人员。在附图中示出的实例的详述中使用的术语不旨在限制本发明。在附图中,相同的数字表示相同的元件。
图4a示出了在运行PLC应用程序代码的PLC控制设备中日志记录过程数据的方法100的流程图。描述和示出方法100的步骤的顺序不应该被解释为是限制性的,并且可想到的是,可以以不同的顺序执行这些步骤。结合下面更详细描述的图1的示意图进一步示出了方法100。
因此提供了在运行PLC应用程序代码的PLC控制装置中日志记录过程数据的方法100。该PLC控制设备可以是用于填充和密封包装容器的系统的设备,以及与其相关的各种机器。该PLC应用程序代码可以下载到该设备的永久存储器中以执行所需的包装设备功能。该PLC应用程序代码的部分包括被配置为以特定执行速率执行程序功能的任务T1,T2。根据需要哪种功能,PLC应用程序可以被分成不同的任务。例如,一些功能,相比其他功能、较不重要的功能(如温度控制等),可以在更短的时标上执行,例如伺服驱动、液压等。第一任务T1因此可具有与该PLC应用程序代码中的第二任务T2的第二执行速率不同的相关执行速率。每个所述任务T1,T2包括具有被指定为“标签”的专用存储区域的程序功能。从该PLC控制设备待接收的过程数据的每个数据条目包括与数据类型的给定名称对应的标签,即标签值TG1,..TGn,以及从该PLC应用程序代码分配的相关的过程值V1,..Vn(可以是各种数据类型)。该过程值V1,..Vn,可以来源于传感器或其他内部功能部件等。机器,例如用于包装容器的灌装机,可能,例如需要使用数千个标签进行操作。方法100包括从该PLC应用程序代码接收101过程数据。如下面关于被配置为在运行PLC应用程序代码的PLC控制设备中日志记录过程数据的设备100进一步描述的,通过经由处理模块201建立与该PLC控制设备的连接(例如与该PLC控制设备通信的通信模块)来检索过程数据。方法100包括将与第一任务T1相关的过程值分配给线程池的线程TRD1,并行地将与所述第二任务T2相关的过程值相应分配给该线程池的线程TRD1。因此,方法100和相关的处理模块201提供了,并行或同时地将被配置为以不同的执行速率执行程序功能的任务T1,T2分配给线程TRD1,TRD2,不受不同的执行速率的影响。因此,有可能适应不同任务的各种日志记录速度要求。图1示出了当处理模块201建立与PLC控制设备的连接时,第一任务和第二任务T1,T2分别被分配给线程TRD1,TRD2的实例。处理模块201向PLC的每个“回调”指示已经从PLC接收到新的处理数据,并且该处理数据被分配给线程。可以想到的是,任务和线程的数量有多个变化。
方法100包括针对每个所述线程TRD1,TRD2,在与每个所述线程TRD1,TRD2相关的相应数据表DT1,DT2中接收103从该PLC控制设备接收到的过程数据的标签值和过程值TGn,Vn。方法100进一步包括根据相应数据表DT1,DT2的哈希函数HF为每个所述标签(即为其标签值TGn)确定104哈希码HCm,以根据所提及的哈希码HCm,在相应的数据表DT1,DT2中布置105标签值TGn和相关的过程值Vn。这提供了一种更快速的对该过程数据的接收和布置方式,使得能够在PLC控制设备中在包含实时的各种时域中实现多个,例如数千个标签的日志记录。根据相应数据表DT1,DT2的哈希函数HF确定每个所述标签的哈希码HCm允许优化数据表DT1,DT2中过程数据的构建。数据表DT1,DT2中的后续操作(例如搜索操作)可以以更高的速度执行,从而允许,例如下面进一步描述的基于实时状态的日志记录。同时,由于该数据表允许处理所有通用类型的过程数据,所以通用性得以提高而没有增加日志记录系统的复杂性。如下面进一步描述的,哈希函数HF可以根据从处理模块201传送到相关线程TRD1,TRD2的过程数据(例如标签的特征)来确定。图2示出了数据表DTn的一个实例,其中标签值TGn和相关的过程值根据由哈希函数HF确定的相应哈希码HCm被布置在数据表DTn中。在这个实例中,示出了标签值TG1到TG5和哈希码HCm的相关实例。数据表结构还允许将逻辑运算符特别有利地应用于,例如,应用搜索条件中的过程数据,因为此类运算符可以应用于该数据表中的数据堆栈。
图4b示出了在运行PLC应用程序代码的PLC控制设备中日志记录过程数据的方法100的另一流程图。描述和示出方法100的步骤的顺序不应该被解释为是限制性的,并且可以想到的是,可以以不同的顺序执行这些步骤。方法100可以包括依赖于日志条件L1,L2确定106针对该过程数据的日志记录事件。日志条件L1,L2包括至少一个逻辑运算符或从该PLC应用程序代码接收的一个或多个过程值Vn的阈值。有效地从存储在数据表DT1,DT2中的标签中获得过程值Vn。方法100包括针对日志记录事件,接收107来自数据表DT1,DT2的过程数据的至少一部分。因此,一旦满足日志条件,就会发生日志记录事件,并且可以在,例如图1中示意性示出的专用日志存储器203上存储过程数据,如标签值和过程值。依赖于日志条件L1,L2确定106针对过程数据的日志记录事件,通过能够完全地配置日志记录触发器(何时日志记录数据)提供了有效的基于条件的日志记录。当未满足日志条件L1,L2时,数据表DT1,DT2中的过程数据在处理或通信模块201的回调期间不会被保存到存储器203中。相关的线程TRD1,TRD2将保持活动状态并通过通信模块201连接到PLC,直到新的回调到达并将新的过程数据插入到DT1,DT2中,以通过日志条件L1,L2进行确认。对于从该PLC应用程序代码接收的每个数据条目,方法100可以包括将与该数据条目相关的相应标签的接收的过程值Vn与日志条件L1,L2进行比较108,以确定109该数据条目是否将针对日志记录事件而被接收,即被存储在存储器203中。
如上所述并且在图2中例示的那样,已经根据该哈希码将该标签值和相关的过程值布置在相应数据表中,这提供了对所确定的日志条件L1,L2的有效评估。例如,当在位于相同哈希码HCm下的标签值TGn中搜索时,将从搜索中排除存储在其他哈希码位置中的所有其他标签。这允许基于条件的日志记录以高速实时操作,例如在每1-10ms的范围内日志记录过程数据,并且并行所有任务T1,T2和相关的数据表DT1,DT2。因此提供了在PLC系统中更快且更稳定地日志记录过程数据。图3示出了一个实例,其中利用在下面进一步描述的堆栈寄存器结构的逻辑运算符来评估日志条件L,这在根据所提到的哈希码HCm将该标签值和相关的过程值布置在相应数据表中时是特别有利的。
设备100的第二处理模块202因此可以被配置为依赖于日志条件L1,L2确定106针对该过程数据的日志记录事件,该日志条件L1,L2包括至少一个逻辑运算符或从该PLC应用程序代码接收的一个或多个过程值的阈值;以及被配置为针对日志记录事件,从数据表DT1,DT2接收107该过程数据的至少一部分。
方法100可以包括针对每个所述线程TRD1,TRD2,依赖于日志条件L1,L2确定110针对该过程数据的日志记录事件。这在图1中示意性地示出,其中日志条件L1与第一线程TRD1和相应的数据表DT1相关,并且日志条件L2与第二线程TRD2和相应的数据表DT2相关。
再次转到图3的示意图,方法100可以包括将push和/或pull运算符应用111于从该PLC应用程序代码接收到的过程数据堆栈,以评估日志条件L1,L2。在所示的实例中,用逻辑运算符和给定为“x”、“y”和“z”的过程值Vn的阈值来评估日志条件L。从左到右评估数据堆栈,其中输入标签值,如TG1,以及过程值,如“x”,然后是逻辑运算符,如“==”,以达到评估条件,如“C1”。以下标签值、过程值和运算符随后应用于该堆栈,达到最终评估条件(本实例中为“C5”)。通过将此类运算符应用于过程数据堆栈来执行日志条件L1,L2的逻辑运算提供了降低的执行条件评估的复杂性,这加速了评估步骤。过程数据的条件日志记录因此可以以PLC设备传送数据的期望速率执行。
方法100可以包括基于标签值和过程值TGn,Vn确定104针对数据表DT1,DT2的哈希函数HF。考虑到标签的特征,如标签值和过程值TGn,Vn,因此可以根据优化的哈希函数HF将所提及的值布置在相应数据表DT1,DT2中。因此,当建立与PLC设备的连接以传送过程值时,可以基于关于处理模块201传送的标签值和过程值TGn,Vn的信息来优化或选择哈希函数HF。哈希函数HF的优化选择提供了缩短的查找时间和提高的可以执行基于条件的日志记录的速度。
方法100可以包括基于标签值和过程值TGn,Vn的数据类型,如布尔、整数、实数等确定104针对数据表DT1,DT2的哈希函数HF。这提供了对哈希函数HF的进一步优化和选择,使得标签和相关的哈希码HCm被布置在相应数据表DT1,DT2中,针对数据类型进行了优化。
而且,方法100可以包括基于标签TGn的数量来确定104针对数据表DT1,DT2的哈希函数HF。这可以有利地避免后续重新调整数据结构的尺寸的需要,因为根据处理模块201与PLC设备的初始回调连接已经知道标签的数量。因此可以实现更快和更稳定的日志记录。
方法100可以包括对于分配给相同哈希码HCm的多个标签TGn,将链接方法应用112到哈希函数HF。图3示出了标签值TG2和TG4被分配给相同哈希码HC2的实例。这两个标签值都存储在阵列中相同的“桶”中以避免冲突。通过与这个桶中的头记录(head record)链接来解决哈希冲突。
第一任务T1可以与通信协议相关,该通信协议不同于第二任务T2的通信协议。方法100可以包括封装101’第一任务和第二任务T1,T2的相应通信协议的协议特定属性,使得并行地接收从其接收到的过程数据,而不受该协议特定属性的影响。因此,第一处理模块201可以被配置为封装101’第一任务和第二任务的相应通信协议的协议特定属性,使得并行地接收从其接收到的过程数据而不受该协议特定属性的影响。这提供了对过程数据的日志记录而不受不同的协议通信标准的阻碍,从而便于以期望的速度进行日志记录。
第一任务T1可以具有在1-10ms范围内的执行速率,并且第二任务T2可以具有在100-1000ms范围内的执行速率。该方法提供了对第一任务和第二任务T1,T2的同时日志记录,并且可以进一步日志记录具有不同执行速率的不同数量的不同任务。
提供一种包括指令的计算机程序产品,当由计算机执行程序时,所述指令使计算机执行如上面关于图1-5所述的方法100的步骤。
如图4b中示意性示出的,结合图1,还提供了一种装置200,其被配置为在运行PLC应用程序代码的PLC控制设备中日志记录过程数据。如上所述,该PLC应用程序代码的部分包括被配置为以特定执行速率执行程序功能的任务T1,T2,其中第一任务T1具有与该PLC应用程序码中的第二任务T2的第二执行速率不同的相关执行速率。每个所述任务包括具有分配为标签的专用存储区域的程序功能。该过程数据的每个数据条目包括标签值TG1,..TGn,以及该PLC应用程序代码分配的相关的过程值V1,..Vn。装置200包括第一处理模块201,该第一处理模块201被配置为从该PLC应用程序代码接收101过程数据。装置200进一步包括第二处理模块202,该第二处理模块202被配置为将与第一任务T1相关的过程值分配102给线程池的线程TRD1,TRD2,并行地将与所述第二任务相关的过程值分别分配给该线程池的线程TRD1,TRD2。第二处理模块202被配置为对于每个线程TRD1,TRD2,在与每个线程TRD1,TRD2相关的相应数据表DT1,DT2中,接收103所接收到的过程数据的标签值和过程值TGn,Vn。第二处理模块202进一步被配置为根据相应数据表DT1,DT2的哈希函数HF为每个标签值TGn确定104哈希码HC1,HCm,以根据所述哈希码HCm将标签值TGn和相关的过程值Vn布置105在相应的数据表中。因此,装置200提供了如上面关于方法100和图1-5所述的有利益处。
以上参照具体实例描述了本发明。然而,在本发明的范围内,除上述之外的其他实例同样是可能的。本发明的不同特征和步骤可以以除了所描述的那些之外的其他组合进行组合。本发明的范围仅由所附专利权利要求书限定。
更一般地,本领域技术人员将容易理解,本文所述的所有参数、尺寸、材料和配置均旨在是实例性的,并且实际参数、尺寸、材料和/或配置将取决于使用本发明的教导的一种或多种特定的应用。

Claims (12)

1.一种在运行PLC应用程序代码的PLC控制设备中日志记录过程数据的方法(100),
其中该PLC应用程序代码的部分包括被配置为以特定执行速率执行程序功能的任务(T1,T2),其中第一任务(T1)具有与该PLC应用程序代码中的第二任务(T2)的第二执行速率不同的相关执行速率,
由此每个所述任务包括具有分配为标签的专用存储区域的程序功能,
其中所述过程数据的每个数据条目包括标签值(TG1,TGn)和从该PLC应用程序代码分配的相关的过程值(V1,Vn),
其中该方法包括:
从该PLC应用程序代码接收(101)过程数据,由此将与所述第一任务相关的过程值分配(102)给线程池的线程(TRD1),并行地将与所述第二任务相关的过程值相应分配给该线程池的线程(TRD2),
对于每个所述线程,在与每个所述线程相关的相应数据表(DT1,DT2)中,接收(103)所接收的过程数据的标签值和过程值,并基于在该相应数据表中接收到的标签值和过程值确定针对该相应数据表的哈希函数,
根据该相应数据表的哈希函数(HF)为在该相应数据表中接收到的每个所述标签值确定(104)哈希码(HC1,HCm),以根据所述哈希码将该标签值和该相关的过程值布置(105)在该相应数据表中,
依赖于日志条件(L1,L2)确定(106)针对布置在所述相应数据表中的该过程数据的日志记录事件,该日志条件(L1,L2)包括至少一个逻辑运算符或从该PLC应用程序代码接收的一个或多个过程值的阈值,由此该布置在所述相应数据表中的该过程数据被该日志条件验证;以及
针对日志记录事件,从该数据表接收(107)该过程数据的至少一部分用于存储在日志存储器。
2.根据权利要求1所述的方法,
其中,对于从该PLC应用程序代码接收的每个数据条目,该方法包括:
将与该数据条目相关的相应标签的所接收的过程值与该日志条件进行比较(108),以确定(109)该数据条目是否将针对日志记录事件而被接收。
3.根据权利要求1或2所述的方法,其包括:
依赖于每个所述线程的日志条件确定(110)针对该过程数据的日志记录事件。
4.根据权利要求1或2所述的方法,其包括:
将push和/或pull运算符应用(111)于从该PLC应用程序代码接收到的过程数据堆栈,以评估该日志条件。
5.根据权利要求1或2所述的方法,基于在该相应数据表中接收到的标签值和过程值确定针对该相应数据表的哈希函数包括:
基于在该相应数据表中接收到的标签值和过程值的数据类型确定(104)针对该相应数据表的哈希函数。
6.根据权利要求1或2所述的方法,基于在该相应数据表中接收到的标签值和过程值确定针对该相应数据表的哈希函数包括:
基于在该相应数据表中接收到的标签值的数量来确定(104)针对该相应数据表的哈希函数。
7.根据权利要求1或2所述的方法,其包括:
针对分配给相同哈希码的多个标签值,将链接方法应用(112)到该哈希函数。
8.根据权利要求1或2所述的方法,其中该第一任务与通信协议相关,该通信协议不同于该第二任务的通信协议,该方法包括:
封装(101’)该第一任务和第二任务的相应通信协议的协议特定属性,使得并行地接收从其接收到的过程数据,而不受该协议特定属性的影响。
9.根据权利要求1或2所述的方法,其中
该第一任务具有在1-10ms范围内的执行速率,并且该第二任务具有在100-1000ms范围内的执行速率。
10.一种包括指令的计算机程序产品,当由计算机执行程序时,所述指令使计算机执行根据权利要求1-9中任一项所述的方法的步骤。
11.一种装置(200),其被配置为在运行PLC应用程序代码的PLC控制设备中日志记录过程数据,
其中该PLC应用程序代码的部分包括被配置为以特定执行速率执行程序功能的任务(T1,T2),其中第一任务(T1)具有与该PLC应用程序码中的第二任务(T2)的第二执行速率不同的相关执行速率,
由此每个所述任务包括具有分配为标签的专用存储区域的程序功能,
其中所述过程数据的每个数据条目包括标签值(TG1,TGn)和从该PLC应用程序代码分配的相关的过程值(V1,Vn),
其中该装置包括:
第一处理模块(201),该第一处理模块(201)被配置为从该PLC应用程序代码接收(101)过程数据,
第二处理模块(202),该第二处理模块(202)被配置为:
将与所述第一任务相关的过程值分配(102)给线程池的线程(TRD1,TRD2),并行地将与所述第二任务相关的过程值分别分配给该线程池的线程,
对于每个所述线程,在与每个所述线程相关的相应数据表(DT1,DT2)中,接收(103)所接收到的过程数据的标签值和过程值,并基于在该相应数据表中接收到的标签值和过程值确定针对该相应数据表的哈希函数,以及
根据该相应数据表的哈希函数(HF)为在该相应数据表中接收到的每个所述标签值确定(104)哈希码(HC1,HCm),以根据所述哈希码将该标签值和该相关的过程值布置(105)在该相应数据表中,其中该第二处理模块被配置为依赖于日志条件(L1,L2)确定(106)针对布置在该相应数据表中的该过程数据的日志记录事件,该日志条件(L1,L2)包括至少一个逻辑运算符或从该PLC应用程序代码接收的一个或多个过程值的阈值,由此该布置在所述相应数据表中的该过程数据被该日志条件验证;以及针对日志记录事件,从该相应数据表接收(107)该过程数据的至少一部分用于存储在日志存储器。
12.根据权利要求11所述的装置,其中该第一任务与通信协议相关,该通信协议不同于该第二任务的通信协议,其中该第一处理模块被配置为:
封装(101’)该第一任务和第二任务的相应通信协议的协议特定属性,使得并行地接收从其接收到的过程数据,而不受该协议特定属性的影响。
CN201810642638.3A 2017-06-21 2018-06-21 在plc控制设备中日志记录过程数据的方法 Active CN109100981B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP17177238.7 2017-06-21
EP17177238 2017-06-21

Publications (2)

Publication Number Publication Date
CN109100981A CN109100981A (zh) 2018-12-28
CN109100981B true CN109100981B (zh) 2023-11-14

Family

ID=59227490

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810642638.3A Active CN109100981B (zh) 2017-06-21 2018-06-21 在plc控制设备中日志记录过程数据的方法

Country Status (5)

Country Link
US (1) US11086782B2 (zh)
EP (1) EP3418829B1 (zh)
JP (1) JP7199387B2 (zh)
CN (1) CN109100981B (zh)
WO (1) WO2018234246A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11630661B2 (en) 2021-07-29 2023-04-18 Kyndryl, Inc. Intelligent logging and automated code documentation
CN114363323A (zh) * 2022-01-06 2022-04-15 东莞市云雀科技有限公司 一种针对plc的智能数据上发方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259215A (ja) * 1999-03-12 2000-09-22 Omron Corp Plc用ツール装置、並びに、プログラム記録媒体
CN1729434A (zh) * 2002-12-23 2006-02-01 西门子能量及自动化公司 利用plc的存储设备的方法和结构
CN104346253A (zh) * 2013-08-09 2015-02-11 瑞萨电子株式会社 数据处理系统
CN104969144A (zh) * 2013-03-15 2015-10-07 起元技术有限责任公司 对程序执行的记录
CN105629862A (zh) * 2014-11-05 2016-06-01 同方威视技术股份有限公司 基于plc的控制设备的实时日志记录方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3046171B2 (ja) 1993-03-26 2000-05-29 三菱電機株式会社 データロギング装置
US7301541B2 (en) * 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
US20020124011A1 (en) * 2001-03-01 2002-09-05 Baxter Robert W. Methods, systems, and computer program products for communicating with a controller using a database interface
JP2005321910A (ja) 2004-05-07 2005-11-17 Softbank Bb Corp ログデータ管理システム、方法、及びプログラム
US7330936B2 (en) * 2004-08-30 2008-02-12 Texas Instruments Incorporated System and method for power efficient memory caching
JP4516046B2 (ja) 2006-04-10 2010-08-04 三菱電機株式会社 プログラマブルコントローラ
US7827374B2 (en) * 2006-06-12 2010-11-02 Oracle America, Inc. Relocating page tables
US7684881B2 (en) * 2006-09-28 2010-03-23 Rockwell Automation Technologies, Inc. Transient-sensitive indicators for HMI devices
JP5224923B2 (ja) 2008-06-13 2013-07-03 三菱電機株式会社 制御装置
JP5264528B2 (ja) 2009-01-23 2013-08-14 三菱電機株式会社 ロギングシステム
US8429386B2 (en) * 2009-06-30 2013-04-23 Oracle America, Inc. Dynamic tag allocation in a multithreaded out-of-order processor
JP5099251B1 (ja) * 2011-07-15 2012-12-19 オムロン株式会社 Plcのcpuユニット、plc用のシステムプログラム、plc用のシステムプログラムを格納した記録媒体、plcシステム、plcサポート装置、plcサポートプログラム、および、plcサポートプログラムを格納した記録媒体
US20130124575A1 (en) * 2011-11-11 2013-05-16 Rockwell Automation Technologies, Inc. System and Method for Dynamic Meta-Data in Control and Visualization
CN105283846B (zh) 2013-05-20 2017-06-13 三菱电机株式会社 监视控制装置
JP2015022667A (ja) 2013-07-23 2015-02-02 日本電気株式会社 トレース情報収集装置およびトレース情報収集方法、並びにコンピュータ・プログラム
US11061572B2 (en) * 2016-04-22 2021-07-13 Advanced Micro Devices, Inc. Memory object tagged memory monitoring method and system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259215A (ja) * 1999-03-12 2000-09-22 Omron Corp Plc用ツール装置、並びに、プログラム記録媒体
CN1729434A (zh) * 2002-12-23 2006-02-01 西门子能量及自动化公司 利用plc的存储设备的方法和结构
CN104969144A (zh) * 2013-03-15 2015-10-07 起元技术有限责任公司 对程序执行的记录
CN104346253A (zh) * 2013-08-09 2015-02-11 瑞萨电子株式会社 数据处理系统
CN105629862A (zh) * 2014-11-05 2016-06-01 同方威视技术股份有限公司 基于plc的控制设备的实时日志记录方法

Also Published As

Publication number Publication date
WO2018234246A1 (en) 2018-12-27
JP2020524852A (ja) 2020-08-20
EP3418829B1 (en) 2022-08-24
CN109100981A (zh) 2018-12-28
US20200142380A1 (en) 2020-05-07
US11086782B2 (en) 2021-08-10
JP7199387B2 (ja) 2023-01-05
EP3418829A1 (en) 2018-12-26

Similar Documents

Publication Publication Date Title
US11009847B2 (en) Controller, control program, and control method
EP3557354B1 (en) Control device, control program, and control method
CN109100981B (zh) 在plc控制设备中日志记录过程数据的方法
CN103927305B (zh) 一种对内存溢出进行控制的方法和设备
US11294356B2 (en) Production control system
CN106873409B (zh) 定义多变量批处理控制分析的阶段的方法和装置
US9989940B2 (en) Method for engineering a distributed control system and an engineering tool thereof
CN112585547A (zh) 分析装置、分析方法以及分析程序
CN106850559B (zh) 一种可扩展的网络协议解析系统及方法
CN110268348A (zh) 控制装置以及控制方法
CN105739481B (zh) 工控软件的测试方法、装置及系统
CN103365709A (zh) Recipe管理方法和系统以及半导体设备控制系统
EP3012700B1 (en) Programmable controller and control method for programmable controller
KR101543884B1 (ko) 가상 공장의 실시간 동작 상황을 통합 로깅하기 위한 시스템 및 방법
CN112650148A (zh) 一种多轴运动控制系统及方法
CN110069042B (zh) 生产流程工序的控制方法、装置、软件系统及控制系统
CN101853366B (zh) 根据通讯协议处理来执行数据存取的方法与装置
CN113050554B (zh) 人机交互多协议通讯方法及介质
CN112257968A (zh) 一种基于事件机制的生产流程构建与执行控制方法
CN107220408B (zh) 一种核电站全范围模拟机控制算法加速计算方法
CN114779666A (zh) 一种仿真验证系统及方法
KR101415657B1 (ko) 모션 제어 방법 및 장치
CN112543898A (zh) 图表显示装置、图表显示方法以及图表显示程序
Uzam et al. An effective method for detection and elimination of avalanche effect problem
CN117519098A (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