An intelligent interactive system for PLC graphical programming

By introducing standard instruction connection library modules, drag-and-drop programming modules and PLC project real-time management and control modules into the PLC programming interactive system, the shortcomings of existing systems for complex programming functions are solved, efficient programming support for complex PLC programs is achieved, and the capabilities of industrial Internet of Things programming are improved.

CN119148613BActive Publication Date: 2025-03-04XIAN AEROSPACE AUTOMATION
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411638613.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-11-18
Publication Date
2025-03-04
Estimated Expiration
2044-11-18

AI Technical Summary

Technical Problem

The existing PLC programming interactive systems lack support for complex programming functions and are difficult to support automated control applications in real industrial scenarios.

Method used

It provides an intelligent interactive system for PLC graphical programming, including standard instruction connection library module, drag-and-drop programming module and PLC project real-time management and control module. The drag-and-drop programming module supports intelligent recursive programming of graphics block components, including recursive insertion and deletion of block components, as well as intelligent merge, split, search and replacement functions.

Benefits of technology

It significantly improves the programming support capabilities for complex PLC programs, simplifies the construction process of complex control logic, improves programming efficiency and accuracy, reduces technical thresholds and maintenance costs, and greatly expands the scale and application scope of industrial Internet of Things programming.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119148613B_ABST
    Figure CN119148613B_ABST
Patent Text Reader

Abstract

The present application provides an intelligent interactive system for PLC graphical programming, which relates to the technical field of PLC graphical programming interaction. The system integrates a standard instruction connection library module, a drag-and-drop programming module, and a PLC project real-time control module, aiming to greatly improve the convenience, flexibility and efficiency of PLC programming. The drag-and-drop programming module includes intelligent recursive programming of graphic block elements, and the intelligent recursive programming of graphic block elements includes recursive insertion of block elements and recursive deletion of block elements. The drag-and-drop programming module also includes: a conditional jump function based on network labels. The system of the present application not only optimizes the drag and drop and engineering management functions of ladder diagram elements, but also introduces core function block recursion and intelligent label jump mechanisms. Through these innovative functions, the present application significantly improves the programming support capabilities for complex PLC programs and greatly expands the scale and application scope of industrial Internet of Things programming.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of PLC graphical programming interaction, and in particular to an intelligent interactive system for PLC graphical programming. Background Art

[0002] PLC is a digital computing controller for automation control that is well known and widely used by engineering and technical personnel. In PLC, a graphically edited ladder diagram is used. In addition to the hardware controller, the use of PLC also requires an embedded PLC user program, that is, each PLC has its own corresponding editor. In addition to the main basic connection elements being consistent with the international standard IEC61131-3, the methods of use are different. Therefore, in order to be suitable for domestic PLCs, a corresponding editor needs to be developed.

[0003] At present, the programming experience of domestic PLC software is still button + focus type, and it does not support functions such as drag and drop and automatic wiring, nor can it be operated across platforms. In addition, the ladder diagram of codesys programming software supports drag-and-drop programming, but its placement area is extremely small and difficult to place; parallel structures are specially represented by parallel contacts, increasing the number of connection elements, such as "normally open contacts" only support series connection, and "parallel normally open contacts" only support parallel connection, and only one normally open contact requires two connection elements; the Auto Station of INVT PLC supports dragging from the instruction tree to the workspace, but does not support dragging within the workspace, and automatic wiring cannot be achieved after deleting components.

[0004] The existing patent 202110842732.5 is named as a graphical programming interactive system for compiled PLC. On this basis, the operation is optimized. Compared with the button + focus programming method, the drag-and-drop programming method is more convenient to use and greatly improves the development efficiency of engineers. However, although this solution realizes the basic ladder diagram interaction function, it lacks support for complex programming functions and is difficult to support automation control applications in real industrial scenarios. Summary of the invention

[0005] In order to solve the problem that the existing PLC programming interaction system lacks support for complex programming functions and is difficult to support automation control applications in real industrial scenarios, this application provides an intelligent interactive system for PLC graphical programming, including: a standard instruction connection library module, a drag-and-drop programming module, and a PLC project real-time control module;

[0006] The standard instruction connection library module is used to store a series of standardized instruction connection components;

[0007] The drag-and-drop programming module is used to drag fixed graphic elements and set parameters for graphical programming according to the user's selection of fixed graphic elements to obtain a graphical program;

[0008] The drag-and-drop programming module includes intelligent recursive programming of graphic block elements: the intelligent recursive programming of graphic block elements includes recursive insertion of block elements and recursive deletion of block elements;

[0009] The recursive insertion of the block element includes: in the drag-and-drop programming module, a new block element can be added to an input end of the block element, the original variable element connected to the input end is replaced by the new block element, and the first output end of the new block element will be automatically connected to the selected input end, intelligently forming a chain element call;

[0010] The recursive deletion of the block element includes: deleting one of the block elements in the drag-and-drop programming module, and when the input of the block element is associated with the output of another block element, the block element associated with it is also deleted, and the block element associated with it is recursively deleted;

[0011] The PLC project real-time control module is used to provide real-time monitoring and management functions for the entire life cycle of the PLC project.

