Vision software development system, method, device, and computer storage media

KR103036619B1Active Publication Date: 2026-10-21HANGZHOU HIKROBOT TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
KR1020237027372
Authority / Receiving Office
KR · KR
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-03-08
Filing Date
2022-03-08
Publication Date
2026-10-21
Estimated Expiration
2042-03-08

Smart Images

  • Figure 112023088627808-PCT00011_ABST
    Figure 112023088627808-PCT00011_ABST
Patent Text Reader

Abstract

A vision software development system, method, apparatus, and computer storage medium belong to the field of machine vision technology. An application screen layer of the vision software development system is used to display a module addition controller, and the module addition controller is intended to introduce module data of a third-party module into a data processing layer. Thus, a module corresponding to N module display controllers displayed on the application screen layer may include a third-party module. As can be seen from the above, the vision software development system according to the embodiment of the present application is a general-purpose open vision software development system. The vision software development system allows a user to develop different third-party modules according to different business requirements and to mount the developed third-party modules to the software development system according to the embodiment of the present application, thereby enabling subsequently developed vision software to further adapt to the individualized requirements of different business.
Need to check novelty before this filing date? Find Prior Art

Description

Technology Field

[0001] The present application claims priority to a Chinese patent application filed with the Chinese Intellectual Property Office on March 8, 2021, with application number 202110251760.X and title of invention “Vision software development system, method, apparatus and computer storage medium”, the entire contents of which are incorporated herein by reference.

[0002] The embodiments of the present application relate to the field of machine vision technology, and in particular, to a vision software development system, method, apparatus, and computer storage medium. Background Technology

[0003] Machine vision refers to a technology that uses machines to replace the human eye for measurement or judgment. In the field of machine vision technology, graphical flowcharts replace traditional language codes to implement specific functions as software, making it more convenient for a wider range of users to rapidly develop the vision software they require. In the field of machine vision, vision software is also referred to as machine vision software. Vision software must be implemented based on a vision software development system. Since different vision software responds to different user needs, the primary challenge currently facing vision software development systems is to establish a system that enables customized vision software to satisfy user requirements.

[0004] In the relevant technology, a single vision software development system is generally deployed for each type of vision software to ensure that the developed vision software satisfies user requirements. As a result, the vision software development system acquires expertise, and the vision software developed based on that system can satisfy specific user requirements. However, the vision software development system according to the relevant technology lacks generality, leading to the necessity of deploying different vision software development systems for different types of vision software. Furthermore, if user requirements change temporarily, vision software developed based on the existing system may struggle to meet the user's latest needs. Prior art literature

[65535] Patent Document 1: CN108733368A (Publication Date: 2018.11.02) Patent Document 2: CN112363730A (Publication Date: 2021.02.12)

[0005] Embodiments of the present application provide a vision software development system, method, apparatus, and computer storage medium that can be used for the development of vision software satisfying different business requirements. The technical means are as follows.

[0006] In one aspect, the present application provides a vision software development system, wherein the vision software development system comprises an application screen layer and a data processing layer; wherein the application screen layer is used to display N modules and N module display controllers corresponding to each of the N modules, wherein module data of each of the N modules is stored in the data processing layer, and the module data includes execution logic of the corresponding module; wherein the application screen layer is further used to display a module addition controller for introducing module data of a third-party module into the data processing layer, wherein the N modules include the third-party module, and N is an integer greater than or equal to 1; wherein the application screen layer is further used to display a flowchart in response to a first operation by a user on one or more of the N module display controllers, wherein the flowchart indicates the execution order between modules corresponding to each of the one or more of the module display controllers; The data processing layer is used to call and execute module data of a corresponding module for each of the one or more module display controllers in response to the flowchart displayed on the application screen layer, acquire the data processing result of the flowchart, and return the data processing result to the application screen layer.

[0007] In a possible embodiment, the application screen layer is used to acquire module data of a third-party module introduced by a user through the module addition controller in response to a second operation to the module addition controller, and to transmit the module data of the introduced third-party module to the data processing layer; the data processing layer is used to store the module data of the introduced third-party module and return a module loading success message to the application screen layer when it is verified that the module data of the introduced third-party module satisfies a reference rule, and the module loading success message indicates that the third-party module has been successfully loaded.

[0008] In one possible embodiment, the reference rule includes a design method for the input / output interface of the third-party module and / or a method for encapsulating the module data of the third-party module; wherein the design method for the input / output interface of the third-party module includes a data input format and / or a data output format of the third-party module, and the method for encapsulating the module data of the third-party module indicates a storage format of the module data of the third-party module in the data processing layer, and the storage format includes any one of a dynamic link library, a static link library, and an executable exe file.

[0009] In one possible embodiment, the application screen layer is further used to display a module configuration file in response to a third operation of the module addition controller, wherein the module configuration file indicates the reference rule.

[0010] In a possible embodiment, the application screen layer is further used to display a module setting screen of a first module corresponding to the first module display controller in response to a fourth operation by the user on a first module display controller among the N module display controllers, wherein the module setting screen includes a plurality of module setting controllers, and any one of the plurality of module setting controllers is for instructing the user to edit parameters during the execution of the first module; the application screen layer is further used to obtain parameters edited by the user through any one module setting controller in response to a fifth operation on any one module setting controller and to transmit the edited parameters to the data processing layer; the data processing layer is further used to update module data of the first module based on the edited parameters; wherein, where the flowchart includes the first module, the data processing layer is further used to update the data processing result of the flowchart based on the updated module data of the first module and to return the updated data processing result to the application screen layer.

[0011] In a possible embodiment, where the first module is a third-party module, the module data of the first module introduced by the user through the module addition controller further includes a module setting screen file, wherein the module setting screen file indicates the program code of the module setting screen of the first module; and the module setting screen of the first module displayed on the application screen layer is displayed according to the module setting screen file among the module data of the first module.

[0012] In a possible embodiment, the data processing layer is further used to generate a first code package based on the flowchart, the first code package indicates the execution logic of each module included in the flowchart and the execution order between each included module; the data processing layer is further used to control the application screen layer to display a first code controller corresponding to the first code package, the first code controller is for instructing the user to download the first code package, the first code package may be introduced into a third-party system and, after being executed in the third-party system, displays the flowchart.

[0013] In a possible embodiment, the application screen layer is further used to display an execution screen display controller, wherein the execution screen display controller instructs to display an execution screen for the flowchart, and the execution screen is for displaying execution information of the flowchart that indicates intermediate data in the execution process of the flowchart; and the application screen layer is further used to display the execution screen in response to a sixth operation on the execution screen display controller, thereby enabling the user to query intermediate data in the execution process of the flowchart based on the execution screen.

[0014] In a possible embodiment, the application screen layer is further used to display an execution screen setting controller, wherein the execution screen setting controller instructs to display an execution screen setting screen, and the execution screen setting screen is for setting content displayed on the execution screen; the application screen layer is further used to display the execution screen setting screen in response to a seventh operation on the execution screen setting controller, wherein the execution screen setting screen includes a plurality of execution screen setting sub-controllers, and any one of the plurality of execution screen setting sub-controllers is provided with a corresponding start option; the application screen layer is further used to display a content source option in response to an eighth operation on the start option of a first execution screen setting sub-controller among the plurality of execution screen setting sub-controllers, and to bind the first execution screen setting sub-controller to one module of the flowchart in response to a ninth operation on the content source option; wherein the execution information displayed on the execution screen includes data of the module bound to the first execution screen setting sub-controller.

[0015] In a possible embodiment, the data processing layer is further used to derive the program code of the execution screen and form it into a second code package; the data processing layer is further used to control the application screen layer to display a second code controller corresponding to the second code package, wherein the second code controller is for instructing the user to download the second code package, and the second code package can be introduced into a third-party system and, when executed in the third-party system, displays the execution screen.

[0016] In a possible embodiment, the data processing layer includes a data scheduling layer and a functional module layer; module data of the N modules is stored in the functional module layer; and the data scheduling layer is used to obtain the data processing result by sequentially calling and executing the module data of the corresponding module from the functional module layer according to the execution order between the modules corresponding to each of the one or more module display controllers in the flowchart.

[0017] In one possible embodiment, the data processing layer is used to store module data of M modules, wherein M is an integer greater than or equal to N; the application screen layer is further used to display a module registration controller, and the application screen layer is used to display N module display controllers in response to the N modules selected by the user from the M modules through the module registration controller.

[0018] In one possible embodiment, the N modules are modules verified as legitimate in the data processing layer, and the modules verified as legitimate are corresponding modules to which the user has usage rights.

[0019] In a possible embodiment, the application screen layer is further used to display a call controller for any one module display controller, wherein the call controller indicates that a user may call a module corresponding to any one module display controller from a third-party system; the application screen layer is further used to display an interface link of module data of a module corresponding to any one module display controller in response to a first operation on the call controller; and the application screen layer is further used to obtain module data of a module corresponding to any one module display controller from a data processing layer based on the interface link and transmit the obtained module data to the third-party system when the third-party system detects a data call request for the interface link.

[0020] In another aspect, the present application provides a method for developing vision software, wherein the method is applied to a vision software development system comprising an application screen layer and a data processing layer, and the method comprises the step of the application screen layer displaying N module display controllers corresponding to N modules, wherein module data for each of the N modules is stored in the data processing layer and the module data includes execution logic for the corresponding module, and the application screen layer further displays a module addition controller for introducing module data of a third-party module into the data processing layer, wherein the N modules include the third-party module and N is an integer greater than or equal to 1; and the step of the application screen layer displaying a flowchart in response to a first operation by the user on one or more of the N module display controllers, wherein the flowchart indicates the execution order between modules corresponding to each of the one or more of the module display controllers. and includes the step of the data processing layer responding to the flowchart displayed on the application screen layer, calling and executing module data of a module corresponding to each of the one or more module display controllers, obtaining the data processing result of the flowchart, and returning the data processing result to the application screen layer.

[0021] In a possible embodiment, the method further comprises the steps of: the application screen layer responding to a second operation to the module addition controller to acquire module data of a third-party module introduced by a user through the module addition controller and transmitting the module data of the introduced third-party module to the data processing layer; and when the data processing layer detects that the module data of the introduced third-party module satisfies a reference rule, storing the module data of the introduced third-party module and returning a message of module loading success to the application screen layer, wherein the message of module loading success indicates that the third-party module has been successfully loaded.

[0022] In one possible embodiment, the reference rule includes a design method for the input / output interface of the third-party module and / or a method for encapsulating the module data of the third-party module; wherein the design method for the input / output interface of the third-party module includes a data input format and / or a data output format of the third-party module, and the method for encapsulating the module data of the third-party module indicates a storage format of the module data of the third-party module in the data processing layer, and the storage format includes any one of a dynamic link library, a static link library, and an executable exe file.

[0023] In one possible embodiment, the method further comprises the step of the application screen layer displaying a module configuration file in response to a third operation to the module addition controller, wherein the module configuration file indicates the reference rule.

[0024] In a possible embodiment, the method comprises the steps of: the application screen layer displaying a module setting screen of a first module corresponding to the first module display controller in response to a fourth operation by the user on a first module display controller among the N module display controllers, wherein the module setting screen includes a plurality of module setting controllers, and one of the plurality of module setting controllers is intended to instruct the user to edit parameters during the execution process of the first module; the application screen layer obtaining parameters edited by the user through the module setting controller in response to a fifth operation on the module setting controller and transmitting the edited parameters to the data processing layer; and the data processing layer updating module data of the first module based on the edited parameters, wherein, if the flowchart includes the first module, the data processing layer updates the data processing result of the flowchart based on the updated module data of the first module and returns the updated data processing result to the application screen layer.

[0025] In a possible embodiment, where the first module is a third-party module, the module data of the first module introduced by the user through the module addition controller further includes a module setting screen file, wherein the module setting screen file indicates the program code of the module setting screen of the first module; and the module setting screen of the first module displayed on the application screen layer is displayed according to the module setting screen file among the module data of the first module.

[0026] In a possible embodiment, the method further comprises: a step in which the data processing layer generates a first code package that directs the execution logic of each module included in the flowchart and the execution order between each module included in the flowchart based on the flowchart; and a step in which the data processing layer controls the application screen layer to display a first code controller corresponding to the first code package, wherein the first code controller is for directing the user to download the first code package, and the first code package is capable of being introduced into a third-party system and, when executed in the third-party system, displays the flowchart.

[0027] In a possible embodiment, the method further comprises the step of the application screen layer displaying an execution screen display controller—the execution screen display controller instructing to display an execution screen for the flowchart, and the execution screen being for displaying execution information of the flowchart indicating intermediate data in the execution process of the flowchart—; and the step of the application screen layer displaying the execution screen in response to a sixth operation on the execution screen display controller, thereby enabling the user to query intermediate data in the execution process of the flowchart based on the execution screen.

