An industrial control program development platform and method

By configuring platform resources in an integrated development environment and developing real-time and non-real-time control programs using multiple languages, the management chaos caused by multiple languages ​​and development environments in traditional industrial control systems is solved, and development quality and efficiency are improved.

CN115934062BActive Publication Date: 2026-05-01KYLAND TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
KYLAND TECH CO LTD
Filing Date
2022-12-26
Publication Date
2026-05-01

AI Technical Summary

Technical Problem

In traditional industrial control systems, the use of multiple languages ​​and development environments leads to chaotic project implementation and management, affecting development quality and efficiency.

Method used

An industrial control program development platform is provided, which configures platform resources through an integrated development environment (IDE), allows the development of real-time and non-real-time control programs using multiple languages, configures the runtime environment, and enables multi-language task scheduling and environment management.

Benefits of technology

It solves the problems caused by multiple languages ​​and multiple development environments, improves the quality and efficiency of industrial control program development, and simplifies the cross-language communication development process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115934062B_ABST
    Figure CN115934062B_ABST
Patent Text Reader

Abstract

The application provides an industrial control program development platform and method, which is used for developing industrial control programs in multiple languages through an IDE, and comprises the following modules: a platform resource configuration module, which is used for configuring platform resources through the IDE; a field control layer development module, which is used for developing real-time field control programs in at least one industrial control language through the IDE; an auxiliary control layer development module, which is used for developing non-real-time auxiliary control programs in at least one IT ecological language through the IDE; and a running environment configuration module, which is used for deploying running environments for the field control programs and the auxiliary control programs through the IDE. The application realizes the development of industrial control programs in multiple languages through an IDE and the deployment of environments, solves the potential confusion problem of multiple languages and multiple development environments for the engineering implementation management of industrial control systems, and improves the quality and efficiency of industrial control program development.
Need to check novelty before this filing date? Find Prior Art

Description

An industrial control program development platform and method Technical Field

[0001] This invention belongs to the field of industrial software, and in particular relates to an industrial control program development platform and method. Background Technology

[0002] Traditional industrial control systems consist of a field control layer comprised of several sensors, programmable logic controllers (PLCs), and industrial control computers (operator stations). In recent years, with technological advancements, particularly the introduction of artificial intelligence, optimization and decision-making systems, or machine vision systems based on visual sensing devices, have been gradually added beyond the control layer.

[0003] In industrial control systems, computational tasks such as edge computing, artificial intelligence, and visualization typically employ high-level programming languages ​​like C++, C#, Python, and JavaScript. These tasks usually run on a non-real-time system such as Linux or Windows. Traditional real-time automation control tasks, on the other hand, typically use languages ​​conforming to the IEC 61131-3 standard, including ST, LD, and FBD. These tasks usually run on a real-time operating system (RTOS). During the development phase, the development of these computational tasks and the implementation control tasks often utilize different integrated development environments (IDEs). When interactions between tasks are involved, communication methods and protocols must be planned in advance, and the interaction data must be defined according to the agreed-upon methods. Using multiple languages ​​and development environments in a single control system can create chaos in the overall engineering implementation and management of the industrial control system. Summary of the Invention

[0004] In view of this, embodiments of the present invention provide an industrial control program development platform and method. The platform includes: a platform resource configuration module for providing platform resource configuration and configuring platform resources related to industrial control through the IDE; a field control layer development module for developing real-time field control programs using at least one industrial control language through the IDE; an auxiliary control layer development module for developing non-real-time auxiliary control programs using at least one IT ecosystem language through the IDE; and a runtime environment configuration module for deploying runtime environments for the field control programs and the auxiliary control programs through the IDE. The method uses the platform to develop industrial control programs and deploy environments using multiple languages ​​through a single IDE. Embodiments of the present invention solve the potential confusion caused by multiple languages ​​and multiple development environments in the engineering implementation and management of industrial control systems, and improve the quality and efficiency of industrial control program development.

[0005] In a first aspect, embodiments of the present invention provide an industrial control program development platform for developing industrial control programs using multiple languages ​​through an IDE, comprising: a platform resource configuration module for providing platform resource configuration, configuring platform resources related to industrial control through the IDE, wherein the platform resource configuration provides at least one of the following functions: device and protocol configuration, common data structure configuration, wherein the device and protocol configuration is used for managing or mapping devices and protocols related to industrial control, and the common data structure configuration is used for defining communication models between programs in multiple languages; a field control layer development module for developing real-time field control programs using at least one industrial control language through the IDE; an auxiliary control layer development module for developing non-real-time auxiliary control programs using at least one IT ecosystem language through the IDE, wherein the auxiliary control programs are used for at least one of the following functions of industrial control: process monitoring, process optimization, and human-machine interface; and a runtime environment configuration module for deploying runtime environments for the field control programs and the auxiliary control programs through the IDE.

