Collaborative development method and development device for programmable logic controller
By configuring front-end and back-end modules in an integrated development environment, using the collaboration center and data management unit to realize remote collaborative development of PLC based on the collaboration group identification and key, the problem of high cost and low efficiency of remote collaborative development of PLC in the existing technology is solved, and efficient and convenient multi-user collaborative development is achieved.
Patent Information
- Application Number
- CN202411770459.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-04
- Publication Date
- 2025-03-11
AI Technical Summary
In the prior art, programmable logic controller (PLC) remote collaborative development is costly and inefficient.
By configuring front-end modules and back-end modules in an integrated development environment, the collaborative center unit and data management unit are used to achieve collaborative development of each front-end module in the target collaboration group based on the collaborative group identification and collaboration group key.
Remote collaborative development of PLC is realized, which reduces work costs, improves work efficiency, and provides the convenience of multi-user collaborative development.
Smart Images

Figure CN119596834A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of industrial control technology, and in particular to a programmable logic controller collaborative development method and development device. Background Art
[0002] With the development of the times, the demand for control logic programming in the field of industrial automation is becoming more and more widespread. At the same time, with the development of cloud computing technology, computing power is becoming more and more powerful. The use of traditional stand-alone or desktop deployment software in the IT (Information Technology) industry is also changing. People's office methods have gradually evolved from stand-alone, single-person work to cloud-based multi-person collaborative office methods, which greatly improves work efficiency.
[0003] In the field of industrial automation, the network environment is relatively closed. For security and stability reasons, the application and development of IT technology is usually slower than in other industries. Therefore, control logic programming software is usually still a stand-alone, single-person programming work mode. However, PLCs (Programmable Logic Controllers) in industrial automation systems are usually deployed in a very wide geographical distribution. When the compilation logic needs to be modified and maintained, it is necessary to travel to the site for office work, which greatly reduces work efficiency and increases maintenance costs.
[0004] Therefore, how to conduct remote collaborative development of PLC is a technical problem that needs to be solved. Summary of the invention
[0005] In view of this, an embodiment of the present application provides a programmable logic controller collaborative development method and development device to solve the problem of high cost and low efficiency of remote collaborative development of programmable logic controllers in the prior art.
[0006] In a first aspect of an embodiment of the present application, a programmable logic controller collaborative development method is provided, the method being executed by a back-end module in an integrated development environment, the back-end module comprising at least a collaboration center unit and a data management unit, and the integrated development environment further comprising a front-end module;
[0007] The method includes:
[0008] In response to determining that the real-time collaboration request sent by the first front-end module is received, the collaboration center unit creates a target collaboration group, where the target collaboration group includes at least a collaboration group identifier and a collaboration group key;
[0009] The collaboration center unit sends the collaboration group identifier and the collaboration group key to the data management unit and the first front-end module;
[0010] In response to determining that a request to join the target collaboration group sent by the second front-end module is received, the collaboration center unit adds the second front-end module to the target collaboration group and sends the collaboration group key to the second front-end module, wherein the second front-end module is at least one front-end module different from the first front-end module;
[0011] The data management unit and the collaboration center unit realize the collaborative development of each front-end module in the target collaboration group based on the collaboration group identifier and the collaboration group key.
[0012] In some embodiments, the data management unit and the collaboration center unit implement collaborative development of each front-end module in the target collaboration group based on the collaboration group identifier and the collaboration group key, including:
[0013] In response to the data management unit receiving the programmable logic controller development data sent by the target front-end module and determining that the programmable logic controller development data carries the collaboration group identifier, the programmable logic controller development data is sent to the collaboration center unit, wherein the target front-end module is any front-end module in the target collaboration group;
[0014] The collaboration center unit sends the programmable logic controller development data to other front-end modules in the target collaboration group, so that the other front-end modules display the development results after decrypting the programmable logic controller development data using the collaboration group key.
[0015] In some embodiments, after the data management unit receives the programmable logic controller development data sent by the target front-end module, the method further includes:
[0016] The data management unit decrypts the programmable logic controller development data using the collaboration group key and executes operations corresponding to the programmable logic controller development data.
[0017] In some embodiments, the collaboration center unit sends the programmable logic controller development data to other front-end modules in the target collaboration group, including:
[0018] Determine other front-end modules in the target collaboration group except the target front-end module;
[0019] In response to determining that the number of other front-end modules is 1, unicasting the programmable logic controller development data;
[0020] In response to determining that the number of other front end modules is greater than one, the programmable logic controller development data is multicasted.
[0021] In some embodiments, the backend module further includes a user management unit;
[0022] Before receiving the real-time collaboration request sent by the first front-end module, the method further includes:
[0023] The user management module is used to verify the legitimacy of all front-end modules that will participate in collaborative development.
[0024] In some embodiments, the collaboration center unit creates a target collaboration group, including:
[0025] The collaboration center unit generates a collaboration group identifier and a collaboration group key;
[0026] Creating a target collaboration group, the target collaboration group has a collaboration group identifier, and the target collaboration group uses a collaboration group key as an intra-group communication key;
[0027] The first front-end module is recorded as a member of the target collaboration group.
[0028] In some embodiments, the integrated development environment is implemented based on a browser-server BS architecture, the back-end module is configured on the server, and the front-end module is configured on the user terminal and implemented based on the browser;
[0029] The back-end module controls the field programmable logic controller using the developed program.
[0030] A second aspect of the embodiment of the present application provides a programmable logic controller collaborative development device, including:
[0031] The backend module is configured to, in response to determining that the real-time collaboration request sent by the first front-end module is received, create a target collaboration group by a collaboration center unit in the backend module, wherein the target collaboration group includes at least a collaboration group identifier and a collaboration group key;
[0032] The backend module is further configured to send the collaboration group identifier and the collaboration group key from the collaboration center unit to the data management unit in the backend module;
[0033] A first front-end module is configured to receive a collaboration group identifier and a collaboration group key sent by a collaboration center unit;
[0034] A second front-end module is configured to send a request to join the target collaboration group to the back-end module, the second front-end module is at least one front-end module different from the first front-end module;
[0035] The backend module is further configured to, in response to determining that a request to join the target collaboration group sent by the second frontend module is received, add the second frontend module to the target collaboration group by the collaboration center unit, and send the collaboration group key to the second frontend module; and
[0036] The data management unit and the collaboration center unit implement the collaborative development of each front-end module in the target collaboration group based on the collaboration group identifier and the collaboration group key.
[0037] A third aspect of an embodiment of the present application provides a programmable logic controller collaborative development system, including M front-end modules, a back-end module, and N programmable logic controllers, where M and N are both positive integers greater than or equal to 1;
[0038] Each front-end module includes at least a browser-based configuration interface, a development interface, a collaboration center client, and a communication interface;
[0039] The back-end module at least includes a user management unit, a data management unit, a collaboration center server, a compilation unit, a simulation unit, a download debugging unit, a first communication interface and a second communication interface. The first communication interface is used to communicate with the front-end module based on the hypertext transfer protocol, and the second communication module is used to communicate with the programmable logic controller based on a private protocol.
[0040] Each programmable logic controller includes at least a control logic operation unit and a communication interface.
[0041] According to a fourth aspect of an embodiment of the present application, an electronic device is provided, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the steps of the above method when executing the computer program.
[0042] Compared with the prior art, the embodiments of the present application have the following beneficial effects: by configuring the front-end module and the back-end module in an integrated development environment, when a front-end module initiates a real-time collaboration request, the back-end module creates a corresponding target collaboration group and sets a collaboration group identifier and a collaboration group key for the target collaboration group. Other front-end modules can join the target collaboration group according to the collaboration group identifier. The collaboration group identifier and the collaboration group key are sent to the data management units in each front-end module and the back-end module. Any front-end module in the target collaboration group can send PLC development data carrying the collaboration group identifier to the back-end module. The back-end module can decrypt and execute the PLC development data through the data management unit, and can also send the PLC development data to other front-end modules in the target collaboration group through the collaboration center unit, thereby realizing remote collaborative development. BRIEF DESCRIPTION OF THE DRAWINGS
[0043] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0044] Figure 1 It is a flowchart of a programmable logic controller collaborative development method provided in an embodiment of the present application.
[0045] Figure 2 It is a flowchart of a method provided by an embodiment of the present application for realizing collaborative development of each front-end module in a target collaborative group by a data management unit and a collaborative center unit based on a collaborative group identifier and a collaborative group key.
[0046] Figure 3 It is a flowchart of a method provided by an embodiment of the present application for a collaboration center unit to send programmable logic controller development data to other front-end modules in a target collaboration group.
[0047] Figure 4 It is a flowchart of another programmable logic controller collaborative development method provided in an embodiment of the present application.
[0048] Figure 5 It is a flowchart of a method for a collaboration center unit to create a target collaboration group provided in an embodiment of the present application.
[0049] Figure 6 It is a structural diagram of the programmable logic controller collaborative development system provided in an embodiment of the present application.
[0050] Figure 7 It is a signal interaction diagram for creating a collaboration group during multi-user collaborative development provided by an embodiment of the present application.
[0051] Figure 8 It is a signal interaction diagram for collaborative data distribution during multi-user collaborative development provided by an embodiment of the present application.
[0052] Fig. 9 It is a schematic diagram of a programmable logic controller collaborative development device provided in an embodiment of the present application.
[0053] Fig.10 It is a schematic diagram of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0054] In the following description, specific details such as specific system structures, technologies, etc. are provided for the purpose of illustration rather than limitation, so as to provide a thorough understanding of the embodiments of the present application. However, it should be clear to those skilled in the art that the present application may also be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to prevent unnecessary details from obstructing the description of the present application.
[0055] A programmable logic controller collaborative development method and device according to an embodiment of the present application will be described in detail below with reference to the accompanying drawings.
[0056] As mentioned above, how to conduct remote collaborative development of PLC is a technical problem that needs to be solved.
[0057] Traditional control logic programming IDE (Integrated Development Environment) usually adopts a single-machine deployment method. The corresponding software needs to be installed on each working machine. Remote work or remote access through remote desktop is not possible, but the work experience is poor and collaborative work among multiple people is difficult.
[0058] Among them, IDE in the field of industrial automation is software used to program and configure PLC in control systems. The languages used in PLC programming usually include several languages defined in the standard IEC61131-3: ST (Strutured Text), LD (Ladder Diagram), FBD (Function Block Diagram), SFC (Sequential Function Chart), CFC (Continuous Function Chart), among which ST is a text language, and the others are graphical languages or C / C++ languages.
[0059] In the related art, a server with control logic programming IDE software installed can be deployed on a private cloud or public cloud, and the system with control logic programming IDE installed can be accessed through remote desktop to perform remote PLC development. Alternatively, a server with control logic programming IDE software installed can be deployed on a private cloud or public cloud, and the control logic programming client can be installed on the computer that needs to perform actual compilation to achieve remote PLC development.
[0060] However, although the first solution can realize remote programming, it cannot realize multi-user collaboration. This is because the remote desktop software and the programming IDE software are actually two systems. Even if multiple users operate through the remote desktop, the programming IDE cannot distinguish whose operation is which. At the same time, this solution has a poor user experience, high requirements for network bandwidth, and requires the installation of specific remote desktop software on each programming machine, which is inconvenient to use.
[0061] The second solution requires the installation of client software on each programming machine, which is inconvenient to use. At the same time, the cross-end capability is poor, and different clients need to be implemented using different technologies, which increases development costs and makes it difficult to provide users with a consistent experience on different clients.
[0062] In view of this, an embodiment of the present application provides a PLC collaborative development architecture to solve technical problems such as cross-regional access to controllers, cross-terminal operation of software, data consistency of multi-person collaboration, and software installation-free programming for users.
[0063] Furthermore, an embodiment of the present application provides a method for collaborative development of a programmable logic controller, by configuring front-end modules and back-end modules in an integrated development environment. When a front-end module initiates a real-time collaboration request, the back-end module creates a target collaboration group and sets a collaboration group identifier and a collaboration group key for the target collaboration group. Other front-end modules can join the target collaboration group according to the collaboration group identifier. The collaboration group identifier and the collaboration group key are sent to the data management units in each front-end module and back-end module. Any front-end module in the target collaboration group can send PLC development data carrying the collaboration group identifier to the back-end module. The back-end module can decrypt and execute the PLC development data through the data management unit, and can also send the PLC development data to other front-end modules in the target collaboration group through the collaboration center unit, thereby realizing remote collaborative development.
[0064] Figure 1 1 is a flow chart of a programmable logic controller collaborative development method provided by an embodiment of the present application. Figure 1 As shown, the method comprises the following steps:
[0065] In step S101, in response to determining that a real-time collaboration request sent by a first front-end module is received, the collaboration center unit creates a target collaboration group.
[0066] The target collaboration group at least includes a collaboration group identifier and a collaboration group key.
[0067] In step S102, the collaboration center unit sends the collaboration group identifier and the collaboration group key to the data management unit and the first front-end module.
[0068] In step S103, in response to determining that a request to join the target collaboration group sent by the second front-end module is received, the collaboration center unit adds the second front-end module to the target collaboration group and sends the collaboration group key to the second front-end module.
[0069] The second front-end module is at least one front-end module different from the first front-end module.
[0070] In step S104, the data management unit and the collaboration center unit implement collaborative development of each front-end module in the target collaboration group based on the collaboration group identifier and the collaboration group key.
[0071] In some embodiments of the present application, the method may be executed by a backend module in a control logic programming IDE, the backend module at least comprising a collaboration center unit and a data management unit. Furthermore, the control logic programming IDE may also include at least one frontend module.
[0072] When collaborative development is required, a front-end module among the front-end modules that need to perform collaborative development can autonomously initiate a real-time collaborative process. If the back-end module receives a real-time collaborative request sent by the first front-end module, the collaborative center unit in the back-end module can create a target collaborative group. The created target collaborative group includes at least a collaborative group identifier and a collaborative group key of the target collaborative group.
[0073] After creating the target collaboration group, the collaboration center unit can send the collaboration group identifier and collaboration group key of the target collaboration group to the data management unit in the back-end module for storage. On the other hand, the collaboration center unit can also send the collaboration group identifier and collaboration group key of the target collaboration group to the first front-end module.
[0074] After obtaining the collaboration group identifier, the user of the first front-end module can inform other front-end modules that need to be collaboratively developed of the collaboration group identifier through offline communication, such as telephone notification, email notification, instant messaging message notification, etc. After other front-end modules learn the collaboration group identifier of the target collaboration group, they can send a joining request to the back-end to join the target collaboration group.
[0075] In one example, the second front-end module can send a request to join the target collaboration group to the back-end module. The request to join the target collaboration group can carry the collaboration group identifier of the target collaboration group. The second front-end module is a front-end module different from the first front-end module. The second front-end module can be one or more front-end modules.
[0076] After receiving the request to join the target collaboration group sent by the second front-end module, the collaboration center unit can add the second front-end module to the target collaboration group. The collaboration center module can also send the collaboration group key of the target collaboration group to the second front-end module, so that the second front-end module can use the collaboration group key to perform encrypted communication with other members in the target collaboration group.
[0077] In some implementations, the data management unit and the collaboration center unit can implement collaborative development of each front-end module in the target collaboration group based on the collaboration group identifier and the collaboration group key. The specific implementation of collaborative development is described in detail below and will not be repeated here.
[0078] According to the technical solution provided in the embodiment of the present application, by configuring the front-end module and the back-end module in an integrated development environment, when a front-end module initiates a real-time collaboration request, the back-end module creates a target collaboration group and sets a collaboration group identifier and a collaboration group key for the target collaboration group. Other front-end modules can join the target collaboration group according to the collaboration group identifier. The collaboration group identifier and the collaboration group key are sent to the data management units in each front-end module and the back-end module. Any front-end module in the target collaboration group can send PLC development data carrying the collaboration group identifier to the back-end module. The back-end module can decrypt and execute the PLC development data through the data management unit, and can also send the PLC development data to other front-end modules in the target collaboration group through the collaboration center unit, thereby realizing remote collaborative development.
[0079] Figure 2 1 is a flow chart of a method for realizing collaborative development of each front-end module in a target collaborative group based on a collaborative group identifier and a collaborative group key provided by a data management unit and a collaborative center unit in an embodiment of the present application. Figure 2 As shown, the method comprises the following steps:
[0080] In step S201, in response to the data management unit receiving the programmable logic controller development data sent by the target front-end module and determining that the programmable logic controller development data carries a collaboration group identifier, the programmable logic controller development data is sent to the collaboration center unit.
[0081] The target front-end module is any front-end module in the target collaboration group.
[0082] In step S202, the collaboration center unit sends the programmable logic controller development data to other front-end modules in the target collaboration group, so that other front-end modules display the development results after decrypting the programmable logic controller development data using the collaboration group key.
[0083] In step S203, in response to the data management unit receiving the programmable logic controller development data sent by the target front-end module and determining that the programmable logic controller development data carries a collaboration group identifier, the data management unit uses the collaboration group key to decrypt the programmable logic controller development data and executes operations corresponding to the programmable logic controller development data.
[0084] In some embodiments of the present application, the data management unit and the collaboration center unit can realize the collaborative development of each front-end module in the target collaboration group based on the collaboration group identifier and the collaboration group key. On the one hand, the data management unit can receive the PLC development data sent by any front-end module in the target collaboration group, and obtain the corresponding collaboration group key according to the collaboration group identifier carried in the PLC development data, and then decrypt the PLC development data, and finally execute the operation corresponding to the PLC development data. For example, the PLC development data can be simulated, or the PLC development data can be compiled, and the compiled program can be sent to the on-site PLC module.
[0085] On the other hand, the data management unit can also send the received PLC development data to the collaborative center unit, which will query which front-end modules are included in the collaborative group corresponding to the collaborative group identifier carried in the PLC development data, and then send the PLC development data to all other front-end modules in the collaborative group. Other front-end modules can encrypt the PLC development data using the collaborative group key stored therein, and then synchronize and update the data on the local end, thereby realizing collaborative development.
[0086] Figure 3 1 is a flow chart of a method provided by the embodiment of the present application for a collaboration center unit to send programmable logic controller development data to other front-end modules in a target collaboration group. Figure 3 As shown, the method comprises the following steps:
[0087] In step S301, other front-end modules except the target front-end module in the target collaboration group are determined.
[0088] In step S302 , in response to determining that the number of other front-end modules is 1, the programmable logic controller development data is unicasted.
[0089] In step S303 , in response to determining that the number of other front-end modules is greater than 1, the programmable logic controller development data is multicasted.
[0090] In some embodiments of the present application, when the collaboration center unit sends the PLC development data to other front-end modules, the sending mode can be selected according to the number of front-end modules in the collaboration group. That is, the collaboration center unit can first determine the other front-end modules in the target collaboration group except the target front-end module, and if the number of other front-end modules is 1, the PLC development data is sent to the other front-end modules by unicast, and if the number of other front-end modules is greater than 1, the PLC development data is sent to the other front-end modules by multicast.
[0091] In some embodiments of the present application, the backend module may further include a user management unit.
[0092] Figure 4 : is a flow chart of another programmable logic controller collaborative development method provided by an embodiment of the present application. Figure 4 Steps S402 to S405 in the embodiment shown are Figure 1 Steps S101 to S104 in the illustrated embodiment are substantially the same and will not be described in detail herein. Figure 4 As shown, the method also includes the following steps:
[0093] In step S401, the user management module verifies the legitimacy of all front-end modules that will participate in the collaborative development.
[0094] In other words, the legitimacy of all front-end modules that will participate in collaborative development can be verified first, and then subsequent steps such as initiating a real-time collaborative process, creating a collaborative group, and collaborative development by members of the collaborative group can be executed.
[0095] Figure 5 1 is a flow chart of a method for a collaboration center unit to create a target collaboration group provided in an embodiment of the present application. Figure 5 As shown, the method comprises the following steps:
[0096] In step S501, the collaboration center unit generates a collaboration group identifier and a collaboration group key.
[0097] In step S502, a target collaboration group is created. The target collaboration group has a collaboration group identifier, and the target collaboration group uses a collaboration group key as an intra-group communication key.
[0098] In step S503, the first front-end module is recorded as a member of the target collaboration group.
[0099] In some embodiments of the present application, when creating a target collaboration group, the collaboration center unit may generate a collaboration group identifier and a collaboration group key of the target collaboration group, create the target collaboration group, and associate the collaboration group identifier and the collaboration group key with the target collaboration group, wherein the collaboration group key is used for encrypted communication among members within the group. On the other hand, the collaboration center unit may also record the first front-end module as a member of the target collaboration group.
[0100] If a new front-end module, such as a second front-end module, joins the target collaboration group, the collaboration center unit may also record the newly joined second front-end module as a member of the target collaboration group.
[0101] In some embodiments of the present application, the integrated development environment is implemented based on the BS architecture (Browser / Server Architecture), the back-end module is configured on the server, and the front-end module is configured on the user terminal and implemented based on the browser. In some implementations, the back-end module can also use the developed program to control the field programmable logic controller.
[0102] Figure 6 : is a structural diagram of the programmable logic controller collaborative development system provided in the embodiment of the present application. Figure 6 As shown, the system includes M front-end modules, back-end modules and N programmable logic controllers, where M and N are both positive integers greater than or equal to 1.
[0103] In one example, each front-end module includes at least a configuration interface, a development interface, a collaboration center client, and a communication interface configured based on a browser, wherein the browser may be configured in a PC (Personal Computer).
[0104] In another example, the back-end module includes at least a user management unit, a data management unit, a collaboration center server, a compilation unit, a simulation unit, a download debugging unit, a first communication interface, and a second communication interface. The first communication interface is used to communicate with the front-end module based on HTTP (Hypertext Transfer Protocol) / HTTP (Hypertext Transfer Protocol Secure, a hypertext transfer protocol with security as the goal), and the second communication module is used to communicate with the programmable logic controller based on a private protocol. The back-end module can be configured on a cloud platform.
[0105] In yet another example, each programmable logic controller includes at least a control logic operation unit and a communication interface.
[0106] In other words, the control logic programming IDE can adopt the Web technology BS front-end and back-end separation architecture.
[0107] Deploy the control logic programming IDE server on a public or private cloud. The user-operated human-machine interface only needs an Internet-connected device with a web browser installed to connect to the server to open it for programming and configuration operations.
[0108] The user's control logic code data and configuration data are stored in the server, which is the IDE backend. The server mainly includes the following modules:
[0109] Front-end and back-end communication interface: The front-end and back-end communicate via the HTTPS protocol to ensure data security.
[0110] User management: used for registration and login verification of user information.
[0111] Data management: Since the system adopts a front-end and back-end architecture, the control logic code data and files written by users are stored in the back-end server, and the data management module manages these data in a unified manner.
[0112] Compilation: The system can compile the control logic code written by the user into a binary file that can be executed in the PLC at the back end. The back end compilation module is to compile the user's code into a binary file. Because the back end compilation makes cross-end multi-user collaborative programming possible. During back end compilation, the compiler only needs to adapt to the hardware and operating system environment of the back end. If the front end compilation compiler is used, it needs to adapt to different hardware and operating system environments including mobile terminals, which will greatly increase the workload and the mobile terminal cannot realize the compilation function due to computing power reasons.
[0113] Collaboration Center Service: Realizes data collaborative forwarding during real-time collaborative programming among users.
[0114] Download debugging: transfer the compiled binary file to the PLC for PLC to run, and realize the debugging function of the control logic running in the PLC.
[0115] Download and debug communication interface: private communication protocol interface module between back-end service and PLC.
[0116] Simulation environment: It realizes the simulation environment of PLC controller, and can simulate and debug the control logic without connecting to the real PLC controller.
[0117] On the other hand, the client, i.e. the IDE front end, mainly includes the following modules:
[0118] Front-end and back-end communication interface: The front-end and back-end communicate via the HTTPS protocol to ensure data security.
[0119] Collaboration Center Client: Receives operation data sent by the Collaboration Center Server and reproduces related operations on the client.
[0120] Configuration interface: implements the human-computer interaction interface for configuration data.
[0121] Programming interface: human-computer interaction interface for code programming.
[0122] Since the system uses a control logic programming IDE implemented in a Web manner, for the client, it can work as long as there is a web browser, and there is no need to install other software, which greatly improves the convenience of user use.
[0123] Figure 7 It is a signal interaction diagram for creating a collaboration group during multi-user collaborative development provided by an embodiment of the present application.
[0124] Each user corresponds to a front-end module. Figure 7 As shown, all users participating in collaborative programming have their legitimacy verified by the back-end user management module. The legitimacy verification can be achieved by the front-end user sending a login request to the back-end user management unit, and the user management unit returns the login result after verifying the legitimacy of the front-end user.
[0125] When a front-end user initiates a real-time collaboration process to the back-end collaboration center service, the front-end user can send a request to start real-time collaboration to the back-end collaboration center, which carries the user information, address, etc. of the front-end user. The collaboration center creates a collaboration group, generates a collaboration group ID (Identity Document) and a key for encrypting data communicated between collaboration groups, and records the user information of the current collaboration group.
[0126] Furthermore, the collaboration center sends the ID and key of the created collaboration group to the back-end data management module. When the front-end sends the operation to the back-end data management module, the back-end data management module needs to decrypt the data and then perform related operations based on the data. Next, the collaboration center returns the collaboration group ID and key to the user who created the collaboration group. When other users join the collaboration group, the collaboration center service adds the users participating in the collaboration to the collaboration group and sends the communication key of the collaboration group to the users participating in the collaboration.
[0127] Figure 8 It is a signal interaction diagram for collaborative data distribution during multi-user collaborative development provided by an embodiment of the present application.
[0128] Each user corresponds to a front-end module. Figure 8 As shown, the front-end user can edit the code or modify the configuration on the front-end to obtain the development data including the collaboration group ID, and the development data is data encrypted using the collaboration group key.
[0129] After the development data is encrypted with the key of the collaboration group, it is sent to the back-end data management unit in real time, and the data management unit determines whether the development data needs to be collaboratively distributed. In one example, if the development data includes a collaboration group ID and the collaboration group ID is valid, it indicates that the development data is data that needs to be collaboratively distributed. For development data that is determined to need to be collaboratively distributed, the data management unit can decrypt the data using the key of the collaboration group, and then perform relevant operations based on the data. On the other hand, the data management unit can also send the data before decryption to the collaboration center.
[0130] The collaboration center can query which users in the collaboration group have participated in the collaboration. If the number of users participating in the collaboration is greater than one, the encrypted data will be sent to the front-end of the participating users via multicast. Otherwise, it will be sent via unicast, which can save network bandwidth to the maximum extent.
[0131] After receiving the encrypted development data, the collaborative users decrypt the data using the collaborative group's encryption key and then reproduce the related operations.
[0132] By adopting the technical solution of the embodiment of the present application, a cloud-deployed control logic programming IDE is implemented through Web technology and BS architecture, which reduces the software development cost. At the same time, PLC development users do not need to install specific software, but only need to perform remote programming and multi-user real-time collaborative programming on a device with a browser, thereby improving the usability and user experience of PLC remote collaborative development and improving user office efficiency.
[0133] All the above optional technical solutions can be arbitrarily combined to form optional embodiments of the present application, which will not be described one by one here.
[0134] The following is an embodiment of the device of the present application, which can be used to execute the embodiment of the method of the present application. For details not disclosed in the embodiment of the device of the present application, please refer to the embodiment of the method of the present application.
[0135] Fig. 9 Schematic diagram of a programmable logic controller collaborative development device provided in an embodiment of the present application. Fig. 9 As shown, the device comprises:
[0136] The backend module 901 is configured to create a target collaboration group by a collaboration center unit in the backend module in response to determining that a real-time collaboration request sent by the first frontend module is received. The target collaboration group includes at least a collaboration group identifier and a collaboration group key.
[0137] The backend module 901 is further configured to send the collaboration group identifier and the collaboration group key from the collaboration center unit to the data management unit in the backend module.
[0138] The first front-end module 902 is configured to receive a collaboration group identifier and a collaboration group key sent by the collaboration center unit.
[0139] The second front-end module 903 is configured to send a request to join the target collaboration group to the back-end module. The second front-end module is at least one front-end module different from the first front-end module.
[0140] The backend module 901 is further configured to, in response to determining that a request to join the target collaboration group sent by the second frontend module is received, add the second frontend module to the target collaboration group by the collaboration center unit, and send the collaboration group key to the second frontend module.
[0141] The data management unit and the collaboration center unit implement the collaborative development of each front-end module in the target collaboration group based on the collaboration group identifier and the collaboration group key.
[0142] According to the technical solution provided in the embodiment of the present application, by configuring the front-end module and the back-end module in an integrated development environment, when a front-end module initiates a real-time collaboration request, the back-end module creates a target collaboration group and sets a collaboration group identifier and a collaboration group key for the target collaboration group. Other front-end modules can join the target collaboration group according to the collaboration group identifier. The collaboration group identifier and the collaboration group key are sent to the data management units in each front-end module and the back-end module. Any front-end module in the target collaboration group can send PLC development data carrying the collaboration group identifier to the back-end module. The back-end module can decrypt and execute the PLC development data through the data management unit, and can also send the PLC development data to other front-end modules in the target collaboration group through the collaboration center unit, thereby realizing remote collaborative development.
[0143] In some embodiments, the data management unit and the collaboration center unit realize collaborative development of each front-end module in the target collaboration group based on the collaboration group identifier and the collaboration group key, including: in response to the data management unit receiving the programmable logic controller development data sent by the target front-end module and determining that the programmable logic controller development data carries the collaboration group identifier, sending the programmable logic controller development data to the collaboration center unit, wherein the target front-end module is any front-end module in the target collaboration group; the collaboration center unit sends the programmable logic controller development data to other front-end modules in the target collaboration group, so that the other front-end modules display the development results after decrypting the programmable logic controller development data using the collaboration group key.
[0144] In some implementations, after the data management unit receives the programmable logic controller development data sent by the target front-end module, it also includes: the data management unit uses the collaboration group key to decrypt the programmable logic controller development data and executes operations corresponding to the programmable logic controller development data.
[0145] In some embodiments, the collaboration center unit sends the programmable logic controller development data to other front-end modules in the target collaboration group, including: determining other front-end modules in the target collaboration group except the target front-end module; in response to determining that the number of other front-end modules is 1, unicast sending the programmable logic controller development data; in response to determining that the number of other front-end modules is greater than 1, multicast sending the programmable logic controller development data.
[0146] In some implementations, the backend module further includes a user management unit; before receiving the real-time collaboration request sent by the first frontend module, the method further includes: verifying the legitimacy of all frontend modules that will participate in the collaborative development through the user management module.
[0147] In some implementations, the collaboration center unit creates a target collaboration group, including: the collaboration center unit generates a collaboration group identifier and a collaboration group key; creates a target collaboration group, the target collaboration group has a collaboration group identifier, and the target collaboration group uses the collaboration group key as an intra-group communication key; and records the first front-end module as a member of the target collaboration group.
[0148] In some implementations, the integrated development environment is implemented based on a browser server BS architecture, the backend module is configured on the server, and the frontend module is configured on the user terminal and implemented based on the browser; the backend module uses the developed program to control the field programmable logic controller.
[0149] It should be understood that the size of the serial numbers of the steps in the above embodiments does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
[0150] Fig.10 Schematic diagram of an electronic device provided in an embodiment of the present application. Fig.10 As shown, the electronic device 10 of this embodiment includes: a processor 1001, a memory 1002, and a computer program 1003 stored in the memory 1002 and executable on the processor 1001. When the processor 1001 executes the computer program 1003, the steps in the above-mentioned method embodiments are implemented. Alternatively, when the processor 1001 executes the computer program 1003, the functions of the modules / units in the above-mentioned device embodiments are implemented.
[0151] The electronic device 10 may be a desktop computer, a notebook, a PDA, a cloud server, or other electronic device. The electronic device 10 may include, but is not limited to, a processor 1001 and a memory 1002. Those skilled in the art will appreciate that Fig.10 The electronic device 10 is merely an example and does not limit the electronic device 10 . The electronic device 10 may include more or fewer components than shown in the figure, or different components.
[0152] Processor 1001 can be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
[0153] The memory 1002 may be an internal storage unit of the electronic device 10, for example, a hard disk or memory of the electronic device 10. The memory 1002 may also be an external storage device of the electronic device 10, for example, a plug-in hard disk, a smart media card (SMC), a secure digital (SD) card, a flash card (FlashCard), etc. equipped on the electronic device 10. The memory 1002 may also include both an internal storage unit of the electronic device 10 and an external storage device. The memory 1002 is used to store computer programs and other programs and data required by the electronic device.
[0154] Those skilled in the art can clearly understand that for the convenience and simplicity of description, only the division of the above-mentioned functional units and modules is used as an example. In actual applications, the above-mentioned functions can be assigned to different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiments can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units.
[0155] If the integrated module / unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the present application implements all or part of the processes in the above-mentioned embodiment method, and can also be completed by instructing the relevant hardware through a computer program. The computer program can be stored in a computer-readable storage medium, and the computer program can implement the steps of the above-mentioned various method embodiments when executed by the processor. The computer program may include computer program code, which may be in source code form, object code form, executable file or some intermediate form. Computer-readable media may include: any entity or device capable of carrying computer program code, recording medium, U disk, mobile hard disk, disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electric carrier signal, telecommunication signal and software distribution medium, etc.
[0156] The above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. These modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present application, and should all be included in the protection scope of the present application.
Claims
1. A programmable logic controller collaborative development method, characterized in that: The method is performed by a back-end module in an integrated development environment, the back-end module at least comprising a collaboration center unit and a data management unit, and the integrated development environment further comprising a front-end module; The method comprises: In response to determining that the real-time collaboration request sent by the first front-end module is received, the collaboration center unit creates a target collaboration group, the target collaboration group at least including a collaboration group identifier and a collaboration group key; The collaboration center unit sends the collaboration group identifier and the collaboration group key to the data management unit and the first front-end module; In response to determining that a request to join a target collaboration group sent by a second front-end module is received, the collaboration center unit adds the second front-end module to the target collaboration group and sends the collaboration group key to the second front-end module, wherein the second front-end module is at least one front-end module different from the first front-end module; The data management unit and the collaboration center unit implement collaborative development of each front-end module in the target collaboration group based on the collaboration group identifier and the collaboration group key.
2. The method according to claim 1, characterized in that The data management unit and the collaboration center unit implement collaborative development of each front-end module in the target collaboration group based on the collaboration group identifier and the collaboration group key, including: In response to the data management unit receiving the programmable logic controller development data sent by the target front-end module and determining that the programmable logic controller development data carries the collaboration group identifier, sending the programmable logic controller development data to the collaboration center unit, wherein the target front-end module is any front-end module in the target collaboration group; The collaboration center unit sends the programmable logic controller development data to other front-end modules in the target collaboration group, so that other front-end modules display the development results after decrypting the programmable logic controller development data using the collaboration group key.
3. The method according to claim 2, characterized in that After the data management unit receives the programmable logic controller development data sent by the target front-end module, the method further includes: The data management unit decrypts the programmable logic controller development data using the collaboration group key and executes an operation corresponding to the programmable logic controller development data.
4. The method according to claim 2, characterized in that: The collaboration center unit sends the programmable logic controller development data to other front-end modules in the target collaboration group, including: Determine other front-end modules in the target collaboration group except the target front-end module; In response to determining that the number of other front-end modules is 1, unicast sending the programmable logic controller development data; In response to determining that the number of other front-end modules is greater than one, the programmable logic controller development data is multicast-sent.
5. The method according to claim 1, characterized in that The backend module also includes a user management unit; Before receiving the real-time collaboration request sent by the first front-end module, the method further includes: The user management module is used to verify the legitimacy of all front-end modules that will participate in the collaborative development.
6. The method according to claim 1, characterized in that The collaboration center unit creates a target collaboration group, including: The collaboration center unit generates the collaboration group identifier and the collaboration group key; Creating a target collaboration group, the target collaboration group having the collaboration group identifier, and the target collaboration group using the collaboration group key as an intra-group communication key; The first front-end module is recorded as a member of the target collaboration group.
7. The method according to any one of claims 1 to 6, characterized in that The integrated development environment is implemented based on the browser server BS architecture, the back-end module is configured on the server, and the front-end module is configured on the user terminal and implemented based on the browser; The back-end module controls the field programmable logic controller using the developed program.
8. A programmable logic controller collaborative development device, characterized in that: include: The back-end module is configured to, in response to determining that the real-time collaboration request sent by the first front-end module is received, create a target collaboration group by a collaboration center unit in the back-end module, wherein the target collaboration group includes at least a collaboration group identifier and a collaboration group key; The backend module is further configured to send the collaboration group identifier and the collaboration group key to the data management unit in the backend module by the collaboration center unit; A first front-end module, configured to receive the collaboration group identifier and the collaboration group key sent by the collaboration center unit; A second front-end module, configured to send a request to join the target collaboration group to the back-end module, the second front-end module being at least one front-end module different from the first front-end module; The backend module is further configured to, in response to determining that a request to join a target collaboration group sent by the second frontend module is received, add the second frontend module to the target collaboration group by the collaboration center unit, and send the collaboration group key to the second frontend module; as well as The data management unit and the collaboration center unit implement collaborative development of each front-end module in the target collaboration group based on the collaboration group identifier and the collaboration group key.
9. A programmable logic controller collaborative development system, characterized in that: It includes M front-end modules, back-end modules and N programmable logic controllers, where M and N are both positive integers greater than or equal to 1; Each front-end module includes at least a browser-based configuration interface, a development interface, a collaboration center client, and a communication interface; The back-end module at least includes a user management unit, a data management unit, a collaboration center server, a compilation unit, a simulation unit, a download debugging unit, a first communication interface and a second communication interface, wherein the first communication interface is used to communicate with the front-end module based on the hypertext transfer protocol, and the second communication module is used to communicate with the programmable logic controller based on a private protocol; Each programmable logic controller includes at least a control logic operation unit and a communication interface.
10. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 7 are implemented.