[0012] In a feasible implementation, the drag-and-drop programming module further includes: intelligent merging of block elements and intelligent splitting of block elements;

[0013] The intelligent merging of the block elements is used to automatically generate a new composite block element containing all the selected functions of the multiple block elements according to the logical relationship and input and output ports of the multiple block elements in drag-and-drop programming when the functions of the multiple block elements can be merged into a more complex block element;

[0014] The intelligent splitting of the block elements is used to select the block elements that need to be split and specify splitting points or splitting conditions. Based on this information and the internal logic of the block elements, the selected block elements are automatically split into multiple smaller block elements.

[0015] In a feasible implementation, the drag-and-drop programming module further includes: intelligent search of block elements and intelligent replacement of block elements;

[0016] The intelligent search of the block components is used to quickly search and highlight the block components that meet the conditions in the entire program by entering keywords or selecting specific search conditions when a specific block component or a block component with a specific function needs to be found;

[0017] The intelligent replacement of the block elements is used to select the block element to be replaced and specify the replacement target block element when a certain block element needs to be replaced with another block element with the same or similar function. According to the input and output ports of the block element, the selected block element is automatically replaced with the specified target block element, while keeping the original connection relationship and input and output ports unchanged.

[0018] In a feasible implementation, the drag-and-drop programming module further includes: a conditional jump function based on a network label;

[0019] The network label refers to a user-defined label that can be added to the network during programming. The network label corresponds to the network program one by one, and the network label is used to indicate the location of the network program;

[0020] The jump element refers to the process of adding an element at the end of the network to jump during programming;

[0021] The conditional jump function based on the network label is used for, when the program runs to the jump element, the program will continue to run from the network program corresponding to the network label set by the jump element.

[0022] In a feasible implementation, the drag-and-drop programming module further includes: a network tag nesting function and a network tag loop jump function;

[0023] The nesting function of the network tag refers to: establishing a nesting relationship between multiple network tags, and multiple jumps between multiple network programs through multiple completely nested network tags to form a multi-layer nested jump structure;

[0024] The loop jump function of the network label means that when the program runs to a certain network label, it can jump back to a previous network label and restart execution, forming a closed-loop control structure.

[0025] In a feasible implementation, the drag-and-drop programming module further includes: a dynamic modification function of a network label and a monitoring function of a network label;

[0026] The dynamic modification function of the network label refers to: dynamically modifying the corresponding relationship or jump condition of the network label through a specific interface or command during the program running process;

[0027] The monitoring function of the network label refers to: displaying in real time in the monitoring window which network label or jump history the current program is running to.

[0028] In a feasible implementation, the standard instruction connection library module includes: graphic representation data, logic association data and variable binding data;

[0029] The graphical representation data is used to display the appearance of the instruction connection component in a graphical programming environment;

[0030] The logical association data is used to record the logical connection relationship between the instruction connection components;

[0031] The variable binding data is used to tightly bind the instruction connection components with the variables they operate on, and the variable binding data includes Boolean values, integer types, real number types, string types and date types.

[0032] In a feasible implementation, the standard instruction connection library module includes contacts, coils, return elements and multiple functions and function blocks, and the functions include: type conversion functions, numerical functions, arithmetic functions, bit operation functions, comparison and selection functions, string functions and date functions, etc.;

[0033] The functional blocks include a bistable element functional block, an edge detection functional block, a counter functional block and a timer functional block;

[0034] The contact is used to transfer the Boolean state of the ladder diagram element to the right element;

[0035] The coil is used to represent a ladder diagram element of a Boolean state and output;

[0036] The return element is used for program return. When the program runs to the return element, the program ends running in advance.

[0037] The type conversion function is used for type conversion of various types of data;

[0038] The numerical functions include absolute value, square root, exponential operation, logarithmic operation, sine, cosine, tangent, arcsine, arccosine and arctangent operations of numerical values;

[0039] The arithmetic functions include addition, subtraction, multiplication, division, remainder, power and replication operations of various numerical values;

[0040] The bit operation functions include non-circular left shift, circular left shift, circular right shift, non-circular right shift, bitwise AND, bitwise OR, bitwise XOR and bitwise negation.

[0041] The comparison and selection functions include comparison functions such as greater than, greater than or equal to, equal to, less than or equal to, and not equal to, and single-way selection, maximum value, minimum value, and limit selection functions;

[0042] The string class functions include a string search function, a string interception function, a string concatenation function, a string replacement function, and a character search function within a string;

[0043] The date type functions include addition and subtraction functions of date type;

[0044] The bistable element function block includes a set priority bistable element priority function block, the set priority bistable element priority function block is used for state latching and provides a set function, and the reset priority bistable element function block is also used for state latching and provides a reset function;

[0045] The edge detection functional block includes a rising edge detection functional block and a falling edge detection functional block;

[0046] The counter function block includes an adder, a subtractor and an adder-subtractor, and the adder, subtractor and adder-subtractor complete the counting function through the rising edge change of the pulse signal;

[0047] The timer comprises a pulse timing function block, a delayed on timer and a delayed off timer. The pulse function block is used to generate pulses, and the delayed on timer and the delayed off timer are used for instruction delay control.