[0006] In summary, by using the aforementioned platform to configure platform resources in a single IDE, develop real-time field control programs and non-real-time auxiliary control programs using multiple languages, and configure the corresponding runtime environment for each program, the potential chaos brought about by multiple languages ​​and multiple development environments to the engineering implementation and management of industrial control systems is resolved, thereby improving the quality and efficiency of industrial control program development.

[0007] In one possible implementation of the first aspect, the common data structure configuration is further used to automatically generate code for different language data structures based on the defined communication model.

[0008] As described above, the platform integrates data formats and data types across different languages, making it easier for users to design communication models between multiple languages. After configuring common data structure groups, different language codes are automatically generated, simplifying the development process and reducing the difficulty of cross-language communication.

[0009] In one possible implementation of the first aspect, the device and protocol configuration is specifically used to define and deploy software-defined devices in a software manner, and to configure non-software-defined devices in a mapping manner.

[0010] Therefore, the above platform is used to configure the SDC and non-SDC devices involved in industrial control, thereby supporting the operation of various industrial control programs.

[0011] In one possible implementation of the first aspect, the platform resource configuration module also provides a multi-language task scheduling configuration function, which is used to perform real-time scheduling of tasks in the field control layer and non-real-time scheduling of tasks in the auxiliary control layer through the IDE, and to coordinate the scheduling between tasks in multiple languages.

[0012] Based on the above, the platform is used to implement the scheduling configuration of various language tasks in an IDE, and the platform scheduler controls and manages the scheduling of multi-language integrated collaborative tasks.

[0013] In one possible implementation of the first aspect, the industrial control language includes at least one of the following: ST, IL, FBD, LD, SFC, and CFC; the field control layer development module supports at least one of the following functions of the industrial control language: programming, compilation, monitoring, debugging, control, and diagnosis.

[0014] Based on the above, the above platform is used to develop field control programs in at least one language, such as ST, IL, FBD, LD, SFC, and CFC, and to realize the programming, compilation, monitoring, debugging, control, and diagnosis of the field control program.

[0015] In one possible implementation of the first aspect, the IT ecosystem language includes at least one of the following: C++, Python, HTML, and HMI interface configuration; the auxiliary control layer development module supports at least one of the following functions of the IT ecosystem language: editing, compiling, and debugging.

[0016] Based on the above, the platform is used to develop auxiliary control programs in at least one language, such as C++, Python, HTML, and HMI interface configuration, and to enable the editing, compilation, and debugging of such auxiliary control programs.

[0017] In one possible implementation of the first aspect, the runtime environment configuration module is also used for version switching, program upgrades, and start / stop control of the runtime environment it deploys.

[0018] Therefore, the platform is used to achieve version switching, program upgrades, start / stop control, and full lifecycle management of the configured runtime environment.

[0019] In one possible implementation of the first aspect, the auxiliary control layer development module is further configured to develop an extended function library for the field control program using the C++ language.

[0020] Based on the above, the platform is used to develop an extended function library for the field control program through the auxiliary control layer development module, thereby enhancing the real-time control function of the field.

[0021] In one possible implementation of the first aspect, the software-defined device includes a real-time system and a non-real-time system, the field control program runs on the real-time system, and the auxiliary control program runs on the non-real-time system; when defining the real-time system and the non-real-time system, the platform resource configuration module defines at least one of the following hardware for the real-time system and the non-real-time system respectively: number of CPU cores, memory, and interface.

[0022] Based on the above, the hardware resources of each SDC device are configured using the aforementioned platform, thereby supporting multiple SDC devices on a single set of hardware resources.

[0023] Secondly, embodiments of the present invention provide an industrial control program development method, which develops industrial control programs in an IDE using multiple languages ​​through the platform described in any embodiment of the first aspect, including: configuring platform resources related to industrial control through the IDE using the platform resource configuration module, wherein the platform resource configuration includes at least one of the following configurations: device and protocol configuration, common data structure configuration, wherein the device and protocol configuration is used for the management or mapping of industrial control-related devices and protocols, and the common data structure configuration is used for defining communication models between programs in multiple languages; developing real-time field control programs using at least one industrial control language through the IDE using the field control layer development module; developing non-real-time auxiliary control programs using at least one IT ecosystem language through the IDE using the auxiliary control layer development module, wherein the non-real-time auxiliary control programs are used for at least one of the following functions of industrial control: process monitoring, process optimization, and human-machine interface; and configuring the runtime environment for the field control programs and the auxiliary control programs through the IDE using the runtime environment configuration module.