[0028] In a possible embodiment, the method comprises the steps of: the application screen layer displaying an execution screen setting controller, wherein the execution screen setting controller instructs to display an execution screen setting screen, and the execution screen setting screen is for setting content displayed on the execution screen; the application screen layer displaying the execution screen setting screen in response to a seventh operation on the execution screen setting controller, wherein the execution screen setting screen includes a plurality of execution screen setting sub-controllers, and one of the execution screen setting sub-controllers is provided with a corresponding start option; and the application screen layer displaying a content source option in response to an eighth operation on the start option of a first execution screen setting sub-controller among the plurality of execution screen setting sub-controllers, and binding the first execution screen setting sub-controller to one of the modules in the flowchart in response to a ninth operation on the content source option, wherein the execution information displayed on the execution screen includes data of the module bound to the first execution screen setting sub-controller.

[0029] In a possible embodiment, the method further comprises the step of the data processing layer deriving program code of the execution screen and forming it into a second code package; and the step of the data processing layer controlling the application screen layer to display a second code controller corresponding to the second code package—the second code controller is for instructing the user to download the second code package, the second code package can be introduced into a third-party system, and when executed in the third-party system, the execution screen is displayed.

[0030] In a possible embodiment, the data processing layer includes a data scheduling layer and a functional module layer; module data of the N modules is stored in the functional module layer; and the step of the data processing layer calling and executing module data of a module corresponding to each of the one or a plurality of module display controllers in response to the flowchart displayed on the application screen layer to obtain a data processing result of the flowchart includes the step of the data scheduling layer calling and executing module data of a module corresponding to each of the one or a plurality of module display controllers in sequence from the functional module layer according to the execution order between the modules corresponding to each of the one or a plurality of module display controllers in the flowchart to obtain the data processing result.

[0031] In a possible embodiment, the method further comprises the step of the application screen layer displaying a module registration controller, and the application screen layer displaying the N module display controller in response to the N modules selected by the user from M modules through the module registration controller, wherein module data of the M modules is stored in the data processing layer, and M is an integer greater than or equal to N.

[0032] In one possible embodiment, the N modules are modules verified as legitimate in the data processing layer, and the modules verified as legitimate are corresponding modules to which the user has usage rights.

[0033] In a possible embodiment, the method comprises the steps of: the application screen layer displaying a call controller for any one module display controller, wherein the call controller instructs that a user allow a module corresponding to any one module display controller to be called from a third-party system; the application screen layer displaying an interface link of module data of the module corresponding to any one module display controller in response to a first operation to the call controller; and, when the application screen layer detects a data call request for the interface link transmitted by the third-party system, obtaining module data of the module corresponding to any one module display controller from the data processing layer based on the interface link and transmitting the obtained module data to the third-party system.

[0034] In another aspect, the present application provides a vision software development device, wherein the device is deployed in a vision software development system, the vision software development system comprises an application screen layer and a data processing layer, and the device comprises a display module and an execution module, wherein the display module is used to control the application screen layer to display N module display controllers corresponding to each of the N modules, wherein module data for each of the N modules is stored in the data processing layer, and the module data comprises execution logic for the corresponding module, wherein the application screen layer further displays a module addition controller, and the module addition controller is used to introduce module data of a third-party module into the data processing layer, and wherein the N modules include the third-party module, and N is an integer greater than or equal to 1; and the display module is further used to control the application screen layer to display a flowchart indicating the execution order between the modules corresponding to each of the one or more module display controllers in response to a first operation by the user on one or more of the N module display controllers. The execution module is used to control the data processing layer to call and execute module data of a module corresponding to each of the one or more module display controllers in response to the flowchart displayed on the application screen layer, acquire the data processing result of the flowchart, and return the data processing result to the application screen layer.

[0035] In a possible embodiment, the device further comprises: an acquisition module for controlling the application screen layer to acquire module data of a third-party module introduced by a user through the module addition controller in response to a second operation to the module addition controller, and to transmit the module data of the introduced third-party module to the data processing layer; and a verification module for controlling the data processing layer to store the module data of the introduced third-party module and to return a module loading success message indicating that the third-party module has been successfully loaded to the application screen layer when the data processing layer verifies that the module data of the introduced third-party module satisfies a reference rule.

[0036] In one possible embodiment, the reference rule includes a design method for the input / output interface of the third-party module and / or a method for encapsulating the module data of the third-party module; wherein the design method for the input / output interface of the third-party module includes a data input format and / or a data output format of the third-party module, and the method for encapsulating the module data of the third-party module indicates a storage format of the module data of the third-party module in the data processing layer, and the storage format includes any one of a dynamic link library, a static link library, and an executable exe file.

[0037] In one possible embodiment, the display module is further used to control the application screen layer to display a module configuration file in response to a third operation of the module additional controller, wherein the module configuration file indicates the reference rule.

[0038] In a possible embodiment, the display module is further used to control the application screen layer to display a module setting screen of a first module corresponding to the first module display controller in response to a fourth operation by the user on a first module display controller among the N module display controllers, wherein the module setting screen includes a plurality of module setting controllers, and any one of the plurality of module setting controllers is for instructing the user to edit parameters during the execution process of the first module; the device further includes an acquisition module for controlling the application screen layer to acquire parameters edited by the user through any one module setting controller in response to a fifth operation on any one module setting controller and to transmit the edited parameters to the data processing layer; and an update module for controlling the data processing layer to update the module data of the first module based on the edited parameters, wherein, when the first module is included in the flowchart, the data processing layer updates the data processing result of the flowchart based on the updated module data of the first module and returns the updated data processing result to the application screen layer.

[0039] In a possible embodiment, where the first module is a third-party module, the module data of the first module introduced by the user through the module addition controller further includes a module setting screen file, wherein the module setting screen file indicates the program code of the module setting screen of the first module; and the module setting screen of the first module displayed on the application screen layer is displayed according to the module setting screen file among the module data of the first module.

[0040] In a possible embodiment, the device further comprises a generation module for controlling the data processing layer to generate a first code package that directs the execution logic of each module included in the flowchart and the execution order between each included module based on the flowchart; the display module is further used to control the data processing layer to control the application screen layer to display a first code controller for directing the user corresponding to the first code package to download the first code package, the first code package being introduceable to a third-party system and displaying the flowchart when executed in the third-party system.

[0041] In a possible embodiment, the display module is further used to control the application screen layer to display an execution screen display controller, wherein the execution screen display controller is instructed to display an execution screen for the flowchart, and the execution screen is for displaying execution information of the flowchart indicating intermediate data in the execution process of the flowchart; and the display module is further used to control the application screen layer to display the execution screen in response to a sixth operation on the execution screen display controller, thereby enabling the user to query intermediate data in the execution process of the flowchart based on the execution screen.

[0042] In a possible embodiment, the display module is further used to control the application screen layer to display an execution screen setting controller, wherein the execution screen setting controller instructs to display an execution screen setting screen, and the execution screen setting screen is for setting content displayed on the execution screen; the display module is further used to control the application screen layer to display the execution screen setting screen in response to a seventh operation on the execution screen setting controller, wherein the execution screen setting screen includes a plurality of execution screen setting sub-controllers, and any one of the plurality of execution screen setting sub-controllers is provided with a corresponding start option; the display module is further used to control the application screen layer to display a content source option in response to an eighth operation on the start option of a first execution screen setting sub-controller among the plurality of execution screen setting sub-controllers, and to bind the first execution screen setting sub-controller to one module of the flowchart in response to a ninth operation on the content source option, wherein the execution information displayed on the execution screen includes data of the module bound to the first execution screen setting sub-controller.

[0043] In one possible embodiment, the device further includes a derivation module for controlling the data processing layer to derive the program code of the execution screen and make it a second code package; the display module is further used to control the data processing layer to control the application screen layer to display a second code controller corresponding to the second code package, wherein the second code controller is for instructing the user to download the second code package, and the second code package can be introduced into a third-party system and, when executed in the third-party system, displays the execution screen.

[0044] In a possible embodiment, the data processing layer includes a data scheduling layer and a function module layer; the function module layer stores module data of the N modules; and the execution module is used to control the data scheduling layer to sequentially call and execute the module data of the modules corresponding to each of the one or multiple module display controllers from the function module layer according to the execution order between the modules corresponding to each of the one or multiple module display controllers in the flowchart to obtain the data processing result.

[0045] In one possible embodiment, the display module is further used to control the application screen layer to display a module registration controller and the application screen layer to display the N module display controllers in response to the N modules selected by the user from M modules through the module registration controller, wherein the module data of the M modules is stored in the data processing layer and M is an integer greater than or equal to N.

[0046] In one possible embodiment, the N modules are modules verified as legitimate in the data processing layer, and the modules verified as legitimate are corresponding modules to which the user has usage rights.

[0047] In a possible embodiment, the display module is further used to control the application screen layer to display a call controller for any one module display controller, wherein the call controller instructs that a user may call a module corresponding to any one module display controller from a third-party system; the display module is further used to control the application screen layer to display an interface link of module data of a module corresponding to any one module display controller in response to a first operation to the call controller; and the device further includes an acquisition module for controlling the application screen layer to acquire module data of a module corresponding to any one module display controller from a data processing layer based on the interface link and to transmit the acquired module data to the third-party system when the application screen layer detects a data call request for the interface link transmitted by the third-party system.

[0048] In another aspect, the present application provides a vision software development device, wherein the device comprises: a processor; and a memory for storing instructions executable by the processor; wherein the processor is configured to execute any one step of the vision software development method.

[0049] In another aspect, the present application provides a computer-readable storage medium, wherein a command is stored in the computer-readable storage medium, and when the command is executed by a processor, it implements any one step of the vision software development method.

[0050] In another aspect, the present application provides a computer program product comprising instructions, wherein when said computer program is executed on a computer, the computer executes any one step of said vision software development method.

[0051] The technical means according to the embodiment of the present application includes at least the following beneficial effects. That is, the embodiment of the present application provides a vision software development system. The application screen layer of the vision software development system is used to display a module addition controller, and the module addition controller is intended to introduce module data of a third-party module into the data processing layer. Thus, the module corresponding to N module display controllers displayed on the application screen layer may include a third-party module. Accordingly, in the embodiment of the present application, the user may introduce a third-party module at any time through the module addition controller according to business requirements, and subsequently, display a flowchart set by the user through the application screen layer based on the third-party module. The flowchart is the vision software set by the user, and the vision software development process is completed by executing the flowchart through the data processing layer.

[0052] As can be seen from the above, the vision software development system provided in the embodiment of the present application is a general-purpose open vision software development system. This vision software development system allows users to develop different third-party modules according to different business requirements and to mount the developed third-party modules onto the software development system according to the embodiment of the present application, thereby enabling subsequently developed vision software to better adapt to the individualized requirements of different business tasks. Thus, different types of vision software can be developed within the vision software development system provided in the embodiment of the present application without the need to deploy different vision software development systems for different types of vision software.

[0053] In addition, even if business requirements or user requirements change temporarily, through the vision software development system provided in the embodiment of the present application, the user can temporarily develop a new third-party module and then mount the developed new third-party module to the software development system according to the embodiment of the present application so that the vision software subsequently developed can quickly adapt to the user's latest requirements. Brief explanation of the drawing

[0054] In order to more clearly explain the embodiments of the present application and the technical means of the prior art, the drawings required for the embodiments and prior art are briefly introduced below. However, the drawings described below are merely some embodiments of the present application, and it is obvious to those skilled in the art to which the present application pertains that other drawings can be obtained from these drawings. FIG. 1 is a schematic diagram of the architecture of a vision software development system according to an embodiment of the present application, and FIG. 2 is a schematic diagram of a main screen displayed on an application screen layer according to an embodiment of the present application, and FIG. 3 is a schematic diagram of a flowchart according to an embodiment of the present application, and FIG. 4 is a schematic diagram of a data scheduling layer according to an embodiment of the present application calling module data of each module among the functional module layers, and FIG. 5 is a schematic diagram of a module according to an embodiment of the present application, and FIG. 6 is a schematic diagram of module loading and module unloading according to an embodiment of the present application, and FIG. 7 is a schematic diagram of the format of module data of a third-party module according to an embodiment of the present application, and FIG. 8 is a schematic diagram for deriving the setting process and code of an execution screen according to an embodiment of the present application, and FIG. 9 is a schematic diagram of a module registration process according to an embodiment of the present application, and FIG. 10 is a flowchart of a method for module loading and module registration according to an embodiment of the present application, and FIG. 11 is a flowchart of a method for setting a flowchart according to an embodiment of the present application, and FIG. 12 is a schematic diagram of the structure of a vision software development device according to an embodiment of the present application. Specific details for implementing the invention

[0055] In order to make the purpose, technical means, and advantages of this application clearer and more evident, the present application will be described in more detail below with reference to the attached drawings and examples. It is obvious that the examples described below are only some examples of this application and not all examples. All other examples obtained by those skilled in the art based on the examples of this application also fall within the scope of protection of this application.