[0048] In a feasible implementation, the PLC project real-time control module includes: project management and organization functions, program editing and debugging functions, and real-time monitoring and diagnosis functions;

[0049] The project management and organization functions are used to create, save, backup, restore and structured manage PLC projects;

[0050] The program editing and debugging function is used to support multiple programming languages ​​and provide debugging tools for writing, testing and modifying PLC programs;

[0051] The real-time monitoring and diagnosis function is used to display the operating status of the PLC project in real time and provide fault diagnosis.

[0052] In a feasible implementation, the PLC project real-time control module further includes: a dynamic variable configuration and instant feedback unit, an intelligent variable filling unit, and an editing area flexible movement unit;

[0053] The dynamic variable configuration and instant feedback unit is used to perform instant parameter configuration on the connection elements dragged to the workspace during programming, display the status and effect of the current parameter configuration, and issue reminders, provide modification suggestions or automatically correct parameters when the parameter configuration is incorrect or does not meet expectations;

[0054] The intelligent variable filling unit is used for when a connection element needs to be associated with a variable, double-clicking the position above the connection element will cause a pop-up window to appear, in which the available variables in the current PLC project are listed, and the associated variable can be found by scrolling or searching;

[0055] The editing area flexible movement unit is used to provide a flexible movement function of the editing area, including: a vertical scrolling unit and a horizontal scrolling unit;

[0056] The vertical scrolling unit moves the editing area up and down by rolling the mouse wheel or external input operation;

[0057] When the width of the program exceeds the width of the editing area, the horizontal scrolling unit moves the editing area left and right by rolling the mouse wheel or external input operation.

[0058] This application provides an intelligent interactive system for PLC graphical programming. The system not only optimizes the drag and drop and engineering management functions of ladder diagram elements, but also introduces core function block recursion and intelligent label jump mechanisms. Through these innovative functions, this application significantly improves the programming support capabilities for complex PLC programs and greatly expands the scale and application scope of industrial Internet of Things programming. BRIEF DESCRIPTION OF THE DRAWINGS

[0059] The accompanying drawings herein are incorporated into and constitute a part of the specification, illustrate embodiments consistent with the implementation of the present invention, and together with the specification are used to explain the principles of the embodiments of the present invention. Obviously, the accompanying drawings described below are only some embodiments of the implementation of the present invention, and for ordinary technicians in this field, other accompanying drawings can be obtained based on these accompanying drawings without creative work.

[0060] Figure 1 It is a schematic diagram of an intelligent interactive system for PLC graphical programming exemplarily shown in an embodiment of the present application;

[0061] Figure 2 is a schematic diagram of a drag-and-drop programming module for performing ladder diagram drag-and-drop programming according to an exemplary embodiment of the present application;

[0062] Figure 3 is a schematic diagram of recursive insertion of block elements exemplarily shown in an embodiment of the present application;

[0063] Figure 4 It is a schematic diagram of network labels and jump elements exemplarily shown in an embodiment of the present application. DETAILED DESCRIPTION

[0064] Example embodiments will now be described more fully with reference to the accompanying drawings. However, example embodiments can be implemented in a variety of forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that the embodiments of the present invention will be more comprehensive and complete and fully convey the concepts of the example embodiments to those skilled in the art. The described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. In the following description, many specific details are provided to provide a full understanding of the implementation of the embodiments of the present invention.

[0065] PLC is a digital computing controller used for automated control. It uses a graphically edited ladder diagram and requires an embedded user program. Each PLC has its own corresponding editor, which is used in different ways. At present, domestic PLC software is relatively backward in programming experience. It does not support functions such as drag and drop and automatic wiring, nor can it operate across platforms. The existing patent 202110842732.5 implements a graphical programming interaction system for compiled PLCs. Although it provides a drag-and-drop programming method, it lacks support for complex programming functions and is difficult to meet the needs of real industrial scenarios.

[0066] Reference Figures 1 to 4 As shown, in order to solve the above problems, an embodiment of the present application proposes an intelligent interactive system for PLC graphical programming, which integrates a standard instruction connection library module, a drag-and-drop programming module and a PLC project real-time control module, aiming to greatly improve the convenience, flexibility and efficiency of PLC programming.

[0067] Among them, the standard instruction connection library module is used to store a series of standardized instruction connection components. The instruction connection components in the standard instruction connection library module have been strictly standardized to follow the internationally accepted automation control standards, and also ensure the standardization and consistency of the programming process. Users do not need to build complex control logic from scratch, but can select instruction connection components from the standard instruction connection library, saving programming time and reducing the error rate. At the same time, the introduction of standardized instruction connection components also facilitates the later maintenance of PLC projects.

[0068] The PLC project real-time control module provides users with real-time monitoring and management functions for the entire life cycle of PLC projects. Through this module, users can view the operating status of the project, monitor the changes of variables, debug and modify programs, etc. The PLC project real-time control module helps to discover and solve problems in a timely manner, and can also improve the maintenance efficiency and reliability of the project.