[0024] In summary, by using the above method to configure platform resources in an IDE, develop real-time field control programs and non-real-time auxiliary control programs using multiple languages, and configure the corresponding operating environment for each program, the potential chaos brought about by multiple languages ​​and multiple development environments to the engineering implementation and management of industrial control systems is solved, and the quality and efficiency of industrial control program development are improved.

[0025] In one possible implementation of the second aspect, it further includes: using the common data structure configuration to automatically generate code for different language data structures according to the defined communication model.

[0026] As described above, the platform integrates data formats and data types across different languages, making it easier for users to design communication models between multiple languages. After configuring common data structure groups, different language codes are automatically generated, simplifying the development process and reducing the difficulty of cross-language communication.

[0027] In one possible implementation of the second aspect, the device and protocol configuration, when managing or mapping industrial control-related devices and protocols, includes: defining and deploying software-defined devices in a software manner, and configuring non-software-defined devices in a mapping manner.

[0028] Therefore, the above platform is used to configure the SDC and non-SDC devices involved in industrial control, thereby supporting the operation of various industrial control programs.

[0029] In one possible implementation of the second aspect, it further includes: using the multi-language task scheduling configuration function of the platform resource configuration module to perform real-time scheduling of tasks in the field control layer and non-real-time scheduling of tasks in the auxiliary control layer through the IDE, and coordinating the scheduling between tasks in multiple languages.

[0030] Based on the above, the platform is used to implement the scheduling configuration of various language tasks in an IDE, and the platform scheduler controls and manages the scheduling of multi-language integrated collaborative tasks.

[0031] In one possible implementation of the second aspect, the industrial control language includes at least one of the following: ST, IL, FBD, LD, SFC, and CFC; the field control layer development module supports at least one of the following functions of the industrial control language: programming, compilation, monitoring, debugging, control, and diagnosis.

[0032] Based on the above, the above platform is used to develop field control programs in at least one language, such as ST, IL, FBD, LD, SFC, and CFC, and to realize the programming, compilation, monitoring, debugging, control, and diagnosis of the field control program.

[0033] In one possible implementation of the second aspect, the IT ecosystem language includes at least one of the following: C++, Python, HTML, and HMI interface configuration; the auxiliary control layer development module supports at least one of the following functions of the IT ecosystem language: editing, compiling, and debugging.

[0034] Based on the above, the platform is used to develop auxiliary control programs in at least one language, such as C++, Python, HTML, and HMI interface configuration, and to enable the editing, compilation, and debugging of such auxiliary control programs.

[0035] In one possible implementation of the second aspect, it further includes: using the runtime environment configuration module to perform version switching, program upgrades, and start / stop control of the deployed runtime environment.

[0036] Therefore, the platform is used to achieve version switching, program upgrades, start / stop control, and full lifecycle management of the configured runtime environment.

[0037] In one possible implementation of the second aspect, it further includes: using the auxiliary control layer development module to develop an extended function library for the field control program using the C++ language.

[0038] Based on the above, the platform is used to develop an extended function library for the field control program through the auxiliary control layer development module, thereby enhancing the real-time control function of the field.

[0039] In one possible implementation of the second aspect, the software-defined device includes a real-time system and a non-real-time system, the field control program runs on the real-time system, and the auxiliary control program runs on the non-real-time system; when defining the real-time system and the non-real-time system, the platform resource configuration module defines at least one of the following hardware for the real-time system and the non-real-time system respectively: number of CPU cores, memory, and interface.

[0040] Based on the above, the hardware resources of each SDC device are configured using the aforementioned platform, thereby supporting multiple SDC devices on a single set of hardware resources.

[0041] Thirdly, embodiments of the present invention provide a computing device, including: a bus; a communication interface connected to the bus; at least one processor connected to the bus; and at least one memory connected to the bus and storing program instructions, which, when executed by the at least one processor, cause the at least one processor to perform the method described in any embodiment of the first aspect.

[0042] Fourthly, according to an embodiment of the present invention, a computer-readable storage medium is provided thereon storing program instructions that, when executed by a computer, cause the computer to perform the method described in any embodiment of the first aspect. Attached Figure Description

