CN115702413A - 用于创建和执行用于控制自动化系统的控制程序的方法以及自动化系统 - Google Patents

用于创建和执行用于控制自动化系统的控制程序的方法以及自动化系统 Download PDF

Info

Publication number
CN115702413A
CN115702413A CN202180039726.4A CN202180039726A CN115702413A CN 115702413 A CN115702413 A CN 115702413A CN 202180039726 A CN202180039726 A CN 202180039726A CN 115702413 A CN115702413 A CN 115702413A
Authority
CN
China
Prior art keywords
program code
version
instance
input module
program
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.)
Pending
Application number
CN202180039726.4A
Other languages
English (en)
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.)
Beckhoff Automation GmbH and Co KG
Original Assignee
Beckhoff Automation GmbH and Co KG
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 Beckhoff Automation GmbH and Co KG filed Critical Beckhoff Automation GmbH and Co KG
Publication of CN115702413A publication Critical patent/CN115702413A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly
    • 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/056Programming the PLC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • 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

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种用于创建并且执行用于控制自动化系统(200)的控制程序的方法(100),所述自动化系统具有控制器(201)和与该控制器(201)连接的网页服务器(203),该方法包括:在代码创建步骤(105)中,在基于网页的开发环境(300)的在网页浏览器(206)中执行的输入模块中创建用于所述自动化系统(200)的控制程序的第一版本的程序代码(V1);在转换步骤(111)中,在所述网页服务器(201)上执行基于网页的开发环境(300)的转换模块(303)并且将所述程序代码转换成二进制语言的程序代码;并且在执行步骤(115)中,通过所述自动化系统的控制器(201)执行二进制语言的程序代码。此外,提供一种自动化系统(200)。

Description