[0069] The drag-and-drop programming module is used to drag fixed graphics elements and set parameters for graphical programming according to the user's selection of fixed graphics elements to obtain a graphical program; the drag-and-drop programming module allows users to easily place fixed graphics elements (such as instruction connection components, variables, etc.) in the programming interface through simple drag operations, and build graphical programs by setting parameters, which improves the convenience of programming and lowers the technical threshold of PLC programming.

[0070] The drag-and-drop programming module includes intelligent recursive programming of graphic block elements, and the intelligent recursive programming of graphic block elements includes recursive insertion of block elements and recursive deletion of block elements.

[0071] The recursive insertion of block elements includes: in the drag-and-drop programming module, a new block element can be added to an input end of a block element, the original variable element connected to this input end is replaced by this new block element, and the first output end of this new block element will be automatically connected to the selected input end, intelligently forming a chain of block element calls.

[0072] Specifically, when the user needs to add a new block element to the input end of a block element, the system can intelligently identify and replace the original variable element, and automatically connect the output end of the new block element to the specified input end to form a chain element call. This function greatly simplifies the construction process of complex control logic, allowing users to implement complex control strategies more quickly.

[0073] The recursive deletion of block elements includes: deleting a block element in the drag-and-drop programming module, when the input of the block element is associated with the output of another block element, the block element associated with it is also deleted, and the block element associated with it is deleted recursively.

[0074] Specifically, when deleting a block element, if it is associated with other block elements (such as an input associated with the output of another block element), the system can automatically recursively delete all block elements related to it to ensure the integrity and consistency of the program. This function effectively avoids program errors caused by accidental or missed deletions and improves the reliability and stability of programming.

[0075] In summary, the intelligent interactive system for PLC graphical programming proposed in the embodiment of the present application provides users with an efficient, convenient and reliable PLC programming environment by integrating a standard instruction connection library module, a drag-and-drop programming module and a PLC project real-time control module. The system not only greatly improves programming efficiency and accuracy, but also reduces technical barriers and maintenance costs.

[0076] In some embodiments of the present application, the drag-and-drop programming module also includes: intelligent merging of block elements and intelligent splitting of block elements. Among them, the intelligent merging of block elements is used in drag-and-drop programming. When the functions of multiple block elements can be merged into a more complex block element, a new composite block element containing all the selected multiple block element functions is automatically generated according to the logical relationship and input and output ports of the multiple block elements; the intelligent splitting of block elements is used to select the block elements to be split, and specify the splitting point or splitting condition, and automatically split the selected block element into multiple smaller block elements according to this information and the internal logic of the block element.

[0077] Specifically, during the PLC programming process, it is often necessary to combine multiple function blocks into a more complex function block. In the traditional way, users need to manually create new function blocks and connect the input and output ports one by one. In the embodiment of the present application, the intelligent merging function of the block element can automatically identify the logical relationship between multiple function blocks in the drag-and-drop programming interface, such as series connection, parallel connection, conditional judgment, etc., and automatically generate a new composite function block based on these logical relationships and the input and output ports of the function blocks. This composite function block not only contains the functions of all selected function blocks, but also optimizes the internal logical structure, improves the execution efficiency of the program, and the reliability and readability of the program, while effectively avoiding program failures caused by manual connection errors.

[0078] Secondly, in contrast to the intelligent merging of block elements, the intelligent splitting function of block elements allows users to split complex function blocks into multiple smaller function blocks for more detailed debugging and optimization. In PLC programming, sometimes a function block needs to be deeply analyzed or modified, but directly modifying the original function block may introduce new errors or affect the logic of other parts. In an embodiment of the present application, the intelligent splitting of block elements allows users to select the function blocks that need to be split and specify the splitting points or splitting conditions. The system will automatically split the selected function block into multiple smaller function blocks based on this information and the internal logical structure of the function block. These split function blocks retain the input and output ports and logical relationships of the original function blocks, so they can be seamlessly integrated back into the original program.

[0079] The intelligent splitting function of block elements provides users with more flexible programming methods, allowing them to debug and optimize programs more easily. In addition, since the split function blocks are simpler and clearer, it also helps to improve the readability and maintainability of the program.

[0080] In some embodiments of the present application, the drag-and-drop programming module also includes: intelligent search of block elements and intelligent replacement of block elements.

[0081] In the process of PLC programming, as the project scale and complexity increase, users may face hundreds or thousands of block components and need to quickly locate specific block components or block components with specific functions. Traditional search methods often rely on the search function of text editors, but this method is not only inefficient, but may also miss the target due to inaccurate keywords.

[0082] In this embodiment, the intelligent search of block components is used to quickly search and highlight the block components that meet the conditions in the entire program by entering keywords or selecting specific search conditions when a specific block component or a block component with a specific function needs to be found. The intelligent search function of block components allows users to enter keywords or select specific search conditions, such as the name, type, and function description of the block component, and the system can quickly search and highlight the block components that meet the conditions in the entire PLC program. This search method is not only accurate and efficient, but also helps users quickly understand the structure and function distribution of the program, providing strong support for subsequent optimization and debugging.