[0043] Figure 1 is a structural schematic diagram of an embodiment of an industrial control program development platform according to the present invention;

[0044] Figure 2 is a schematic diagram of the components provided in each module of an embodiment of the industrial control program development platform of the present invention;

[0045] Figure 3 is a schematic diagram of the components provided in each module of an embodiment 2 of the industrial control program development platform of the present invention;

[0046] Figure 4 is a flowchart illustrating an embodiment of an industrial control program development method according to the present invention.

[0047] Figure 5 is a schematic diagram of the components developed or configured for each step of an embodiment of the industrial control program development method of the present invention, taking steel smelting control and monitoring as an example.

[0048] Figure 6 is a schematic diagram of the structure of an embodiment of the computing device of the present invention. Detailed Implementation

[0049] In the following description, references are made to “some embodiments,” which describe a subset of all possible embodiments. However, it is understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.

[0050] In the following description, the terms “first, second, third, etc.” or module A, module B, module C, etc. are used only to distinguish similar objects or different embodiments and do not represent a specific ordering of objects. It is understood that a specific order or sequence may be interchanged where permitted so that the embodiments of the invention described herein can be implemented in an order other than that illustrated or described herein.

[0051] In the following description, the labels of the steps, such as S110, S120, etc., do not necessarily mean that the steps will be executed in this way. The order of the steps can be interchanged or executed simultaneously if permitted.

[0052] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention pertains. The terminology used herein is for the purpose of describing embodiments of the invention only and is not intended to limit the invention.

[0053] This invention provides an industrial control program development platform and method. The platform includes: a platform resource configuration module for configuring platform resources through an IDE; a field control layer development module for developing real-time field control programs using at least one industrial control language through the IDE; an auxiliary control layer development module for developing non-real-time auxiliary control programs using at least one IT ecosystem language through the IDE; and a runtime environment configuration module for deploying runtime environments for the field control programs and auxiliary control programs through the IDE. The method uses the platform to develop industrial control programs and deploy environments using multiple languages ​​through a single IDE. This invention addresses the potential confusion caused by multiple languages ​​and development environments in the engineering implementation and management of industrial control systems, improving the quality and efficiency of industrial control program development.

[0054] The embodiments of the present invention are described below with reference to the accompanying drawings.

[0055] The following section, in conjunction with Figures 1 and 2, introduces an embodiment of an industrial control program development platform.

[0056] An embodiment of an industrial control program development platform describes a single IDE that configures platform resources, develops real-time field control programs using at least one industrial control language, and develops non-real-time auxiliary control programs using at least one IT ecosystem language. It also configures the runtime environment for both the control and auxiliary control programs, thus enabling the development and deployment of industrial control programs using multiple languages ​​within a single IDE. This embodiment employs a unified configuration of variables and data structures across multiple languages ​​within a single project. It simultaneously creates tasks for both IT ecosystem language programs and industrial control programs within a single IDE, and develops and debugs both languages. This solves the potential confusion caused by multiple languages ​​and development environments in the engineering implementation and management of industrial control systems, improving the quality and efficiency of industrial control program development.

[0057] Figure 1 illustrates the structure of an industrial control program development platform according to a first embodiment, which includes: a platform resource configuration module 110, a field control layer development module 120, an auxiliary control layer development module 130, and a runtime environment configuration module 140. Each module runs in the IDE (hereinafter referred to as the platform IDE) of the industrial control program development platform. The developed industrial control program includes real-time field control programs and non-real-time auxiliary control programs. Figure 2 illustrates the components provided by each module of the industrial control program development platform according to a first embodiment, which includes: a platform resource configuration 210, a field control layer development environment 220, an auxiliary control layer development environment 230, and a runtime environment 240.

[0058] The platform resource configuration module 110 is used to configure the platform resources involved in industrial control, and provides platform resource configuration 210, including equipment and protocol configuration functions and common data structure configuration functions.

[0059] The device and protocol configuration is used to manage or map devices and protocols related to industrial control. Devices involved in industrial control include servers, controllers, remote I / O, I / O daughter cards, and host computers.

[0060] In some embodiments, the equipment involved in industrial control includes both software-defined devices (SDCs) and non-software-defined devices. Specifically, the device and protocol configuration is used to define and deploy software-defined devices via software. Software-defined devices are generally computing devices for industrial control, including CPU cores, memory, interfaces, etc. The device and protocol configuration defines and deploys the CPU cores, memory, and interfaces of the software-defined device within the operating system, enabling the operating system's application software to run on the software-defined device composed of the software-defined CPU cores, memory, and interfaces.