[0056] It should be understood that the term “plural” as used in this specification means two or more. In the description of this application, unless otherwise specified, “ / ” indicates “or,” for example, A / B may represent A or B. “And / or” in this specification merely indicates a related relationship describing a related target, and indicates that three relationships may exist; for example, A and / or B may represent three cases: A existing alone, A and B existing simultaneously, or B existing alone. Furthermore, in the embodiments of this application, to clearly explain the technical means of the embodiments of this application, the embodiments of this application use textual notations such as “First,” “Second,” etc., to distinguish identical or similar items that share the same function and role. It will be understandable to those skilled in the art to which this application pertains that the designations “first,” “second,” etc., are not limited in quantity and order of execution, and that the designations “first,” “second,” etc., are not limited in that they must be different.

[0057] Before interpreting and describing in detail the vision software development system according to the embodiments of the present application, first, the application scenarios regarding the embodiments of the present application are interpreted and described in detail.

[0058] Currently, the main mechanism of machine vision involves converting a target detected by an image acquisition device into an image signal, performing specialized image processing on the image signal, analyzing and obtaining feature information of the detected target based on the image processing results, and further determining the detection result for the target based on the feature information.

[0059] Based on the aforementioned machine vision operation mechanism, machine vision technology is currently being widely applied in various fields. In industrial technology, machine vision technology enables the detection of product appearances and surface defects. Examples include wood processing detection, metal surface detection, printed circuit board defect inspection, and automatic recognition of welding defects. In the medical field, machine vision technology can provide evidence for effective diagnosis by assisting doctors in diagnosing the size, shape, and abnormalities of human disease sources. In the field of traffic surveillance technology, machine vision technology enables the automatic recognition of vehicle license plates, such as for violations of traffic laws or driving in reverse. The foregoing is merely an exemplary description of the application fields of machine vision technology, and the embodiments of this application are not limited to specific application fields of machine vision technology.

[0060] Vision software is software that implements the aforementioned machine vision technology; that is, through vision software, specific detection functions for the aforementioned target can be implemented. Furthermore, to facilitate the rapid development of vision software by developers, current machine vision technology allows developers to develop vision software using graphical flowcharts instead of conventional language code. In other words, since vision software can be graphically displayed in the form of a flowchart, it is convenient for developers to understand the internal execution logic of the vision software. In the flowchart of the vision software, the flowchart is composed of multiple modules connected according to specific connection relationships, each module is intended to implement a single specific sub-function, and the connection relationships between modules indicate the execution order of each module. Therefore, the flowchart can indicate the internal execution logic of the vision software.

[0061] The vision software development system provided in the embodiment of the present application is applied to a scenario for developing the flowcharted vision software. The purpose of the present application is to provide a general-purpose vision software development system, through which developers can customize the vision software required according to business requirements.

[0062] For the convenience of explanation, a vision software development system according to an embodiment of the present application will first be interpreted and described in detail.

[0063] FIG. 1 is a schematic diagram of the architecture of a vision software development system according to an embodiment of the present application. As shown in FIG. 1, the vision software development system (100) includes an application screen layer (101) and a data processing layer (102).

[0064] The application screen layer (101) is used to display N module display controllers, where N is an integer greater than or equal to 1, and each of the N module display controllers corresponds to N modules, and the module data for each of the N modules is stored in the data processing layer (102), and the module data includes the execution logic of the corresponding module. The application screen layer (101) is further used to display a flowchart in response to a first operation by a user on one or more of the N module display controllers, and the flowchart indicates the execution order between modules corresponding to each of the one or more module display controllers. The data processing layer (102) is used to call and execute the module data of the module corresponding to each of the one or more module display controllers in response to the flowchart displayed on the application screen layer (101), obtain the data processing result of the flowchart, and return the data processing result to the application screen layer (101).

[0065] The first operation mentioned above may be a drag operation, a click operation, etc. Through a module display controller corresponding to N modules displayed on an application screen layer, users (e.g., developers) can set up a flowchart, which is vision software that satisfies a specific business requirement. The flowchart includes one or more of the N modules and the connection relationships between these one or more modules. The connection relationships between modules in the flowchart indicate the execution order between the modules. For example, in the flowchart When the direction is set from Module A to Module B, the data processing layer first executes the relevant logic based on the module data of Module A, and then executes the relevant logic based on the module data of Module B.

[0066] In the process of a user setting up a flowchart on an application screen layer, the data processing layer can complete the development process for the set flowchart by calling and executing module data of a module within the flowchart based on the flowchart displayed on the application screen layer to obtain the data processing result of the flowchart.

[0067] FIG. 2 is a schematic diagram of a main screen displayed on an application screen layer according to an embodiment of the present application. As shown in FIG. 2, the main screen includes functional partitions such as a menu area, a vision tool area, a process editing area, a graphic rendering area, and a text display area.

[0068] Here, the menu area is used to display each controller for the main screen, including, for example, the screen view controller and the page partition setting controller. The vision tool area is used to display each module display controller. The process editing area is used to display the flowchart configured by the user. Users can configure the flowchart by dragging module display controllers from the vision tool area to the process editing area. The graphic rendering area is used to display the graphic processing results of specific modules within the flowchart, and the graphic processing results are provided in an illustrated manner. The text display area is used to display the data processing results of specific modules within the flowchart, and the data processing results are provided in text format. For example, regarding a flowchart displayed in the process editing area, if a user clicks a specific module within the flowchart, the graphic rendering area can display the graphic processing results of that module within the flowchart, and the text display area can display the text-formatted data processing results of that module within the flowchart. As is necessary to explain, the graphic rendering area and the text display area are both result display areas for the processing results of a specific module, and the embodiments of the present application do not limit the method of displaying the processing results of a specific module; they may be displayed merely in the illustrated manner, may be displayed merely in the text manner, or may be displayed simultaneously in both the illustrated manner and the text manner.

[0069] As can be seen based on the main screen illustrated in FIG. 2, the application screen layer provided in the embodiment of the present application can generate a flowchart by dragging a module display controller within the vision tool area using a graphical interaction design, thereby enabling the vision software to be implemented using a method of visualizing the flowchart.

[0070] FIG. 3 is a schematic diagram of a flowchart according to an embodiment of the present application. As shown in FIG. 3, the commercial tool on the left side of FIG. 3 is a module display controller for each module of the vision tool area, and the right side of FIG. 3 is a flowchart set by the user, and the flowchart includes four modules, each being an image source (1) module, a feature rapid analysis module, a position correction module, and a circle search module. Here, the image source (1) module is directed to the feature rapid analysis module, the feature rapid analysis module is directed to the position correction module, and the position correction module is directed to the circle search module. The vision software method indicated in the flowchart is to first perform feature rapid analysis on the image source (1), then perform position correction, and finally perform circle search. All four of these modules correspond to the module display controller of the commercial tool partition shown on the left side of FIG. 3.

[0071] For clarification, the main screen illustrated in FIGS. 2 and 3 is merely one example of a main screen provided by an application screen layer. Since the functional partitions displayed on the main screen and the combination methods of different functional partitions can all be customized to be individualized by the user, a detailed description thereof is omitted in the embodiments of this application. Furthermore, the controller illustrated in FIGS. 2 and 3, for example, a module display controller, may have characteristics such as being independently encapsulated and having a configurable display. Other controllers to be mentioned in subsequent embodiments may also have such characteristics, and such descriptions will not be repeated thereafter.

[0072] Here, independent encapsulation means encapsulating the data corresponding to each controller independently within the data processing layer. There is no data interaction between controllers, and all data corresponding to all controllers is directed to the data processing layer. In this case, the data corresponding to each controller includes information such as the display size and display color of the controller displayed on the application screen layer. When the data corresponding to a controller in the data processing layer changes, the corresponding controller displayed on the application screen layer also changes accordingly. As a result, each controller can be used independently, thereby avoiding mutual influence between controllers.

[0073] The statement that the display is configurable means that display information, such as the display position, size, and color of each controller displayed on the application screen layer, can be modified by the user according to their requirements. This ensures that the controllers displayed on the application screen layer satisfy the user's requirements to the fullest extent. For example, the user can drag a specific controller using a mouse, and the application screen layer responds to the mouse drag event for that controller by modifying its display position and saving the modified display position to a configuration file corresponding to that controller. The configuration file corresponding to that controller is recorded in the data processing layer. Through the aforementioned "display configurable" characteristic, the display size, position, and color of all controllers displayed on the application screen layer can be modified. Alternatively, to prevent the controller's placement on the main screen from being affected by an excessively small display size, each controller is provided with a minimum display size.

[0074] In an embodiment of the present application, in the system illustrated in FIG. 1, the application screen layer (101) is further used to display a module addition controller, said module addition controller is used to introduce module data of a third-party module into the data processing layer (102). Since the third-party module may be any functional data packet configured by the user according to business requirements, users can introduce the third-party module at any time through the module addition controller displayed on the application screen layer according to business requirements based on the system illustrated in FIG. 1, and then, users can configure a flowchart including the third-party module in the application screen layer and execute the flowchart through the data processing layer to complete the development process of the vision software. That is, users can customize the vision software at any time based on business requirements based on the system illustrated in FIG. 1.

[0075] In one possible embodiment, when the application screen layer detects an operation regarding the module addition controller, it may display a module loading window, and then acquire module data of a third-party module introduced by the user through the module loading window and store the module data in a data processing layer. Subsequently, the third-party module may be displayed on the application screen layer in the form of a third-party module display controller. That is, the system provided in the embodiment of the present application may support the addition of a third-party module developed by a third-party developer to the main screen of the application screen layer. Displaying the third-party module on the application screen layer in the form of a third-party module display controller may be implemented by a module registration method, and details regarding module registration will be explained in detail in subsequent embodiments and will not be explained in detail here.

[0076] Additionally, when a module display controller corresponding to the module data of the data processing layer is added to the main screen, descriptive information for the module regarding the added module display controller can be added to the configuration file of the main screen. Such descriptive information includes, but is not limited to, information such as the module name, module icon, and the storage path of the module data corresponding to the module. Thus, when the application screen layer displays the module display controller corresponding to the module on the main screen, it can display information such as the module name and module icon of the module.

[0077] As can be seen, the vision software development system provided in the embodiment of the present application is a general-purpose open vision software development system. This vision software system allows users to develop different third-party modules according to different business requirements and to mount the developed third-party modules onto the software development system provided in the embodiment of the present application, thereby enabling subsequently developed vision software to better adapt to the personalized requirements of different business tasks. Thus, different types of vision software can be developed within the vision software development system provided in the embodiment of the present application without the need to deploy different vision software development systems for different types of vision software.

[0078] In addition, even if business requirements or user requirements change temporarily, through the vision software development system provided in the embodiment of the present application, the user can temporarily develop a new third-party module and then mount the developed new third-party module to the software development system according to the embodiment of the present application so that the vision software subsequently developed can quickly adapt to the user's latest requirements.

[0079] To summarize the above, the embodiments of the present application provide an open frame vision software development system. Since the vision software development system uses an open frame design and supports users in performing multiple levels of secondary development based on the frame according to the requirements of actual applications, the vision software development system combines flexibility and ease of use.

[0080] Additionally, in the system illustrated in FIG. 1, as illustrated in FIG. 1, the data processing layer (102) may further include a data scheduling layer and a functional module layer. In this scenario, the functions of the data processing layer are distributed to the data scheduling layer and the functional module layer to make it convenient to effectively manage each module. Here, module data of N modules is stored in the functional module layer, and the data scheduling layer is used to sequentially call and execute the module data of the modules corresponding to one or more module display controllers from the functional module layer according to the execution order between modules corresponding to one or more module display controllers in the flowchart, in order to obtain the data processing result.

[0081] In other words, the functional module layer is used to encapsulate the module data of each module and provide the input / output interfaces of each module to the outside. The data scheduling layer is used to call the module data of each module based on its input / output interfaces, and then to implement the functions of each module within the flowchart. For example, if the data scheduling layer needs to call the module data of Module A within the functional module layer, the data scheduling layer inputs the data required for Module A's execution into the functional module layer through Module A's input interface. Then, the functional module layer executes Module A's execution logic based on the input data to obtain the result data, and transmits the result data to the data scheduling layer through Module A's output interface. With this, the data scheduling layer completes the calling process for Module A within the functional module layer.

[0082] As required for explanation, in order to enhance the confidentiality of module data of each module in the functional module layer, the module data of each module in the functional module layer is encapsulated independently. That is, there is no communication between each module in the functional module layer. The data in the functional module layer is called collectively by the data scheduling layer. FIG. 4 is a schematic diagram of the data scheduling layer calling module data of each module in the functional module layer according to an embodiment of the present application. As shown in FIG. 4, the scheduling of module (1), module (2), and module (3) by the data scheduling layer is independent of each other, and calls are made without crossing between each module. That is, each module is executed based on scheduling, and data caching is performed on the result data of each module.

