CN115857883A - Industrial control software development method and device and computing equipment - Google Patents

Industrial control software development method and device and computing equipment Download PDF

Info

Publication number
CN115857883A
CN115857883A CN202211634978.4A CN202211634978A CN115857883A CN 115857883 A CN115857883 A CN 115857883A CN 202211634978 A CN202211634978 A CN 202211634978A CN 115857883 A CN115857883 A CN 115857883A
Authority
CN
China
Prior art keywords
subsystems
subsystem
interface
data
software
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
CN202211634978.4A
Other languages
Chinese (zh)
Inventor
周爱平
边浩
郭丽萍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyland Technology Co Ltd
Original Assignee
Kyland Technology Co Ltd
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 Kyland Technology Co Ltd filed Critical Kyland Technology Co Ltd
Priority to CN202211634978.4A priority Critical patent/CN115857883A/en
Publication of CN115857883A publication Critical patent/CN115857883A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

The embodiment of the application relates to the technical field of industrial control, in particular to an industrial control software development method, an industrial control software development device and computing equipment. The method comprises the following steps: a decomposition step, which is used for performing function decomposition on the software system to be developed to obtain at least two subsystems; a first configuration step, which is used for configuring interface information among subsystems according to a software protocol configured in a communication bus of an edge controller connected with the subsystems; and a second configuration step, which is used for establishing association between each subsystem and the corresponding hardware resource. According to the embodiment of the application, the communication bus of the edge controller connected with the subsystems is combined, interface information between the subsystems is configured, the subsystems are associated with hardware resources, unified I/O configuration management of a software system is established, all accessed I/O devices are managed according to the overall view angle of the system, interaction and butt joint among the subsystems are smooth, data formats can be unified, development management and control are facilitated, development efficiency is improved, and expandability and maintainability of the system are improved.

Description