[0061] Device and protocol configuration is specifically used to configure non-software defined devices through mapping. Non-software defined devices are generally peripheral resources involved in industrial control, such as relays, sensors, Modbus slaves, etc. Device and protocol configuration maps non-software defined devices to I / O ports or virtual network ports, which can be accessed through I / O ports or virtual network ports.

[0062] The common data structure configuration is used to define communication models between programs in multiple languages. These communication models correspond to common variables and data structures across the various languages. In some embodiments, the common data structure configuration also automatically generates code for different language data structures based on the defined communication model. Specifically, the common data structure configuration provides a unified model configuration interface within the platform IDE, allowing for the definition of common data structures according to the communication model design across multiple languages, and automatically generating code for different language data structures. The platform resource configuration module 110 integrates data formats and data types across different languages, facilitating the design of multi-language communication models for users. After configuring the common data structure group, it automatically generates code for different languages, simplifying the cross-language communication development process and reducing its complexity.

[0063] The field control layer development module 120 is used to develop real-time field control programs using at least one industrial control language, and it provides a field control layer development environment 220.

[0064] Industrial control languages ​​include the development languages ​​in IEC 61131-3, including ST, IL, FBD, LD, SFC, and CFC languages.

[0065] The field control layer development environment 220, within the platform IDE, includes programming environments and compilers for various industrial control languages. Each industrial control language programming environment is used for programming in one of the development languages ​​specified in IEC 61131-3, and each industrial control language compiler supports compilation, monitoring, debugging, control, and diagnostic functions for one of the development languages ​​specified in IEC 61131-3. The field control layer development environment provides a superior industrial development experience.

[0066] The auxiliary control layer development module 130 is used to develop non-real-time auxiliary control programs using at least one IT ecosystem language. It provides an auxiliary control layer development environment 230.

[0067] The industrial application is used for at least one of the following: industrial control process monitoring, industrial control process optimization, and industrial control human-machine interface. Industrial control process monitoring includes at least one of the following monitoring methods: digital input monitoring, analog input monitoring, and visual monitoring. Industrial control process optimization includes at least one of the following: optimizing industrial control based on digital input analysis, analog input analysis, visual computation, and visual analysis.

[0068] The IT ecosystem languages ​​include C++, Python, HTML, and HMI interface languages.

[0069] The auxiliary control layer development environment 230, integrated within the platform IDE, includes programming environments and compilers for various IT ecosystem languages. Each IT ecosystem language programming environment supports programming in that language, and each IT ecosystem language compiler supports compilation and debugging in that language. The auxiliary control layer development environment 230 provides a one-stop solution for developing various auxiliary control programs, supporting editing, compilation, and debugging in each language, reducing tool switching during multi-language development, and improving project implementation efficiency.

[0070] The runtime environment configuration module 140 is used to configure the runtime environment 240 for each real-time field control program and non-real-time auxiliary control program, which solves the problem of large differences in deployment and configuration between different environments and simplifies the deployment of multi-language projects.

[0071] In summary, one embodiment of an industrial control program development platform includes a platform resource configuration module, a field control layer development module, an auxiliary control layer development module, and a runtime environment configuration module. Each module configures platform resources within an IDE, develops real-time field control programs using at least one industrial control language, develops non-real-time auxiliary control programs using at least one IT ecosystem language, and deploys runtime environments for both real-time and non-real-time field control programs. This enables the development of industrial control programs and environment deployment using multiple languages ​​through a single IDE, solving the potential chaos caused by multiple languages ​​and development environments in the engineering implementation and management of industrial control systems, and improving the quality and efficiency of industrial control program development.

[0072] Embodiment 2 of an industrial control program development platform is a detailed implementation of Embodiment 1 of an industrial control program development platform. It has all the advantages of Embodiment 1 of an industrial control program development platform. At the same time, its platform resource configuration module also defines task scheduling parameters to realize the scheduling of program tasks in multiple languages. The auxiliary control layer development environment also provides an extended function library for the field control layer development environment through C++ language to enhance real-time control functions.

[0073] Figure 1 also illustrates the structure of a second embodiment of an industrial control program development platform, whose modules are enhanced based on the modules of a first embodiment of an industrial control program development platform. Figure 3 shows the components provided by each module in the second embodiment of the industrial control program development platform, including platform resource configuration 310, field control layer development environment 320, auxiliary control layer development environment 330, and runtime environment 340, which are enhanced based on the platform resource configuration 210, field control layer development environment 220, auxiliary control layer development environment 230, and runtime environment 240 in Figure 2, respectively. The enhanced parts will be described below.

