Distributed control system based on Tango and EPICS
By coupling the advantages of Tango and EPICS in a distributed control system, a robust and agile distributed control system was built, solving the problem that the existing technology cannot meet the needs of Tango and EPICS at the same time, and achieving system performance improvement and adaptability enhancement.
Patent Information
- Application Number
- CN202411530195.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-30
- Publication Date
- 2025-02-25
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
The existing control architecture uses only one of Tango or EPICS, and cannot meet the devices that meet the needs of both control architectures at the same time.
By coupling Tango's flexibility and EPICS stability, a distributed control system that is both robust and agile is built, and a modular design of the software customer layer, software interface layer, software service layer and device control layer is adopted to achieve efficient coupling between Tango and EPICS.
It improves the overall performance of the system, enhances the ability to adapt to different experimental needs, shortens the system development cycle, and makes centralized control software more flexible, robust, scalable and maintainable.
Smart Images

Figure CN119520575A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a distributed control system, in particular to a distributed control system based on Tango and EPICS. Background Art
[0002] In large-scale laser fusion devices, various types of equipment are widely distributed in different areas of the experimental facilities, with various types and functions. Some equipment is used to provide Tango-based equipment services, which are suitable for small laboratory equipment and prototype development, emphasizing rapid iteration and development of new functions. Tango's flexibility enables it to perform well in rapidly changing experimental environments and can quickly respond to changes in scientific research needs. Other equipment is used to provide EPICS-based equipment services. The EPICS system is suitable for large and complex systems, focusing on stability and scalability, and is usually used in projects that need to run for a long time. The EPICS architecture supports the integration of multiple devices and systems to ensure that the system can still operate reliably under high load and complex environments.
[0003] The Chinese patent with publication number CN112327740A discloses an embedded motion controller with integrated Tango device service. The controller is a PC-based motion controller on which PLC control program, OPC UA service and Tango device service are embedded and deployed. The Tango device service on the motion controller establishes a communication link with the control application service program of the remote control computer through the Tango software bus to exchange data. The motion controller can realize the integrated design, debugging and deployment of motor object control program and device service program.
[0004] The Chinese patent with publication number CN115827377A discloses an accelerator device monitoring system based on EPICS, which includes a client, a device monitoring server and a local control device; wherein the client is used to provide a monitoring interface for the target accelerator device, and receive the control instructions of the target accelerator device through the monitoring interface, and send the control instructions to the local control device through the device monitoring server; the local control device is used to control the target accelerator device according to the control instructions, and send the status data of the target accelerator device to the device monitoring server; the device monitoring server is used to convert the status data into PV values supported by EPICS, and use the plug-in service provided by itself to process the PV values, and feed back the PV values and their processing results to the client. The system can monitor an accelerator system including multiple devices.
[0005] The above two control architectures only use one of the Tango or EPICS control architectures, and cannot meet the needs of devices that require both of the above two control architectures. Summary of the invention
[0006] In order to solve the technical problem that the existing control architecture cannot meet the requirements of both Tango and EPICS control architectures, the present invention provides a distributed control system based on Tango and EPICS.
[0007] The inventive concept of the present invention:
[0008] The present invention builds a robust and agile distributed control system by coupling the flexibility of Tango with the stability of EPICS. This hybrid architecture efficiently couples Tango and EPICS to enhance the adaptability of the distributed control system to different experimental requirements.
[0009] Terminology explanation:
[0010] Tango: Tango Controls is a CORBA-based distributed control system that provides a full set of communication services for communication, logging, and event configuration, as well as a full set of general clients for setting up and testing Tango control systems. Tango can run on operating systems such as Linux, Windows NT, and Solaris, provides a rich application interface function library, and supports programming in multiple languages. Tango is widely used in European synchrotron light sources / accelerators.
[0011] EPICS: short for Robot Operating System, is mainly used to build distributed control systems, especially in high-energy physics, astronomy, life sciences and other fields. EPICS software consists of a standard three-layer structure, including operator interface module OPI, input and output control module IOC and channel access module CA, supporting multiple operating system platforms, such as Vxworks, Linux, Windows, etc. EPICS is an open source control system. There are more than 140 laboratories and universities in the world that use EPICS as a control system integration tool.
[0012] CA: A channel access mechanism based on the TCP / IP protocol in the EPICS system that allows clients to directly access channels (or process variables PV) in the server. In the EPICS system, each analog / digital input / output quantity is called a process variable (PV), and these PVs correspond to a record in the database. The CA protocol describes how clients access these PVs through the network to implement functions such as data reading, writing, and monitoring.
[0013] Distributed: "Distributed" means, relative to centralized, that multiple computers can control multiple modules separately. Each module can serve as a separate control unit, and coordinated control of multiple actuators can be achieved through the network. At the same time, the control system can centrally acquire data, centrally manage and centrally control.
[0014] In order to achieve the above purpose and complete the above invention concept, the present invention adopts the following technical solutions:
[0015] A distributed control system based on Tango and EPICS, which is special in that it includes a software client layer, a software interface layer, a software service layer and a device control layer;
[0016] The software client layer includes a first Tango client and a first EPICS client;
[0017] The software interface layer includes a first Tango server, a first EPICS server, a second EPICS client, and a second Tango client;
[0018] The software service layer includes a second EPICS server and a second Tango server;
[0019] The above distributed control system uses the following four methods to upload and send data:
[0020] Method 1:
[0021] The second EPICS server collects data from the device control layer and uploads the data to the first Tango client via the second EPICS client and the first Tango server in sequence. The data transmission route is opposite to that of data upload.
[0022] Method 2:
[0023] The second Tango server collects data from the device control layer and uploads it to the first EPICS client via the second Tango client and the first EPICS server in sequence. The data transmission route is opposite to that of data upload.
[0024] Method 3:
[0025] The second EPICS server collects data from the device control layer and directly uploads it to the first EPICS client. The data transmission route is opposite to the data upload route.
[0026] Method 4:
[0027] The second Tango server collects data from the device control layer and directly uploads it to the first Tango client. The route of data transmission is opposite to that of data upload.
[0028] Furthermore, the four methods are executed synchronously.
[0029] Furthermore, the four methods are executed asynchronously.
[0030] Further, the software client layer is deployed on machine A;
[0031] The software interface layer is deployed on machine B;
[0032] The software service layer is deployed on machine C;
[0033] The number of the machine A, the machine B, and the machine C is respectively greater than or equal to 1.
[0034] Furthermore, the software client layer and the software interface layer are deployed on machine A;
[0035] The software service layer is deployed on machine B;
[0036] The number of the machine A and the number of the machine B are respectively greater than or equal to 1.
[0037] Further, the software client layer is deployed on machine A;
[0038] The software interface layer and software service layer are deployed on machine B;
[0039] The number of the machine A and the number of the machine B are respectively greater than or equal to 1.
[0040] Furthermore, the software client layer, software interface layer and software service layer are all deployed on machine A;
[0041] The number of the machines A is greater than or equal to 1.
[0042] Furthermore, the uploaded or downloaded data types include scalar unsigned data, scalar signed data, one-dimensional array unsigned data, one-dimensional array signed data, two-dimensional array unsigned data, and two-dimensional array signed data.
[0043] Furthermore, the method 1 is specifically as follows:
[0044] The second EPICS server collects data from the device control layer, transmits it to the second EPICS client through the channel access module CA, transmits it to the first Tango server through the message queue, and then uploads it to the first Tango client in a synchronous, asynchronous or event-driven manner. The downlink route is opposite to the upload route.
[0045] Furthermore, the second method is specifically as follows:
[0046] The second Tango server collects data from the device control layer, transmits the data to the second Tango client through the Tango middleware, then sends the data to the first EPICS server through the message queue, and finally uploads the data to the first EPICS client through the channel access module CA. The sending route is opposite to the uploading route.
[0047] Beneficial effects of the present invention:
[0048] The present invention provides a distributed control system based on Tango and EPICS, which gives full play to the respective advantages of Tango and EPICS, can improve the overall performance of the system, and also provide reference and reference for the control system design of other large-scale experimental devices. The present invention introduces a software client layer, a software interface layer, a software service layer and a device control layer, and improves the uniformity and standardization of the control system through modular design, which can shorten the development cycle of the system and make the centralized control software more flexible, robust, scalable and maintainable. Through the standardized software interface layer, system integration and function expansion can be carried out more effectively, ensuring that the system can quickly adapt and maintain efficient operation in the face of rapidly changing experimental needs. BRIEF DESCRIPTION OF THE DRAWINGS
[0049] Figure 1 It is a structural schematic diagram of an embodiment of a distributed control system based on Tango and EPICS of the present invention;
[0050] Figure 2 This is a schematic diagram of the data upload process using double-precision floating point data as an example in the first embodiment of the present invention;
[0051] Figure 3 This is a schematic diagram of the data sending process using double-precision floating point data as an example in the first mode of the embodiment of the present invention;
[0052] Figure 4 This is a schematic diagram of a data upload process using a double-precision floating point type as an example in the second mode of an embodiment of the present invention;
[0053] Figure 5 This is a schematic diagram of the data sending process taking double-precision floating point type as an example in the second mode of an embodiment of the present invention. DETAILED DESCRIPTION
[0054] The technical solution of the present invention will be clearly and completely described below in conjunction with the accompanying drawings and embodiments. Obviously, the described embodiments are only part of the embodiments of the present invention, rather than all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0055] An embodiment of the present invention provides a distributed control system based on Tango and EPICS, such as Figure 1 As shown, the overall structure consists of software client layer, software interface layer, software service layer, and device control layer. Distributed control systems are divided into four data transmission modes, which are executed synchronously or asynchronously, and are selected according to the software service mode provided by the device service provider.
[0056] The software client layer of method one includes the first Tango client, the software interface layer includes the first Tango server and the second EPICS client, the software service layer includes the second EPICS server, and the device control layer includes motors, CCDs, and PLCs, etc. The route of method one is the first Tango client ←→ the first Tango server ←→ the second EPICS client ←→ the second EPICS server ←→ the device control layer.
[0057] The software client layer of the second method includes the first EPICS client, the software interface layer includes the first EPICS server and the second Tango client, the software service layer includes the second Tango server, and the device control layer includes motors, CCDs, and PLCs, etc. The route of the second method is the first EPICS client ←→ the first EPICS server ←→ the second Tango client ←→ the second Tango server ←→ the device control layer.
[0058] The software client layer of method three includes the first EPICS client, no software interface layer, the software service layer includes the second EPICS server, and the device control layer includes motors, CCDs, and PLCs, etc. The route of method three is the first EPICS client ←→ the second EPICS server ←→ the device control layer.
[0059] The software client layer of method 4 includes the first Tango client, no software interface layer, the software service layer includes the second Tango server, and the device control layer includes motors, CCDs, and PLCs, etc. The route of method 4 is the first Tango client ←→ the second Tango server ←→ the device control layer.
[0060] The specific data transmission methods are:
[0061] The Tango client (including the first Tango client and the second Tango client) and the Tango server (including the first Tango server and the second first Tango server) communicate in a synchronous, asynchronous or event-driven manner; the EPICS client (including the first EPICS client and the second EPICS client) and the EPICS server (including the first EPICS server and the second EPICS server) communicate through a channel access module CA; the Tango server (including the first Tango server and the second Tango server) and the EPICS client (including the first EPICS client and the second EPICS client) transmit data through a message queue; the EPICS server (including the first EPICS server and the second EPICS server) and the Tango client (including the first Tango client and the second Tango client) transmit data through a message queue.
[0062] The system provides flexible distribution:
[0063] Method 1: The software client layer is on machine A; the software interface layer is deployed on machine B, and the software service layer is deployed on machine C. The number of machines A, B, and C is greater than or equal to 1.
[0064] Method 2: The software client layer and the software interface layer are on machine A, and the software service layer is deployed on machine B. The number of machines A and B is greater than or equal to 1.
[0065] Method 3: The software client layer is deployed on machine A, and the software interface layer and the software service layer are deployed on machine B. The number of machines A and B is greater than or equal to 1.
[0066] Mode 4: The software client layer, software interface layer, and software service layer are deployed on machine A, and the number of machine A is greater than or equal to 1.
[0067] The system supports multiple programming languages and operating systems, including C++, Java, Python, LabVIEW and other programming languages. Machine A or machine B or machine C can support PCs or embedded devices with Linux or Windows operating systems.
[0068] Conventional systems only include one of the Tango architecture or the EPICS architecture, and there is no control architecture that combines the two. The embodiments of the present invention combine the two architectures and test data of various data types to verify their effectiveness and real-time performance, providing a new method and idea for devices that need to meet both architectures.
[0069] The data communication between the above software client layer and the device control layer includes "download" and "upload":
[0070] Sending: It means that the command or data is transmitted from the software client layer to the device control layer, referred to as "sending". Specifically, it is sending commands or data from the human-computer interaction interface of the software client layer to the terminal device and actuator.
[0071] Upload: Data is transferred from the device control layer to the software client layer, referred to as "upload". Specifically, the data generated by the terminal equipment and actuators is transferred to the human-computer interaction interface of the software client layer.
[0072] The "sending" and "uploading" of commands and data support the following data types: various types of unsigned data and signed data including scalar, one-dimensional array, two-dimensional array, and structure, and the above types of data respectively include Boolean, character, integer, single-precision floating point, double-precision floating point, string, etc. Accordingly, the supported devices include but are not limited to: motor-type execution devices, CCD-type data acquisition devices, PLC-type control devices, etc. All three types of devices can be applied in this embodiment.
[0073] The first method is to "upload" data as follows: the second EPICS server collects data from the device control layer through the field bus or various protocols, and then transmits the data to the second EPICS client through the channel access module CA, and then sends the data to the first Tango server through the message queue, and finally transmits the data to the first Tango client through the Tango middleware. Figure 2 Taking double-precision floating-point type as an example, the transmission process of data "upload" is demonstrated.
[0074] The first method is to "send" commands or data as follows: the first Tango client inputs a data, which is transmitted to the first Tango server through the Tango middleware, and then sent to the second EPICS client through the message queue, and then transmitted to the second EPICS server through the channel access module CA, and finally transmitted to the device control layer through the field bus or various protocols. Figure 3 Taking double-precision floating-point type as an example, the transmission process of data "sending" is demonstrated.
[0075] The second method is to "upload" data as follows: the second Tango server collects the data of the device through the field bus or various protocols, and then transmits the data to the second Tango client through the Tango middleware, and then sends the data to the first EPICS server through the message queue, and finally transmits the data to the first EPICS client through the channel access module CA. Figure 4 Taking double-precision floating-point type as an example, the transmission process of data "upload" is demonstrated.
[0076] The second method is to "send" commands or data as follows: the first EPICS client inputs data, which is transmitted to the first EPICS server through the channel access module CA, and then sent to the second Tango client through the message queue, and then transmitted to the second Tango server through the Tango middleware, and finally transmitted to the device through the field bus or various protocols. Figure 5 Taking double-precision floating-point type as an example, the transmission process of data "sending" is demonstrated.
[0077] The above is only a specific embodiment of the present invention, but the protection scope of the present invention is not limited thereto. Any changes or substitutions within the technical scope disclosed by the present invention should be included in the protection scope of the present invention. Therefore, the protection scope of the present invention should be based on the protection scope of the claims.
Claims
1. A distributed control system based on Tango and EPICS, characterized in that: Includes software client layer, software interface layer, software service layer and device control layer; The software client layer includes a first Tango client and a first EPICS client; The software interface layer includes a first Tango server, a first EPICS server, a second EPICS client, and a second Tango client; The software service layer includes a second EPICS server and a second Tango server; The above distributed control system uses the following four methods to upload and send data: Method 1: The second EPICS server collects data from the device control layer and uploads the data to the first Tango client via the second EPICS client and the first Tango server in sequence. The data transmission route is opposite to that of data upload. Method 2: The second Tango server collects data from the device control layer and uploads it to the first EPICS client via the second Tango client and the first EPICS server in sequence. The data transmission route is opposite to that of data upload. Method 3: The second EPICS server collects data from the device control layer and directly uploads it to the first EPICS client. The data transmission route is opposite to the data upload route. Method 4: The second Tango server collects data from the device control layer and directly uploads it to the first Tango client. The route of data transmission is opposite to that of data upload.
2. The distributed control system based on Tango and EPICS according to claim 1, characterized in that: The four methods are executed synchronously.
3. The distributed control system based on Tango and EPICS according to claim 1, characterized in that: The four methods are executed asynchronously.
4. The distributed control system based on Tango and EPICS according to claim 2 or 3, characterized in that: The software client layer is deployed on machine A; The software interface layer is deployed on machine B; The software service layer is deployed on machine C; The number of the machine A, the machine B, and the machine C is respectively greater than or equal to 1.
5. The distributed control system based on Tango and EPICS according to claim 2 or 3, characterized in that: The software client layer and software interface layer are deployed on machine A; The software service layer is deployed on machine B; The number of the machine A and the number of the machine B are respectively greater than or equal to 1.
6. The distributed control system based on Tango and EPICS according to claim 2 or 3, characterized in that: The software client layer is deployed on machine A; The software interface layer and software service layer are deployed on machine B; The number of the machine A and the number of the machine B are respectively greater than or equal to 1.
7. The distributed control system based on Tango and EPICS according to claim 2 or 3, characterized in that: The software client layer, software interface layer and software service layer are all deployed on machine A; The number of the machines A is greater than or equal to 1.
8. The distributed control system based on Tango and EPICS according to claim 2 or 3, characterized in that: The data types uploaded or sent include scalar unsigned data, scalar signed data, one-dimensional array unsigned data, one-dimensional array signed data, two-dimensional array unsigned data, and two-dimensional array signed data.
9. The distributed control system based on Tango and EPICS according to claim 8, characterized in that: The method 1 is specifically as follows: The second EPICS server collects data from the device control layer, transmits it to the second EPICS client through the channel access module CA, transmits it to the first Tango server through the message queue, and then uploads it to the first Tango client in a synchronous, asynchronous or event-driven manner. The downlink route is opposite to the upload route.
10. The distributed control system based on Tango and EPICS according to claim 9, characterized in that: The second method is specifically as follows: The second Tango server collects data from the device control layer, transmits the data to the second Tango client through the Tango middleware, then sends the data to the first EPICS server through the message queue, and finally uploads the data to the first EPICS client through the channel access module CA. The sending route is opposite to the uploading route.
Citation Information
Patent Citations
Embedded motion controller integrated with Tango equipment service
CN112327740A
Accelerator equipment monitoring system based on EPICS
CN115827377A
Distributed robot control system and control method based on Tango and ROS
CN117484490A
Cited By
Distributed robot control system and control method based on Tango and ROS
CN117484490A
Distributed robot control system and control method based on tango and ros
CN117484490B