[0083] In a scenario where the data processing layer includes a data scheduling layer and a functional module layer, the data scheduling layer may first record the call order relationships of each module within the flowchart in a specific data structure before executing the flowchart. Such a data structure may be, for example, a tree structure or a graphical structure. Then, when executing the flowchart, the data scheduling layer completes the development process for the flowchart by traversing these data structures in a specific order and sequentially calling the interfaces of each module in the functional module layer.

[0084] In addition, the module according to the embodiment of the present application may be a module that implements any function. The module may include an algorithm module, an image collection module, a data computing module, a peripheral device control module, a communication module, etc. The embodiment of the present application is not limited thereto. FIG. 5 is a schematic diagram of a module according to an embodiment of the present application. As illustrated in FIG. 5, the module according to an embodiment of the present application may include four main classifications. The first classification is a module corresponding to peripheral device hardware, such as an image collection module, a camera control module, a light source control module, etc. The second classification is an image processing-related module, such as a template matching module, a geometric search module, a code reading module, an OCR (Optical Character Recognition) module, etc. The third classification is a data processing-related module, such as a data processing module, a logical operation module, a data statistics module, etc. The fourth classification is a communication-related module.

[0085] The foregoing description is intended to interpret and explain the main functions of the vision software development system provided in the embodiments of the present application, and other functions of the system illustrated in FIG. 1 are described in more detail below. It should be noted that the following functions are merely exemplary descriptions of the functions according to the embodiments of the present application and are not intended to limit the functions of the system illustrated in FIG. 1.

[0086] 1. The vision software development system supports the in-house design and development of module data for third-party modules.

[0087] A third-party module is not an existing module of the system itself, but a module designed and developed by a third party, and in order to ensure that the introduced third-party module can be successfully mounted to the system according to the embodiment of the present application, the module data of the third-party module must satisfy the rules specified by the system according to the embodiment of the present application.

[0088] Accordingly, in one possible embodiment, the application screen layer is used to acquire module data of a third-party module introduced by a user through the module addition controller in response to a second operation to the module addition controller, and to transmit the module data of the introduced third-party module to the data processing layer. In this scenario, if the data processing layer verifies that the module data of the introduced third-party module satisfies the reference rule, it is used to store the module data of the introduced third-party module and return a module loading success message to the application screen layer, wherein the module loading success message indicates that the third-party module has been successfully loaded. Correspondingly, if the data processing layer verifies that the module data of the introduced third-party module does not satisfy the reference rule, it does not store the module data of the introduced third-party module and returns a module loading failure message to the application screen layer, wherein the module loading failure message indicates that the loading of the third-party module has failed.

[0089] That is, when a developer introduces a third-party module into the system, the data processing layer of the system verifies the module data of the third-party module, and can successfully load the module data of the third-party module into the data processing layer only when it is verified that the module data of the introduced third-party module satisfies the reference rules. This ensures that the third-party module mounted in the vision software development system provided in the embodiment of the present application is compatible with the existing modules of the vision software development system itself.

[0090] In addition, to facilitate the developer's quick identification of the rules that the module data of a third-party module introduced into the system must satisfy, the system may explain to the outside the reference rules that the module data of the third-party module must satisfy. Accordingly, in one possible embodiment, the application screen layer in FIG. 1 is further used to display a module configuration file in response to a third operation on the module addition controller, and the module configuration file indicates the reference rules. The third operation may be a click operation, a voice operation, etc. For example, the third operation is a right-click operation, and when the user double-clicks the module addition controller displayed on the main screen with the right mouse button, the application screen layer may display the module configuration file. The module configuration file indicates the rules that the module data of the introduced third-party module must satisfy; that is, by looking up the module configuration file, the user can identify the rules that the module data of the third-party module currently to be introduced must satisfy.

[0091] Alternatively, a developer of a third-party module may also identify, through other means, the reference rules that the module data of the third-party module introduced into the system must satisfy, but the embodiments of the present application are not limited thereto. For example, the developer may identify these reference rules through relevant paper documents of the vision software development system provided in the embodiments of the present application.

[0092] Specifically, the above reference rule may include a design method for the input / output interface of a third-party module and / or a method for encapsulating module data of a third-party module. Here, the design method for the input / output interface of a third-party module includes the format of input data and / or output data. Here, the format of input data or output data may specifically include information such as data precision. The method for encapsulating module data of a third-party module indicates the storage format of the module data at the data processing layer, and the storage format may include any one of a dynamic link library, a static link library, an exe (executable) file, etc.

[0093] Through the relevant functions of the module addition controller mentioned above, it is possible to implement loading a module developed by a third party into the data processing layer. Specifically, in a scenario where the data processing layer includes a data scheduling layer and a functional module layer, loading a module developed by a third party into the data processing layer refers to loading the module data of the module developed by the third party into the functional module layer. Here, the module data of the module developed by the third party can be encapsulated in the form of a dynamic library (or executable program) and stored in the functional module layer, and the functional module layer generates a handle to the module developed by the third party (the handle is for the unique identification of the module), thereby making it convenient for the data scheduling layer to subsequently call the module through the handle.

[0094] In addition, to further open the module, the system illustrated in FIG. 1 may support deleting an already loaded module, that is, releasing the module. A detailed description of the specific implementation method is omitted here. FIG. 6 is a schematic diagram of module loading and module release according to an embodiment of the present application. As illustrated in FIG. 6, the data scheduling layer may load a specific module into the functional module layer in response to an operation performed by the user on the application screen layer, and may delete a specific module from the functional module layer, that is, release the module, in response to an operation performed by the user on the application screen layer.

[0095] Furthermore, the first through third operations described above are all user operations triggered by the user on a corresponding controller, and such user operations may include click operations, voice operations, or sliding operations. The first through third operations are intended merely to distinguish different operations and are not intended to limit specific user operations. The fourth through tenth operations to be mentioned subsequently may also refer to the above interpretation, and such explanations will not be repeated in subsequent sections.

[0096] 2. The vision software development system supports secondary development by users of module data of any module.

[0097] In the case of a module already mounted in the system provided in this application, in order to ensure that the module can respond to changing business requirements from time to time, the vision software development system further supports secondary development by the user of the module data of the module already mounted in the system, thereby enabling the secondary developed module to satisfy the latest business requirements.

[0098] Accordingly, in a possible embodiment, the application screen layer is further used to display a module setting screen of a first module corresponding to the first module display controller in response to a fourth operation by a user on a first module display controller among N module display controllers, wherein the module setting screen includes a plurality of module setting controllers, and one of the module setting controllers is intended to instruct the user to edit parameters during the execution of the first module. Here, the first module display controller is any one of the N module display controllers. In this scenario, the application screen layer is further used to obtain parameters edited by the user through one of the module setting controllers in response to a fifth operation on one of the module setting controllers, and to transmit the edited parameters to a data processing layer. The data processing layer is used to update the module data of the first module based on the edited parameters. Through this process, the user can implement modifications to the module data of one of the modules, thereby enabling the modified module data to satisfy the latest business requirements.

[0099] Additionally, the timing at which the user performs secondary development on the module data of any module may be when the user completes the settings of the flowchart based on the application screen layer and then performs secondary development on the module data of a specific module included in the flowchart. In this scenario, assuming that the user performs secondary development on the module data of the first module included in the flowchart, the data processing layer at this time is further used to update the data processing result of the flowchart based on the updated module data of the first module and to return the updated data processing result to the application screen layer.

[0100] That is, after the user completes the settings of the flowchart based on the application screen layer, if the user performs secondary development on the module data of a specific module included in the flowchart, the vision software development system can automatically update the data processing results of the flowchart based on the updated module data.

[0101] Parameters in the execution process of the first module may include input parameters, output parameters, and other related parameters in the execution process. The module setting controller may include a character code setting controller, a fixed format setting controller, a floating-point setting controller, an enumeration setting controller, etc.

[0102] The above module setting screen may be a screen pre-configured by the system for all modules; that is, the module setting screen is a default module setting screen set by the system. In one possible embodiment, module setting screen files for all modules are pre-stored in the system, and the module setting screen files are intended to indicate content related to the module setting screen, and the application screen layer can display the default module setting screen when the module setting screen files are loaded. For example, the fourth operation is a double-click operation, and when a module display controller corresponding to the first module displayed on the main screen is double-clicked, the application screen layer dynamically generates a module setting screen that the system defaults to according to a default module setting screen file defined by XML (eXtensible Markup Language).

[0103] Alternatively, if the first module for which the user performs secondary development is a third-party module, the module configuration screen of said first module may be designed by the third party. In such a case, when introducing the module data of the first module into the system, the introduced module data of the first module may include a module configuration screen file defined by the third party for the first module, and said module configuration screen file is intended to indicate the program code of the module configuration screen corresponding to the first module. In such a case, the module configuration screen of the first module displayed on the application screen layer is displayed according to the module configuration screen file among the module data of the first module. Here, the module configuration screen file designed by the third party may also be a configuration file defined in XML.

[0104] Additionally, in the module configuration screen file, a third party may specify the name of a module configuration controller among the specified module configuration controller libraries. In such cases, the module data of the third-party module may include the specified module configuration controller library provided by the third party. In this scenario, when the application screen layer displays a module configuration screen based on the module configuration screen file provided by the third party, the module configuration controller among the specified module configuration controller libraries is included in the displayed module configuration screen, thereby making it convenient for the user to complete the configuration work of the third-party module based on the module configuration controller among the module configuration controller libraries provided by the third party.

[0105] Here, the application screen layer provides an interface for obtaining or setting parameters to a module configuration controller provided by a third party, thereby facilitating the user to call or modify relevant parameters of the third-party module configuration controller based on this interface. Here, the interface for obtaining or setting parameters operates in a key-value format, providing support for module configuration controllers of basic types such as integer (int), floating-point (float), and string formats. Additionally, the interface for obtaining or setting parameters may operate in a binary format; since the binary operation format allows for calls to large block data, if the interface for obtaining or setting parameters operates in a binary format, it is possible to implement calls to or modifications to parameters of large block data.

[0106] To summarize the above, in the embodiment of the present application, for a module defaulted to the system (collectively referred to as a native module in the embodiment of the present application) or a third-party module, when a user triggers the module through the fourth operation, a module configuration screen pre-configured in the system may appear, and since a module configuration controller, such as input, output, and execution parameters, is displayed on the module configuration screen, it is convenient for the user to modify module-related parameters. Alternatively, for a third-party module, the third party may introduce a single module configuration screen file, which corresponds to the module configuration screen being provided by the third party.

[0107] FIG. 7 is a schematic diagram of the module data format of a third-party module according to an embodiment of the present application. As illustrated in FIG. 7, the data processing layer includes a data scheduling layer and a functional module layer. Here, a module display controller for a native module is displayed in the vision tool area of ​​the main screen of the application screen layer, and the module display controller is displayed as an icon of the native module. A module display controller for a third-party module is further displayed in the vision tool area, and the module display controller is displayed as an icon of the third-party module. Displaying XML corresponding to these screens is as illustrated in FIG. 7; that is, the code of the module display controller for displaying these two modules is as follows.

[0108] ToolBox.xml

[0109] <tools>

[0110] <tool name="”네이티브" 모듈” icon="”. / source / a.png”" classname=""originmodule” / ">

[0111] <tool name="”제3자" 모듈 ” icon="”. / source / .png”" classname="”disanfangmodule” / ">

[0112] < / tool> < / tool> < / tools>

[0113] Additionally, as illustrated in FIG. 7, the module data of the third-party module is stored in the functional module layer. The module data of the third-party module includes a module configuration screen file, a module dynamic library, and a module configuration controller library for the third-party module. Here, the code of the module data of the third-party module in FIG. 7 is as follows.

[0114] disanfangmodule.xml / refers to the module configuration screen file.

[0115] disanfangmodule.dll / points to the module dynamic library.

[0116] disanfangmoduleConfig.dll / points to the module configuration controller library.

[0117] Here, the detailed execution logic of a third-party module can be obtained through the module dynamic library. Since the module configuration controller library and the module configuration screen file have already been described in detail in the above embodiment, the explanation will not be repeated here.

[0118] For clarification, in order to be compatible with the system illustrated in FIG. 1, a module configuration screen file introduced by a third party must satisfy the same rules as the module configuration screen file defaulted to the system, thereby enabling the module configuration screen provided by the third party to be compatible with the module configuration screen defaulted to the embodiment of the present application. The content of this part can be implemented through the relevant content of the rules specified in the module configuration file. That is, the rules included in the module configuration file include the rules that the module configuration screen file introduced by the third party must satisfy, but a detailed description is omitted here.

[0119] 3. The vision software development system supports converting flowcharts into basic code to facilitate the development of secondary development for developers.