用于创建和执行用于控制自动化系统的控制程序的方法以及 自动化系统
技术领域
本发明涉及一种用于创建和执行用于控制自动化系统的控制程序的方法。此外,本发明涉及一种自动化系统,该自动化系统设计成执行用于创建和执行用于控制自动化系统的控制程序的方法。
该专利申请要求德国专利申请DE102020115028.8的优先权,该文献的公开内容以此包含在本申请中。
背景技术
自动化技术的技术规定(执行、测量、控制/调节、通信、人机界面、安全等)的任务是,使机器(包括工业机器人和/或设备)自动化,也就是说能够由此自行地并且在没有人的协作的情况下运行。在设备中的和/或所涉及的设备中的相应的机器越独立于人为干预,则自动化系统中的自动化程度(自动化的制造步骤与所有的制造步骤的比例)越高。
自动化技术的目标尤其是减轻人的危险的、费力的和/或单调的活动的负担,通过技术设备改进质量,设备的更高工作能力和通过设备降低成本。通过在机器中、信号检测、信号处理和/或自动化系统内的部件的通信(联网)的进展,与现有技术相比能够明显提高现有的或新的设备的自动化程度。
为了控制自动化系统,通常使用可编程逻辑控制器(SPS)。可编程逻辑控制器尤其在过程控制技术中使用,例如用于控制生产线或化学设备。构造为可编程逻辑控制器的机器控制器控制或调节机器和设备,其方式为根据由设置在机器或设备上的传感器检测到的测量值来控制诸如继电器、驱动装置或阀门的执行器。
可编程逻辑控制器通常通过事件控制来工作并且周期性地执行控制程序。在此,在一个执行周期内读取传感器的信号并且基于所述信号计算并且输出用于执行器的输出值。
为了控制自动化系统,需要相应编程的控制程序。为了创建相应的控制程序,通常使用相应构造的集成开发环境(Integrated Development Environment-IDE),所述集成开发环境为用户提供以编辑器形式的输入可能性,这些编辑器分别通过不同的输入辅助、例如自动完成写入的程序代码来提供。所谓的IDE对于用户还能够实现转换功能,所述转换功能能够实现将所创建的程序代码转换成二进制语言。此外,IDE尤其是设计用于实施调试过程,所述调试过程能够使用户发现在所创建的程序代码中的错误。
通常,IDE在台式计算机上或在笔记本电脑上本地运行。然而,这假设相应的IDE安装在要使用的计算机上,并且所使用的计算机具有足够的计算能力来执行所述功能。通常的IDE也详细说明用于相应的操作系统。因此,用户被绑定到安装有IDE的相应的计算机上以创建程序代码。这在用户的灵活性和如何能够在自动化技术中执行控制程序的编程的方式方面构成显著的限制。
发明内容
因此,本发明的任务在于,提供一种用于创建并且执行用于控制自动化系统的控制程序的方法,使得能够对于用户实现高的灵活性。本发明的另一个任务是,提供一种对应的自动化系统,该自动化系统设计用于执行用于创建并且执行用于控制自动化系统的控制程序的方法。
所述任务通过根据独立权利要求的方法和自动化系统来解决。有利的改进方案在从属权利要求中给出。
根据本发明的一个方面,提供了一种用于创建并且执行用于控制自动化系统的控制程序的方法,所述自动化系统具有控制器和与该控制器连接的网页服务器,其中,该方法包括:
在服务器连接步骤中,通过在客户端设备上执行的网页浏览器创建客户端设备与网页服务器之间的连接,其中,在网页服务器上安装有基于网页的开发环境,所述开发环境具有用于创建程序代码的输入模块和用于转换所创建的程序代码的转换模块,其中,所述输入模块可在网页浏览器中执行,并且其中,所述转换模块设计用于将第一编程语言的程序代码转换成二进制语言的程序代码;
在工作环境连接步骤中,由所述客户端设备在所述网页浏览器中执行所述输入模块的实例,并且通过所述输入模块的在所述网页浏览器中执行的实例来创建所述客户端设备与所述网页服务器的工作环境以及所述工作环境的转换模块的连接,其中,在所述工作环境内可执行所述转换模块;
在代码创建步骤中,所述输入模块的在所述网页浏览器中执行的实例中以所述第一编程语言创建用于所述自动化系统的控制程序的第一版本的程序代码;
在程序代码传输步骤中,将所创建的第一版本的程序代码从所述输入模块的在所述网页浏览器中执行的实例传输给所述网页服务器的工作环境;
在写入步骤中,将所传输的第一版本的程序代码写入工作环境的程序文件;
在转换步骤中,在工作环境中执行所述转换模块,并且通过所述转换模块将以第一编程语言创建的并且写入所述程序文件的程序代码转换成二进制语言的程序代码;
在二进制代码传输步骤中,将所述程序代码以二进制语言从工作环境传输给所述自动化系统的控制器;并且
在执行步骤中,通过自动化系统的控制器以二进制语言执行所述程序代码并且基于所述程序代码控制所述自动化系统。
由此实现的技术优点是,可以提供一种用于创建和执行用于控制自动化系统的控制程序的方法,在该方法中能够通过基于网页的开发环境实现对控制程序的程序代码的基于网页的编程。为此,在所述网页服务器上安装有基于网页的开发环境,所述开发环境具有用于创建程序代码的输入模块和用于将所创建的程序代码转换成用于控制自动化系统的二进制程序的转换模块。在这里,基于网页的开发环境的所述输入模块可以在网页浏览器中执行。另一方面,所述转换模块可以在网页服务器上执行并且设计用于将任意编程语言的程序代码转换为二进制语言的程序代码。
为了创建控制程序,用户因此可以通过在任意客户端设备上执行的网页浏览器建立与网页服务器的连接,并且在客户端设备上执行的网页浏览器中执行基于网页的开发环境的输入模块的实例。所述客户端设备可以是台式计算机、笔记本电脑或任意移动设备。由此实现了用户可以为了创建控制程序的程序代码而从任意客户端设备中作用。因此,不需要在所使用的客户端设备上安装包括输入模块的开发环境以实施用于创建程序代码的编程过程。
输入模块的在客户端设备的网页浏览器中执行的实例独立于平台,并且可以在通过任意操作系统控制的任意客户端设备上执行。这实现了基于网页的开发环境的平台独立性。
为了创建控制程序的程序代码,用户接下来通过输入模块的在网页浏览器中执行的实例创建与在网页服务器上设计的工作环境的连接。在所述工作环境中可以设计编程项目,该编程项目包含所有为了创建程序代码所必需的文件、目录或者数据库。因此,所述工作环境能够实现网页服务器的结构化,由此不同的编程项目能够彼此可分离地设置。所述工作环境例如可以设有受密码保护的入口并且能够实现仅授权的用户的连接。由此,不同用户的敏感数据可以存储在网页服务器上。
通过输入模块的在网页浏览器中执行的实例,用户随后可以从相应使用的客户端设备中以任意编程语言创建控制程序的程序代码的版本。通过在所使用的客户端设备的网页浏览器中执行输入模块的实例,用户不被绑定到任何特定的客户端设备上以创建程序代码,从而对于用户能够实现高度灵活性,并且用户可以通过在任意位置上使用任意客户端设备来创建用于控制程序的程序代码。
在程序代码传输步骤中,可以仅将在代码创建步骤中对程序代码所做出的更改(基于所述更改创建第一版本的程序代码)从在输入模块的在网页浏览器中执行的实例通过互联网连接传输给网页服务器。当第一版本的程序代码是已经创建的程序代码的更改的版本时,这尤其是感兴趣的。
在此,所述第一编程语言可以是用于创建自动化系统的控制程序的任意编程语言或由现有技术已知的编程语言。为了将由用户选择的第一编程语言中的所创建的程序代码转换成通过所述自动化系统的控制器可执行的二进制代码,在输入模块的在网页浏览器中执行的实例将所创建的程序代码传输给网页服务器并且使网页服务器将所传输的程序代码写入工作环境内的程序文件。
在此,程序文件可以构成为复合类型并且具有多个设置在相应的目录中的文件。由此可以实现,将所创建的程序代码以由用户选择的编程语言存储在服务器上、尤其是存储在相应的工作环境中,从而不需要为了保证编程项目而将所创建的程序代码存储在由用户使用的客户端设备上。由此可以实现,在进一步编辑所创建的程序代码时,用户不绑定到首先选择的客户端设备上,而是可以由任意客户端设备执行对已经创建的程序代码的编辑。
此外,与缓冲器类似地,所述程序文件可以构成为网页服务器的主存储器中的文件,使得程序文件的更改不需要被自动存储在网页服务器的永久数据存储器、诸如硬盘中。
此外,所述程序文件可以与网页服务器的永久数据存储器中的关联文件相关联,所述程序文件的内容可以存储在所述关联文件中,从而可以实现将所述程序文件的内容存储在网页服务器的永久存储器中。
此外,实现了不会加重用于存储所创建的程序代码的所使用的客户端设备的存储区域的负担。由此能够节省所使用的客户端设备的资源。
通过在所述程序文件中写入的程序代码上执行转换模块,可以将该程序代码转换成相应的二进制代码,该二进制代码可以由所述自动化系统的控制器执行以控制该自动化系统。由此可以将所述转换过程交换到网页服务器上,从而可以避免在客户端设备上所创建的程序代码的密集计算的转换。因此,可以实现节省所使用的客户端设备的资源以创建程序代码。
为了通过所述自动化系统的控制器来执行之前在输入模块的实例中创建的程序代码的通过所述转换模块创建的二进制代码,所生成的二进制代码可以直接从网页服务器、尤其是从工作环境被传输给所述自动化系统的与网页服务器连接的控制器上并且由该控制器执行。由此,在创建程序代码和执行相应的控制程序之间的顺利过渡可以通过所述自动化系统的控制器和与此相关的控制自动化系统来实现。
因此,可以避免繁琐的过程,否则在该繁琐的过程中程序代码首先在专门为此设置的客户端设备上被创建并且转换成二进制代码,该二进制代码随后必须在自动化系统的控制器上运行,使得该控制器可以执行相应的控制程序并且因此控制自动化系统。
根据一个实施方式,该方法还包括:
在另一个服务器连接步骤中,通过在所述另一个客户端设备上执行的另一个网页浏览器在另一个客户端设备与网页服务器之间创建另一个连接;
在另一个工作环境连接步骤中,在所述另一个客户端设备的所述另一个网页浏览器中执行所述输入模块的另一个实例,并且通过所述输入模块的在所述另一个网页浏览器中执行的所述另一个实例创建所述另一个客户端设备与所述网页服务器的工作环境的另一个连接;
在另一个程序代码传输步骤中,将写入到所述程序文件中的第一版本的程序代码传输给所述输入模块的在所述另一个客户端设备的所述另一个网页浏览器中执行的所述另一个实例;
在更改创建步骤中,对所述程序代码进行更改,并且在所述输入模块的在所述另一个客户端设备的所述另一个网页浏览器中执行的所述另一个实例中以所述第一编程语言创建第二版本的程序代码;
在更改传输步骤中,将第二版本的程序代码从所述输入模块的所述另一个实例传输给所述网页服务器的工作环境;
在更改写入步骤中,将第二版本的程序代码写入所述工作环境的程序文件;
在第二更改传输步骤中,将第二版本的程序代码从所述工作环境传输给所述客户端设备的所述输入模块的在所述网页浏览器中执行的实例;并且
在更改显示步骤中,将第二版本的程序代码在所述客户端设备的所述输入模块的在所述网页浏览器中执行的实例中显示。
由此实现的技术优点是,能够实现通过不同的用户同时编辑所创建的程序代码。为此,可以通过在所述另一个客户端设备上执行的另一个网页浏览器建立所述另一个客户端设备与网页服务器的连接。接下来,所述输入模块的另一个实例可以在所述另一个客户端设备的所述另一个网页浏览器中执行。在此,另一个客户端设备可以是任意的台式机、笔记本电脑或任意的移动设备并且可以利用任意的操作系统来执行,所述操作系统也可以与已经与网页服务器连接的客户端设备的操作系统不同。此外,所述两个客户端设备的所述两个网页浏览器可以是不同的网页浏览器。因此,所述输入模块的不同实例可以在不同客户端设备的不同网页浏览器中执行。
通过所述输入模块的在所述另一个客户端设备的另一个网页浏览器中执行的所述另一个实例,可以建立与工作环境的连接,并且在写入程序文件中的程序代码从网页服务器传输给输入模块的在所述另一个网页浏览器中执行的所述另一个实例之后,可以在输入模块的所述另一个实例中在所述另一个客户端设备上显示所创建的程序代码。由此能够实现不同的用户能够从不同客户端设备同时执行程序代码的编辑。不同的用户因此可以同时对创建相同的程序代码作出贡献并且可以从不同的设备出发执行这一点。
通过输入模块的所述另一个实例,所述另一个用户可以对所创建的程序代码实施更改并且创建第二版本的程序代码。第二版本的程序代码接下来可以由输入模块的在所述另一个网页浏览器中执行的所述另一个实例传输给网页服务器、尤其是传输给工作环境并且写入程序文件中。存储在网页服务器的工作环境中的程序文件可以由第一用户和第二用户两者修改。
写入程序文件中的第二版本接下来可以被传输给第一用户、尤其是传输给输入模块的在客户端设备的网页浏览器中执行的实例并在该实例中显示。由此实现了两个用户同时在相应使用的客户端设备的网页浏览器中执行的输入模块中显示相同版本的程序代码。因此,不同的用户可以跟踪相应另一用户的更改,从而能够实现两个用户的协同工作以创建程序代码。因此,各个用户能够由其所使用的客户端设备获得程序代码的更改并且跟踪相应其它用户的更改。
由所述另一个客户端设备的所述另一个用户创建的第二版本的程序代码可以写入程序文件中并且因此被存储在网页服务器上。此外,写入程序文件中的第二版本可以通过在网页服务器上、尤其是在工作环境中执行的转换模块转换成相应的二进制代码,该二进制代码被传输给自动化系统的控制器并且由该控制器执行以控制自动化系统。由此能够实现通过不同的用户在使用不同的客户端设备的情况下在协同工作中创建程序代码,该程序代码可以在使用网页服务器的情况下被转换并且可以通过自动化系统的控制器被执行。由此能够实现用于实施用于创建自动化系统的控制程序的共同的编程项目的共同协同工作。
根据一个实施方式,在更改传输步骤中和在第二更改传输步骤中,从第二版本的程序代码仅传输在所述输入模块的所述另一个实例中进行的程序代码更改。
由此实现这样的技术优点,即为了将由不同用户所创建的不同版本的程序代码传输给网页服务器,传输尽可能小的数据量。由此可以实现快速的传输并且因此在不同用户的输入模块的各个实例中尽可能同时地显示所进行的更改。通过只传输对各个版本的程序代码所进行的更改,可以实现对写入程序文件中的程序代码的及时更新。
根据一个实施方式,在更改传输步骤中,传输在输入模块的所述另一个实例中对第二版本的程序代码和第一版本的程序代码所进行的更改,其中,该方法还包括:
在比较步骤中,将在第二更改传输步骤中传输的第一版本的程序代码与写入程序文件中的版本的程序代码进行比较;
在错误确定步骤中,如果第一版本的程序代码与写入程序文件中的版本的程序代码不一致,则确定同步错误;
在版本传输步骤中,将写入程序文件中的版本的程序代码从所述工作环境传输给输入模块的在所述另一个网页浏览器中执行的所述另一个实例;并且
在版本显示步骤中,输入模块的在所述另一个网页浏览器中执行的所述另一个实例中显示所传输的版本的程序代码。
由此实现这样的技术优点,即通过所述两个用户能够实现同步编辑程序代码。通过除了所进行的更改之外,附加地将由相应的用户对其进行更改的相应版本的程序代码由输入模块的相应实例传输给网页服务器,并且将所传输的版本的程序代码与写入程序文件中的版本的程序代码进行比较,可以确保,在由多个用户同时编辑程序代码时,所有用户分别编辑相同版本的程序代码。
如果利用所进行的更改所传输的版本的程序代码与写入程序文件中的版本的程序代码不一致,则所传输的更改不被写入程序文件中,而是将当前写入程序文件中的版本传输给相应的用户并且在输入模块的相应的实例中显示。因此确保了所有与工作环境相关联的用户分别以显示的方式得到写入程序文件中的当前版本的程序代码,从而所有编辑相应程序项目的用户可以编辑相同版本的程序代码。
根据一个实施方式,在更改传输步骤中,传输在输入模块的所述另一个实例中对第二版本的程序代码和关于第一版本的程序代码的信息所进行的更改,其中,该方法还包括:
在比较步骤中,将在第二更改传输步骤中传输的关于第一版本的程序代码的信息与写入程序文件中的版本的程序代码进行比较;
在错误确定步骤中,如果关于第一版本的程序与写入程序文件中的版本的程序代码不一致,则确定同步错误;
在版本传输步骤中,将写入程序文件中的版本的程序代码从所述工作环境传输给输入模块的在所述另一个网页浏览器中执行的所述另一个实例;并且
在版本显示步骤中,在输入模块的在所述另一个网页浏览器中执行的所述另一个实例中显示所传输的版本的程序代码。
由此实现这样的技术优点,即通过传输关于第一版本的信息来检查第一版本与写入程序文件中的版本的一致性可以传输减少的数据量。
例如,关于第一版本的信息可以是唯一识别所述版本的程序代码的版本号。然后,在比较步骤中,可以将第一版本的程序代码的版本号与存储在程序文件中的版本的程序代码的版本号进行比较,以确定所述版本号的一致性或偏差。
根据一个实施方式,在程序代码传输步骤中,在单独的消息中传输在代码创建步骤中所进行的每个输入,其中,在更改传输步骤中在单独的消息中传输对第一版本的程序代码所进行的每个更改。
由此实现这样的技术优点,即能够实现通过网页服务器对所进行的更改进行即时处理并且与此相关地对写入程序文件中的版本的程序代码进行即时更新。在此,对程序代码的更改可以是客户端设备的单个按键敲击,或者是在输入模块的相应实例中显示的程序代码中对字符的单个添加或删除。
根据一个实施方式,所述转换模块还包括用于在所创建的程序代码中执行语义分析和/或语法分析的分析模块,该方法还包括:
在全局分析步骤中通过所述分析模块执行对所创建的并且写入所述程序文件中的以第一编程语言的程序代码的全局分析,并确定全局分析结果,其中,所述程序代码的全局分析包括基于所述第一程序语言的语义和语法对整个程序代码的语义分析和语法分析;
在分析结果传输步骤中,将在全局分析步骤中确定的全局分析结果传输给在客户端设备的输入模块的在网页浏览器中执行的实例和/或所述另一个客户端设备的输入模块的在所述另一个网页浏览器中执行的所述另一实例;并且
在分析结果显示步骤中,在客户端设备的输入模块的在网页浏览器中执行的实例中和/或在所述另一个客户端设备的输入模块的在所述另一个网页浏览器中执行的所述另一个实例中显示所传输的全局分析结果。
由此实现这样的技术优点,即在网页服务器上的编程过程期间、尤其是在网页服务器的工作环境中,可以执行写入程序文件中的程序代码的关于所创建的程序代码的关于分别所使用的编程语言的语义和语法的正确性的分析。此外实现了可以在编程过程期间在输入模块的分别所使用的实例中向用户显示所创建的程序代码的语义的或语法的分析的相应结果,使得用户已经在编程期间可以消除所创建的程序代码的相应的错误。由此能够实现尽可能简单的编程过程,在所述编程过程中必要时向用户显示程序代码的语法错误或语义错误。
根据一个实施方式,全局分析结果的传输构成为网页服务器对客户端设备的输入模块的在网页浏览器中执行的实例的轮询请求和/或对在所述另一个客户端设备的输入模块的所述另一个网页浏览器中执行的轮询请求的响应。
由此实现这样的技术优点,即可以在输入模块的分别由用户所使用的实例中提供分析结果的自动显示。为此,可以由输入模块的实例向网页服务器提供与预设的时间间隔相应的询问,是否存在分析模块的相应的全局分析结果。一旦完成所述分析模块对写入程序文件中的程序代码的分析,相应的分析结果就从网页服务器传输给输入模块的在网页浏览器中执行的实例并且由该实例向用户显示。因此,自动向用户指出相应的语义的或语法的分析结果,而用户不必执行相应的询问。因此,用户通过输入模块的由其所使用的实例自动地以显示的方式得到相应的分析结果并且不必额外地开始相应的分析。
根据一个实施方式,全局分析结果包括关于在所创建的程序代码中的语义和/或语法错误、在程序代码中所使用的程序对象以及在程序代码中所使用的程序对象之间的关系的错误报告,其中,程序对象包括在程序代码中所使用的变量、函数、数据类型、域名空间或其它对象。
由此实现这样的技术优点,即在输入模块的相应所使用的实例中能够向用户显示关于由用户创建的程序代码的大量信息。通过在全局分析中所创建的分析结果,可以为用户提供包括对于程序代码的尽可能顺利的编程的信息和输入辅助,所述分析结果包括所创建的程序代码语义和语法错误和/或在程序代码中所使用的变量、函数、数据类型、域名空间和相应使用的编程语言的其它实例。
根据一个实施方式,所述全局分析步骤还包括:
在快照步骤中,通过分析模块确定所创建的并且写入程序文件中的以第一编程语言的程序代码的分析版本,其中,所述程序代码的分析版本对应于所述程序代码的在执行全局分析步骤的时间点写入程序文件中的版本;并且
在全局分析步骤中,基于所述分析版本执行以第一编程语言的程序代码的全局分析。
由此实现这样的技术优点,即在通过分析模块实施全局分析期间能够实现由相应的用户编辑程序代码。为此,首先创建写入程序文件中的程序代码的分析版本,基于该分析版本通过分析模块实施程序代码的相应的全局分析。在通过分析模块实施包括整个程序代码并且因此耗时的全局分析时,可以对写入程序文件中的版本的程序代码进行进一步更改。由此可以实现,尽管通过分析模块实施全局分析,用户不必中断编程过程并且因此可以在实施分析期间对程序代码实施进一步的更改。此外,由于分析模块在之前创建的分析版本的程序代码上作用,所以对写入程序文件中的版本的程序代码进一步更改同样不会中断分析模块的分析。因此,通过分析模块可以同时分析程序代码并且通过相应的用户可以对程序代码进行进一步更改。
根据一个实施方式,该方法还包括:
在更新步骤中,通过分析模块以第一编程语言创建当前版本的所创建的并且写入程序文件中的程序代码,其中,在通过客户端设备的输入模块的实例和/或通过所述另一个客户端设备的所述输入模块的所述另一个实例对程序代码的每次更改之后,以第一编程语言创建当前版本的所创建的并且写入程序文件中的程序代码;
在局部分析步骤中,通过分析模块基于当前版本的程序代码执行对所创建的和写入程序文件中的以第一编程语言的程序代码的一部分的局部分析,并且确定局部分析结果;
在局部分析结果传输步骤中,将在局部分析步骤中确定的局部分析结果传输给在客户端设备的输入模块的在网页浏览器中执行的实例和/或所述另一个客户端设备的输入模块的在所述另一个网页浏览器中执行的所述另一实例;并且
在局部分析结果显示步骤中,在客户端设备的输入模块的在网页浏览器中执行的实例中和/或在所述另一个客户端设备的输入模块的在所述另一个网页浏览器中执行的所述另一个实例中显示所传输的局部分析结果,其中,所述局部分析结果包括自动完成、句法突出显示和其它的用于在输入模块的实例和/或输入模块的所述另一个实例中输入的输入辅助。
由此实现这样的技术优点,即通过所述输入模块可以为用户提供另外的输入辅助。通过局部分析仅分析所创建的程序代码的部分。为此,首先创建当前版本的写入程序文件中的程序代码,并且对当前版本执行相应的局部分析。尤其地,对于从所述输入模块的相应实例传输给所述网页服务器的程序代码的每次更改,创建当前版本的程序代码并且执行对应的局部分析。
由此尤其是可以实现如下功能,如自动完成在所述输入模块的实例中创建的程序代码,以及如显示写入错误和类似的输入辅助。通过为程序代码的每次更改创建相应当前版本的程序代码,所述更改可以包括程序代码的字符的每次添加或删除,并且实施对当前版本的局部分析,可以为通过用户实施的每次更改在相应的输入辅助的输入模块中提供相应的显示,如自动完成、句法突出显示等。
根据一个实施方式,所述局部分析结果的传输构成为所述网页服务器向客户端设备的输入模块的在网页浏览器中执行的实例的推送消息和/或向在所述另一个客户端设备的所述输入模块的所述另一个网页浏览器中执行的实例的推送消息。
由此实现这样的技术优点,即可以在输入模块的相应实例中提供相应输入辅助的即时显示。因此,通过推送消息,一旦实施了相应的局部分析,就自动通过网页服务器将局部分析的相应结果传输给输入模块的相应实例。
根据一个实施方式,所述分析模块包括用于执行全局分析的全局分析模块和用于执行局部分析的局部分析模块。
由此实现这样的技术优点,即可以同时实施全局分析和局部分析。通过由全局分析模块基于分析版本的程序代码实施全局分析并且由局部分析模块基于当前版本的程序代码实施局部分析,避免了所述两个不同分析的干扰,使得它们是独立的并且可单独实施的。
根据一个实施方式,所述转换步骤还包括:
在第一部分转换步骤中,将以第一编程语言的程序代码转换成以高级语言的程序代码;和
在第二部分转换步骤中,将以高级语言的程序代码转换成以二进制语言中的程序代码。
由此实现这样的技术优点,即可以提供尽可能灵活的基于网页的开发环境。通过将第一编程语言的程序代码转换成高级语言的程序代码并且随后将高级语言的程序代码转换成相应的二进制代码,可以为大部分不同的第一编程语言提供尽可能简单地构造的具有可兼容的后端单元和前端单元的转换模块。
通过将转换模块划分为后端单元和前端单元,其中所述后端单元提供高级语言到二进制代码的转换并且所述前端单元提供第一编程语言到高级语言的转换,通过分别仅进行前端单元的调整或后端单元的调整,能够实现转换模块与不同的第一编程语言或自动化系统的不同的控制器的简单匹配。因此,为了添加另一个第一编程语言,仅必须修改前端单元,该前端单元设计用于,实施所述另一个第一编程语言到高级语言的转换,而后端单元可以保持未改变。为了使用用于具有另一个处理器单元的另一个控制器的基于网页的开发环境,仅需要使后端单元适配于将高级语言转换成由所述另一个处理器单元使用的二进制语言,而前端单元可以保持未改变。
根据一个实施方式,所述第一编程语言是图形编程语言。
由此实现这样的技术优点,即通过基于网页的开发环境能够实现以用于自动化系统的符合标准的编程语言(例如序列功能图、梯形图或者功能块图)的开发程序代码。
根据一个实施方式,该方法还包括:
在调试步骤中,通过所述转换模块执行所创建的程序代码的调试过程。
由此实现这样的技术优点,即可以检测用于自动化系统的通过基于网页的开发环境所创建的、控制程序的程序代码的功能是否完好。在所述调试过程中,可以测试所创建的控制程序的功能是否完好。
根据一个实施方式,所述调试步骤还包括:
在调试转换步骤中,将以第一编程语言生成的并且写入程序文件中的第一编程语言的程序代码转换成二进制语言的程序代码;
在调试传输步骤中,将在调试转换步骤中转换的以二进制语言的程序代码从所述工作环境传输给所述自动化系统的控制器;
在调试执行步骤中,通过所述自动化系统的控制器执行二进制语言的程序代码;并且
在调试信息传输步骤中,将关于所执行的程序代码的信息传输给所述客户端设备的输入模块的在所述网页浏览器中执行的实例和/或所述另一个客户端设备的输入模块在所述另一个网页浏览器中执行的另一个实例。
由此实现这样的技术优点,即通过输入模块的在网页浏览器中执行的实例可以发起所创建的程序代码的调试过程,其中,通过网页服务器或通过自动化系统的与网页服务器连接的控制器来实现所创建的程序代码的执行以检查所创建的程序代码的功能是否完好。用户因此可以无问题地从由其使用的客户端设备开始发起由其创建的程序代码的工作,并且不需要与自动化系统的控制器的直接连接或者不需要安装在客户端设备上的用于模拟自动化系统的控制器的模拟装置来检查所创建的程序代码的功能是否完好。
为了实施所述调试过程,所创建的程序代码可以由转换模块转换成相应的二进制代码,该二进制代码可以从网页服务器被传输给自动化系统的控制器并且由该控制器执行。信息、例如自动化系统的传感器的测量值或控制器的其它存储记录可以随后由控制器通过网页服务器传输给输入模块的在相应的网页浏览器中执行的实例并且由该实例向用户显示,从而可以基于控制器的特性或自动化系统的由控制器控制的组件来确定所创建的程序代码的功能是否完好。
根据一个实施方式,所述调试转换步骤还包括:
在断点设定步骤中,设定程序代码中的至少一个断点;并且
在调试执行步骤中,通过自动化系统的控制器执行二进制语言的程序代码直至断点。
由此实现这样的技术优点,即能够实现简单地检查所创建的程序代码的工作方式。通过在输入模块的在网页浏览器中执行的各个实例内通过相应的功能设定相应的断点,可以通过控制器在控制程序的期望位置处中断控制程序的执行。由此,使识别控制程序的程序代码内的导致控制程序故障的错误变得容易。
根据一个实施方式,所述工作环境连接步骤包括:
在工作环境生成步骤中,在所述网页服务器上生成工作环境;并且
在建立步骤中,在所述工作环境中建立所述转换模块。
由此实现这样的技术优点,即在网页浏览器中执行的输入模块的应用中可以发起新的编程项目,其方式为在网页服务器中设计具有转换模块的相应的工作环境。在工作环境中,在创建编程项目的相应的程序代码时可以设计一个或多个程序文件。因此,用户可以方便地通过在由其使用的客户端设备的网页服务器中执行输入模块来启动新的编程项目,并且在网页服务器上的为此设置的工作环境中存储和编辑相应创建的程序代码。不同的编程项目因此可以被单独存储在不同的工作环境中并且彼此分离。由此可以避免不同项目的混合。
根据一个实施方式,在网页服务器上生成多个彼此分离的工作环境,其中,在每个工作环境中可执行转换模块,并且其中,在每个工作环境中可实施单独的编程项目。
由此实现这样的技术优点,即能够实现在网页服务器上的单独设计的工作环境中完好地分离不同的编程项目。此外,所述不同的工作环境可以设置有相应的例如受密码保护的访问,从而仅授权的用户能够实现访问所述工作环境的各个项目。由此,例如可以将基于网页的开发环境的功能性和尤其是网页服务器的计算能力提供给不同的用户,以用于实施相应的编程项目。因此,可以确保保护网页服务器上的敏感数据。
为此,可以为在网页服务器上设计的基于网页的开发环境的转换模块创建转换模块的多个实例。在此,转换模块的不同实例可在不同的工作环境中执行。由此可以同时处理多个不同的编程项目。转换模块的每个实例在此可以具有分析模块,从而可以实施在编程环境内创建的程序代码的局部分析以及全局分析。
根据一个实施方式,所述网页服务器集成在自动化系统的控制器中。
由此实现这样的技术优点,即可以在网页服务器与自动化系统的控制器之间提供尽可能紧凑的单元。通过将网页服务器集成到自动化系统的控制器中,不需要附加的用于运行网页服务器的数据处理设备。
根据一个实施方式,所述工作环境还包括服务模块,其中,该服务模块设计用于执行在网页浏览器中执行的输入模块的计算耗费的过程。
由此实现这样的技术优点,即可以将计算耗费的过程交换到网页服务器上。由此能够节省相应的客户端设备的资源。输入模块的计算耗费的过程例如可以是布局算法,所述布局算法在对图形编程语言进行编程以创建程序代码时是必需的并且相应地是计算耗费的。
根据本发明的第二方面,提供了一种自动化系统,该自动化系统具有控制器和与该控制器连接的网页服务器,其中,该网页服务器可以与客户端设备和另一个客户端设备连接,其中,在网页服务器上安装有工作环境和基于网页的开发环境,并且其中,该自动化系统设计用于执行根据本发明的用于创建和执行用于控制自动化系统的控制程序的方法。
由此实现这样的技术优点,即提供一种自动化系统,在该自动化系统中能够实现借助安装在网页服务器上的基于网页的开发环境生成用于控制自动化系统的控制程序的程序代码。
在下文借助实施例参考随附的、示意性的且未按尺寸比例的附图进一步阐述本发明。在附图说明、附图标记列表、权利要求书中并且在附图的图中用相同的附图标记来表征具有相同或类似设计和/或功能的区段、元件、构件、单元、组件和/或方案。
在本发明中,特征可以以肯定的方式、也就是说以存在的方式或者以否定的方式、也就是说以不存在的方式设计,其中,否定特征未明确解释成特征,除非按照本发明重视它不存在的事实,即实际做出的发明而非通过现有技术来构造的发明在于省去该特征。
说明书的特征也能被解读成可选特征;也就是说每个特征都可以被理解成任选的、任意的或优选的特征,即被理解成非约束性的特征。因此,从实施例中能够提取特征、必要时包括其外围在内,其中,该特征此时能转用于广义的发明思想。在一个实施例中缺少特征表明该特征就本发明而言是可选的。
附图说明
在附图中示出:
图1示出根据一个实施方式的自动化系统的示意图;
图2示出根据一个实施方式的用于创建和执行用于控制自动化系统的控制程序的方法的一个流程图;
图3示出根据另一个实施方式的用于创建和执行用于控制自动化系统的控制程序的方法的另一个流程图;
图4示出根据另一个实施方式的用于创建和执行用于控制自动化系统的控制程序的方法的另一个流程图;
图5示出根据一个实施方式在图1中的自动化系统的网页服务器与客户端设备之间的数据通信随时间的流程图;
图6示出根据一个实施方式在图1中的自动化系统的网页服务器与客户端设备之间的数据通信随时间的流程图;以及
图7示出根据另一个实施方式的用于创建和执行用于控制自动化系统的控制程序的方法的另一个流程图;
图8示出根据另一个实施方式的用于创建和执行用于控制自动化系统的控制程序的方法的另一个流程图;以及
图9示出根据另一个实施方式的在图1中的自动化系统的另一个示意图。
具体实施方式
图1示出根据一个实施方式的自动化系统200的示意图。
在图1中示出的自动化系统200包括控制器201和网页服务器203,该网页服务器通过数据总线213与该控制器连接。在网页服务器203上建立有工作环境209,在该工作环境中可执行基于网页的开发环境300,并且其中,开发环境300安装在网页服务器203上。在自动化系统200的在图1所示的实施方式中,控制器201和网页服务器203通过两个单独的数据处理设备实现。替代地,网页服务器203可以集成到控制器201中。此外,可以通过数据总线213实现与互联网的连接。
此外,在图1的实施方式中,客户端设备205和另一个客户端设备207经由互联网连接215与网页服务器203连接。在客户端设备205上安装有网页浏览器206,在该网页浏览器中执行基于网页的开发环境300的输入模块311的实例。
在所述另一个客户端设备207上安装有另一个网页浏览器208,在该网页浏览器中执行输入模块313的另一个实例。
客户端设备205和所述另一个客户端设备207可以是任意的数据处理设备,例如工业计算机、台式计算机、笔记本电脑或任何移动设备,例如移动电话或平板电脑。网页浏览器206、208可以是由现有技术已知的任意网页浏览器,并且客户端设备205、207可以通过由现有技术已知的任意操作系统来运行。替代地,网页浏览器也可以集成到应用程序中并且作为该应用程序的一部分来执行。
自动化系统200可以是任意的工业自动化设备并且控制器201可以构造为自动化设备的任意的控制器、尤其是可编程逻辑控制器SPS。
作为在图1所示的实施方式的替代方案,可以经由互联网连接215将任意数量的客户端设备与网页服务器203连接。尤其是,自动化系统200可以具有任意数量的网页服务器203。此外,在网页服务器203上建立有任意数量的不同工作环境209,在所述工作环境上可分别执行基于网页的开发环境300。
图2示出根据一个实施方式的用于创建和执行用于控制自动化系统200的控制程序的方法100的一个流程图。
图2中的方法100的实施方式参照图9和所属于此的描述来描述。
根据在图1中所示的自动化系统,用于创建和执行用于控制自动化系统200的控制程序的方法100可以应用于具有控制器201和与该控制器201连接的网页服务器203的自动化系统。
为了创建控制程序,用户可以在服务器连接步骤101中通过由其所使用的客户端设备205、例如台式计算机或笔记本电脑或任意移动设备,和在客户端设备205上执行的网页浏览器206经由互联网连接215与网页服务器203连接。与网页服务器203的连接例如可以包括受密码保护的访问过程,在该访问过程中用户必须通过相应设立的用户帐户登录。
在与安装有具有输入模块301和转换模块303的基于网页的开发环境300的网页服务器203成功连接之后,用户可以在工作环境连接步骤103中加载基于网页的开发环境300的输入模块301的实例并且在客户端设备205的网页浏览器206中执行。输入模块311的实例可以具有向用户提供输入可能性、诸如文本编辑)的对应的图形用户界面GUI。输入模块311的实例可以类似于由现有技术已知的集成开发环境(Integrated DevelopmentEnvironment IDE)来构建。
通过输入模块311的在网页浏览器206中执行的实例的图形用户界面GUI,用户可以在工作环境连接步骤103中建立与网页服务器201上的工作环境209的连接。在网页服务器201上建立的工作环境209可以包括相应的编程项目,该编程项目包括程序文件,在该程序文件中设置有控制程序的要修改的程序代码。替代地,用户可以经由输入模块300的在网页浏览器206中执行的实例在工作环境209中建立新的编程项目并且创建新的程序代码。
编程项目除了包含程序代码的程序文件之外可以具有任意其它文件,在这些文件中存储有任意的为了执行编程过程所需的信息。此外,所述编程项目可以包括用于控制转换过程的程序代码或代码的文档。各个文件可以排列在相应的目录中。此外,编程项目可以具有各种数据库,这些数据库是以相应的编程语言创建程序代码所需要的并且例如可以包括可使用的文件类型、功能和相应编程语言的其它对象。所述数据库尤其是可以自动填充内容。这尤其是在实施对所创建的程序代码的分析时是这种情况,其中分析结果存储或缓存在所述数据库中。
为此,用户可以在代码创建步骤105中通过相应地输入到输入模块311的在网页浏览器206中执行的实例中以第一编程语言创建用于自动化系统200的控制程序的要创建的第一版本的程序代码。为此,可以通过输入模块301的各种文本编辑器或图形编辑器在通过客户端设备205执行的网页浏览器206内以第一编程语言创建相应的程序代码。
所使用的第一编程语言可以是由现有技术已知的任何基于文本的或图形的编程语言。替代地,所述第一编程语言可以是由现有技术已知的用于自动化系统的编程语言,诸如顺序功能图SFC、梯形图LD或功能块图FBD。
替代地,所述第一编程语言可以是由现有技术已知的任何基于文本的或图形的编程语言。
第一版本的程序代码可以是新创建的程序代码。替代地,第一版本的程序代码可以是在相应的编程项目下面存储在工作环境209内的网页服务器203上的已经创建的程序代码的更改版本。为此,所述已经创建的程序代码可以首先从网页服务器203加载到输入模块311的在客户端设备205的网页浏览器206中执行的实例上。
在代码创建步骤105中创建第一版本的程序代码之后,在程序代码传输步骤107中所创建的第一版本的程序代码可以由输入模块311的在网页浏览器206中执行的实例经由互联网连接215传输给网页服务器203。通过输入模块311的在网页浏览器206中执行的实例以预先确定的时间间隔将相应的消息传输给网页服务器203,可以自动实施将所创建的程序代码从输入模块311的在网页浏览器206中执行的实例传输给网页服务器203。
替代地,在程序代码传输步骤107中可以仅将在代码创建步骤105中对程序代码所做出的更改(基于所述更改创建第一版本的程序代码)从在输入模块311的在网页浏览器206中执行的实例通过互联网连接215传输给网页服务器203。当第一版本的程序代码是已经创建的程序代码的更改的版本时,这尤其是感兴趣的。
替代地,用户可以通过相应的发送功能将由其创建的程序代码从输入模块311的在网页浏览器206中执行的实例传输给网页服务器203。
在将所创建的程序代码成功地传输给网页服务器203之后,可以在写入步骤109中将所传输的程序代码写入工作环境内的程序文件中。在此,所述工作环境的程序文件可以在新创建的编程项目的过程中被创建。替代地,所述程序文件可以是已经存在的程序项目的一部分,而所创建的第一版本的程序代码表示对已经存在的程序代码的修改。
与缓冲器类似地,所述程序文件可以构成为网页服务器203的主存储器中的文件,使得程序文件的更改不需要被自动存储在网页服务器203的永久数据存储器、诸如硬盘中。
此外,所述程序文件可以与网页服务器203的永久数据存储器中的关联文件相关联,所述程序文件的内容可以存储在所述关联文件中,从而可以实现将所述程序文件的内容存储在网页服务器203的永久存储器中。
替代地,在写入步骤109中程序文件可以存储在网页服务器203的永久数据存储器中。
程序文件例如可以作为复合类型来构建并且又包括其它文件部分,这些文件部分例如包含全面的控制程序的部分。所创建的程序代码可以包括完整的控制程序。替代地,所创建的程序代码可以是复杂的控制程序的一部分。
接下来在转换步骤111中,可以执行可在工作环境209中执行的基于网页的开发环境300的转换模块303,并且写入程序文件中的以第一编程语言撰写的程序代码可以被转换成相应的二进制语言的二进制代码或机器语言。通过转换模块303的转换生成的二进制代码适配于自动化系统的控制器201的设计,使得转换后的二进制代码可由控制器201执行。
在转换步骤111中转换所创建的程序代码之后,在二进制代码传输步骤113中可以将所产生的二进制代码从工作环境209传输给自动化系统200的控制器201。这例如可以通过相应的数据总线213实现。数据总线213例如可以构造为本地网络连接。
在将二进制代码传输给控制器201之后,所述二进制代码可以在执行步骤115中由控制器201执行,并且根据所创建的控制程序来控制自动化系统200。
图3示出根据另一个实施方式的用于创建和执行用于控制自动化系统200的控制程序的方法100的另一个流程图。
在图3中的方法100的实施方式基于在图2中的实施方式并且包括在图2中的实施方式的所有方法步骤。如果这些方法步骤在图3的实施方式中保持不变,则省略重新的详细描述。
与图2中的实施方式不同,图3中的实施方式描述由两个用户创建程序代码,这两个用户通过单独的客户端设备、例如根据图1的客户端设备205和另一个客户端设备207同时创建控制程序的程序代码。
为此,在另一个服务器连接步骤117中,可以通过另一个网页浏览器208创建在所述另一个客户端设备207与网页服务器203之间的连接。在所述另一个客户端设备207与网页服务器203之间的连接又可以包括受密码保护的访问过程,其中,所述另一个用户必须通过相应的单独的用户帐户登录到服务器。
随后,所述另一个用户可以通过所述另一个客户端设备207的所述另一个网页浏览器208加载安装在网页服务器203上的基于网页的开发环境300的输入模块313的另一个实例并且在另一个工作环境连接步骤119中在所述另一个客户端设备207的所述另一个网页浏览器208中执行。输入模块313的所述另一个实例可以类似于输入模块311的实例而具有图形用户界面GUI,其在所述另一个网页浏览器208内为用户提供用于创建程序代码的相应的输入可能性。输入模块311、313的所述两个实例可以在不同的网页浏览器中以及在利用不同操作系统运行的不同客户端设备上执行。例如,客户端设备205可以是台式计算机,而所述另一个客户端设备207可以是移动设备。
随后,可以通过输入模块313的所述另一个实例建立与网页服务器203的工作环境209的连接。这又可以包括受密码保护的访问过程。
随后,在另一个程序代码传输步骤121中,可以将写入程序文件中的第一版本的程序代码从网页服务器203传输给输入模块313的所述另一个实例并且在该实例中显示。因此,另一个用户能够编辑由第一用户编辑的版本的程序代码。
随后,可以在更改创建步骤123中对第一版本的程序代码进行更改并且创建第二版本的程序代码。为此,用户可以通过在输入模块313的所述另一个实例上的相应输入来相应地更改从网页服务器203的工作环境209下载的程序代码。为此,用户可以使用在输入模块301中提供的编辑器,通过这些编辑器可以创建相应的编程语言的程序代码。
随后,第二版本的程序代码可以在第一更改传输步骤125中由输入模块313的所述另一个实例传输给网页服务器203并且尤其是传输给工作环境209。在第一更改传输步骤125中,第二版本的程序代码尤其是可以通过如下方式传输,即仅传输在程序代码中所进行的更改。为此,可以将在单独的消息中每个单独进行的更改从输入模块313的所述另一个实例传输给网页服务器203。
在将第二版本的程序代码或所进行的更改传输给网页服务器203的工作环境209之后,可以在更改写入步骤127中将第二版本的程序代码写入工作环境209的程序文件中。为此,尤其是可以仅将所进行的更改增添到第一版本的程序代码中。
在将第二版本的程序代码写入程序文件中之后,可以在第二更改传输步骤129中将写入程序文件中的版本从工作环境209传输给客户端设备205的输入模块311的在网页浏览器206中执行的实例,并且在更改显示步骤131中,在输入模块311的相应实例中向客户端设备205的用户显示由所述另一个客户端设备207的所述另一个用户创建的第二版本的程序代码,并且尤其是显示所进行的程序代码的更改。通过所述补偿,两个用户可以以相同版本的程序代码工作,从而能够实现由多个用户同时编辑程序代码。
在更改传输步骤129中写入程序文件中的版本的程序代码的传输可以自动执行,其方式为在将所述版本的程序代码写入程序文件中之后网页服务器203自动将所述版本的程序代码传输给客户端设备205的输入模块311的实例。替代地,将所述版本的程序代码从网页服务器203传输给客户端设备205、207作为对客户端设备205、207或输入模块311、313的实例在网页服务器203上的相应请求的响应消息,其中客户端设备205、207或输入模块311、313的实例询问是否存在当前版本的程序代码。
在更改写入步骤127中将第二版本写入程序文件中之后,类似于图2中的实施方式,在转换步骤111中可以通过转换模块303将写入程序文件中的版本的程序代码转换成相应的二进制代码,该二进制代码可以在二进制代码转换步骤113中被传输给控制器201并且可以在执行步骤115中由控制器执行。
图4示出根据另一个实施方式的用于创建和执行用于控制自动化系统200的控制程序的方法100的另一个流程图。
图4中的实施方式基于图3中的实施方式并且包括那里描述的所有方法步骤。只要这些附图在图4的实施方式中保持不变,取消重新详细的描述。
与图3中的实施方式不同,在图4中的实施方式中,在更改传输步骤125中,除了对第一版本的程序代码进行的更改之外,还可以将第一版本或者说关于第一版本的程序代码的信息、例如版本号附加地传输给网页服务器203。
随后,在比较步骤133中,可以将在更改传输步骤125中传输的第一版本或者说关于第一版本的程序代码的信息与写入程序文件中并且存储在网页服务器203上的工作环境209中的版本进行比较,基于所述第一版本的信息通过进行相应的更改来创建第二版本的程序代码。例如,可以将第一版本的版本号与写入程序文件中的程序代码版本进行比较。
如果在比较步骤133中识别出写入程序文件中的版本的程序代码与在第一更改传输步骤125中传输的版本的程序代码一致,例如在版本号一致的情况下,则在第一更改传输步骤125中传输的更改可以在更改写入步骤127中写入程序文件中或被增添到程序代码的相应版本中。
而如果在比较步骤133中识别出在程序文件的所述版本的程序代码与在第一更改传输步骤125中传输的版本的程序代码之间不一致,例如由于缺乏版本号的一致性,则在错误报告步骤135中确定同步错误。所述同步错误意味着,在由所述另一个用户编辑第一版本的程序代码期间,在输入模块313的所述另一个实例中存储在程序文件中的版本的程序代码被更新并且因此被更改。这可能在多个用户同时对程序代码进行更改并且将其存储在程序文件中时发生。因此,通过在错误确定步骤135中确定同步错误,可以避免不同的用户在不同版本的程序代码上工作并且彼此独立地修改它们。
在确定同步错误之后,在版本传输步骤137中可以将写入程序文件中的版本从网页服务器203传输给输入模块313的所述另一个实例。
在版本显示步骤139中,在传输的时间点写入程序文件中的程序代码的所传输的版本可以在所述另一个客户端设备207上的输入模块313的所述另一个实例中显示给所述另一个用户。由此可以向所述另一个用户示出,在所述另一个用户已经对第一版本的程序代码进行了更改以创建第二版本的程序代码时,该第一版本的程序代码已经由所述另一个用户通过添加另外的更改而被修改。因此,通过在版本显示步骤139中显示程序文件的所述版本的程序代码,可以向另一个用户显示当前版本的程序代码,包括其它用户在其中做出的更改。
基于在版本显示步骤139中显示的版本的程序代码,所述另一个用户可以通过在更改创建步骤123中相应地输入到输入模块313的另一个实例中来进行其它更改并且创建程序代码的其它版本。由此能够实现对于不同的用户同步要处理的程序代码,从而确保不同的用户能够同时处理相同版本的程序代码。此外,向同时编辑相同程序代码的所有用户显示所做出的所有更改。
图5示出根据一个实施方式在图1中的自动化系统200的网页服务器201与客户端设备205,207之间的数据通信随时间的流程图。
图5和图6分别示出待创建的程序代码的由多个用户处理的版本的在图4中描述的同步过程随时间的流程。
在图5和图6中分别在右侧列和左侧列中示出在两个客户端设备205、207的输入模块311、313的相应实例中显示的版本的程序代码的本地状态。中间列表示网页服务器203的状态随时间的流程并且描述存储在程序文件中的版本的程序代码随时间的流程。
在图5中,在客户端设备205处的第一用户在使用输入模块311的在网页浏览器206中执行的实例的情况下首先编辑要创建的程序代码并且创建要创建的程序代码的第一版本的程序代码V1。
在输入模块311的实例中通过第一用户创建第一版本的程序代码V1之后,在第一时间点T1在程序代码传输步骤107中将第一版本的程序代码V1传输给网页服务器203。在网页服务器203中,在写入步骤109中将所传输的第一版本的程序代码V1写入工作环境209的程序文件中。因此,通过写入程序文件中的第一版本的程序代码V1来定义网页服务器203的本地状态。在程序代码传输步骤121中,网页服务器203将写入程序文件中的第一版本的程序代码V1传输给所述另一个客户端设备207的所述另一个用户。
所述另一个用户编辑第一版本的程序代码V1并且在输入模块313的在所述另一个网页浏览器208中执行的所述另一个实例中创建第二版本的程序代码V2。在第二时间点T2,在更改传输步骤125中输入模块313的所述另一个实例将所创建的第二版本的程序代码V2传输给网页服务器203。在更改传输步骤125中,除了所进行的更改之外,还传输第一版本的程序代码的版本号VN1。
随后,在比较步骤133中将所传输的第一版本的程序代码的版本号VN1与写入程序文件的版本的程序代码的版本号进行比较。在图5所示的示例中,在通过网页服务器203接收所传输的更改的时间点,所传输的第一版本的程序代码的版本号VN1对应于写入程序文件中的版本的程序代码的版本号。因此,在实施比较步骤133之后,将第二版本的程序代码V2的更改写入程序文件中,从而网页服务器203的本地状态包括写入程序文件中的第二版本的程序代码。
随后,第二版本的程序代码V2或所进行的更改从网页服务器203被传输给第一客户端设备205或输入模块311的在网页浏览器206中执行的实例。
在更改显示步骤131中,在输入模块311的实例中显示所传输的第二版本的程序代码的更改,使得在该时间点通过在输入模块311的实例中显示的第二版本的程序代码V2定义客户端设备205的本地状态。
随后,客户端设备205的用户通过进行更改来修改第二版本的程序代码V2并且在更改创建步骤123中创建第三版本的程序代码V3。因此,客户端设备205的本地状态在所述时间点通过在输入模块311的实例中显示的第三版本的程序代码V3来定义。
在第三时间点T3,客户端设备205的输入模块311的实例将第三版本的程序代码V3、尤其是对第二版本的程序代码V2所做的更改(其包括作为第三版本的程序代码V3的基础的第二版本的程序代码的版本号VN2)传输给网页服务器203。其又执行比较步骤133并且将所传输的第二版本的程序代码的版本号VN2与写入程序文件中的程序代码的版本号进行比较。
在图5中所示的示例中,所传输的第二版本的程序代码的版本号VN2对应于写入程序文件中的程序代码的版本号,使得在更改写入步骤127中进行更改并且将第三版本的程序代码V3写入程序文件中。因此,通过写入程序文件中的第三版本的程序代码V3来定义网页服务器203的本地状态。
随后,网页服务器203将第三版本的程序代码V3传输给所述另一个客户端设备207的输入模块313的所述另一个实例。在更改显示步骤131中,输入模块313的所述另一个实例接下来显示第三版本的程序代码V3,使得在所述另一个客户端设备207的在其更改为第三版本之后的本地状态由所显示的第三版本的程序代码V3来定义。
图6示出根据一个实施方式在图1中的自动化系统200的网页服务器201与客户端设备205,207之间的数据通信随时间的流程图。
在图6中示出所述同步过程的另一个示例。与图5不同,在图6的示例中出现同步错误。
类似于图5中的示例,第一用户在输入模块311的实例中首先编辑程序代码并且创建第一版本的程序代码V1。
在时间点T1,将所述第一版本的程序代码传输给服务器203,该服务器将第一版本的程序代码V1写入程序文件中并且传输给所述另一个用户或所述另一个客户端设备的输入模块313的所述另一个实例。
输入模块313的所述另一个实例显示第一版本的程序代码V1,并且所述另一个客户端设备207的所述另一个用户编辑第一版本的程序代码V1并且创建第二版本的程序代码V2。
在时间点T2,将包括第一版本的程序代码的版本号VN1的第二版本的程序代码V2的更改传输给网页服务器203。在实施比较步骤133之后,程序服务器203将第二版本的程序代码V2写入程序文件中。
与图5中的示例不同,在图6中的示例中客户端设备205的第一用户在第二用户编辑第一版本的程序代码V1的同时编辑第一版本的程序代码V1,所述第一版本在该时间点定义客户端设备205的本地状态并且创建第三版本的程序代码V3。
在第三时间点T3,输入模块311的实例将包括第一版本的程序代码的版本号VN1的第三版本的程序代码V3传输给网页服务器203,第三版本的程序代码V3的版本号基于所述第一版本。
在比较步骤133中,网页服务器203将所传输的第一版本的程序代码的版本号VN1与写入程序文件的程序代码的版本的版本号进行比较。由于在所述时间点通过第二版本的程序代码V2定义所述版本的程序文件并且因此定义网页服务器203的本地状态,并且因此所传输的第一版本的程序代码的版本号VN1与程序文件的版本的版本号不匹配,该版本号对应于第二版本的程序代码的版本号VN2,所以在错误确定步骤135中确定同步错误。
随后,所传输的第三版本的程序代码未被写入程序文件中。取而代之地,在该时间点写入程序文件的第二版本的程序代码V2由网页服务器203传输给第一用户的客户端设备205的输入模块311的实例。
在更改显示步骤131中,第二版本的程序代码V2随后显示在客户端设备205的输入模块311的实例中。因此,向客户端设备205的用户显示由所述另一个客户端设备207的所述另一个用户在此期间创建的对第二版本的程序代码V2的更改,使得恢复了在不同用户的客户端设备205、207上的程序代码的分别使用的版本或状态的同步。
图7示出根据另一个实施方式的用于创建和执行用于控制自动化系统200的控制程序的方法100的另一个流程图。
图7中的方法100的实施方式基于图2中的实施方式并且包括那里描述的所有方法步骤。只要这些附图在图7的实施方式中保持不变,省略重新的详细描述。
不同于图2中的实施方式,在图7中的实施方式中工作环境连接步骤103包括工作环境生成步骤173。在工作环境生成步骤173中,与网页服务器203连接的用户可以经由在客户端设备205上执行的网页浏览器206在网页服务器203上生成工作环境209。
为此,该用户可以产生新的编程项目并且将其设置在新创建的工作环境209中。所创建的工作环境209还可以设有受密码保护的访问过程,借助该访问过程确保仅授权的用户可以获得对工作环境209的访问和其中设立的程序项目。
随后,可以在建立步骤175中在新生成的工作环境209中建立基于网页的开发环境300的转换模块301。由此,在新生成的工作环境中创建的编程项目可以通过基于网页的开发环境300来执行。
替代地,可以产生在网页服务器203上建立的转换模块301的实例,该实例可在工作环境209中执行。对于在网页服务器203上建立多个工作环境209的情况,可以为每个工作环境209产生转换模块301的单独的实例,该实例分别仅可在相应的工作环境209中执行。转换模块301的多个实例可以同时执行。因此,可以在网页服务器203上同时处理不同的编程项目。
在工作环境连接步骤103中与工作环境成功连接之后,用户可以通过输入模块311的在网页浏览器206中执行的实例在代码创建步骤105中创建期望的程序代码。
与图2中的实施方式不同,图7中的实施方式能够对所创建的程序代码执行全局分析和局部分析,所述全局分析和局部分析可以同时或时间错开地实施。
为此,基于网页的开发环境300的转换模块301包括分析模块,该分析模块设计用于对所创建的程序代码实施语义和语法分析。在此,所实施的语义和语法分析基于分别用于创建程序代码的编程语言的语义和语法。在针对网页服务器203的每个工作环境209生成转换模块301的实例的情况下,这些实例中的每一个包括分析模块的实例,该实例可以在各自的工作环境209内的转换模块301的各自的实例内执行。
因此,在程序代码传输步骤107中所创建的程序代码从输入模块300的实例传输给网页服务器203并且所传输的程序代码在写入步骤109中写入程序文件中之后,可以在全局分析步骤141中由分析模块执行所传输的程序代码的全局分析。全局分析在此考虑完整创建的程序代码并且尤其是包括对程序代码的词汇分析以及对在程序代码中使用的语义和语法的分析。
为此,全局分析步骤141可以包括快照步骤147,在该快照步骤中可以生成所创建的程序代码的分析版本。为此可以创建程序代码的拷贝。接下来基于程序代码的所创建的分析版本来执行所述全局分析。因为全局分析包括完整的创建的程序代码,所以这可能是耗费时间的。通过创建对于全局分析要使用的分析版本的程序代码(该分析版本不受写入程序文件中的程序代码的其它更改的影响),可以确保在执行全局分析的同时,用户可以对程序代码执行其它更改,而不会由于执行全局分析而阻断用户的编程过程,或者不会由于程序代码的同时更改而破坏全局分析的结果。
在创建程序代码的分析版本并且基于程序代码的分析版本执行全局分析之后,全局分析的所生成的结果可以在全局分析结果传输步骤143中从网页服务器203传输给输入模块311的在客户端设备205的网页浏览器206中执行的实例。
在全局分析结果显示步骤145中,全局分析的结果可以在输入模块311的在网页浏览器206中执行的实例中显示。
全局分析的结果在此可以包括在创建的程序代码中的语法错误或语义错误的错误报告。此外,全局分析的结果可以包括在程序代码中所使用的变量、函数、数据类型、域名空间或可以在输入模块311的实例中的对应列表或显示窗口中显示的所使用的编程语言的其它对象。
可以与全局分析同时或时间延迟地执行对所创建的程序代码的局部分析。为此,可以在更新步骤149中创建当前版本的程序代码。尤其是,可以为每个所实施的更改创建当前版本的程序代码,在该当前版本中检测所实施的更改。
与应当主要检查或识别所创建的程序代码或在程序代码中所使用的对象的语义和语法正确性的全局分析不同,所述局部分析用于为用户提供例如代码位置的自动填充或着色或所创建的程序代码的相关特殊字符或关键词的突出显示的输入辅助。因此,局部分析在分别在实施程序代码的更改之后创建的当前版本的程序代码上实施。此外,程序代码的程序对象可以通过全局分析来识别并且可访问地存储。为此,例如可以产生相应的数据库。
为此,可以在局部分析步骤151中在每个所创建的当前版本的程序代码上实施所创建的程序代码的一部分的局部分析。局部分析仅考虑程序代码的用于能够实现被写入的程序代码的自动完成所需的部分。因此,对于每个所创建的当前版本的程序代码,可以在局部分析步骤151中实施单独的局部分析。在完成局部分析之后,可以在局部分析结果传输步骤153中将所确定的局部分析结果传输给输入模块311的实例。
在局部分析结果显示步骤155中,所传输的局部分析结果显示在输入模块311的实例中。这些局部分析结果例如可以通过完成所写入的程序代码或图形突出显示程序代码的各个相关部分作为输入辅助而显示给用户。
在程序代码传输步骤107中,对所创建的程序代码每次实施的更改都可以在单独的消息中被传输给网页服务器203。因此,在更新步骤149中,可以为每个所传输的更改创建当前版本的程序代码并且可以在局部分析步骤151中基于当前版本的程序代码实施单独的局部分析。
在此,所创建的程序代码的更改可以由添加或删除程序代码的单个符号组成。
转换模块的分析模块还可以包括全局分析组件和局部分析组件。所述全局分析组件在此可以设计用于实施全局分析,而所述局部分析组件可以设计用于实施局部分析。通过所述全局分析组件实施全局分析并且通过所述局部分析组件实施局部分析,可以同时实施这两个分析,而不发生相互影响。
在全局分析结果传输步骤143中的全局分析结果的传输可以构造为通过输入模块311的实例对网页服务器203的相应轮询请求的响应。局部分析结果传输步骤153中的局部分析结果的传输可以构造为通过网页服务器203给输入模块311的实例的推送消息。
替代地,网页服务器203可以借助推送消息通知客户端或输入模块311的实例存在当前的分析结果。借助相应的轮询消息,客户端或输入模块311的实例可以从网页服务器203查询当前的分析结果。
替代地,通过局部分析模块309可以通过客户端给网页服务器203的相应轮询消息来对接相应的局部分析。对此,局部分析模块309实施局部分析,并且网页服务器203将相应的局部分析结果分别发送给请求相应局部分析的客户端和输入模块311的实例。
在图7的实施方式中描述的全局分析和局部分析的实施可以类似地转用于根据图3和图4的实施方式由其它用户在更改建立步骤123中创建程序代码的更改。因此,可以对参与创建和更改程序代码的所有用户实施全局分析和局部分析。
在实施全局分析或局部分析之后,可以在转换步骤111中转换被写入程序文件中的程序代码。在转换步骤111中转换程序代码之前,可以实施对所创建的程序代码的多个全局分析和局部分析。尤其是,可以对写入程序文件中的程序代码的版本进行多次更改或修改。
在图7的实施方式中,转换步骤111中的转换包括第一部分转换步骤157和第二部分转换步骤159。在第一部分转换步骤157中,可以将以第一编程语言创建的程序代码转换成高级语言。高级语言例如可以是C++代码。替代地,高级语言可以是由现有技术已知的任何文本高级语言。
在第二部分转换步骤159中,被转换成高级语言的程序代码可以被转换成可由自动化系统200的控制器201执行的相应的二进制代码。
为了实施第一部分转换步骤157和第二部分转换步骤159,转换模块可以包括前端组件和后端组件。所述前端组件在此可以设计用于将第一编程语言的程序代码转换成高级语言的相应的程序代码。所述后端组件可以设计用于将高级语言的所创建的程序代码转换成对应的二进制代码。
图8示出根据另一个实施方式的用于创建和执行用于控制自动化系统200的控制程序的方法100的另一个流程图。
图8中的实施方式基于图2中的实施方式并且包括那里描述的所有方法步骤。在下面不再重新详细描述在图8的实施方式中未更改的方法步骤。
在图8的实施方式中,在写入步骤109中将创建的程序代码写入程序文件中之后,可以在调试步骤161中实施调试过程,在该调试过程中测试所创建的程序代码的功能是否完好。
为此,调试步骤161包括调试转换步骤163,在该调试转换步骤中写入程序文件中的程序代码通过转换模块转换成相应的二进制代码。
随后,在调试转换步骤163中生成的二进制代码可以在调试传输步骤165中被传输给自动化系统的控制器201。
随后,可以在调试执行步骤167中执行所创建的程序代码的传输给控制器201的二进制代码。在通过控制器201实施控制程序的二进制代码期间,可以记录各种控制参数,这些控制参数能够实现关于用于控制自动化系统200的控制程序的功能是否完好的结论。
在随后的调试信息传输步骤169中,在调试执行步骤167中记录的控制参数可以作为信息被传输给输入模块的在网页浏览器206中执行的实例。为此,这些信息首先可以由执行控制程序的控制器201传输给网页服务器203。所传输的信息或控制参数可以在输入模块311的实例中显示给用户,从而能够检查对所创建的程序代码的功能是否完好。此外,调试步骤161可以包括断点设定步骤171,在该断点设定步骤中可以将所创建的程序代码设有对应的断点,该断点能够实现在调试执行步骤167中在程序代码的通过所设定的断点标记的位置处停止对程序代码的执行。
调试步骤161可以由用户通过输入模块303中的相应输入来发起。
调试执行步骤167可以由自动化系统的控制器201来实施。替代地,在网页服务器203上可以安装有模拟模块,该模拟模块设计用于执行调试执行步骤167并且基于所创建的程序代码来模拟自动化系统200的控制。
可以根据由通常的现有技术已知的调试过程来执行在调试步骤161中的调试过程,在该调试过程中可以检查所创建的程序代码的功能是否完好。
根据本发明的方法100可以应用于任意数量的不同用户,这些用户通过不同的客户端设备与网页服务器203连接。每个用户通过输入模块的在所使用的客户端设备的网页浏览器中执行的实例能够创建用于自动化系统的控制程序的程序代码。通过同步功能可以保证所有同时创建或编辑共同的程序代码或显示关于其的信息的用户可以在相同版本的程序代码上工作,并且以显示的方式获得通过相应其它用户进行的对程序代码的更改。由此实现了直接的协同工作,在协同工作时在相互的交换中可以共同生成用于自动化系统的控制程序的程序代码。在此,可以通过网页服务器203执行用于创建程序代码或用于将程序代码转换为二进制代码以及用于实施单个分析或调试过程的计算操作。
根据一个实施方式,一客户端或另一个客户端可以是任意的应用程序,该应用程序通过所定义的接口与服务器连接并且从服务器获得信息并且将所述信息传输到服务器上。此外,一客户端或另一个客户端可以承担与智能开发环境IDE的作用不同的作用。
图9示出根据另一个实施方式的在图1中的自动化系统200的另一个示意图。
在图9的实施方式中,自动化系统200包括控制器201,该控制器经由数据总线213与网页服务器203连接。此外,客户端设备205经由互联网连接215与网页服务器203连接。
在网页服务器203上建立有三个不同的工作环境209。在一工作环境209中建立有安装在网页服务器上的基于网页的具有转换模块303的开发环境300的实例。转换模块303包括分析模块305。分析模块305包括全局分析模块307和局部分析模块309。分析模块305设计用于实施对所创建的程序代码的分析。全局分析模块307设计用于根据全局分析步骤141实施全局分析。局部分析模块309设计用于根据局部分析步骤151对所创建的程序代码实施局部分析。
在图9的实施方式中,在工作环境209中还建立有服务模块211。服务模块211构造用于承担计算耗费的算法。例如,服务模块211可以设计用于执行布局算法,所述布局算法在对图形编程语言进行编程时进行。因此,通过服务模块211可以将在编程程序代码期间出现的计算耗费的过程步骤交换到网页服务器203上,以便保护客户端设备205的资源。
此外,在工作环境209中建立有两个独立的编程项目219。在此,为编程项目219分配在数据结构中设置的程序文件217,这些程序文件可以在编程项目219内被编辑并且可被写入相应的程序代码中。
替代于在图9中所示的示例性实施方式,可以在网页服务器203上建立任何数量的不同的单独的工作环境209。此外,在每个工作环境中可以建立任意数量的不同的编程项目219,可以为这些编程项目与任意数量的不同的程序文件217相关联。
客户端设备205包括网页浏览器206,在该网页浏览器中执行基于网页的开发环境300的输入模块311的实例。在图9的实施方式中,输入模块311的实例包括文本编辑器315、用于编程语言顺序功能图SFC的编辑器317、用于编程语言梯形图LD的编辑器319和用于编程语言功能块图FBD的编辑器321。输入模块301的在图9中所示的实施方式仅是示例性的。替代地,输入模块301可以包括对于由现有技术已知的集成开发环境DIE常见的其它功能、编辑器和其它组件。
客户端设备205与网页服务器203之间的数据通信可以通过HTTP协议或HTTPS协议实现。尤其是,程序代码的版本可以通过HTTP协议或HTTPS协议在网页服务器203与客户端设备205之间进行交换。网页服务器203与客户端设备205之间的进一步通信可以经由Web-Socket信道来实施。
附图标记列表
100用于生成并且执行控制程序的方法
101 服务器连接步骤
103 工作环境连接步骤
105 代码创建步骤
107 程序代码传输步骤
109 写入步骤
111 转换步骤
113 二进制代码传输步骤
115 执行步骤
117 服务器连接步骤
119另一个工作环境连接步骤
121另一个程序代码传输步骤
123 更改创建步骤
125 更改传输步骤
127 更改写入步骤
129 第二更改传输步骤
131 更改显示步骤
133 比较步骤
135 错误确定步骤
137 版本传输步骤
139 版本显示步骤
141 全局分析步骤
143 全局分析结果传输步骤
145 全局分析显示步骤
147 快照步骤
149 更新步骤
151 局部分析步骤
153 局部分析结果传输步骤
155 局部分析结果显示步骤
157 第一部分转换步骤
159 第二部分转换步骤
161 调试步骤
163 调试转换步骤
165 调试转换步骤
167 调试执行步骤
169 调试信息传输步骤
171 断点设定步骤
173 工作环境生成步骤
175 建立步骤
200 自动化系统
201 控制器
203 网页服务器
205 客户端设备
206 网页浏览器
207 另一个客户端设备
208 另一个网页浏览器
209 工作环境
211 服务模块
213 数据总线
215 互联网连接
217 程序文件
219 编程项目
300 基于网页的开发环境
301 输入模块
303 转换模块
305 分析模块
307 全局分析模块
309 局部分析模块
311 输入模块的实例
313 输入模块的另外的实例
315 文本编辑器
317用于顺序功能图(SFC)的编辑器
319用于梯形图(LA)的编辑器
321用于功能块图(FBD)的编辑器
V1 第一版本的程序代码
V2 第二版本的程序代码
V3第三版本的程序代码
VN1第一版本的程序代码的版本号
VN2第二版本的程序代码的版本号
VN3第三版本的程序代码的版本号
T1 第一时间点
T2 第二时间点
T3 第三时间点