[0083] During PLC programming, it is sometimes necessary to replace a block element with another one with the same or similar functions to optimize program performance, reduce hardware costs, or meet specific control requirements. The traditional replacement method often requires manually disconnecting the original block element, inserting the new block element, and reconnecting it, which is not only cumbersome and error-prone, but may also introduce new program failures.

[0084] In this embodiment, the intelligent replacement of block elements is used to select the block element to be replaced and specify the replacement target block element when a block element needs to be replaced with another block element with the same or similar function. According to the input and output ports of the block element, the selected block element is automatically replaced with the specified target block element, while keeping the original connection relationship and input and output ports unchanged.

[0085] The intelligent replacement of block components provides users with more flexible programming methods, allowing them to more easily cope with program optimization and hardware upgrade requirements. In addition, since this function can automatically handle the connection relationship between block components, it effectively avoids program failures caused by manual replacement errors.

[0086] In some embodiments of the present application, the drag-and-drop programming module also includes: a conditional jump function based on a network label; a network label refers to a user-defined label that can be added to the network during the programming process, and the network label corresponds one-to-one to the network program, and the network label is used to indicate the location of the network program; a jump element refers to an element that can be added to the end of the network for jumping during the programming process.

[0087] Network label is an innovative and practical concept in PLC graphical programming. During the programming process, a user-friendly label can be defined for a specific network program. This label establishes a one-to-one correspondence with the network program, just like an address mark, which can easily identify and reference various parts of the program. Jump element is a key component used to implement conditional jumps in PLC graphical programming. It is usually placed at the end of the network program as a control point of the program flow. When the program runs to the jump element, it will decide whether to jump based on the preset conditions (such as the status of the input variable, etc.).

[0088] The conditional jump function based on network labels is used to continue running the network program corresponding to the network label set by the jump component when the program runs to the jump component. The conditional jump function based on network labels combines the advantages of network labels and jump components, providing powerful process control capabilities for PLC programs. When the program runs to the jump component, it will check whether the jump condition is met. If it is met, it will jump to the corresponding network program according to the network label set by the jump component to continue running.

[0089] The conditional jump function based on network tags enables the PLC program to dynamically adjust the execution path according to different operating conditions, thereby achieving more intelligent and flexible control logic and simplifying the compilation process of complex programs. For example, in industrial automation systems, different control processes can be triggered according to real-time data from sensors; in smart home systems, different working modes can be switched according to user instructions, etc.

[0090] In some embodiments of the present application, the drag-and-drop programming module also includes: a nested function of network labels and a loop jump function of network labels. The nested function of network labels refers to: establishing a nested relationship between multiple network labels, and jumping multiple times between multiple network programs through multiple completely nested network labels to form a multi-layer nested jump structure; the loop jump function of network labels refers to: when the program runs to a certain network label, it can jump back to a previous network label and restart execution to form a closed-loop control structure.

[0091] Specifically, the nesting function of network tags can create multi-layer nested jump structures in PLC programs. By defining network tags for different network programs and establishing nested relationships between these tags, the ability to jump multiple times between multiple network programs can be realized. This nested relationship is like a multi-level map, and each network tag is a landmark, indicating the next jump direction of the program. The nesting function of network tags greatly enhances the complex process control capability of PLC programs. Users can build more sophisticated and complex control logic according to actual needs.

[0092] For example, on a complex automated production line, different control processes may need to be executed according to different production stages and product types. By utilizing the nesting function of network tags, users can easily implement these complex control requirements, thereby improving the efficiency and flexibility of the production line.

[0093] In addition, the nesting function of network tags also helps improve the readability and maintainability of PLC programs. By adding clear tags to different network programs and establishing nested relationships for these tags, users can more intuitively understand the flow structure of the program and quickly locate the parts that need to be modified or optimized. This greatly reduces the difficulty of program debugging and maintenance and improves user work efficiency.

[0094] Secondly, the loop jump function of the network label can be applied in scenarios where a certain control process needs to be repeatedly executed, such as loop counting, timing control, etc.

[0095] Specifically, in a task that needs to be executed periodically, a timed trigger can be achieved by setting a loop jump. When the program runs to the specified network tag, it will jump back to the starting point of the loop and continue to execute the next cycle of tasks. This loop control structure not only simplifies the design and implementation process of the program, but also improves the stability and reliability of the program. By adjusting the starting and ending points of the loop, as well as the control logic inside the loop, different control requirements can be met. This flexibility enables PLC programs to better adapt to various complex application scenarios.

[0096] In some embodiments of the present application, the drag-and-drop programming module also includes: a dynamic modification function of network labels and a monitoring function of network labels; the dynamic modification function of network labels refers to: during the program running process, dynamically modifying the correspondence or jump conditions of network labels through a specific interface or command; the monitoring function of network labels refers to: displaying in real time in the monitoring window which network label or jump history the current program is running to.

[0097] The dynamic modification function of network labels gives the PLC program the ability to adjust its own process control logic during operation. In traditional PLC programming, once the program is compiled and downloaded to the PLC for operation, its process control logic is usually fixed and difficult to modify during operation. The dynamic modification function of network labels in the embodiments of the present application allows the user to dynamically modify the correspondence or jump conditions of network labels through a specific interface or command during the program operation. That is, when the PLC program encounters a situation where the process control logic needs to be adjusted, the user does not need to stop the program, recompile and download the program, but can modify it directly during operation. For example, on an automated production line, if the time consumption of a certain process changes, the user can adjust the start time of the subsequent process by dynamically modifying the correspondence of the network labels to ensure the coordinated operation of the entire production line.