[0120] In order to facilitate secondary development of the vision software indicated in the flowchart by other users after the user has set up the flowchart, the system provided in the embodiment of the present application further supports converting the flowchart into base code, thereby facilitating the developers to advance secondary development. Accordingly, in one possible embodiment, the data processing layer is further used to generate a first code package based on the flowchart, wherein the first code package indicates the execution logic of each module included in the flowchart and the execution order between each included module; that is, the first code package indicates the detailed execution logic of the flowchart. In this scenario, the data processing layer is further used to control the application screen layer to display a first code controller corresponding to the first code package, wherein the first code controller is intended to instruct the user to download the first code package, and the first code package can be introduced into a third-party system and, after being executed in the third-party system, displays the flowchart.

[0121] Here, the data processing layer may generate a first code package and then store the first code package in a designated location, for example, in the function module layer. When the application screen layer detects a selection operation for the first code controller, it acquires the first code package and then downloads the first code package to a specific location, such as a specific location selected by the user, thereby making it convenient for the user to introduce the first code package into a third-party system. After executing the first code package in the third-party system, the flowchart set in the system provided in the embodiment of the present application is displayed in the third-party system. Furthermore, the user may generate new vision software by performing secondary development on the flowchart based on the first code package in the third-party system. That is, the embodiment of the present application further provides a derivation mode, through which modules within the flowchart can be called and the accessing relationships of related data can be converted into code. The code may be provided for users to refer to or integrated into the customer's own software.

[0122] Additionally, the data processing layer may, after generating a first code package, transmit the first code package to the application screen layer so that the application screen layer displays the first code package, thereby enabling a developer to perform online modifications to the first code package in the system provided in the embodiment of the present application. In this scenario, after the application screen layer detects a modification command for the first code package, the user may update the displayed flowchart based on the modifications to the first code package.

[0123] 4. The vision software development system provides an execution screen, making it convenient for the developer to identify key images, shapes, or characters related to the execution process of the vision software through the execution screen.

[0124] Since the flowchart displays only basic processes and does not display background execution information of the vision software, in the embodiments of the present application, the vision software development system further supports displaying background execution information of the flowchart for a set flowchart in order to make it convenient for the developer to understand the execution process of the vision software. In the embodiments of the present application, the execution information of the flowchart indicates intermediate data in the execution process of the flowchart. The execution information of the flowchart is background execution information. Accordingly, in a possible embodiment, the application screen layer of the system illustrated in FIG. 1 is further used to display an execution screen display controller, the execution screen display controller instructs to display an execution screen for the flowchart, the execution screen is intended to display execution information of the flowchart, and the execution information of the flowchart indicates intermediate data in the execution process of the flowchart. In this scenario, the application screen layer displays an execution screen in response to a sixth operation of the execution screen display controller, thereby allowing the user to query intermediate data in the execution process of the flowchart based on the execution screen.

[0125] For example, if a user detects a click operation on the corresponding execution screen display controller after setting up a flowchart, the application screen layer displays a single execution screen and displays execution information of the flowchart on that execution screen. The execution screen may be a single functional partition currently on the main screen. Additionally, the specific content displayed on the execution screen may be information defaulted to the system.

[0126] Alternatively, the specific content displayed on the execution screen may be a display requirement specified in the user's basic business requirements; in this case, the application screen layer is further used to display an execution screen setting controller, which instructs the execution screen setting controller to display an execution screen setting screen, and the execution screen setting screen is used to set the content to be displayed on the execution screen. In this scenario, the application screen layer is further used to display an execution screen setting screen in response to a seventh operation on the execution screen setting controller, and said execution screen setting screen is used for the user to set the information to be displayed on the execution screen and the source of the information to be displayed.

[0127] In one possible embodiment, the execution screen setting screen includes a plurality of execution screen setting sub-controllers, and one of the execution screen setting sub-controllers is provided with a corresponding start option. In this case, the application screen layer is further used to display a content source option in response to an 8th operation regarding the start option of the first execution screen setting sub-controller among the plurality of execution screen setting sub-controllers, and to bind the first execution screen setting sub-controller to one module in the flowchart in response to a 9th operation regarding the content source option. After binding the first execution screen setting sub-controller to one module in the flowchart, execution information corresponding to the first execution screen setting sub-controller may be displayed on the execution screen, and said execution information is derived from the data of the module bound to the first execution screen setting sub-controller.

[0128] That is, the system illustrated in FIG. 1 provides an editable execution screen, making it convenient for the user to design the execution screen of a flowchart according to the requirements of the actual application. Thus, when users create vision software, they can display some key images, shapes, and characters related to the vision software through the execution screen. The execution screen setting sub-controller may include an image controller, a text display box, a parameter setting box, a status light, a button, a table, etc. When setting the execution screen, the information to be displayed on the execution screen is set through this execution screen setting sub-controller, and the information to be displayed is bound to the module data of the module in the flowchart; that is, by indicating the source of the information to be displayed, a single execution screen suitable for business requirements is set.

[0129] In addition, to make it convenient for other users to perform further secondary development on the execution screen after the user has set the execution screen, the system provided in the embodiment of the present application further supports converting the execution screen into basic code, thereby making it convenient for developers to perform further secondary development.

[0130] Accordingly, in one possible embodiment, the data processing layer is further used to derive the program code of the execution screen and form it into a second code package. In this case, the data processing layer is further used to control the application screen layer to display a second code controller corresponding to the second code package, wherein the second code controller is intended to instruct a user to download the second code package, and the second code package can be introduced into a third-party system and, when executed on the third-party system, displays the execution screen.

[0131] Here, the data processing layer can generate a second code package and then store the second code package in a designated location, for example, in a function module layer. Then, when the application screen layer detects a selection operation for the second code controller, it acquires the second code package and downloads the second code package to a specific location, such as a specific location selected by the user, thereby making it convenient for the user to introduce the second code package into a third-party system. After executing the second code package in the third-party system, it displays an execution screen set in the system provided in the embodiment of the present application. Furthermore, the user can perform secondary development of the vision software based on the second code package in the third-party system to generate a new execution screen.

[0132] As can be seen, in the embodiments of the present application, by translating the execution screen into code, a code derivation process based on a Software Development Kit (SDK) for screen development is formed, allowing users to develop other functions based on the process, or to integrate the vision part into their software. That is, by translating the execution screen into code, the opening of the execution screen to users is implemented.

[0133] FIG. 8 is a schematic diagram for deriving the setting process and code of an execution screen according to an embodiment of the present application. The square box at the top of FIG. 8 indicates the set execution screen. As shown in FIG. 8, the execution screen is used to display an image. The image is an image that has undergone circle search processing after being collected by a camera. The camera's connection status is displayed on the execution screen, and the radius of a circle determined by performing a circle search on the image collected by the camera is further displayed on the execution screen. Here, the image displayed on the execution screen is determined by data after the camera module has executed and data after the circle search module has executed. The radius of the circle determined after performing the circle search is determined by data after the circle search module has executed. In addition, the camera connection status is determined by data during the execution process of the camera module. Furthermore, the execution screen may display a first execution or multiple executions (i.e., continuous execution). A first execution indicates executing the corresponding flowchart only once, and multiple executions indicate executing the corresponding flowchart multiple times. The content displayed on the execution screen and the source of the displayed content can all be implemented through the relevant execution screen setting sub-controller of the execution screen setting screen, so we will not explain them individually here. In the dotted square box at the bottom of FIG. 8, code corresponding to the displayed execution screen is indicated, and since the code is displayed in a text format, users can display the execution screen at the top of FIG. 8 in their software through the code, thereby implementing opening the execution screen to the outside.

[0134] 5. The vision software development system supports the registration and legal verification of modules.

[0135] In order to enhance the versatility and expertise of the vision software development system according to the embodiment of the present application, the module data of a large number of modules may be stored in the data processing layer in the embodiment of the present application. When users use the system according to the embodiment of the present application, they simply need to select the modules required for their current work from the large number of modules and load them into the application screen layer. That is, each user can select and register some modules from the large number of modules based on their business requirements, making it convenient to develop flowcharts suitable for their business requirements, and furthermore, can reduce the burden of data storage and processing in the application screen layer of the system.

[0136] Accordingly, in one possible embodiment, the data processing layer is used to store module data for M modules, where M is an integer greater than or equal to N. In this case, the application screen layer is further used to display the module registration controller, and the application screen layer is used to display N module display controllers in response to N modules selected by the user from M modules through the module registration controller. That is, when the system is initialized, the user can select some modules through the corresponding module registration controller and register them to the application screen layer. As a result, the application screen layer does not need to display all modules of the data processing layer, making it convenient to simplify the main screen currently displayed on the application screen layer.

[0137] In addition, to enhance the confidentiality of module data and to prevent malicious users from arbitrarily altering the module data corresponding to the module, the module registered in the application screen layer is a module that has passed the legal verification. That is, the N modules corresponding to the N module display controllers displayed in the application screen layer illustrated in FIG. 1 are modules that have been legally verified in the data processing layer. Here, a legally verified module refers to a corresponding module for which the user possesses usage rights. In this scenario, for each module set in the system's data processing layer, permission rights for each module can be pre-set, and said permission rights indicate which users are allowed to use the corresponding module. Thus, when a user registers a specific module through the above method, the system verifies the user's rights; if the user is not within the permission rights for the module, the system rejects the user's registration of the module.

[0138] FIG. 9 is a schematic diagram of a module registration process according to an embodiment of the present application. As illustrated in FIG. 9, after the system is initialized, if the application screen layer detects that the user intends to register a specific module based on the user's operation in the application screen layer, the application screen layer transmits a registration request to the data scheduling layer. The data scheduling layer receives the registration request (i.e., receives information), verifies the user's authority, and if the verification is successful, adds the module to the list of modules to be registered and transmits the registration success result to the application screen layer, so that the application screen layer displays the module display controller for the module if the registration is successful. Correspondingly, if the verification is unsuccessful, it transmits a registration failure result to the application screen layer, in which case the application screen layer does not display the module display controller for the module. As necessary to explain, the verification process illustrated in FIG. 9 is implemented when registering a module, and alternatively, the verification process can also be implemented during the module loading process illustrated in FIG. 6, so a detailed description is omitted here.

[0139] 6. The vision software development system supports a third party calling a module mounted on this system.

[0140] In an embodiment of the present application, the vision software development system allows customers to call a module mounted on the system with other software, thereby facilitating customers to quickly develop other modules based on the module mounted on the system. Accordingly, in one possible embodiment, the application screen layer is further used to display a call controller for any one module display controller, wherein the call controller instructs that a user allow calling a module corresponding to any one module display controller from a third-party system. In this scenario, the application screen layer is further used to display an interface link of module data of the module corresponding to any one module display controller in response to a first operation on the call controller. The application screen layer is further used to detect a data call request for the interface link transmitted by the third-party system, to acquire module data of the module corresponding to any one module display controller from a data processing layer based on the interface link, and to transmit the acquired module data to the third-party system.

[0141] That is, after a call controller for a module display controller displays, if the application screen layer detects a selection operation for the corresponding call controller, it provides an interface link to the module data corresponding to the module, thereby making it convenient for customers to call the module data of the corresponding module from other software based on the interface link.

[0142] To summarize the above, the embodiments of the present application provide a vision software development system. The application screen layer of the vision software development system is used to display a module addition controller, and the module addition controller is intended to introduce module data of a third-party module into the data processing layer. Thus, the module corresponding to N module display controllers displayed on the application screen layer may include a third-party module. Accordingly, in the embodiments of the present application, the user can introduce a third-party module at any time through the module addition controller according to business requirements, and then display a flowchart set by the user through the application screen layer based on the third-party module. This flowchart is the vision software set by the user, and the vision software development process is completed by executing the flowchart through the data processing layer.

[0143] As can be seen, the vision software development system provided in the embodiment of the present application is a general-purpose open vision software development system. This vision software development system allows users to develop different third-party modules according to different business requirements and to mount the developed third-party modules onto the software development system according to the embodiment of the present application, thereby enabling subsequently developed vision software to better adapt to the individualized requirements of different business tasks. Thus, different types of vision software can be developed within the vision software development system provided in the embodiment of the present application without the need to deploy different vision software development systems for different types of vision software.

[0144] In addition, even if business requirements or user requirements change temporarily, through the vision software development system provided in the embodiment of the present application, the user can temporarily develop a new third-party module and then mount the developed new third-party module to the software development system according to the embodiment of the present application so that the vision software subsequently developed can quickly adapt to the user's latest requirements.

[0145] Based on the functions of the vision software development system according to the above, the embodiments of the present application further provide a vision software development method, wherein the method is applied to the vision software development system, and the vision software development system includes an application screen layer and a data processing layer. Furthermore, as can be seen from the details regarding the system, the functions of the system provided in the embodiments of the present application may specifically include three aspects: module loading, module registration, and flowchart setup. Each of these three aspects is interpreted and explained below through two embodiments. FIG. 10 is a schematic diagram of the module loading and module registration process according to the embodiments of the present application. As illustrated in FIG. 10, the method includes the following steps.