Claims (22)

1.一种用于创建并且执行用于控制自动化系统(200)的控制程序的方法(100),所述自动化系统具有控制器(201)和与该控制器(201)连接的网页服务器(203),该方法包括:
在服务器连接步骤(101)中,通过在客户端设备(205)上执行的网页浏览器(206)创建客户端设备(205)与网页服务器(203)之间的连接,其中,在所述网页服务器(203)上安装有基于网页的开发环境(300),所述开发环境具有用于创建程序代码的输入模块(301)和用于转换所创建的程序代码的转换模块(303),其中,所述输入模块能在所述网页浏览器(206)中执行,并且其中,所述转换模块(303)设计用于将第一编程语言的程序代码转换成二进制语言的程序代码;
在工作环境连接步骤(103)中,由所述客户端设备(205)在所述网页浏览器(206)中执行所述输入模块(311)的实例,并且通过所述输入模块(311)的在所述网页浏览器(206)中执行的实例创建所述客户端设备(205)与所述网页服务器(203)的工作环境(209)以及所述工作环境(209)的转换模块(303)的连接,其中,在所述工作环境内能执行所述转换模块(303);
在代码创建步骤(105)中,在所述输入模块(311)的在所述网页浏览器(206)中执行的实例中以第一编程语言创建用于所述自动化系统(200)的控制程序的第一版本的程序代码(V1);
在程序代码传输步骤(107)中,将所创建的第一版本的程序代码(V1)从所述输入模块(311)的在所述网页浏览器(206)中执行的实例传输给所述网页服务器(203)的工作环境(209);
在写入步骤(109)中,将第一版本的程序代码(V1)写入所述工作环境(209)中的程序文件(217)中;
在转换步骤(111)中,在所述工作环境(209)中执行所述转换模块(303),并且通过所述转换模块(303)将以第一编程语言创建的并且写入所述程序文件(217)中的程序代码转换成二进制语言的程序代码;
在二进制代码传输步骤(113)中,将二进制语言的程序代码从所述工作环境(209)传输给所述自动化系统(200)的控制器(201);并且
在执行步骤(115)中,通过所述自动化系统(200)的控制器(201)执行二进制语言的程序代码并且基于所述程序代码控制所述自动化系统(200)。
2.根据权利要求1所述的方法(100),进一步包括:
在另一个服务器连接步骤(117)中,通过在所述另一个客户端设备(207)上执行的另一个网页浏览器(208)在另一个客户端设备(207)与所述网页服务器(203)之间创建另一个连接;
在另一个工作环境连接步骤(119)中,在所述另一个客户端设备(207)的所述另一个网页浏览器(208)中执行所述输入模块(313)的另一个实例,并且通过所述输入模块(313)的在所述另一个网页浏览器(208)中执行的所述另一个实例创建所述另一个客户端设备(207)与所述网页服务器(203)的工作环境(209)的另一个连接;
在另一个程序代码传输步骤(121)中,将写入所述程序文件(217)中的第一版本的程序代码(V1)传输给所述输入模块(313)的在所述另一个客户端设备(207)的所述另一个网页浏览器(208)中执行的所述另一个实例;
在更改创建步骤(123)中,对所述第一版本的程序代码(V1)进行更改,并且在所述输入模块(313)的在所述另一个客户端设备(207)的所述另一个网页浏览器(208)中执行的所述另一个实例中以所述第一编程语言创建第二版本的程序代码(V2);
在第一更改传输步骤(125)中,将第二版本的程序代码(V2)从所述输入模块(313)的所述另一个实例传输给所述网页服务器(203)的工作环境(209);
在更改写入步骤(127)中,将第二版本的程序代码(V2)写入所述工作环境(209)中的程序文件(217)中;
在第二更改传输步骤(129)中,将写入所述程序文件(217)中的第二版本的程序代码(V2)从所述工作环境(209)传输给所述客户端设备(205)的所述输入模块(311)的在所述网页浏览器(206)中执行的实例;并且
在更改显示步骤(131)中,在所述客户端设备(207)的所述输入模块(311)的在所述网页浏览器(206)中执行的实例中显示第二版本的程序代码(V2)。
3.根据权利要求2所述的方法(100),其中,在更改传输步骤(125)中和在第二更改传输步骤(129)中,从第二版本的程序代码(V2)仅将在所述输入模块(313)的所述另一个实例中进行的更改传输给第一版本的程序代码(V1)。
4.根据权利要求2所述的方法(100),其中,在更改传输步骤(125)中,传输在所述输入模块(313)的所述另一个实例中对第一版本的程序代码(V1)所进行的更改和第一版本的程序代码(V1),其中,该方法还包括:
在比较步骤(133)中,将在更改传输步骤(125)中传输的第一版本的程序代码(V1)与写入所述程序文件(217)中的版本的程序代码进行比较;
在错误确定步骤(135)中,如果第一版本的程序代码(V1)与写入所述程序文件中的版本的程序代码不一致,则确定同步错误;
在版本传输步骤(137)中,将写入所述程序文件(217)中的版本的程序代码从所述工作环境传输给所述输入模块(313)的在所述另一个网页浏览器(208)中执行的所述另一个实例;并且
在版本显示步骤(139)中,在所述输入模块(313)的在所述另一个网页浏览器(208)中执行的所述另一个实例中显示所传输的版本的程序代码。
5.根据前述权利要求2至4中任一项所述的方法(100),其中,在程序代码传输步骤(107)中,在单独的消息中传输在代码创建步骤(105)中所进行的每个输入,并且其中,在更改传输步骤(125)中在单独的消息中传输对第一版本的程序代码(V1)所进行的每个更改。
6.根据前述权利要求中任一项所述的方法(100),其中,所述转换模块(303)还包括用于在所创建的程序代码中执行语义分析和/或语法分析的分析模块(305),该方法还包括:
在全局分析步骤(141)中,通过所述分析模块(305)执行对写入所述程序文件(217)中的以第一编程语言的程序代码的全局分析,并且确定全局分析结果,其中,所述程序代码的全局分析包括基于所述第一程序语言的语义和语法对整个程序代码的语义分析和语法分析;
在全局分析结果传输步骤(143)中,将在全局分析步骤(141)中所确定的全局分析结果传输给在所述客户端设备(205)的所述输入模块(311)的在所述网页浏览器(206)中执行的实例和/或所述另一个客户端设备(207)的所述输入模块(313)的在所述另一个网页浏览器(208)中执行的所述另一实例;并且
在全局分析结果显示步骤(145)中,在所述客户端设备(205)的所述输入模块(311)的在所述网页浏览器(206)中执行的实例中和/或在所述另一个客户端设备(207)的所述输入模块(313)的在所述另一个网页浏览器(208)中执行的所述另一个实例中显示所传输的全局分析结果。
7.根据权利要求6所述的方法(100),其中,所述全局分析结果的传输构成为所述网页服务器(203)对所述客户端设备(205)的所述输入模块(311)的在所述网页浏览器(206)中执行的实例的轮询请求的响应和/或对在所述另一个客户端设备(207)的所述输入模块(313)的所述另一个网页浏览器(208)中执行的实例的轮询请求的响应。
8.根据前述权利要求6至7中任一项所述的方法(100),其中,全局分析结果包括关于在所创建的程序代码中的语义和/或语法错误、在程序代码中所使用的程序对象以及在程序代码中所使用的程序对象之间的关系的错误报告,并且其中,程序对象包括在程序代码中所使用的变量、函数、数据类型、域名空间或其它对象。
9.根据前述权利要求6至8中任一项所述的方法(100),其中,所述全局分析步骤(141)还包括:
在快照步骤(147)中,通过所述分析模块(305)确定以第一编程语言编写入所述程序文件(217)中的程序代码的分析版本,其中,所述程序代码的分析版本对应于所述程序代码的在执行全局分析步骤(141)的时间点写入所述程序文件(217)中的版本;并且
在全局分析步骤(141)中,基于所述分析版本执行以第一编程语言的程序代码的全局分析。
10.根据前述权利要求6至9中任一项所述的方法(100),其中,该方法还包括:
在更新步骤(149)中,通过所述分析模块(305)以第一编程语言创建当前版本的写入所述程序文件(217)中的程序代码,其中,通过所述客户端设备(205)的所述输入模块(311)的实例和/或通过所述另一个客户端设备(207)的所述输入模块(313)的所述另一个实例在对程序代码的每次更改之后,以第一编程语言创建写入所述程序文件(217)中的程序代码的当前版本;
在局部分析步骤(151)中,通过所述分析模块(305)基于当前版本的程序代码执行对写入所述程序文件中的第一编程语言的程序代码(217)的一部分的局部分析,并且确定局部分析结果;
在局部分析结果传输步骤(153)中,将在局部分析步骤(151)中所确定的局部分析结果传输给在所述客户端设备(205)的所述输入模块(311)的在所述网页浏览器(206)中执行的实例和/或所述另一个客户端设备(207)的所述输入模块(313)的在所述另一个网页浏览器(208)中执行的所述另一实例;并且
在局部分析结果显示步骤(155)中,在所述客户端设备(205)的所述输入模块(311)的在所述网页浏览器(206)中执行的实例中和/或在所述另一个客户端设备(207)的所述输入模块(313)的在所述另一个网页浏览器(208)中执行的所述另一个实例中显示所传输的局部分析结果,其中,所述局部分析结果包括自动完成、句法突出显示和其它的用于在所述输入模块(311)的实例和/或所述输入模块(313)的所述另一个实例中输入的输入辅助。
11.根据权利要求10所述的方法(100),其中,所述局部分析结果的传输构成为所述网页服务器(203)向所述客户端设备(205)的所述输入模块(311)的在所述网页浏览器(206)中执行的实例的推送消息和/或向在所述另一个客户端设备(207)的所述输入模块(313)的在所述另一个网页浏览器(208)中执行的实例的推送消息。
12.根据前述权利要求6至11中任一项所述的方法(100),其中,所述分析模块(305)包括用于执行全局分析的全局分析模块(307)和用于执行局部分析的局部分析模块(309)。
13.根据前述权利要求中任一项所述的方法(100),其中,所述传输步骤(111)还包括:
在第一部分转换步骤(157)中,将以第一编程语言的程序代码转换成以高级语言的程序代码;并且
在第二部分转换步骤(159)中,将以高级语言的程序代码转换成以二进制语言的程序代码。
14.根据前述权利要求中任一项所述的方法(100),其中,所述第一编程语言是图形编程语言。
15.根据前述权利要求中任一项所述的方法(100),其中,该方法还包括:在调试步骤(161)中,通过所述转换模块(303)执行写入所述程序文件(217)中的程序代码的调试过程。
16.根据权利要求15所述的方法(100),其中,所述调试步骤(161)还包括:
在调试转换步骤(163)中,将以第一编程语言生成的并且写入所述程序文件(217)中的第一编程语言的程序代码转换成二进制语言的程序代码;
在调试传输步骤(165)中,将在调试转换步骤(163)中转换的以二进制语言的程序代码从所述工作环境(209)传输给所述自动化系统(200)的控制器(201);
在调试执行步骤(167)中,通过所述自动化系统(200)的控制器(201)执行以二进制语言的程序代码;并且
在调试信息传输步骤(169)中,将关于所执行的程序代码的信息传输给所述客户端设备(205)的所述输入模块(311)的在所述网页浏览器(206)中执行的实例和/或所述另一个客户端设备(207)的所述输入模块(313)在所述另一个网页浏览器(208)中执行的所述另一个实例。
17.根据权利要求15或16所述的方法(100),其中,所述调试转换步骤(163)还包括:
在断点设定步骤(171)中,设定所述程序代码中的至少一个断点;并且
在调试执行步骤(167)中,通过所述自动化系统(200)的控制器(201)执行以二进制语言的程序代码直至断点。
18.根据前述权利要求中任一项所述的方法(100),其中,所述工作环境连接步骤(103)包括:
在工作环境生成步骤(173)中,在所述网页服务器(203)上生成工作环境(209);并且
在建立步骤(175)中,在所述工作环境(209)中建立所述转换模块(303)。
19.根据前述权利要求中任一项所述的方法(100),其中,在所述网页服务器(203)上生成多个彼此分离的工作环境(209),其中,在每个工作环境(209)中能执行所述转换模块(303),并且其中,在每个工作环境(209)中能实施单独的编程项目。
20.根据前述权利要求中任一项所述的方法(100),其中,所述网页服务器(203)集成到所述自动化系统(200)的控制器(201)中。
21.根据前述权利要求中任一项所述的方法(100),其中,所述工作环境(209)还包括服务模块(211),并且其中,所述服务模块(211)设计用于执行在所述网页浏览器(206)中执行的输入模块(301)的计算耗费的过程。
22.一种自动化系统(200),其具有控制器(201)和与该控制器(201)连接的网页服务器(203),其中,所述网页服务器(203)能与客户端设备(205)和另一个客户端设备(201)连接,其中,在所述网页服务器(203)上安装有工作环境(209)和基于网页的开发环境(300),并且其中,所述自动化系统(200)设计用于执行根据前述权利要求1至21中任一项所述的方法(100)。
CN202180039726.4A 2020-06-05 2021-06-04 用于创建和执行用于控制自动化系统的控制程序的方法以及自动化系统 Pending CN115702413A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102020115028.8A DE102020115028A1 (de) 2020-06-05 2020-06-05 Verfahren zum Erstellen und Ausführen eines Steuerprogramms zum Steuern eines Automatisierungssystems und Automatisierungssystem
DE102020115028.8 2020-06-05
PCT/EP2021/065029 WO2021245247A1 (de) 2020-06-05 2021-06-04 Verfahren zum erstellen und ausführen eines steuerprogramms zum steuern eines automatisierungssystems und automatisierungssystem