[0098] The monitoring function of network tags can assist in debugging and troubleshooting PLC programs. During the running of the PLC program, the monitoring window will display in real time which network tag or jump history the current program is running to. This allows users to intuitively understand the execution process and status of the program and quickly locate potential problem points. When the program is abnormal or fails, users can quickly determine the problem based on the information in the monitoring window and take appropriate measures to repair it. In addition, the monitoring function of network tags can also help improve the readability and maintainability of PLC programs, thereby making debugging and maintenance work more efficient.

[0099] In some embodiments of the present application, the standard instruction connection library module includes: graphic representation data, logic association data and variable binding data.

[0100] Specifically, the graphical representation data is used to display the appearance of the instruction connection components in the graphical programming environment. These instruction connection components are usually presented in the form of icons, lines or graphical interfaces, aiming to provide users with an intuitive and visual programming experience. Through the graphical representation data, users can easily identify and operate various instruction connection components, such as timers, counters, comparators, etc., thereby simplifying the programming process and reducing the learning cost; logical association data is used to record the logical connection relationship between instruction connection components. These logical connection relationships define the execution order and conditions of each component in the program, which is the key to the correct execution of the PLC program. Through the logical association data, users can clearly see how each instruction connection component is related to and affects each other, so as to more accurately grasp the program flow and control logic; variable binding data is used to tightly bind the instruction connection components to the variables they operate. The variable binding data includes Boolean values, integer types, real number types, string types and date types. These variable binding data represent the actual physical quantities or logical states that need to be monitored and controlled in the PLC program. Through the variable binding data, users can ensure that the instruction connection components can correctly read and modify the values ​​of these variables, thereby achieving precise control of the PLC program.

[0101] In some embodiments of the present application, the standard instruction connection library module includes contacts, coils, return elements, and various functions and function blocks.

[0102] Specifically, the contacts and coils are used to implement the input and output of variables and basic logic. The return element is used in conjunction with the jump element to implement the jump logic of the program; the function blocks include bistable elements, edge detection, add / subtract counters and timers, etc.; the timer provides users with precise time control means, so that the PLC can perform actions at a specific time point or time period according to actual needs, thereby improving the flexibility and accuracy of the automation system; the counter provides users with precise counting and statistical means, so that the PLC can accurately record and monitor the number of various events and processes, thereby providing users with rich data support; the bistable element function block provides state reset and set functions, which facilitates users to implement system start and stop, counter reset and other functions; the edge detection function facilitates users to monitor signal changes and improve the response speed and accuracy of the system; the function includes type conversion function, numerical function, arithmetic function, bit operation function, comparison and selection function, string function and date function, etc., which provide basic support for the logic, numerical, date and string operations of the program.

[0103] In some embodiments of the present application, the PLC project real-time control module includes: project management and organization functions, program editing and debugging functions, and real-time monitoring and diagnosis functions.

[0104] Specifically, the project management and organization functions are used to create, save, backup, restore and manage PLC projects in a structured manner. These functions include: allowing users to quickly create new PLC projects and save all relevant information about the project, including program code, configuration files, comments, etc.; providing a project backup function to ensure that project data can be quickly restored to reduce losses in the event of an unexpected situation (such as hardware failure, data loss, etc.); supporting hierarchical and classified management of projects, making the project structure clearer and easier for users to find and modify.

[0105] The program editing and debugging function is used to support multiple programming languages ​​and provide debugging tools for writing, testing and modifying PLC programs. Specifically, it can meet the programming habits and needs of different users, improve programming efficiency and flexibility, provide an intuitive programming interface and rich programming elements, help users quickly build PLC programs, support simulation operation and online testing functions, allow users to perform preliminary verification and debugging of programs without actually connecting to PLC hardware, and provide convenient modification tools to help users quickly locate and repair errors or deficiencies in the program.

[0106] Real-time monitoring and diagnosis functions are used to display the operating status of the PLC project in real time and provide fault diagnosis. For example, the operating status of the PLC system can be displayed in real time through a graphical interface, including input and output signals, internal register values, timer / counter status, etc.; it provides fault diagnosis functions, which can automatically detect and report abnormalities or errors in the PLC system, helping users to quickly locate the cause of the problem. When a serious fault or abnormality is detected, it can automatically trigger an alarm mechanism and notify relevant personnel through emails, text messages, etc. to ensure that the problem is handled in a timely manner.

[0107] In some embodiments of the present application, the PLC project real-time management and control module also includes: a dynamic variable configuration and instant feedback unit, an intelligent variable filling unit, and an editing area flexible movement unit.

[0108] Specifically, the dynamic variable configuration and instant feedback unit is used to perform instant parameter configuration on the connection elements dragged to the workspace during programming, and display the status and effect of the current parameter configuration. The status of the current parameter configuration may include: the status of input / output signals, the value of internal registers, etc. When the parameter configuration is incorrect or does not meet expectations, a reminder is issued, modification suggestions are provided, or parameters are automatically corrected to ensure the correctness and stability of the project.