[0146] Step 1001: The application screen layer, in response to a second operation to the module addition controller, acquires module data of a third-party module introduced by the user through the module addition controller and transmits the module data of the introduced third-party module to the data processing layer.

[0147] Step 1002: When the data processing layer verifies that the module data of the introduced third-party module satisfies the reference rule, it saves the module data of the introduced third-party module and returns a message of module loading success to the application screen layer, which indicates that the third-party module has been successfully loaded.

[0148] Step 1003: The application screen layer displays a module registration controller, and the application screen layer displays N module display controllers in response to N modules selected by the user from M modules through the module registration controller, wherein the data processing layer stores module data of M modules, and M is an integer greater than or equal to N.

[0149] After completing the loading of a module and the registration of a module based on the embodiment illustrated in FIG. 10, a flowchart can be set up in the system provided in the embodiment of the present application, thereby enabling the development of vision software. FIG. 11 is a flowchart of a method for setting a flowchart according to an embodiment of the present application, and as illustrated in FIG. 11, the method includes the following steps.

[0150] Step 1101: The application screen layer displays N module display controllers and module add controllers, wherein the N module display controllers correspond to N modules, and the module data of each of the N modules is stored in the data processing layer, and the module data includes the execution logic of the corresponding module, and the application screen layer further displays a module add controller, said module add controller is for introducing module data of a third-party module into the data processing layer, and the N modules include third-party modules, and N is an integer greater than or equal to 1.

[0151] Step 1102: The application screen layer displays a flowchart in response to a first operation on one or more of the N module display controllers, wherein the flowchart displays the execution sequence between modules corresponding to each of the one or more module display controllers.

[0152] Step 1103: The data processing layer, in response to the flowchart displayed on the application screen layer, calls and executes the module data of the module corresponding to each of one or more module display controllers, obtains the data processing result of the flowchart, and returns the data processing result to the application screen layer.

[0153] Based on the method provided in FIGS. 10 and 11, in a possible embodiment, the reference rule includes a design method for the input / output interface of the third-party module and / or a method for encapsulating the module data of the third-party module; wherein the design method for the input / output interface of the third-party module includes a format for the input data and / or output data of the third-party module, and the method for encapsulating the module data of the third-party module indicates a storage format of the module data of the third-party module at the data processing layer, and the storage format includes any one of a dynamic link library, a static link library, and an executable exe file.

[0154] In one possible embodiment, the method further comprises the step of an application screen layer displaying a module configuration file in response to a third operation to a module addition controller, and the module configuration file indicates a reference rule.

[0155] In a possible embodiment, the method comprises the steps of: an application screen layer displaying a module setting screen of a first module corresponding to the first module display controller in response to a fourth operation by a user on a first module display controller among N module display controllers, wherein the module setting screen includes a plurality of module setting controllers, and one of the plurality of module setting controllers is intended to instruct the user to edit parameters during the execution process of the first module; the application screen layer obtaining parameters edited by the user through the module setting controller in response to a fifth operation on any one module setting controller and transmitting the edited parameters to a data processing layer; and the data processing layer updating module data of the first module based on the edited parameters, wherein, if the flowchart includes the first module, the data processing layer updates the flowchart data processing result based on the updated module data of the first module and returns the updated data processing result to the application screen layer.

[0156] In one possible embodiment, where the first module is a third-party module, the module data of the first module introduced by the user through a module addition controller further includes a module setting screen file, wherein the module setting screen file indicates the program code of the module setting screen of the first module; and the module setting screen of the first module displayed on the application screen layer is displayed according to the module setting screen file among the module data of the first module.

[0157] In a possible embodiment, the method further comprises: a step in which a data processing layer generates a first code package that directs the execution logic of each module included in the flowchart and the execution order between each module included in the flowchart based on the flowchart; and a step in which the data processing layer controls an application screen layer to display a first code controller corresponding to the first code package, wherein the first code controller is for instructing a user to download the first code package, and the first code package is capable of being introduced into a third-party system and, when executed in a third-party system, displays the flowchart.

[0158] In one possible embodiment, the method further comprises the step of an application screen layer displaying an execution screen display controller—the execution screen display controller instructing to display an execution screen for a flowchart, the execution screen being for displaying execution information of the flowchart, and the execution information of the flowchart indicating intermediate data during the execution process of the flowchart—; and the step of the application screen layer displaying an execution screen in response to a sixth operation on the execution screen display controller, thereby allowing a user to query intermediate data during the execution of the flowchart based on the execution screen.

[0159] In one possible embodiment, the method comprises the steps of: an application screen layer displaying an execution screen setting controller, wherein the execution screen setting controller instructs to display an execution screen setting screen, and the execution screen setting screen is for setting content displayed on the execution screen; an application screen layer displaying an execution screen setting screen in response to a seventh operation on the execution screen setting controller, wherein the execution screen setting screen includes a plurality of execution screen setting sub-controllers, and one of the execution screen setting sub-controllers is provided with a corresponding start option; and further comprising the steps of an application screen layer displaying a content source option in response to an eighth operation on the start option of a first execution screen setting sub-controller among the plurality of execution screen setting sub-controllers, and binding the first execution screen setting sub-controller to a module in a flowchart in response to a ninth operation on the content source option, wherein the execution information displayed on the execution screen includes data of the module bound to the first execution screen setting sub-controller.

[0160] In a possible embodiment, the method further comprises the step of a data processing layer deriving program code of an execution screen to form a second code package; and the step of a data processing layer controlling an application screen layer to display a second code controller corresponding to the second code package—the second code controller is for instructing a user to download the second code package, the second code package can be introduced into a third-party system, and when the second code package is executed in a third-party system, the execution screen is displayed.

[0161] In one possible embodiment, the data processing layer includes a data scheduling layer and a functional module layer; module data of N modules is stored in the functional module layer; and the step of the data processing layer calling and executing module data of a module corresponding to each of one or more module display controllers in response to a flowchart displayed on an application screen layer to obtain a data processing result of the flowchart includes the step of the data scheduling layer calling and executing module data of a module corresponding to each of one or more module display controllers sequentially from the functional module layer according to the execution order between the modules corresponding to each of the one or more module display controllers in the flowchart, thereby obtaining a data processing result.

[0162] In one possible embodiment, N modules are modules verified as legitimate in the data processing layer, and the modules verified as legitimate are corresponding modules to which the user has usage rights.

[0163] In a possible embodiment, the method comprises the steps of: the application screen layer displaying a call controller for one of the module display controllers, wherein the call controller instructs that a user allow a module corresponding to one of the module display controllers to be called from a third-party system; the application screen layer displaying an interface link of module data of the module corresponding to one of the module display controllers in response to a first operation on the call controller; and the application screen layer further comprising the step of, when it detects a data call request for the interface link transmitted by the third-party system, obtaining module data of the module corresponding to one of the module display controllers from a data processing layer based on the interface link and transmitting the obtained module data to the third-party system.

[0164] The method of implementing any one step of the above-described method can be understood by referring to the interpretation related to the system, and thus the explanation is not repeated here.

[0165] To summarize the above, the embodiments of the present application provide a vision software development method. The method is applied to a vision software development system, and the application screen layer is intended to display a module addition controller, and the module addition controller is intended to introduce module data of a third-party module into the data processing layer. Thus, the module corresponding to N module display controllers displayed on the application screen layer can include a third-party module. Accordingly, in the embodiments of the present application, the user can introduce a third-party module at any time through the module addition controller according to business requirements, and subsequently, display a flowchart set by the user through the application screen layer based on the third-party module, the flowchart being the vision software set by the user, and the vision software development process is completed by executing the flowchart through the data processing layer.

[0166] As can be seen from the above, the vision software development system according to the embodiment of the present application is a general-purpose open vision software development system. The vision software development system allows a user to develop different third-party modules according to different business requirements and to mount the developed third-party modules onto the software development system according to the embodiment of the present application, thereby enabling subsequently developed vision software to better adapt to the individualized requirements of different business. Thus, different types of vision software can be developed within the vision software development system provided in the embodiment of the present application without the need to deploy different vision software development systems to different types of vision software.

[0167] In addition, even if business requirements or user requirements change temporarily, through the vision software development system provided in the embodiment of the present application, the user can temporarily develop a new third-party module and then mount the developed new third-party module to the software development system according to the embodiment of the present application so that the vision software subsequently developed can quickly adapt to the user's latest requirements.

[0168] FIG. 12 is a schematic diagram of the structure of a vision software development device according to an embodiment of the present application, wherein the device is placed in a vision software development system, and the vision software development system includes an application screen layer and a data processing layer. As shown in FIG. 12, the vision software development device (1200) includes a display module (1201) and an execution module (1202).

[0169] The display module (1201) is used to control the application screen layer to display N module display controllers corresponding to each of the N modules, wherein the module data of each of the N modules is stored in the data processing layer, and the module data includes the execution logic of the corresponding module, and a module additional controller is further displayed on the application screen layer, and the module additional controller is used to introduce module data of a third-party module into the data processing layer, and the N modules include third-party modules, and N is an integer greater than or equal to 1. The display module (1201) is used so that the application screen layer user NIt is further used to control the display of a flowchart in response to a first operation on one or more of the module display controllers, wherein the flowchart indicates the execution order between modules corresponding to each of the one or more of the module display controllers. The execution module (1202) is used to control the data processing layer to call and execute module data of the module corresponding to each of the one or more of the module display controllers in response to the flowchart displayed on the application screen layer, acquire the data processing result of the flowchart, and return the data processing result to the application screen layer.

[0170] In a possible embodiment, the device further comprises: an acquisition module for controlling an application screen layer to acquire module data of a third-party module introduced by a user through a module addition controller in response to a second operation to a module addition controller, and to transmit the module data of the introduced third-party module to a data processing layer; and a verification module for controlling the data processing layer to store the module data of the introduced third-party module and return a message of module loading success to the application screen layer when the data processing layer verifies that the module data of the introduced third-party module satisfies a reference rule, wherein the message of module loading success indicates that the third-party module has been successfully loaded.

[0171] In one possible embodiment, the reference rule includes a design method for the input / output interface of the third-party module and / or a method for encapsulating the module data of the third-party module; wherein the design method for the input / output interface of the third-party module includes a data input and / or data output format of the third-party module, and the method for encapsulating the module data of the third-party module indicates a storage format of the module data of the third-party module at the data processing layer, and the storage format may include any one of a dynamic link library, a static link library, or an executable exe file.

[0172] In one possible embodiment, the display module is further used to control the application screen layer to display a module configuration file in response to a third operation to the module addition controller, wherein the module configuration file indicates a reference rule.

[0173] In a possible embodiment, the display module is further used to control the application screen layer to display a module setting screen of a first module corresponding to the first module display controller in response to a fourth operation by a user on a first module display controller among N module display controllers, wherein the module setting screen includes a plurality of module setting controllers, and one of the module setting controllers instructs the user to edit parameters during the execution process of the first module. The device further includes an acquisition module for controlling the application screen layer to acquire parameters edited by the user through one of the module setting controllers in response to a fifth operation on one of the module setting controllers and to transmit the edited parameters to a data processing layer; and an update module for controlling the data processing layer to update the module data of the first module based on the edited parameters, wherein, when the first module is included in the flowchart, the data processing layer updates the data processing result of the flowchart based on the updated module data of the first module and returns the updated data processing result to the application screen layer.

[0174] In one possible embodiment, where the first module is a third-party module, the module data of the first module introduced by the user through a module addition controller further includes a module setting screen file, wherein the module setting screen file indicates the program code of the module setting screen of the first module. The module setting screen of the first module displayed on the application screen layer is displayed according to the module setting screen file among the module data of the first module.

[0175] In a possible embodiment, the device further includes a generation module for controlling a data processing layer to generate a first code package based on a flowchart, wherein the first code package indicates the execution logic of each module included in the flowchart and the execution order between each included module. A display module is further used to control the data processing layer to control an application screen layer to display a first code controller corresponding to the first code package, wherein the first code controller instructs a user to download the first code package, and the first code package is capable of being introduced into a third-party system and, when executed in the third-party system, displays the flowchart.

[0176] In one possible embodiment, the display module is further used to control the application screen layer to display the execution screen display controller, wherein the execution screen display controller is instructed to display the execution screen for the flowchart, and the execution screen is intended to display execution information of the flowchart indicating intermediate data in the execution process of the flowchart. The display module is further used to control the application screen layer to display the execution screen in response to a sixth operation on the execution screen display controller, thereby enabling the user to query intermediate data in the execution process of the flowchart based on the execution screen.