Publications (1)

Publication Number Publication Date
CN115702413A true CN115702413A (zh) 2023-02-14

Family

ID=76355496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180039726.4A Pending CN115702413A (zh) 2020-06-05 2021-06-04 用于创建和执行用于控制自动化系统的控制程序的方法以及自动化系统

Country Status (5)

Country Link
US (1) US20230101320A1 (zh)
EP (1) EP4147121A1 (zh)
CN (1) CN115702413A (zh)
DE (1) DE102020115028A1 (zh)
WO (1) WO2021245247A1 (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8869097B2 (en) * 2011-03-23 2014-10-21 Infosys Limited Online integrated development environment with code assist
US9158518B2 (en) * 2013-03-11 2015-10-13 Blackberry Limited Collaborative application development environment using a connected device
US20200133651A1 (en) 2018-10-24 2020-04-30 CA Software Österreich GmbH Release automation service in software development tools

Also Published As

Publication number Publication date
EP4147121A1 (de) 2023-03-15
US20230101320A1 (en) 2023-03-30
WO2021245247A1 (de) 2021-12-09
DE102020115028A1 (de) 2021-12-09

Similar Documents

Publication Publication Date Title
CN102867010A (zh) 取出、存储以及供给设备定义文件信息的系统和方法
CN107341294B (zh) 基于Modelica语言的航天器信息系统建模仿真方法
EP1906275B1 (en) Natively retaining project documentation in a controller
JP5039428B2 (ja) プログラマブルコントローラ及びplcシステム
US7761765B2 (en) Automated root cause identification of logic controller failure
US20220066409A1 (en) Method and system for generating an artificial intelligence model
CN101763043A (zh) 用于自动化协同框架的方法和系统
CN113419484A (zh) 一种云可编程控制器及操作方法
CA3035599C (en) Systems and methods for discovering configurations of legacy control systems
CN112988165A (zh) 基于Kubernetes的交互式建模方法、装置、电子设备及存储介质
CN106933568B (zh) 一种组态软件系统及一种工业控制方法
WO2010022439A1 (en) Modelling of systems
CN106776231A (zh) 基于Git的Android崩溃日志优化方法及系统
CN104317602B (zh) 一种主机代码文件的开发方法及装置
US11775263B2 (en) Control code generation and collaboration using active machine learning
Kutscher et al. Towards a circular economy of industrial software
WO2005124571A1 (ja) データ相互アクセス方法およびデータ相互アクセスシステム
CN115702413A (zh) 用于创建和执行用于控制自动化系统的控制程序的方法以及自动化系统
CN104007972A (zh) 用于石油化工装置开停车操作的导航系统
CN103714035B (zh) 一种用于集成环境的多层软件总线结构
CN112286511A (zh) 配置工业自动化部件的方法及工业自动化部件
WO2022190417A1 (ja) 開発支援装置、開発支援方法および開発支援プログラム
CN110083362A (zh) 文件处理方法、系统、可读存储介质及设备
US12014172B2 (en) Presentation design dynamic generation from data model server
WO2022190418A1 (ja) 開発支援装置、開発支援方法および開発支援プログラム

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