[0109] The Smart Variable Fill Cell is used when a connection element needs to be associated with a variable. Double-clicking the connection element will cause a pop-up window to appear. The pop-up window lists the variables available in the current PLC project. You can find the associated variable by scrolling or searching. The Smart Variable Fill Cell provides centralized management of all variables in the PLC project, allowing users to easily view, modify, and delete variables. With the Smart Variable Fill Cell, users can avoid spelling errors or format errors that may occur when manually entering variable names.

[0110] The editing area flexible movement unit is used to provide the editing area with flexible movement function, including: vertical scrolling unit and horizontal scrolling unit; the vertical scrolling unit moves the editing area up and down by rolling the mouse wheel or external input operation; the horizontal scrolling unit moves the editing area left and right by rolling the mouse wheel or external input operation when the program width exceeds the editing area width. The flexible movement unit of the editing area allows users to avoid frequently switching views or scrolling pages, thereby improving editing efficiency.

[0111] It can be seen from the contents of the above embodiments that the present application provides an intelligent interactive system for PLC graphical programming, which integrates a standard instruction connection library module, a drag-and-drop programming module, and a PLC project real-time control module, aiming to greatly improve the convenience, flexibility and efficiency of PLC programming. The drag-and-drop programming module includes intelligent recursive programming of graphic block elements, and the intelligent recursive programming of graphic block elements includes recursive insertion of block elements and recursive deletion of block elements. The drag-and-drop programming module also includes: a conditional jump function based on network labels. The system of the present application not only optimizes the drag and drop and engineering management functions of ladder diagram elements, but also introduces core function block recursion and intelligent label jump mechanisms. Through these innovative functions, the present application significantly improves the programming support capabilities for complex PLC programs and greatly expands the scale and application scope of industrial Internet of Things programming.

[0112] Those skilled in the art will readily appreciate other embodiments of the present disclosure after considering the disclosure of the specification and the examples. This application is intended to cover any modifications, uses or adaptations of the present disclosure, which follow the general principles of the present disclosure and include common knowledge or customary technical means in the art that are not disclosed in the present disclosure.

Claims

1. An intelligent interactive system for PLC graphical programming, characterized in that: include: Standard instruction connection library module, drag-and-drop programming module and PLC project real-time control module; The standard instruction connection library module is used to store a series of standardized instruction connection components; The drag-and-drop programming module is used to drag fixed graphic elements and set parameters for graphical programming according to the user's selection of fixed graphic elements to obtain a graphical program; The drag-and-drop programming module includes intelligent recursive programming of graphic block elements, and the intelligent recursive programming of graphic block elements includes recursive insertion of block elements and recursive deletion of block elements; The drag-and-drop programming module also includes: intelligent merging of block elements and intelligent splitting of block elements; The intelligent merging of the block elements is used to automatically generate a new composite block element containing all the selected functions of the multiple block elements according to the logical relationship and input and output ports of the multiple block elements in drag-and-drop programming when the functions of the multiple block elements can be merged into a more complex block element; The intelligent splitting of the block element is used to select the block element to be split and specify the splitting point or splitting condition, and automatically split the selected block element into multiple smaller block elements according to this information and the internal logic of the block element; The recursive insertion of the block element includes: in the drag-and-drop programming module, a new block element can be added to an input end of the block element, the original variable element connected to the input end is replaced by the new block element, and the first output end of the new block element will be automatically connected to the selected input end, intelligently forming a chain element call; The recursive deletion of the block element includes: deleting one of the block elements in the drag-and-drop programming module, and when the input of the block element is associated with the output of another block element, the block element associated with it is also deleted, and the block element associated with it is recursively deleted; The PLC project real-time control module is used to provide real-time monitoring and management functions for the entire life cycle of the PLC project.

2. The intelligent interactive system for PLC graphical programming according to claim 1 is characterized in that: The drag-and-drop programming module also includes: intelligent search of block elements and intelligent replacement of block elements; The intelligent search of the block components is used to quickly search and highlight the block components that meet the conditions in the entire program by entering keywords or selecting specific search conditions when a specific block component or a block component with a specific function needs to be found; The intelligent replacement of the block elements is used to select the block element to be replaced and specify the replacement target block element when a certain block element needs to be replaced with another block element with the same or similar function. According to the input and output ports of the block element, the selected block element is automatically replaced with the specified target block element, while keeping the original connection relationship and input and output ports unchanged.

3. The intelligent interactive system for PLC graphical programming according to claim 1 is characterized in that: The drag-and-drop programming module also includes: a conditional jump function based on network labels; The network label refers to a user-defined label that can be added to the network program during the programming process, the network label corresponds to the network program one by one, and the network label is used to indicate the location of the network program; A jump element means that during programming, an element can be added at the end of the network program to jump; The conditional jump function based on the network label is used for, when the program runs to the jump element, the program will continue to run from the network program corresponding to the network label set by the jump element.