[0177] In a possible embodiment, the display module is further used to control the application screen layer to display an execution screen setting controller, wherein the execution screen setting controller instructs the display of an execution screen setting screen, and the execution screen setting screen is for setting content displayed on the execution screen. The display module is further used to control the application screen layer to display an execution screen setting screen in response to a seventh operation on the execution screen setting controller, wherein the execution screen setting screen includes a plurality of execution screen setting sub-controllers, and any one of the plurality of execution screen setting sub-controllers is provided with a corresponding start option. The display module is further used to control the application screen layer to display a content source option in response to an eighth operation on the start option of a first execution screen setting sub-controller among the plurality of execution screen setting sub-controllers, and to bind the first execution screen setting sub-controller to a module in the flowchart in response to a ninth operation on the content source option; wherein the execution information displayed on the execution screen includes data of the module bound to the first execution screen setting sub-controller.

[0178] In one possible embodiment, the device further includes an extraction module for controlling the data processing layer to extract program code of an execution screen into a second code package. The display module is further used to control the data processing layer to control the application screen layer to display a second code controller corresponding to the second code package, wherein the second code controller is for instructing a user to download the second code package, and the second code package can be introduced into a third-party system and, when executed on the third-party system, displays the execution screen.

[0179] In one possible embodiment, the data processing layer includes a data scheduling layer and a functional module layer; module data of N modules is stored in the functional module layer; and the execution module is used to control the data scheduling layer to sequentially call and execute module data of modules corresponding to one or more module display controllers from the functional module layer according to the execution order between modules corresponding to each of one or more module display controllers in the flowchart, thereby obtaining a data processing result.

[0180] In one possible embodiment, the display module is further used to control the application screen layer to display a module registration controller and the application screen layer to display N module display controllers in response to N modules selected by the user from M modules through the module registration controller, wherein module data of M modules is stored in the data processing layer and M is an integer greater than or equal to N.

[0181] In a possible implementation method, N modules are modules legally verified at the data processing layer, and the legally verified modules are corresponding modules to which the user has usage rights.

[0182] In a possible embodiment, the display module is further used to control the application screen layer to display a call controller for any one module display controller, wherein the call controller instructs the user to allow calling a module corresponding to any one module display controller from a third-party system. The display module is further used to control the application screen layer to display an interface link of module data of a module corresponding to any one module display controller in response to a first operation to the call controller. The device further includes an acquisition module for controlling the application screen layer to acquire module data of a module corresponding to any one module display controller from a data processing layer based on a screen link and to transmit the acquired module data to a third-party system when the application screen layer detects a data call request for a screen link transmitted by a third-party system.

[0183] To summarize the above, the embodiment of the present application provides a vision software development device. An application screen layer of a vision software development system placed in the device is used to display a display module additional controller, and the module additional controller is used to introduce module data of a third-party module into a data processing layer. Thus, the module corresponding to N module display controllers displayed on the application screen layer may include a third-party module. Accordingly, in the embodiment of the present application, the user may introduce a third-party module at any time through the module additional controller according to business requirements, and subsequently, display a flowchart set by the user through the application screen layer based on the third-party module, wherein the flowchart is vision software set by the user, and the vision software development process is completed by executing the flowchart through the data processing layer.

[0184] As can be seen from the above, the vision software development system provided in the embodiment of the present application is a general-purpose open vision software development system. This vision software development system allows users to develop different third-party modules according to different business requirements and to mount the developed third-party modules onto the software development system according to the embodiment of the present application, thereby enabling subsequently developed vision software to better adapt to the individualized requirements of different business tasks. Thus, different types of vision software can be developed within the vision software development system provided in the embodiment of the present application without the need to deploy different vision software development systems for different types of vision software.

[0185] In addition, even if business requirements or user requirements change temporarily, through the vision software development system provided in the embodiment of the present application, the user can temporarily develop a new third-party module and then mount the developed new third-party module to the software development system according to the embodiment of the present application so that the vision software subsequently developed can quickly adapt to the user's latest requirements.

[0186] It is necessary to explain that when the vision software development device according to the above embodiment develops vision software, although it has been described by example according to the classification of each functional module, in actual applications, the functions can be completed by distributing them to different functional modules according to requirements; that is, the internal structure of the device can be divided into different functional modules to complete all or part of the aforementioned functions. Furthermore, the vision software development device and the vision software development method according to the above embodiment correspond to the same technical concept, and details regarding the specific implementation process of both are to be referred to in the method embodiment, and are not described in further detail here.

[0187] As would be understood by those skilled in the art to which this application pertains, all or part of the steps of the above-mentioned embodiments may be completed through hardware, or the relevant hardware may be commanded to be completed through a program, and the program may be stored on a computer-readable storage medium, and the aforementioned storage medium may be read-only memory, a magnetic disk, or an optical disk, etc.

[0188] In another aspect, the present application provides a vision software development device, wherein the device comprises a processor; a memory for storing instructions executable by the processor, the processor being configured to execute any one step of the vision software development method.

[0189] In another aspect, the present application provides a computer-readable storage medium, wherein a command is stored in the computer-readable storage medium, and when the command is executed by a processor, it implements any one step of the vision software development method.

[0190] In another aspect, the present application provides a computer program product comprising instructions, wherein, when the computer program is executed on a computer, the computer executes any one step of the vision software development method.

[0191] The foregoing is merely a relatively preferred embodiment of the present application and is not intended to limit the embodiments of the present application. All modifications, equivalent substitutions, and improvements made within the scope that does not deviate from the technical spirit and principles of the embodiments of the present application are included within the scope of protection of the present application.

Claims