[0074] The platform resource configuration 310 also includes task scheduling parameter configuration, which includes task scheduling for real-time field control programs and non-real-time auxiliary control programs through the scheduler. Each task scheduling parameter includes at least one of the following: its operating environment category and scheduling cycle. The platform resource configuration module 110 provides a unified configuration interface for tasks in various languages ​​within an IDE, uniformly configuring task scheduling parameters, and cooperating with the platform scheduler to control and manage multi-language integrated collaborative task scheduling across the entire project.

[0075] In Platform Resource Configuration 310, when defining and deploying SDC devices, the device and protocol configuration includes industrial controllers, Real-Time Equipment (RTE), real-time systems, and non-real-time systems. Each real-time field control program runs on an industrial controller, each industrial controller carries an RTE, and each RTE runs on a real-time system. Platform Resource Configuration 310 defines the following hardware resources for each real-time system via software: number of CPU cores, memory, and interfaces. Each non-real-time auxiliary control program runs on a non-real-time system, and Platform Resource Configuration 310 defines the following hardware resources for each non-real-time system via software: CPU cores, memory, and interfaces.

[0076] The programming environment of the auxiliary control layer development environment 330, within an IDE, includes at least one of the following: a C++ programming environment, a Python programming environment, an HTML5 programming environment, or an HMI configuration programming environment. The compiler of the auxiliary control layer development environment 230, within an IDE, includes at least one of the following: a C++ compiler, a Python compiler, an HTML5 compiler, or an HMI compiler. The C++ programming environment also provides an extension function library for the field control layer development environment 320 to enhance real-time industrial control functions. Non-real-time auxiliary control programs developed by the auxiliary control layer development environment 330 include at least one of the following: C++ programs, Python programs, HTML5 programs, or HMI configuration programs.

[0077] The programming environment of the field control layer development environment 320, within an IDE, includes at least one of the following: SFC / CFC programming environment, FBD / LD programming environment, or ST / IL programming environment. The compiler of the field control layer development environment 320, within an IDE, includes at least one of the following: SFC / CFC compiler, FBD / LD compiler, or ST / IL compiler. The real-time field control program includes at least one of the following: SFC / CFC program, FBD / LD program, or ST / IL program. The code of each field control program may also include an extension function library provided by the auxiliary control layer development environment 330. Each compiler of the field control layer development environment 320 can also link the extension function library to the executable program of each real-time field control program.

[0078] In the runtime environment 340, the runtime environment configuration module 140 can also be used to realize functions such as version switching of the runtime environment of each field control program and each auxiliary control program, program upgrade, start and stop control, etc.

[0079] In summary, Embodiment 2 of an industrial control program development platform is a detailed implementation of Embodiment 1 of an industrial control program development platform. It has all the advantages of Embodiment 1 of an industrial control program development platform. At the same time, the platform resource configuration module also provides task scheduling configuration to realize the scheduling of program tasks in multiple languages. The auxiliary control layer development environment also provides an extended function library for the field control layer development environment through C++ language to enhance real-time control functions.

[0080] The following describes an embodiment of an industrial control program development method with reference to Figures 4 and 5.

[0081] An embodiment of an industrial control program development method uses an industrial control program development apparatus, as described in Embodiment Two, to develop industrial control programs using multiple languages. For example, an embodiment of an industrial control program development method is introduced using steel smelting control and monitoring as an example.

[0082] Figure 4 illustrates a flow chart of an embodiment of an industrial control program development method, including steps S410 to S440. Figure 5 shows the components developed or configured in each step of this embodiment, taking steel smelting control and monitoring as an example.

[0083] S410: The platform resource configuration module of Embodiment 2 of an industrial control program development device provides platform resource configuration and configures the platform resources involved in industrial control.

[0084] The platform resource configuration includes at least one of the following: device and protocol configuration, task scheduling configuration, and common data structure configuration.

[0085] For example, taking steel smelting control and monitoring as an example, the equipment and protocol configuration is based on the SDC device, and four virtual devices are defined as application carriers, including one real-time system RTOS and three non-real-time systems NTOS as shown in Figure 5; and each non-SDC device is mapped to the corresponding RTO or NTOS IO port or network port for easy access. For example, non-SDC devices include thermometers, barometers, relays, light sensors, cameras, Modbus slaves, etc.