4. The intelligent interactive system for PLC graphical programming according to claim 3 is characterized in that: The drag-and-drop programming module also includes: a network tag nesting function and a network tag loop jump function; The nesting function of the network tag refers to: establishing a nesting relationship between multiple network tags, and multiple jumps between multiple network programs through multiple completely nested network tags to form a multi-layer nested jump structure; The loop jump function of the network label means that when the program runs to a certain network label, it can jump back to a previous network label and restart execution, forming a closed-loop control structure.

5. The intelligent interactive system for PLC graphical programming according to claim 4 is characterized in that: The drag-and-drop programming module also includes: a dynamic modification function of a network label and a monitoring function of a network label; The dynamic modification function of the network label refers to: dynamically modifying the corresponding relationship or jump condition of the network label through a specific interface or command during the program running process; The monitoring function of the network label refers to: displaying in real time in the monitoring window which network label or jump history the current program is running to.

6. The intelligent interactive system for PLC graphical programming according to claim 1 is characterized in that: The standard instruction connection library module includes: graphic representation data, logical association data and variable binding data; The graphical representation data is used to display the appearance of the instruction connection component in a graphical programming environment; The logical association data is used to record the logical connection relationship between the instruction connection components; The variable binding data is used to tightly bind the instruction connection components with the variables they operate on, and the variable binding data includes Boolean values, integer types, real number types, string types and date types.

7. The intelligent interactive system for PLC graphical programming according to claim 1 is characterized in that: The standard instruction connection library module includes contacts, coils, return elements and multiple functions and function blocks, and the functions include: type conversion functions, numerical functions, arithmetic functions, bit operation functions, comparison and selection functions, string functions and date functions; The functional blocks include a bistable element functional block, an edge detection functional block, a counter functional block and a timer functional block; The contact is used to transfer the Boolean state of the ladder diagram element to the right element; The coil is used to represent a ladder diagram element of a Boolean state and output; The return element is used for program return. When the program runs to the return element, the program ends running in advance. The type conversion function is used for type conversion of various types of data; The numerical functions include absolute value, square root, exponential operation, logarithmic operation, sine, cosine, tangent, arcsine, arccosine and arctangent operations of numerical values; The arithmetic functions include addition, subtraction, multiplication, division, remainder, power and replication operations of various numerical values; The bit operation functions include non-circular left shift, circular left shift, circular right shift, non-circular right shift, bitwise AND, bitwise OR, bitwise XOR and bitwise inversion operations; The comparison and selection functions include greater than, greater than or equal to, equal to, less than or equal to, not equal to comparison functions and single-way selection, maximum value, minimum value and limit selection functions; The string class functions include a string search function, a string interception function, a string concatenation function, a string replacement function, and a character search function within a string; The date type functions include addition and subtraction functions of date type; The bistable element function block includes a set priority bistable element priority function block and a reset priority bistable element function block, the set priority bistable element priority function block is used for state latching and provides a set function, and the reset priority bistable element function block is also used for state latching and provides a reset function; The edge detection functional block includes a rising edge detection functional block and a falling edge detection functional block; The counter function block includes an adder, a subtractor and an adder-subtractor, and the adder, subtractor and adder-subtractor complete the counting function through the rising edge change of the pulse signal; The timer function block includes a pulse timing function block, a delayed on timer and a delayed off timer. The pulse timing function block is used to generate pulses, and the delayed on timer and the delayed off timer are used for instruction delay control.

8. The intelligent interactive system for PLC graphical programming according to claim 1 is characterized in that: The PLC project real-time control module includes: project management and organization functions, program editing and debugging functions, and real-time monitoring and diagnosis functions; The project management and organization functions are used to create, save, backup, restore and structured manage PLC projects; The program editing and debugging function is used to support multiple programming languages ​​and provide debugging tools for writing, testing and modifying PLC programs; The real-time monitoring and diagnosis function is used to display the operating status of the PLC project in real time and provide fault diagnosis.

9. The intelligent interactive system for PLC graphical programming according to claim 8, characterized in that: The PLC project real-time control module also includes: a dynamic variable configuration and instant feedback unit, an intelligent variable filling unit, and an editing area flexible movement unit; The dynamic variable configuration and instant feedback unit is used to perform instant parameter configuration on the connection elements dragged to the workspace during programming, display the status and effect of the current parameter configuration, and issue reminders, provide modification suggestions or automatically correct parameters when the parameter configuration is incorrect or does not meet expectations; The intelligent variable filling unit is used for when a connection element needs to be associated with a variable, double-clicking the position above the connection element will cause a pop-up window to appear, in which the available variables in the current PLC project are listed, and the associated variable can be found by scrolling or searching; The editing area flexible movement unit is used to provide a flexible movement function of the editing area, including: a vertical scrolling unit and a horizontal scrolling unit; The vertical scrolling unit moves the editing area up and down by rolling the mouse wheel or external input operation; When the width of the program exceeds the width of the editing area, the horizontal scrolling unit moves the editing area left and right by rolling the mouse wheel or external input operation.

Citation Information

Patent Citations

  • A graphical programming interactive system and interaction method for compiled PLCs

    CN113515084B

  • Graphical programming interaction system and interaction method of compilation type PLC

    CN113515084A