Claim 1 A vision software development system comprises an application screen layer and a data processing layer; the application screen layer is used to display N modules and display controllers for each of the N modules, wherein module data for each of the N modules is stored in the data processing layer, and the module data includes the execution logic of the corresponding module; the application screen layer is further used to display a module addition controller for introducing module data of a third-party module into the data processing layer, wherein the N modules include the third-party module, and N is an integer greater than or equal to 1. A vision software development system, wherein the above application screen layer is further used to display a flowchart indicating the execution order between corresponding modules for each of the one or more module display controllers in response to a first operation of one or more module display controllers of the N module display controllers by a user; and the above data processing layer is used to call and execute module data of a corresponding module for each of the one or more module display controllers in response to the flowchart displayed on the application screen layer, acquire the data processing result of the flowchart, and return the data processing result to the application screen layer. Claim 2 A vision software development system according to claim 1, wherein the application screen layer is used to acquire module data of a third-party module introduced by a user through the module addition controller in response to a second operation of the module addition controller and to transmit the module data of the introduced third-party module to the data processing layer; and the data processing layer is further used to store the module data of the introduced third-party module and return a module loading success message indicating that the third-party module has been successfully loaded to the application screen layer when it is verified that the module data of the introduced third-party module satisfies a reference rule. Claim 3 In paragraph 2, the reference rule includes at least one of a design method for an input / output interface of a third-party module and a method of encapsulating module data of a third-party module; wherein, the design method for an input / output interface of a third-party module includes at least one of a data input format and a data output format of the third-party module, and the method of encapsulating module data of the third-party module indicates a storage format of the module data of the third-party module in the data processing layer, and the storage format includes any one of a dynamic link library, a static link library, and an executable exe file, a vision software development system. Claim 4 A vision software development system, wherein, in paragraph 2 or 3, the application screen layer is further used to display a module configuration file indicating the reference rule in response to a third operation of the module addition controller. Claim 5 In claim 1, the application screen layer is further used to display a module setting screen of a first module corresponding to the first module display controller in response to a fourth operation of the user on a first module display controller among the N module display controllers, wherein the module setting screen includes a plurality of module setting controllers, and any one of the plurality of module setting controllers is for instructing the user to edit parameters during the execution of the first module; the application screen layer is further used to obtain parameters edited by the user through any one module setting controller in response to a fifth operation on any one module setting controller and to transmit the edited parameters to the data processing layer; the data processing layer is further used to update the module data of the first module based on the edited parameters, wherein, if the flowchart includes the first module, the data processing layer is further used to update the data processing result of the flowchart based on the updated module data of the first module and to return the updated data processing result to the application screen layer, a vision software development system. Claim 6 A vision software development system according to claim 5, wherein, in the case where the first module is a third-party module, the module data of the first module introduced by the user through the module addition controller further includes a module setting screen file, wherein the module setting screen file indicates the program code of the module setting screen of the first module; and the module setting screen of the first module displayed on the application screen layer is displayed according to the module setting screen file among the module data of the first module. Claim 7 In claim 1, the data processing layer is further used to generate a first code package that directs the execution logic of each module included in the flowchart and the execution order between each module included, based on the flowchart; the data processing layer is further used to control the application screen layer to display a first code controller corresponding to the first code package, wherein the first code controller is for directing the user to download the first code package, and the first code package is capable of being introduced into a third-party system and displays the flowchart after being executed in the third-party system, a vision software development system. Claim 8 A vision software development system according to claim 1, wherein the application screen layer is further used to display an execution screen display controller—the execution screen display controller directs to display an execution screen for the flowchart, and the execution screen is for displaying execution information of the flowchart directing intermediate data in the execution process of the flowchart—; and the application screen layer is further used to display the execution screen in response to a sixth operation on the execution screen display controller, thereby enabling the user to query intermediate data in the execution process of the flowchart based on the execution screen. Claim 9 In claim 8, the application screen layer is further used to display an execution screen setting controller—the execution screen setting controller directs to display an execution screen setting screen, and the execution screen setting screen is for setting content displayed on the execution screen—; the application screen layer is further used to display the execution screen setting screen in response to a seventh operation on the execution screen setting controller—the execution screen setting screen includes a plurality of execution screen setting sub-controllers, and one of the execution screen setting sub-controllers is provided with a corresponding start option—; the application screen layer is further used to display a content source option in response to an eighth operation on the start option of a first execution screen setting sub-controller among the plurality of execution screen setting sub-controllers, and to bind the first execution screen setting sub-controller to one module of the flowchart in response to a ninth operation on the content source option, wherein the execution information displayed on the execution screen includes data of the module bound to the first execution screen setting sub-controller, a vision software development system. Claim 10 In claim 8, the data processing layer is further used to derive the program code of the execution screen and form a second code package; the data processing layer is further used to control the application screen layer to display a second code controller corresponding to the second code package, wherein the second code controller is for instructing the user to download the second code package, and the second code package can be introduced into a third-party system and displays the execution screen when executed in the third-party system, a vision software development system. Claim 11 A vision software development system according to any one of claims 1 to 3 and 5 to 10, wherein the data processing layer includes a data scheduling layer and a functional module layer; the module data of the N modules is stored in the functional module layer; and the data scheduling layer is used to obtain the data processing result by sequentially calling and executing the module data of the corresponding module from the functional module layer according to the execution order between the modules corresponding to each of the one or more module display controllers in the flowchart. Claim 12 A vision software development system according to claim 1, wherein the data processing layer is used to store module data of M modules - said M is an integer greater than or equal to N -; said application screen layer is further used to display a module registration controller, and said application screen layer is used to display N module display controllers in response to the N modules selected by the user from the M modules through the module registration controller. Claim 13 A vision software development system according to claim 12, wherein the N modules are modules legally verified in the data processing layer, and the legally verified modules are corresponding modules to which the user has usage rights. Claim 14 A vision software development system according to claim 1, wherein the application screen layer is further used to display a call controller for any one module display controller, wherein the call controller indicates that a user may call a module corresponding to any one module display controller from a third-party system; wherein the application screen layer is further used to display an interface link of module data of a module corresponding to any one module display controller in response to a first operation on the call controller; and wherein the application screen layer is further used to obtain module data of a module corresponding to any one module display controller from a data processing layer based on the interface link and transmit the obtained module data to the third-party system when the third-party system detects a data call request of the interface link transmitted by the third-party system. Claim 15 A vision software development method applied to a vision software development system comprising an application screen layer and a data processing layer, wherein the application screen layer displays N module display controllers corresponding to N modules, wherein module data for each of the N modules is stored in the data processing layer and the module data includes execution logic for the corresponding module; wherein the application screen layer further displays a module addition controller for introducing module data of a third-party module into the data processing layer, and the N modules include the third-party module, and N is an integer greater than or equal to 1; wherein the application screen layer displays a flowchart indicating an execution order between modules corresponding to each of the one or more module display controllers in response to a first operation by a user on one or more of the N module display controllers; and wherein the data processing layer calls and executes module data of the module corresponding to each of the one or more module display controllers in response to the flowchart displayed on the application screen layer, obtains a data processing result of the flowchart, and returns the data processing result to the application screen layer. Claim 16 A method for developing vision software according to claim 15, further comprising: a step in which the application screen layer, in response to a second operation to the module addition controller, acquires module data of a third-party module introduced by a user through the module addition controller and transmits the module data of the introduced third-party module to the data processing layer; and a step in which, when the data processing layer detects that the module data of the introduced third-party module satisfies a reference rule, the module data of the introduced third-party module is stored and a module loading success message indicating that the third-party module has been successfully loaded is returned to the application screen layer. Claim 17 A vision software development method according to claim 16, wherein the reference rule comprises at least one of a design method for an input / output interface of a third-party module and a method of encapsulating module data of a third-party module; wherein the design method for an input / output interface of a third-party module comprises at least one of a data input format and a data output format of the third-party module, and the method of encapsulating module data of the third-party module indicates a storage format of the module data of the third-party module in the data processing layer, and the storage format comprises any one of a dynamic link library, a static link library, and an executable exe file. Claim 18 A method for developing vision software according to claim 16 or 17, further comprising the step of the application screen layer displaying a module configuration file indicating the reference rule in response to a third operation of the module addition controller. Claim 19 A method for developing vision software according to claim 15, wherein the application screen layer displays a module setting screen of a first module corresponding to the first module display controller in response to a fourth operation of the user on a first module display controller among the N module display controllers, wherein the module setting screen includes a plurality of module setting controllers, and one of the plurality of module setting controllers is intended to instruct the user to edit parameters during the execution of the first module; wherein the application screen layer obtains parameters edited by the user through the module setting controller in response to a fifth operation of the one module setting controller and transmits the edited parameters to the data processing layer; and further comprises the step of the data processing layer updating the module data of the first module based on the edited parameters, wherein, if the flowchart includes the first module, the data processing layer updates the data processing result of the flowchart based on the updated module data of the first module and returns the updated data processing result to the application screen layer. Claim 20 A method for developing vision software according to claim 19, wherein, when the first module is a third-party module, the module data of the first module introduced by the user through the module addition controller further includes a module setting screen file, wherein the module setting screen file indicates the program code of the module setting screen of the first module; and the module setting screen of the first module displayed on the application screen layer is displayed according to the module setting screen file among the module data of the first module. Claim 21 A method for developing vision software according to claim 15, further comprising: a step in which the data processing layer generates a first code package based on the flowchart, which directs the execution logic of each module included in the flowchart and the execution order between each module included; and a step in which the data processing layer controls the application screen layer to display a first code controller corresponding to the first code package, wherein the first code controller is for directing the user to download the first code package, and the first code package can be introduced into a third-party system and the flowchart is displayed after execution in the third-party system. Claim 22 A method for developing vision software according to claim 15, further comprising the step of the application screen layer displaying an execution screen display controller—wherein the execution screen display controller instructs to display an execution screen for the flowchart, and the execution screen is intended to display execution information of the flowchart that instructs intermediate data in the execution process of the flowchart—; and further comprising the step of the application screen layer displaying the execution screen in response to a sixth operation on the execution screen display controller, thereby enabling the user to query intermediate data in the execution process of the flowchart based on the execution screen. Claim 23 In claim 22, the method further comprises the steps of: the application screen layer displaying an execution screen setting controller, wherein the execution screen setting controller instructs to display an execution screen setting screen, and the execution screen setting screen is for setting content displayed on the execution screen; the application screen layer displaying the execution screen setting screen in response to a seventh operation on the execution screen setting controller, wherein the execution screen setting screen includes a plurality of execution screen setting sub-controllers and is provided with a start option corresponding to any one of the plurality of execution screen setting sub-controllers; and the application screen layer displaying a content source option in response to an eighth operation on the start option of a first execution screen setting sub-controller among the plurality of execution screen setting sub-controllers, and binding the first execution screen setting sub-controller to a module in the flowchart in response to a ninth operation on the content source option, wherein the execution information displayed on the execution screen includes data of the module bound to the first execution screen setting sub-controller. Claim 24 A method for developing vision software according to claim 22, further comprising: a step in which the data processing layer derives program code of the execution screen and forms it into a second code package; and a step in which the data processing layer controls the application screen layer to display a second code controller corresponding to the second code package, wherein the second code controller is for instructing the user to download the second code package, the second code package can be introduced into a third-party system, and when executed in the third-party system, the execution screen is displayed. Claim 25 A method for developing vision software, wherein in any one of claims 15 to 17 and 19 to 24, the data processing layer includes a data scheduling layer and a functional module layer; the functional module layer stores module data of the N modules; and the step of the data processing layer calling and executing module data of a module corresponding to each of the one or a plurality of module display controllers in response to the flowchart displayed on the application screen layer to obtain the data processing result of the flowchart includes the step of the data scheduling layer calling and executing module data of a module corresponding to each of the one or a plurality of module display controllers in sequence from the functional module layer according to the execution order between the modules corresponding to each of the one or a plurality of module display controllers in the flowchart to obtain the data processing result. Claim 26 A method for developing vision software according to claim 15, wherein the application screen layer displays a module registration controller, and the application screen layer further includes the step of displaying the N module display controller in response to the N modules selected by the user from M modules through the module registration controller, wherein module data of the M modules is stored in the data processing layer, and M is a positive integer greater than or equal to N. Claim 27 A method for developing vision software according to claim 26, wherein the N modules are modules legally verified in the data processing layer, and the legally verified modules are corresponding modules to which the user has usage rights. Claim 28 A method for developing vision software according to claim 15, further comprising: a step in which the application screen layer displays a call controller for any one module display controller, wherein the call controller instructs that a user allow a module corresponding to any one module display controller to be called from a third-party system; a step in which the application screen layer displays an interface link of module data of a module corresponding to any one module display controller in response to a 10th operation on the call controller; and a step in which, when the application screen layer verifies a data call request of the interface link transmitted by the third-party system, the application screen layer obtains module data of a module corresponding to any one module display controller from the data processing layer based on the interface link and transmits the obtained module data to the third-party system. Claim 29 A vision software development device deployed in a vision software development system comprising an application screen layer and a data processing layer comprises a display module and an execution module, wherein the display module is used to control the application screen layer to display N module display controllers corresponding to each of N modules; - module data for each of the N modules is stored in the data processing layer, and the module data includes the execution logic of the corresponding module, and a module additional controller is further displayed on the application screen layer, and the module additional controller is used to introduce module data of a third-party module into the data processing layer, and the N modules include the third-party module, and N is an integer greater than or equal to 1 -; the display module is further used to control the application screen layer to display a flowchart indicating the execution order between corresponding modules for each of the one or more module display controllers in response to a first operation by a user on one or more of the N module display controllers; A vision software development device, wherein the execution module is used to control the data processing layer to call and execute module data of a module corresponding to each of the one or more module display controllers in response to the flowchart displayed on the application screen layer, acquire the data processing result of the flowchart, and return the data processing result to the application screen layer. Claim 30 A vision software development device according to claim 29, further comprising: an acquisition module for controlling the application screen layer to acquire module data of a third-party module introduced by a user through the module addition controller in response to a second operation of the module addition controller, and to transmit the module data of the introduced third-party module to the data processing layer; and a verification module for controlling the data processing layer to store the module data of the introduced third-party module and to return a module loading success message indicating that the third-party module has been successfully loaded to the application screen layer when the data processing layer verifies that the module data of the introduced third-party module satisfies a reference rule. Claim 31 In paragraph 30, the above reference rule includes at least one of a design method for an input / output interface of a third-party module and a method of encapsulating module data of a third-party module; wherein, the design method for an input / output interface of a third-party module includes at least one of a data input format and a data output format of the third-party module, and the method of encapsulating module data of the third-party module indicates a storage format of the module data of the third-party module in the data processing layer, and the storage format includes any one of a dynamic link library, a static link library, and an executable exe file, a vision software development device. Claim 32 A vision software development device, wherein, in claim 30 or 31, the display module is further used to control the application screen layer to display a module configuration file indicating the reference rule in response to a third operation to the module additional controller. Claim 33 In claim 29, the display module is further used to control the application screen layer to display a module setting screen of a first module corresponding to the first module display controller in response to a fourth operation of the user on the first module display controller among the N module display controllers, wherein the module setting screen includes a plurality of module setting controllers, and any one of the plurality of module setting controllers is for instructing the user to edit parameters during the execution of the first module; the device comprises an acquisition module for controlling the application screen layer to acquire parameters edited by the user through any one module setting controller in response to a fifth operation on any one module setting controller, and to transmit the edited parameters to the data processing layer; A vision software development device further comprising an update module for controlling the data processing layer to update the module data of the first module based on the edited parameters, wherein, when the first module is included in the flowchart, the data processing layer updates the data processing result of the flowchart based on the updated module data of the first module and returns the updated data processing result to the application screen layer. Claim 34 A vision software development device according to claim 33, wherein, when the first module is a third-party module, the module data of the first module introduced by the user through the module addition controller further includes a module setting screen file that directs the program code of the module setting screen of the first module; and the module setting screen of the first module displayed on the application screen layer is displayed according to the module setting screen file among the module data of the first module. Claim 35 In claim 29, the vision software development device further comprises a generation module for controlling the data processing layer to generate a first code package that directs the execution logic of each module included in the flowchart and the execution order between each included module based on the flowchart; the display module is further used to control the data processing layer to control the application screen layer to display a first code controller that directs the user corresponding to the first code package to download the first code package, the first code package is capable of being introduced into a third-party system and displays the flowchart when executed in the third-party system. Claim 36 A vision software development device according to claim 29, wherein the display module is further used to control the application screen layer to display an execution screen display controller—the execution screen display controller instructs to display an execution screen for the flowchart, the execution screen is for displaying execution information of the flowchart, and the execution information of the flowchart instructs intermediate data in the execution process of the flowchart—; and the display module is further used to control the application screen layer to display the execution screen in response to a sixth operation on the execution screen display controller, thereby enabling the user to query intermediate data in the execution process of the flowchart based on the execution screen. Claim 37 In paragraph 36, the display module is further used to control the application screen layer to display an execution screen setting controller—the execution screen setting controller directs the display of an execution screen setting screen, and the execution screen setting screen is for setting content displayed on the execution screen—; the display module is further used to control the application screen layer to display the execution screen setting screen in response to a seventh operation on the execution screen setting controller—the execution screen setting screen includes a plurality of execution screen setting sub-controllers and is provided with a start option corresponding to any one of the plurality of execution screen setting sub-controllers—; the display module is further used to control the application screen layer to display a content source option in response to an eighth operation on a start option of a first execution screen setting sub-controller among the plurality of execution screen setting sub-controllers, and to bind the first execution screen setting sub-controller to one module in the flowchart in response to a ninth operation on the content source option; Herein, the execution information displayed on the execution screen includes data of a module bound to the first execution screen setting sub-controller, a vision software development device. Claim 38 A vision software development device according to claim 36, further comprising a derivation module for controlling the data processing layer to derive the program code of the execution screen and make it a second code package; wherein the display module is further used to control the data processing layer to control the application screen layer to display a second code controller corresponding to the second code package, the second code controller is for instructing the user to download the second code package, the second code package is capable of being introduced into a third-party system and displays the execution screen when executed in the third-party system. Claim 39 A vision software development device according to any one of claims 29 to 31 and 33 to 38, wherein the data processing layer includes a data scheduling layer and a function module layer; the function module layer stores module data of the N modules; and the execution module is used to control the data scheduling layer to sequentially call and execute the module data of the modules corresponding to each of the one or multiple module display controllers from the function module layer according to the execution order between the modules corresponding to each of the one or multiple module display controllers in the flowchart, thereby obtaining the data processing result. Claim 40 A vision software development device according to claim 29, wherein the display module is further used to control the application screen layer to display a module registration controller and the application screen layer to display the N module display controllers in response to the N modules selected by the user from M modules through the module registration controller, wherein the module data of the M modules is stored in the data processing layer and M is an integer greater than or equal to N. Claim 41 A vision software development device according to claim 40, wherein the N modules are modules legally verified in the data processing layer, and the legally verified modules are corresponding modules to which the user has usage rights. Claim 42 In claim 29, the display module is used to control the application screen layer to display a call controller for any one module display controller, wherein the call controller directs that a user may call a module corresponding to any one module display controller from a third-party system; the display module is further used to control the application screen layer to display an interface link of module data of a module corresponding to any one module display controller in response to a first operation on the call controller; and the device further comprises an acquisition module for controlling the application screen layer to acquire module data of a module corresponding to any one module display controller from a data processing layer based on the interface link and to transmit the acquired module data to the third-party system when the application screen layer detects a data call request of the interface link transmitted by the third-party system. Claim 43 A vision software development device comprising: a processor; a memory for storing instructions executable by the processor, wherein the processor is configured to execute a step of a method according to any one of claims 15 to 17, 19 to 24, and 26 to 28. Claim 44 A computer-readable storage medium, wherein a command is stored in the computer-readable storage medium, and when the command is executed by a processor, the step of a method according to any one of claims 15 to 17, 19 to 24, and 26 to 28 is implemented. Claim 45 A computer program stored on a computer-readable storage medium and comprising instructions, wherein when the computer program is executed on a computer, the computer executes a step of the method according to any one of claims 15 to 17, 19 to 24, and 26 to 28.

Citation Information

Patent Citations

  • User terminal apparatus and control method of user terminal apparatus, image forming apparatus and control method of image forming apparatus

    KR1020130111279A

  • GUI modeling of knowledge base in a modeling environment

    US20080126932A1