Industrial control software development method and device and computing equipment
Technical Field
The invention relates to the technical field of software development, in particular to an industrial control software development method, an industrial control software development device and computing equipment.
Background
A conventional industrial automation system includes a field control layer composed of a plurality of sensors, a Programmable Logic Controller (PLC), and an industrial personal computer (operator station). In recent years, with the development of technology, especially the introduction of artificial intelligence technology, optimization and decision-making systems or machine vision systems based on vision sensing devices are gradually added outside a control layer. The convergence of multiple technologies makes control systems more and more complex. The use of separate development tools for each subsystem also creates confusion in the engineering implementation management of the overall industrial automation system. Subsystem developers cannot understand the entire industrial automation process from a global perspective of the system as a whole. If some link of some subsystem is changed and modified, the other related subsystems are abnormally connected. Meanwhile, field I/O information used by the calculation and analysis of each subsystem, such as data of a sensor, an actuator and a camera, is independently accessed and managed by each subsystem. Lack of uniform management of I/O information brings confusion to engineering implementation management, resulting in low development efficiency and poor expandability and maintainability of the system.
Disclosure of Invention
In view of the above problems in the prior art, embodiments of the present application provide a method, an apparatus, and a computing device for developing industrial control software, where, in combination with a communication bus of an edge controller connected to subsystems, interface information between the subsystems is configured, and the subsystems and hardware resources are associated to construct a unified I/O configuration management of a software system, and all accessed I/O devices are managed from a global view of the whole system, so that interaction and docking between the subsystems are smoother, a data format can be unified, development management and control are facilitated, development efficiency is improved, and expandability and maintainability of the system are improved.
To achieve the above object, a first aspect of the present application provides an industrial control software development method, including:
a decomposition step, which is used for carrying out function decomposition on the software system to be developed to obtain at least two subsystems;
a first configuration step, configured to configure interface information between the subsystems according to a software protocol configured in a communication bus connecting edge controllers of the subsystems;
and a second configuration step, which is used for establishing association between each subsystem and the corresponding hardware resource.
As a possible implementation manner of the first aspect, the method further includes:
and in the software development process, in the constructed integrated development environment of the multi-language hybrid programming, realizing the configuration of the first configuration step and the second configuration step through at least one programming language.
As a possible implementation manner of the first aspect, the first configuring step includes: constructing an event interface and a data interface of each subsystem based on the connection sequence and the data transmission relation of the event interfaces among the functional modules in each subsystem; the subsystem comprises at least one functional module, and the functional module is obtained by performing functional decomposition on a software system to be developed.
As a possible implementation manner of the first aspect, the method further includes: and performing control cooperation on the functional modules in the subsystems based on the event interfaces and the data interfaces of the subsystems, wherein the control cooperation comprises at least one of multi-device cooperation, multi-service cooperation and service internal function cooperation.
As a possible implementation manner of the first aspect, the multi-device cooperation includes:
and performing control cooperation on each hardware resource based on the event interface and the data interface of the subsystem and the hardware resource corresponding to each subsystem.
As a possible implementation manner of the first aspect, the multi-service collaboration includes:
and performing control cooperation on interaction among the services based on the event interface and the data interface of the subsystem used in different services respectively.
As a possible implementation manner of the first aspect, the service internal function coordination includes:
and performing control cooperation on the internal functions of the service based on the event interface and the data interface of the subsystem used in the service.
As a possible implementation manner of the first aspect, the first configuring step includes:
obtaining the data format of the transmission variable between the subsystems according to the message specification corresponding to the software protocol;
and configuring interface information among the subsystems in the software development process based on the data format of the transfer variables among the subsystems.
A second aspect of the present application provides an industrial control software development apparatus, including:
the decomposition unit is used for performing function decomposition on the software system to be developed to obtain at least two subsystems;
the first configuration unit is used for configuring interface information among the subsystems according to a software protocol configured in a communication bus of an edge controller connected with the subsystems;
and the second configuration unit is used for establishing association between each subsystem and the corresponding hardware resource.
As a possible implementation manner of the second aspect, the apparatus is further configured to:
and in the software development process, in the constructed integrated development environment of the multi-language hybrid programming, realizing the configuration of the first configuration step and the second configuration step through at least one programming language.
As a possible implementation manner of the second aspect, the first configuration unit is configured to: constructing an event interface and a data interface of each subsystem based on the connection sequence and the data transmission relation of the event interfaces among the functional modules in each subsystem; the subsystem comprises at least one functional module, and the functional module is obtained by performing functional decomposition on a software system to be developed.
As a possible implementation manner of the second aspect, the apparatus further includes a coordination unit, configured to: and performing control cooperation on the functional modules in the subsystems based on the event interfaces and the data interfaces of the subsystems, wherein the control cooperation comprises at least one of multi-device cooperation, multi-service cooperation and service internal function cooperation.
As a possible implementation manner of the second aspect, the multi-device cooperation includes:
and performing control cooperation on each hardware resource based on the event interface and the data interface of the subsystem and the hardware resource corresponding to each subsystem.
As a possible implementation manner of the second aspect, the multi-service cooperation includes:
and performing control cooperation on interaction among the services based on the event interfaces and the data interfaces of the subsystems used in different services respectively.
As a possible implementation manner of the second aspect, the service internal function coordination includes:
and performing control cooperation on the internal functions of the service based on the event interface and the data interface of the subsystem used in the service.
As a possible implementation manner of the second aspect, the first configuration unit is configured to:
obtaining the data format of the transmission variable between the subsystems according to the message specification corresponding to the software protocol;
and configuring interface information among the subsystems in the software development process based on the data format of the transfer variables among the subsystems.
A third aspect of the present application provides a computing device comprising:
a communication interface;
at least one processor coupled with the communication interface; and
at least one memory coupled to the processor and storing program instructions that, when executed by the at least one processor, cause the at least one processor to perform the method of any of the first aspects.
A fourth aspect of the present application provides a computer readable storage medium having stored thereon program instructions which, when executed by a computer, cause the computer to perform the method of any of the first aspects described above.
These and other aspects of the invention will be apparent from and elucidated with reference to the embodiment(s) described hereinafter.
Drawings
The various features and the connections between the various features of the present invention are further described below with reference to the attached figures. The figures are exemplary, some features are not shown to scale, and some of the figures may omit features that are conventional in the art to which the application relates and are not essential to the application, or show additional features that are not essential to the application, and the combination of features shown in the figures is not intended to limit the application. In addition, the same reference numerals are used throughout the specification to designate the same components. The specific drawings are illustrated as follows:
FIG. 1 is a schematic diagram of an embodiment of a method for developing industrial control software according to an embodiment of the present disclosure;
FIG. 2 is a schematic diagram of an embodiment of a method for developing industrial control software according to an embodiment of the present disclosure;
fig. 3 is a multitask collaboration diagram of an embodiment of an industrial control software development method according to an embodiment of the present application;
fig. 4 is a schematic diagram illustrating service internal function cooperation of an embodiment of an industrial control software development method according to an embodiment of the present application;
fig. 5 is a schematic diagram of multi-service collaboration according to an embodiment of an industrial control software development method provided in the embodiment of the present application;
FIG. 6 is a schematic application design diagram of an embodiment of an industrial control software development method according to an embodiment of the present application;
fig. 7 is a subsystem partition diagram of an embodiment of an industrial control software development method according to an embodiment of the present application;
fig. 8 is a schematic diagram of a hardware resource association of an embodiment of an industrial control software development method according to an embodiment of the present application;
FIG. 9 is a schematic diagram of an embodiment of an industrial control software development device according to an embodiment of the present disclosure;
FIG. 10 is a schematic diagram of an embodiment of an industrial control software development device according to an embodiment of the present disclosure;
fig. 11 is a schematic diagram of a computing device provided in an embodiment of the present application.
Detailed Description
The terms "first, second, third and the like" or "module a, module B, module C and the like in the description and in the claims, are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order, it being understood that specific orders or sequences may be interchanged where permissible to effect embodiments of the present application in other than those illustrated or described herein.
In the following description, reference numbers indicating steps, such as S110, S120 … …, etc., do not necessarily indicate that the steps are executed in this order, and the order of the preceding and following steps may be interchanged or executed simultaneously, if permitted.
The term "comprising" as used in the specification and claims should not be construed as being limited to the contents listed thereafter; it does not exclude other elements or steps. It should therefore be interpreted as specifying the presence of the stated features, integers, steps or components as referred to, but does not preclude the presence or addition of one or more other features, integers, steps or components, and groups thereof. Thus, the expression "an apparatus comprising the devices a and B" should not be limited to an apparatus consisting of only the components a and B.
Reference in the specification to "one embodiment" or "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. Thus, appearances of the phrases "in one embodiment" or "in an embodiment" in various places throughout this specification are not necessarily all referring to the same embodiment, but may. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments, as would be apparent to one of ordinary skill in the art from this disclosure.
Unless defined otherwise, 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 application belongs. In the case of inconsistency, the meaning described in the present specification or the meaning derived from the content described in the present specification shall control. In addition, the terminology used herein is for the purpose of describing embodiments of the present application only and is not intended to be limiting of the present application. To accurately describe the technical contents in the present application and to accurately understand the present invention, the terms used in the present specification are explained or defined as follows before the description of the specific embodiments:
1) PLC (Programmable Logic Controller): programmable logic controllers are digital arithmetic-operating electronic systems designed specifically for use in industrial environments. It uses a programmable memory, in which the instructions for implementing logical operation, sequence control, timing, counting and arithmetic operation are stored, and utilizes digital or analog input and output to control various mechanical equipments or production processes. Specifically, the plc is a digital operation controller for automation control having a microprocessor, and can load control instructions into a memory at any time for storage and execution. The programmable controller is composed of a Central Processing Unit (CPU), an instruction and data memory, an input/output interface, a power supply, a digital-to-analog converter, and other functional units. When the programmable logic controller is put into operation, the working process of the programmable logic controller is generally divided into three stages, namely, three stages of input sampling, user program execution and output refreshing. The completion of the above three phases is referred to as one scanning cycle. During the whole operation period, the CPU of the programmable logic controller repeatedly executes the three phases at a certain scanning speed.
2) An edge controller: an edge controller is a physical interface between IT (Information Technology) and OT (Operational Technology). On the basis of finishing the control function of a workstation or a production line, the interface capability and the computing capability of the industrial equipment are improved, and the applicability of the industrial equipment is improved.
3) IEC 61131-3: is part 3 of the IEC61131 standard, which was established by the International Electrotechnical Commission (IEC) in 12.1993, for standardizing a programming system of a Programmable Logic Controller (PLC), and the application of the IEC61131-3 standard has become a trend in the field of industrial control. In PLC aspect, the editing software only needs to accord with IEC61131-3 international standard specification, and can establish a program which can be understood by anyone by means of a language architecture which accords with each standard.
4) IEC 61499: is a standard for distributed industrial process measurement and control system function blocks.
5) HMI (Human Machine Interface ): the man-machine interface is an interface of input/output equipment for establishing contact and exchanging information between a person and a computer. These devices include keyboards, displays, printers, mice, etc.
6) Hypervisor (virtual machine monitor): an intermediate software layer running between the underlying physical server and the operating system may allow multiple operating systems and applications to share hardware.
The prior art method is described first, and then the technical solution of the present application is described in detail.
A conventional industrial automation system includes a field control layer composed of a plurality of sensors, a Programmable Logic Controller (PLC), and an industrial personal computer (operator station). In recent years, with the development of technology, especially the introduction of artificial intelligence technology, optimization and decision-making systems or machine vision systems based on vision sensing devices are gradually added outside a control layer. The convergence of multiple technologies makes control systems more and more complex. The use of separate development tools for each subsystem also creates confusion in the engineering implementation management of the overall industrial automation system. Subsystem developers cannot understand the entire industrial automation process from a global perspective of the system as a whole. If some link of some subsystem is changed and modified, the other related subsystems are abnormally connected.
Meanwhile, field I/O information used by calculation and analysis of each subsystem, such as data of sensors, actuators and cameras, is independently accessed and managed by each subsystem, and a unified development platform is lacked for managing and configuring all field I/O information of the whole industrial automation system. The lack of uniform management of the I/O information brings confusion to engineering implementation management, which results in low development efficiency and poor system expandability and maintainability.
The design concept of bottom-up gradually developed and designed based on the bottom layer is no longer suitable for the requirement of modern industrial control.
The prior art has the following defects: the data is lack of unified management, the development efficiency is low, and the expandability and maintainability of the system are poor.
Based on the technical problems in the prior art, the application provides an industrial control software development method, an industrial control software development device and a computing device, wherein interface information between subsystems is configured and the subsystems and hardware resources are associated by combining a communication bus of an edge controller connected with the subsystems, so that unified I/O configuration management of a software system is constructed, and functions of the subsystems are specifically programmed and developed according to the uniformly configured interface information. The method manages all accessed I/O devices with the overall view angle of the system, so that the interaction and the butt joint among subsystems are smoother, the data format can be unified, the development management and control are facilitated, the development efficiency is improved, and the expandability and the maintainability of the system are improved, thereby solving the technical problems that the data in the prior art is lack of unified management, the development efficiency is low, and the expandability and the maintainability of the system are poor.
Fig. 1 is a schematic diagram of an embodiment of an industrial control software development method provided in an embodiment of the present application. As shown in fig. 1, the method may include:
s10, a decomposition step, namely performing function decomposition on the software system to be developed to obtain at least two subsystems;
step S20, a first configuration step, which is used for configuring interface information among the subsystems according to a software protocol configured in a communication bus of an edge controller connected with the subsystems;
step S30, a second configuration step, configured to establish a relationship between each subsystem and a corresponding hardware resource.
By applying the industrial control software development method provided by the embodiment of the application, a brand-new industrial control development platform can be constructed. The platform can provide an engineer with an overall system view, manage I/O devices accessed by all subsystems according to the overall system view, place each subsystem task into a large system view for consideration, and complete the development process of each subsystem task on a development platform.
Specifically, the software development method provided by the embodiment of the application can construct a top-down development process of a system view. In step S10, a process function is decomposed on the system level directly facing to the process result of the overall control system, and the software system to be developed is split into a plurality of subsystems. In step S20, according to the plurality of subsystems obtained by the functional decomposition, a communication bus connecting the edge controllers of the subsystems in the system configuration is obtained, and a message specification corresponding to a software protocol configured in the communication bus is obtained. In one example, the software protocol configured in the distributed soft bus may be a Modbus protocol or a Socket protocol. And obtaining the data format of the transmission variable among the subsystems according to the message specification corresponding to the software protocol. And configuring interface information among subsystems in the software development process based on the data format of the transfer variables.
In step S30, each of the subsystems is associated with a corresponding hardware resource. In one embodiment, the hardware resource comprises a PLC device; the establishing association between each subsystem and the corresponding hardware resource comprises: and distributing each subsystem to the corresponding PLC equipment. After the subsystem and the hardware resources are associated, the hardware resources can be uniformly managed from the top to the bottom from the global perspective, development management and control are facilitated, and development efficiency is improved.
In yet another example, the hardware resources may further include other hardware devices such as a Programmable Automation Controller (PAC), an edge programmable industrial controller (edge controller for short), and a microcontroller (single chip microcomputer). The allocation condition of the hardware device may be determined according to the actual requirement of the system, and the embodiment of the present application is not limited.
According to the embodiment of the application, the communication bus of the edge controller connected with the subsystems is combined, interface information between the subsystems is configured, the subsystems are associated with hardware resources, unified I/O configuration management of a software system is established, all accessed I/O devices are managed according to the overall view angle of the system, interaction and butt joint among the subsystems are smooth, data formats can be unified, development management and control are facilitated, development efficiency is improved, and expandability and maintainability of the system are improved.
In one embodiment, the first configuring step comprises:
obtaining the data format of the transmission variable between the subsystems according to the message specification corresponding to the software protocol;
and configuring interface information among the subsystems in the software development process based on the data format of the transmission variables among the subsystems.
Referring to fig. 2, the decomposing step and the first configuring step may specifically include the following processes:
step S110, acquiring a software protocol configured in a communication bus of an edge controller connected with at least two subsystems obtained by performing function decomposition on a software system to be developed;
step S120, obtaining the data format of the transmission variable between the subsystems according to the message specification corresponding to the software protocol;
step S130, configuring interface information between the subsystems in the software development process based on the data format of the transfer variables between the subsystems.
Data interactions between subsystems include interactions between data variable points. The interaction between the data variable points can be through a Modbus protocol or a Socket protocol. In step S110, according to the plurality of subsystems obtained by the functional decomposition, a communication bus connecting the edge controllers of the subsystems in the system configuration is obtained, and a software protocol configured in the communication bus is obtained. For example, the software protocol configured in the bus may be obtained in conjunction with the distributed soft bus of the edge controller. The distributed soft bus connects all distributed devices together through a network, and a logic path of device discovery and data transmission is realized. In one example, the software protocol configured in the distributed soft bus may be a Modbus protocol or a Socket protocol.
The distributed soft bus module can provide communication capability among the devices and provides a discovery and transmission interface aiming at various bottom-layer communication protocols and different bottom-layer kernel devices. In step S120, a data format of a transfer variable between subsystems is obtained according to the message specification corresponding to the software protocol acquired in step S110. According to the message specification of the software protocol for mutual communication among the subsystems, the data format of the transmission variable among the subsystems is reasonably configured, so that the interaction and butt joint among the subsystems can be smoother.
In step S130, interface information between the subsystems is configured in the software development process based on the data format of the transfer variables between the subsystems obtained in step S120. In the above steps, interface information between subsystem applications of each link is globally defined by the whole system, and a mapping and configuration interface is automatically established between a transfer variable between the subsystem applications and a soft bus of each subsystem by combining a distributed soft bus technology of a software definition control edge controller.
In one example, the message format of the Modbus protocol over the serial link is as follows:
frame structure = slave address + function code + data + check
1) Slave address: each slave has a unique address, occupying one byte, in the range 0-255. Where the valid range is 1-247, where 255 is the broadcast address.
2) Function code: occupying one byte. Different function codes correspond to different functions. For example, the data of the slave can be inquired, and the data of the slave can be modified.
3) Data: the data corresponding to different function codes are different. For example, if the function code is data for inquiring the slave, the corresponding data is the address of the inquired data, the number of inquired bytes, and the like.
4) Checking: errors may occur in data transmission, and whether the received data is correct can be detected through checking.
And according to the message format of the Modbus protocol, the data format of the transmission variables among the subsystems can be configured. And configuring interface information among the subsystems in the software development process based on the data format of the transfer variables among the subsystems. If the subsystems are interacted through the Modbus protocol, the transmission variable and the interface information correspondingly comprise slave addresses, function codes and corresponding data.
In yet another example, the Modbus protocol may select an RTU (Remote Terminal Unit) or ASCII (American Standard Code for Information exchange) mode when using serial port transmission, and specify the message, data structure, command and reply modes and require verification of the data. The ASCII mode uses LRC (Longitudinal Redundancy Check) and the RTU mode uses 16-bit CRC (Cyclic Redundancy Check). TCP (Transmission Control Protocol) is used for Transmission over ethernet, and this mode does not use a check because TCP is a reliable connection-oriented Protocol.
For example, if a number 10 needs to be transmitted, then in RTU mode only 0x0A needs to be transmitted; the data transmission form on the bus is as follows: 0000 1010. In ASCII code mode, then to convert data 1 and 0 to "1" and "0", two bytes of data 0x31 (1) 0x30 (0) need to be sent. The data transmission form on the bus is as follows: 00110001 0011 0000. Similarly, according to the message specification of the Modbus protocol, the data format of the transmission variable between the subsystems can be configured. And configuring interface information among the subsystems in the software development process based on the data format of the transfer variables among the subsystems.
In one embodiment, the first configuring step comprises: constructing event interfaces and data interfaces of the subsystems based on the connection sequence and data transmission relation of the event interfaces among the functional modules in the subsystems; the subsystem comprises at least one functional module, and the functional module is obtained by performing functional decomposition on a software system to be developed. The event interface comprises an event input interface and an event output interface; the data interface comprises a data input interface and a data output interface.
Step S130 in fig. 2, configuring interface information between the subsystems in a software development process based on a data format of a transfer variable between the subsystems, including:
constructing a functional model of the subsystems based on a data format of a transfer variable between the subsystems; the functional model includes at least one of an event input interface, an event output interface, a data input interface, and a data output interface.
In one example, the event flow and data transfer relationships designed for a subsystem may be obtained during software system development. For example, when a software system is designed, the connection lines in the software design drawing can be used to represent the event flow and data transmission relationship between the subsystems. Connecting lines in the software design drawing can be identified, and the event flow and data transmission relation among the subsystems is obtained. And then, according to the event flow and the data transmission relation, an event input interface, an event output interface, a data input interface and a data output interface of the subsystem are constructed.
In one embodiment, the building a functional model of the subsystems based on a data format of a transfer variable between the subsystems comprises:
constructing an event input interface and an event output interface of each subsystem based on the sequence of event interface connection among the functional modules in the subsystems;
the subsystem comprises at least one functional module, and the functional module is obtained by performing functional decomposition on a software system to be developed.
In the embodiment of the application, the software system to be developed is subjected to function decomposition, the software system to be developed is split into a plurality of subsystems, and the subsystems are split into a plurality of functional modules. As shown in fig. 3, the subsystems in the software system to be developed include a sub-application A1, a sub-application A2, and a sub-application A3. "FBD" in fig. 3 denotes a functional block. Sub-application A1 decomposes into FBD1, FBD2 and FBD 3; sub-application A2 decomposes into FBD4 and FBD 2; sub-application A3 decomposes into FBD1, FBD4 and FBD 5. As shown in fig. 4, in the software design diagram, the subsystems and the functional modules include two parts, namely event control and algorithm operation. The connecting line at the two ends of the event control part represents an event flow and comprises an event input interface and an event output interface. The connecting lines at the two ends of the arithmetic operation part represent a data input interface and a data output interface. Referring again to fig. 3, the connections across each sub-application and FBD represent, respectively, the event input interface and the event output interface, the data input interface and the data output interface between the sub-applications and between the FBDs.
Referring to fig. 3, in the software system development process, the connecting lines in the software design drawing can be identified, and the sequence of event interface connections between the functional modules in each subsystem is obtained. And then constructing an event input interface and an event output interface of the subsystem according to the sequence of the event interface connection among the functional modules.
In one embodiment, the building a functional model of the subsystems based on a data format of a transfer variable between the subsystems comprises:
constructing a data input interface and a data output interface of each subsystem based on the data transmission relationship among the functional modules in each subsystem;
the subsystem comprises at least one functional module, and the functional module is obtained by performing functional decomposition on a software system to be developed.
Similarly, referring to fig. 3 and 4, in the process of developing the software system, the connection lines in the software design drawing can be identified, and the data transmission relationship between the functional modules in each subsystem is obtained. And then constructing a data input interface and a data output interface of the subsystems according to the data transmission relationship among the functional modules in each subsystem.
By adopting the industrial control software development method provided by the embodiment of the application, the I/O configuration management of a unified industrial control system can be constructed. The external I/O of the control system is uniformly defined, and the I/O of real-time traditional control tasks such as a servo driver, a frequency converter, a sensor and an I/O module and the I/O of AI (Artificial Intelligence) calculation tasks such as a radar, a camera and a camera are used as uniform I/O to carry out access system configuration management. And then further mapping and calling are carried out by specific application development.
In one example, a top-down development flow from the system perspective is built, which can be combined with the graphical programming language of IEC61131-3 and the IEC61499 standard to build a development flow from the system to the subsystem. Interface information among subsystem applications of each link is globally defined by the whole system. And automatically establishing mapping and configuration interfaces between the transfer variables between the subsystem applications and the soft buses of each subsystem by combining the distributed soft bus technology of the edge controller. And then, performing relevant definition and allocation of hardware resources on each subsystem application, configuring I/O (input/output) adopted by the subsystem application, and performing specific programming development on functions of each subsystem application.
In one embodiment, the method further comprises:
and in the software development process, in the constructed integrated development environment of the multi-language hybrid programming, realizing the configuration of the first configuration step and the second configuration step through at least one programming language.
In another example, an Integrated Development Environment (IDE) with multi-language hybrid programming may be built. In an industrial control system, high-level language programming, such as C + +, C #, python, JS, etc., is usually used for computing tasks, such as edge computing, artificial intelligence, visualization, etc. These compute-like tasks are typically run on a non-real-time system, such as Linux. Conventional automated real-time control tasks typically employ the IEC61131-3 standard languages, including ST, LD, FBD, SFC, CFC, IL, etc., and the IEC61499 programming language. Typically, real-time control tasks will run on a real-time system (RTOS). The development of these computing tasks and the development of control tasks usually adopt different Integrated Development Environments (IDEs), and when the interaction between tasks is involved, the communication mode and protocol are usually planned in advance, and then the interaction data is defined according to the agreed mode. A unified IDE is considered to be adopted, so that high-level language programming and IEC61131-3 standard language programming can be simultaneously supported, and data needing interaction among different tasks can be automatically defined and automatically matched based on design of industrial process results.
In a second configuration step, each of the subsystems is associated with a corresponding hardware resource. Referring to the example of FIG. 3, sub-application A1 is allocated to device PLC2, sub-application A2 is allocated to device PLC3, and sub-application A3 is allocated to device PLC4.
In one embodiment, the method further comprises: and adding a communication function block for each PLC device, wherein the communication function block is used for transmitting events and data between the PLC devices.
Referring to the example of fig. 3, in the PLC2, PLC3, and PLC4 devices, communication function blocks are respectively added corresponding to both ends of the sub application A1, the sub application A2, and the sub application A3, for implementing input and output of events and data between the PLC devices.
In one embodiment, the method further comprises: and performing control cooperation on the functional modules in the subsystems based on the event interfaces and the data interfaces of the subsystems, wherein the control cooperation comprises at least one of multi-device cooperation, multi-service cooperation and service internal function cooperation.
In the embodiment of the application, in the stage that the global view realizes the control task according to the configuration of the functional blocks, the global service logic is focused on, and the specific PLC or system on which the functional blocks operate is not focused on temporarily. And after the function block is realized, the generated function block network diagram is appointed to be deployed to different PLC control systems. The advantage of this design approach is that it naturally well supports a unified orchestration global coordination capability. The control cooperation of each function block comprises multi-device cooperation, multi-service cooperation and service internal function cooperation. In use, the above several types of collaboration are defined as a unified functional model. The function model provides an event input interface, an event output interface, a data input interface and a data output interface for the outside. And the unified scheduling is realized by controlling the model event interface. The above categories of synergy are detailed below:
1) And (4) coordinating multiple devices.
In one embodiment, the multi-device collaboration comprises:
and performing control cooperation on each hardware resource based on the event interface and the data interface of the subsystem and the hardware resource corresponding to each subsystem.
The cooperation of multiple devices is represented as large application program arrangement across the PLC on the control system, and the service can be realized according to the configuration of the functional blocks in the global view. In the software design process, firstly, according to the process requirement, a large-scale application program is configured by using a function block programming configuration. And then the application program is divided into different sub-applications according to the conditions of the calculated amount and the I/O number, and the sub-applications are redistributed to each PLC device. Such a distribution of applications across the PLC throughout the control network is illustrated in fig. 3.
For example, application a represents a certain service. When the configuration programming is performed, a plurality of function blocks are firstly used for arrangement from the function angle, and the logic of the whole application program A is completed. And then dividing the application program into three sub-applications according to the calculated amount and the I/O condition, and distributing the three sub-applications to different PLC devices. When the sub-application is allocated to the PLC device, the communication function block needs to be used to transmit events and data between the three PLC devices. The communication function block inside each PLC device corresponds to "input" or "output" of each PLC in the application program flow.
Referring to the wiring in the software layout shown in fig. 3, in this example, first, the PLC2 performs the operation of the sub-application A1 in accordance with the initial value supplied from the communication function block, and transmits the operation results to the PLC3 and the PLC4, respectively. The PLC3 executes the operation of the sub application A2 according to the PLC2 network variable value received by the communication function block, and transmits the operation result to the PLC4. The PLC4 executes the operation of the sub application A3 according to the PLC3 network variable value received by the communication function block, and transmits the operation result to the PLC2. And according to the sequence of the event interface connection, the execution of the application is resumed.
2) Multi-service collaboration
In one embodiment, the multi-service collaboration comprises:
and performing control cooperation on interaction among the services based on the event interface and the data interface of the subsystem used in different services respectively.
Referring to fig. 5, multi-service coordination is embodied in the control system as scheduling among sub-applications of different services. Some of the more general actions may be abstracted into functional blocks. These functional blocks can be used in different services, coordinated through event and data interfaces. In fig. 5 application a and application B use the same functional blocks FBD1 and FBD4. Only event collaboration exists between A and B, and no data collaboration exists.
The sub-application created using the function block can be used as an integral unit, in which case the sub-application externally provides an event input, an event output, a data input and a data output interface. Other applications may multiplex sub-applications, collaborating through event and data interfaces.
In yet another example of application design, as shown in fig. 6, an application program is composed of three functional blocks, FBD1, FBD2, FBD 3. When the application is used as a whole, the interface includes an event input, an event output, data input 1, data input 2, and data output. The application program can be used only by connecting the interfaces.
3) Business internal function collaboration
In one embodiment, the service internal function coordination comprises:
and performing control cooperation on the internal functions of the service based on the event interface and the data interface of the subsystem used in the service.
An application is a control logic that is composed based on functional blocks, which are the smallest unit of software that implements a function.
The PLC control function is realized by combining and scheduling application programs designed in the PLC control function. Furthermore, the functions of the application program are completed by the combination and scheduling of the basic functional blocks. The application program is equivalent to a composite function block, and is defined as the same function model as the basic function block. The composition of each functional model includes a proprietary data structure and associated operations determined by its type. The functional model defines a series of input parameters, when the model is executed, an internal algorithm reads and operates the parameters, and finally, an operation result is written on the output of the model, so that the basic function scheduling is completed.
Referring to fig. 4, basic function blocks are composed of event inputs and outputs, data inputs and outputs, event control, arithmetic operations, and internal data.
As shown in fig. 7, the whole process of a workstation for detecting a surface of a bezel on a mobile phone assembly line includes: the HMI of the workstation is used for displaying the working state of the workstation; controlling the issuing of a start-stop instruction of the workstation; controlling the conveyor belt; controlling a mechanical arm for feeding and discharging; and the machine vision processing analysis for detection and the motion control of the vision detection table. When the industrial control development platform with system-level top-down programming is adopted for development, firstly, system-level process division is performed, referring to fig. 7, and the whole system is divided into five subsystems: HMI, machine vision, overall cooperative control, mechanical arm control and vision inspection table motion control.
As shown in fig. 8, in combination with the edge controller technology of software defined control, the above five subsystems are defined and allocated in association with each other on the industrial control development platform programmed from top to bottom at the system level. The machine vision and HMI, the integral cooperative control application, the mechanical arm control application and the vision detection table motion control application are respectively distributed to a PLC (programmable logic controller) and an RTE (Runtime environment), and respectively run on a Non RTOS (remote terminal operating system), an RTOS0, an RTOS1 and an RTOS2 of a real-time system. Each subsystem is connected with the edge controller through a soft bus and a Hypervisor. The robotic arm control application and the vision inspection station motion control application interface with external I/O and drivers.
As shown in fig. 9, the present application further provides an embodiment of a corresponding industrial control software development device. For the beneficial effects or the technical problems to be solved by the apparatus, reference may be made to the description of the method corresponding to each apparatus, or to the description in the summary of the invention, which is not repeated herein.
In an embodiment of the industrial control software development device, the device comprises:
the system comprises a decomposition unit 100, a software development unit and a software development unit, wherein the decomposition unit is used for performing function decomposition on a software system to be developed to obtain at least two subsystems;
a first configuration unit 200, configured to configure interface information between the subsystems according to a software protocol configured in a communication bus connecting edge controllers of the subsystems;
a second configuration unit 300, configured to associate each of the subsystems with a corresponding hardware resource.
In one embodiment, the apparatus is further configured to:
and in the software development process, in the constructed integrated development environment of the multi-language hybrid programming, realizing the configuration of the first configuration step and the second configuration step through at least one programming language.
In one embodiment, the first configuration unit 200 is configured to: constructing an event interface and a data interface of each subsystem based on the connection sequence and the data transmission relation of the event interfaces among the functional modules in each subsystem; the subsystem comprises at least one functional module, and the functional module is obtained by performing functional decomposition on a software system to be developed.
As shown in fig. 10, in an embodiment, the apparatus further comprises a coordination unit 400, the coordination unit 400 being configured to: and performing control cooperation on the functional modules in the subsystems based on the event interfaces and the data interfaces of the subsystems, wherein the control cooperation comprises at least one of multi-device cooperation, multi-service cooperation and service internal function cooperation.
In one embodiment, the multi-device collaboration comprises:
and performing control cooperation on each hardware resource based on the event interface and the data interface of the subsystem and the hardware resource corresponding to each subsystem.
In one embodiment, the multi-service collaboration comprises:
and performing control cooperation on interaction among the services based on the event interface and the data interface of the subsystem used in different services respectively.
In one embodiment, the service internal function coordination comprises:
and performing control cooperation on the internal functions of the service based on the event interface and the data interface of the subsystem used in the service.
In one embodiment, the first configuration unit 200 is configured to:
obtaining a data format of a transmission variable between the subsystems according to a message specification corresponding to the software protocol;
and configuring interface information among the subsystems in the software development process based on the data format of the transmission variables among the subsystems.
Fig. 11 is a schematic structural diagram of a computing device 900 according to an embodiment of the present disclosure. The computing device 900 includes: a processor 910, a memory 920, and a communication interface 930.
It is to be appreciated that the communication interface 930 in the computing device 900 shown in FIG. 11 may be used to communicate with other devices.
The processor 910 may be coupled to the memory 920. The memory 920 may be used to store the program codes and data. Therefore, the memory 920 may be a storage unit inside the processor 910, an external storage unit independent of the processor 910, or a component including a storage unit inside the processor 910 and an external storage unit independent of the processor 910.
Optionally, computing device 900 may also include a bus. The memory 920 and the communication interface 930 may be connected to the processor 910 through a bus. The bus may be a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus, or the like. The bus may be divided into an address bus, a data bus, a control bus, etc.
It should be understood that, in the embodiment of the present application, the processor 910 may employ 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. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like. Or the processor 910 may employ one or more integrated circuits for executing related programs to implement the technical solutions provided in the embodiments of the present application.
The memory 920 may include a read-only memory and a random access memory, and provides instructions and data to the processor 910. A portion of the processor 910 may also include non-volatile random access memory. For example, the processor 910 may also store device type information.
When the computing device 900 is running, the processor 910 executes the computer-executable instructions in the memory 920 to perform the operational steps of the above-described method.
It should be understood that the computing device 900 according to the embodiment of the present application may correspond to a corresponding main body executing a method according to each embodiment of the present application, and the above and other operations and/or functions of each module in the computing device 900 are respectively for implementing a corresponding flow of each method of the embodiment, and are not described herein again for brevity.
Those of ordinary skill in the art will appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the implementation. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
It is clear to those skilled in the art that, for convenience and brevity of description, the specific working processes of the above-described systems, apparatuses and units may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
In the several embodiments provided in the present application, it should be understood that the disclosed system, apparatus and method may be implemented in other ways. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one position, or may be distributed on multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit.
The functions, if implemented in the form of software functional units and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present application or portions thereof that substantially contribute to the prior art may be embodied in the form of a software product stored in a storage medium and including instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present application. And the aforementioned storage medium includes: a U-disk, a removable hard disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a magnetic disk, an optical disk, or other various media capable of storing program codes.
Embodiments of the present application further provide a computer-readable storage medium, on which a computer program is stored, where the computer program is used to execute a diversification problem generation method, where the method includes at least one of the solutions described in the above embodiments.
The computer storage media of the embodiments of the present application may take any combination of one or more computer-readable media. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present application may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, smalltalk, C + +, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider).
It should be noted that the foregoing is only illustrative of the preferred embodiments of the present application and the technical principles employed. It will be understood by those skilled in the art that the present invention is not limited to the particular embodiments described herein, but is capable of various obvious changes, rearrangements and substitutions as will now become apparent to those skilled in the art without departing from the scope of the invention. Therefore, although the present application has been described in more detail with reference to the above embodiments, the present invention is not limited to the above embodiments, and may include other equivalent embodiments without departing from the spirit of the present invention.