[0086] For example, common data structure configurations define global data models, such as temperature data models and light field data models, and generate data definition code in LD, Python, C++, and JS languages.

[0087] For example, the task scheduling configuration sets the scheduling cycle for IEC programs, C++ programs, Python programs, and the scheduling cycle for each language program task.

[0088] S420: Utilize the field control layer development module to develop real-time field control programs using at least one industrial control language.

[0089] For example, continuing with the steel smelting control and monitoring, this step involves developing the field control layer, such as using FBD and LD languages ​​to develop mine motor control programs, melting temperature control programs, etc., which run on an RTOS to control the melting process in real time.

[0090] S430: Utilize the auxiliary control layer development module to develop non-real-time auxiliary control programs using at least one IT ecosystem language.

[0091] For example, continuing with the steel smelting control and monitoring example, this step involves developing non-real-time auxiliary control programs for the auxiliary control layer application. These include: a Python deep learning program for modeling and predicting the melting process; a C++ image processing program integrating an OpenCV camera; a Python / HTML monitoring program for large-screen monitoring; and an HMI monitoring program for implementing a human-machine interface. The Python deep learning program and the C++ image processing program run on the first NTOS, jointly optimizing the melting process. The Python / HTML monitoring program runs on the second NTOS, and the HMI monitoring program runs on the third NTOS. These programs work together to optimize and monitor the melting process.

[0092] S440: Utilizes the runtime environment configuration module to configure the runtime environment for real-time field control programs and non-real-time auxiliary control programs.

[0093] For example, continuing with the steel smelting control and monitoring example, this step involves deploying the runtime environment corresponding to the aforementioned developed applications. This includes deploying the RTE environment required for IEC program execution, deploying C++ program dependencies, and deploying Python versions and application dependencies. Upgrades and management of applications in different languages ​​are then performed through the application management page.

[0094] This invention also provides a computing device, which will be described in detail below with reference to Figure 6.

[0095] The computing device 600 includes a processor 610, a memory 620, a communication interface 630, and a bus 640.

[0096] It should be understood that the communication interface 630 in the computing device 600 shown in the figure can be used to communicate with other devices.

[0097] The processor 610 can be connected to the memory 620. The memory 620 can be used to store the program code and data. Therefore, the memory 620 can be a storage unit inside the processor 610, an external storage unit independent of the processor 610, or a component that includes both the storage unit inside the processor 610 and the external storage unit independent of the processor 610.

[0098] Optionally, the computing device 600 may also include a bus 640. The memory 620 and communication interface 630 can be connected to the processor 610 via the bus 640. The bus 640 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The bus 650 can be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, only one line is used in this figure, but this does not mean that there is only one bus or one type of bus.

[0099] It should be understood that in this embodiment of the invention, the processor 610 may be a central processing unit (CPU). The processor may also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or any conventional processor. Alternatively, the processor 610 may employ one or more integrated circuits to execute relevant programs to implement the technical solutions provided in this embodiment of the invention.

[0100] The memory 620 may include read-only memory and random access memory, and provides instructions and data to the processor 610. A portion of the processor 610 may also include non-volatile random access memory. For example, the processor 610 may also store device type information.

[0101] When the computing device 600 is running, the processor 610 executes the operation steps of the computer execution instruction execution method embodiment stored in the memory 620.

[0102] It should be understood that the computing device 600 according to the embodiments of the present invention can correspond to the corresponding subject in executing the methods according to the various embodiments of the present invention, and the above and other operations and / or functions of each module in the computing device 600 are respectively for implementing the corresponding processes of the methods of this embodiment. For the sake of brevity, they will not be described in detail here.

[0103] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementations should not be considered beyond the scope of this invention.

[0104] Those skilled in the art will understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0105] In the embodiments provided by this invention, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between devices or units may be electrical, mechanical, or other forms.

[0106] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0107] In addition, the functional units in the various embodiments of the present invention can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.

[0108] If the aforementioned functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this invention, or the part that contributes to the prior art, or a part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0109] This invention also provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, is used to perform the operation steps of the method embodiment.

[0110] The computer storage medium of this invention can be any combination of one or more computer-readable media. A computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium. For example, a computer-readable storage medium can be, but is not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples (a non-exhaustive list) of computer-readable storage media include electrical connections having one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. In this document, a computer-readable storage medium can be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.

[0111] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. Computer-readable signal media may also be any computer-readable medium other than computer-readable storage media, capable of sending, propagating, or transmitting programs for use by or in connection with an instruction execution system, apparatus, or device.