Claims (10)

1. An industrial control software development method, comprising:
a decomposition step, which is used for performing function decomposition on the software system to be developed to obtain at least two subsystems;
a first configuration step, configured to configure interface information between the subsystems according to a software protocol configured in a communication bus connecting edge controllers of the subsystems;
and a second configuration step, which is used for establishing association between each subsystem and the corresponding hardware resource.
2. The method of claim 1, further comprising:
and in the software development process, in the constructed integrated development environment of the multi-language hybrid programming, realizing the configuration of the first configuration step and the second configuration step through at least one programming language.
3. The method according to claim 1 or 2, wherein the first configuring step comprises: constructing an event interface and a data interface of each subsystem based on the connection sequence and the data transmission relation of the event interfaces among the functional modules in each subsystem; the subsystem comprises at least one functional module, and the functional module is obtained by performing functional decomposition on a software system to be developed.
4. The method of claim 3, further comprising: and performing control cooperation on the functional modules in the subsystems based on the event interfaces and the data interfaces of the subsystems, wherein the control cooperation comprises at least one of multi-device cooperation, multi-service cooperation and service internal function cooperation.
5. The method of claim 4, wherein the multi-device collaboration comprises:
and performing control cooperation on each hardware resource based on the event interface and the data interface of the subsystem and the hardware resource corresponding to each subsystem.
6. The method of claim 4, wherein the multi-service collaboration comprises:
and performing control cooperation on interaction among the services based on the event interfaces and the data interfaces of the subsystems used in different services respectively.
7. The method of claim 4, wherein the inter-service function coordination comprises:
and performing control cooperation on the internal functions of the service based on the event interface and the data interface of the subsystem used in the service.
8. The method according to claim 1 or 2, wherein the first configuring step comprises:
obtaining a data format of a transmission variable between the subsystems according to a message specification corresponding to the software protocol;
and configuring interface information among the subsystems in the software development process based on the data format of the transmission variables among the subsystems.
9. An industrial control software development apparatus, comprising:
the decomposition unit is used for performing function decomposition on the software system to be developed to obtain at least two subsystems;
the first configuration unit is used for configuring interface information among the subsystems according to a software protocol configured in a communication bus of an edge controller connected with the subsystems;
and the second configuration unit is used for establishing association between each subsystem and the corresponding hardware resource.
10. A computing device, comprising:
a communication interface;
at least one processor coupled with the communication interface; and
at least one memory coupled to the processor and storing program instructions that, when executed by the at least one processor, cause the at least one processor to perform the method of any of claims 1-8.
CN202211634978.4A 2022-12-19 2022-12-19 Industrial control software development method and device and computing equipment Pending CN115857883A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211634978.4A CN115857883A (en) 2022-12-19 2022-12-19 Industrial control software development method and device and computing equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211634978.4A CN115857883A (en) 2022-12-19 2022-12-19 Industrial control software development method and device and computing equipment