[0112] The program code contained on a computer-readable medium may be transmitted using any suitable medium, including, but not limited to, wireless, wire, optical fiber, RF, etc., or any suitable combination thereof.

[0113] Computer program code for performing the operations of this invention can be written in one or more programming languages ​​or a combination thereof, including object-oriented programming languages ​​such as Java, Smalltalk, and C++, as well as conventional procedural programming languages ​​such as "C" or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0114] Note that the above description is merely a preferred embodiment of the present invention and the technical principles employed. Those skilled in the art will understand that the present invention is not limited to the specific embodiments described herein, and various obvious changes, readjustments, and substitutions can be made without departing from the scope of protection of the present invention. Therefore, although the present invention has been described in detail through the above embodiments, the present invention is not limited to the above embodiments, and may include many other equivalent embodiments without departing from the concept of the present invention, all of which fall within the scope of protection of the present invention.

Claims

1. An industrial control program development platform, characterized in that, An IDE for developing industrial control programs using multiple languages ​​includes: a platform resource configuration module for providing platform resource configuration, configuring platform resources related to industrial control through the IDE, wherein the platform resource configuration includes at least one of the following configurations: device and protocol configuration, common data structure configuration, wherein the device and protocol configuration is used for managing or mapping industrial control-related devices and protocols, and the common data structure configuration is used for defining communication models between programs in multiple languages ​​and automatically generating code for different language data structures based on the defined communication models; a field control layer development module for developing real-time field control programs using at least one industrial control language through the IDE; an auxiliary control layer development module for developing non-real-time auxiliary control programs using at least one IT ecosystem language through the IDE, wherein the auxiliary control programs are used for at least one of the following industrial control functions: process monitoring, process optimization, and human-machine interface; and a runtime environment configuration module for deploying runtime environments for the field control programs and the auxiliary control programs through the IDE.

2. The platform according to claim 1, characterized in that, The device and protocol configuration is specifically used to define and deploy software-defined devices in a software manner, and to configure non-software-defined devices through mapping.

3. The platform according to claim 1, characterized in that, The platform resource configuration module also provides a multi-language task scheduling configuration function, which is used to perform real-time scheduling of tasks in the field control layer and non-real-time scheduling of tasks in the auxiliary control layer through the IDE, and to coordinate the scheduling between tasks in multiple languages.

4. The platform according to claim 1, characterized in that, The industrial control language includes at least one of the following: ST, IL, FBD, LD, SFC, and CFC; the field control layer development module supports at least one of the following functions of the industrial control language: programming, compilation, monitoring, debugging, control, and diagnosis.

5. The platform according to claim 1, characterized in that, The IT ecosystem language includes at least one of the following: C++, Python, HTML, and HMI interface configuration; the auxiliary control layer development module supports at least one of the following functions of the IT ecosystem language: editing, compiling, and debugging.

6. The platform according to claim 1, characterized in that, The runtime environment configuration module is also used for version switching, program upgrades, and start / stop control of the runtime environment it deploys.

7. The platform according to claim 5, characterized in that, The auxiliary control layer development module is also used to develop an extended function library for the field control program using the C++ language.

8. The platform according to claim 2, characterized in that, The software-defined device includes a real-time system and a non-real-time system. The field control program runs on the real-time system, and the auxiliary control program runs on the non-real-time system. When defining the real-time system and the non-real-time system, the platform resource configuration module defines at least one of the following hardware for each system: number of CPU cores, memory, and interface.

9. An industrial control program development method, characterized in that, Developing industrial control programs using multiple languages ​​in an IDE through the platform described in any one of claims 1 to 8 includes: configuring platform resources related to industrial control through the IDE using the platform resource configuration module, wherein the platform resource configuration includes at least one of the following configurations: device and protocol configuration, common data structure configuration, wherein the device and protocol configuration is used for the management or mapping of industrial control-related devices and protocols, and the common data structure configuration is used for defining communication models between programs in multiple languages ​​and automatically generating code for different language data structures based on the defined communication models; developing real-time field control programs using at least one industrial control language through the IDE using the field control layer development module; developing non-real-time auxiliary control programs using at least one IT ecosystem language through the IDE using the auxiliary control layer development module, wherein the non-real-time auxiliary control programs are used for at least one of the following functions of industrial control: process monitoring, process optimization, and human-machine interface; and configuring the operating environment for the field control programs and the auxiliary control programs through the IDE using the runtime environment configuration module.