Publications (1)

Publication Number Publication Date
CN115857883A true CN115857883A (en) 2023-03-28

Family

ID=85674236

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211634978.4A Pending CN115857883A (en) 2022-12-19 2022-12-19 Industrial control software development method and device and computing equipment

Country Status (1)

Country Link
CN (1) CN115857883A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116775038A (en) * 2023-06-26 2023-09-19 国电南京自动化股份有限公司 Runtime system supporting simultaneous or independent operation of IEC and C++ tasks
CN116775038B (en) * 2023-06-26 2024-06-04 国电南京自动化股份有限公司 Runtime system supporting simultaneous or independent operation of IEC and C++ tasks

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116775038A (en) * 2023-06-26 2023-09-19 国电南京自动化股份有限公司 Runtime system supporting simultaneous or independent operation of IEC and C++ tasks
CN116775038B (en) * 2023-06-26 2024-06-04 国电南京自动化股份有限公司 Runtime system supporting simultaneous or independent operation of IEC and C++ tasks

Similar Documents

Publication Publication Date Title
US9114529B2 (en) Dual-system component-based industrial robot controller
CN111797521B (en) Three-dimensional simulation debugging and monitoring method for automatic production line
US20080147206A1 (en) Control system for Real Time Applications for Cooperative Industrial Robots
CN111427310A (en) Industrial robot controller operation system
Nikolakis et al. A cyber-physical context-aware system for coordinating human-robot collaboration
Romanov et al. Unified architecture of execution level hardware and software for discrete machinery manufacturing control systems
Valente et al. An approach to design and develop reconfigurable control software for highly automated production systems
Iannacci et al. Robotic cell work-flow management through an IEC 61499-ROS architecture
Campanelli et al. An architecture to integrate IEC 61131-3 systems in an IEC 61499 distributed solution
US20160094158A1 (en) Method for power station simulation
Ferenc et al. Open architecture platforms for the control of robotic systems and a proposed reference architecture model
Wallner et al. Evaluation of process control architectures for agile manufacturing systems
US9563181B2 (en) Method for operating an automation system
CN115857883A (en) Industrial control software development method and device and computing equipment
CN113534744A (en) Software architecture and hardware architecture for forming numerical control system
US20210216056A1 (en) Programmable logic controller and operating method for a programmable logic controller and computer program product
CN110989499A (en) Hybrid architecture control system based on high-speed wireless communication
CN115356997A (en) Integrated industrial control system and control method thereof, industrial control equipment and medium
Thapa et al. Auto-generation of IEC standard PLC code using t-MPSG
CN116330263A (en) Intelligent industrial robot platform implementation method based on Codesys
CN113031526A (en) Method for realizing distributed multi-axis motion control system based on 4diac
US7349748B2 (en) Development system for process control systems as well as associated method and computer program product
CN114675594B (en) Heterogeneous PLC cooperative control system, method, device, equipment and medium
CN114691117B (en) Edge controller software rapid development method
CN113568333B (en) Data processing method, control system and equipment

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