WO2022267578A1 - Reconfigurable multi-thread-parallelism upper computer system based on can communication - Google Patents

Reconfigurable multi-thread-parallelism upper computer system based on can communication Download PDF

Info

Publication number
WO2022267578A1
WO2022267578A1 PCT/CN2022/082174 CN2022082174W WO2022267578A1 WO 2022267578 A1 WO2022267578 A1 WO 2022267578A1 CN 2022082174 W CN2022082174 W CN 2022082174W WO 2022267578 A1 WO2022267578 A1 WO 2022267578A1
Authority
WO
WIPO (PCT)
Prior art keywords
thread
main thread
event
data
state
Prior art date
Application number
PCT/CN2022/082174
Other languages
French (fr)
Chinese (zh)
Inventor
陈健斌
杨程喻
邹建俊
Original Assignee
广东泰坦智能动力有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 广东泰坦智能动力有限公司 filed Critical 广东泰坦智能动力有限公司
Publication of WO2022267578A1 publication Critical patent/WO2022267578A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the invention relates to the technical field of circuit systems, in particular to a reconfigurable multi-thread parallel upper computer system based on can communication.
  • the role of the upper computer is mainly to monitor various characterization parameters, operating status and working mode of the digital power supply online in real time, and it can also control the digital power supply system.
  • the role of the upper computer is mainly to monitor various characterization parameters, operating status and working mode of the digital power supply online in real time, and it can also control the digital power supply system.
  • people used traditional instruments to complete the monitoring and control of the circuit system.
  • the upper computer software can transmit data, realize the parameter setting of the digital power supply, online calibration and logic test.
  • people were debugging this type of power supply system, they often needed to use many test instruments to carry out hardware debugging work, so as to know the operating status of the circuit and other information in real time.
  • test instruments There are a large number of such instruments, which are inconvenient to read and store, and direct coupling from the outside into the power system will introduce unknown interference.
  • the traditional PID control needs to adjust the control parameters such as proportional coefficient/integral coefficient/differential coefficient and observe its working status, and use this as a criterion for software debugging. Since the control strategy and parameters cannot be modified online and in real time, for the digital power module, the program needs to be reprogrammed every time the control parameters are modified. For traditional power modules, changing the parameters of the control loop means that the parameters of the components of the hardware circuit may need to be modified.
  • the technical problem to be solved by the present invention is to solve the above problems and provide a reconfigurable multi-threaded parallel host computer system based on CAN communication that effectively improves the operating efficiency of host computer programs and reduces failure probability.
  • the technical solution provided by the present invention is: a reconfigurable multi-threaded parallel upper computer system based on can communication, characterized in that: it includes a main thread and a secondary thread connected with the main thread, the main thread
  • the thread includes opening the CAN device, initializing the CAN device, transmitting and receiving CAN messages, restarting the CAN device, and changing the settings of the CAN device.
  • the main thread is a state machine mode of a parallel program that performs CAN communication in an orderly and elegant manner.
  • the running state is determined by the running state enumeration in an enumeration variable, and the data type of the running state enumeration is a collection of integer constants that can be named to express different running states of the main thread.
  • the state enumeration has four values: Init, Run, Wait, and Exit.
  • the enumeration enters different states to run in different running states.
  • the running state enumeration will be updated according to the situation, and then enter the specified running state in the next main thread cycle.
  • the main thread includes the following steps:
  • step S2 the value of running status enumeration in step S1 includes Init, Run, Wait and Exit,
  • the Wait includes the update of the event structure generated from the user event, and the update of the event structure generated from the user event includes a parallel Open value change event and other value change events, and the parallel Open value change event opens the CAN step.
  • Three subVI programs are respectively the Open subVI program, the Init subVI program, the Start subVI program, and the change events of other values include binding specific information values in the CAN communication standard cluster to other values changed by name,
  • the parallel Open value change event includes judging the event data flow, enumerating the running state and assigning Run and Wait values;
  • Described Run comprises the following steps:
  • the event structure includes the UpdateUIEvent generated from the front panel button control and the user event data flow,
  • UpdateUIEvent When it is user data and user event data flow UpdateUIEvent, it corresponds to the Disablie assignment of the Event attribute node, then judges the event data flow, and finally enumerates the running status and assigns the Run value.
  • step b5 when the final running state enumerations are all assigned Run and Wait values, the main thread enters the next cycle;
  • Said Exit comprises the following steps:
  • the secondary thread includes a receiving thread, a loop sending query message thread, an output parameter modification thread, and a calibration high and low parameter modification thread,
  • the running process of the receiving thread comprises the following steps:
  • the function of the loop sending query message thread is to obtain and update various operating parameters and mode status data of the digital power module in time, and the operation process includes the following steps:
  • T1 After entering the loop to send the query message thread, judge the state of the main thread, and then through a parallel program block diagram that automatically generates polling parameters according to the protocol, obtain the data frame and combine it into a character string of the data frame for the query.
  • the output parameter modification thread is to modify various operating parameters and mode status data of the digital power module, and the operation process includes the following steps:
  • the function of the calibration high and low parameter modification thread is to calibrate the digital power module, and the operation process includes the following steps:
  • the present invention has the following advantages:
  • the present invention system is a kind of CAN host computer software for digital power supply module, is written by a kind of graphical high-level programming language labview, and the characteristics of the present invention are:
  • Multi-threading is composed in a serial-parallel hybrid manner, while avoiding data competition risks.
  • Reconfigurable design can be carried out according to the required functions, and the number and composition of threads can be increased or decreased according to actual needs.
  • Adaptable and reconfigurable design can be carried out according to the protocol content and actual hardware, and adapt to different digital power systems by replacing the protocol interpretation method and secondary library.
  • the main thread is a state machine mode of a parallel program that can perform CAN communication in an orderly and elegant manner.
  • the main thread of the present invention is the only program thread that will run all the time during the entire use process of the entire program. Other program threads will decide whether to run according to information such as running state enumeration and intermediate quantity status. This "one main thread runs all the time, The multi-thread mode of "intermittent operation of multiple sub-threads" can effectively improve the operating efficiency of the host computer program and reduce the probability of failure.
  • the main thread is in the Init state.
  • the main function of the main thread is to open the CAN device and initialize it.
  • the specific operations include decomposing and rebinding the CAN communication standard cluster, and generating UI by calling attribute nodes and dynamic registration events. Update the event UpdateUIEvent, so as to update the CAN communication standard cluster and adjust the state of the UI data in time. At the same time, assign Wait to the running state enumeration, so that the main thread enters the Wait mode.
  • the main thread is in the Wait state.
  • the main function of the main thread is to wait for the CAN device to be ready, and judge the operation status of the CAN device to determine which main thread state to enter next and update the information in the CAN communication standard cluster. Wait
  • the main thread in the state is a program with an event structure, and the event types of the event structure mainly include changes in specific information values in the CAN communication standard cluster and front panel closing events.
  • the main function of the main thread is to judge and receive data from each sub-thread, and pack these data into a CAN communication standard cluster, and call the CAN sending subroutine to convert the packaged CAN communication standard Clusters are converted into CAN messages and sent out.
  • the main thread is in the Init state.
  • the main function of the main thread is to open the CAN device and initialize it.
  • the specific operations include decomposing and rebinding the CAN communication standard cluster, and generating UI by calling attribute nodes and dynamic registration events. Update the event UpdateUIEvent, so as to update the CAN communication standard cluster and adjust the state of the UI data in time. At the same time, assign Wait to the running state enumeration, so that the main thread enters the Wait mode.
  • the main thread is in the Wait state.
  • the main function of the main thread is to wait for the CAN device to be ready, and judge the operation status of the CAN device to determine which main thread state to enter next and update the information in the CAN communication standard cluster.
  • the secondary thread also includes threads for calibration reset, identification, module serial number setting parameter modification, module state information separation and display, logic variable output, and power module on/off.
  • Fig. 1 is a schematic diagram of the program function of the main thread of a reconfigurable multi-threaded parallel upper computer system based on can communication in the present invention.
  • Fig. 2 is a program block diagram of the main thread of a reconfigurable multi-threaded parallel upper computer system based on can communication in the present invention.
  • Fig. 3 is a program block diagram of a receiving thread of a reconfigurable multi-threaded parallel upper computer system based on can communication in the present invention.
  • Fig. 4 is a program block diagram of a reconfigurable multi-threaded parallel upper computer system based on can communication in the present invention, which is a thread program for cyclically sending inquiry messages.
  • Fig. 5 is a program block diagram of an output parameter modification thread of a reconfigurable multi-threaded parallel upper computer system based on can communication in the present invention.
  • Fig. 6 is a program block diagram of a reconfigurable multi-threaded parallel upper computer system based on can communication in the present invention to modify the high and low parameters of the calibration thread.
  • a reconfigurable multi-threaded parallel upper computer system based on can communication including a main thread and multiple secondary threads connected to the main thread, the main thread includes opening the CAN device, initializing the CAN device, CAN message transmission and reception, CAN device restart, CAN device setting change, the running state of the main thread is determined by the running state enumeration in an enumeration variable, and the data type of the running state enumeration is a kind of A collection of named integer constants to express the different running states of the main thread.
  • the running state enumeration has four values: Init, Run, Wait, and Exit. In different running states, the enumeration enters different states and runs at the same time. Update the running state enumeration according to the situation, and then enter the specified running state in the main thread cycle next time, and the main thread includes the following steps:
  • step S2 the value of running status enumeration in step S1 includes Init, Run, Wait and Exit,
  • the Wait includes the update of the event structure generated from the user event, and the update of the event structure generated from the user event includes a parallel Open value change event and other value change events, and the parallel Open value change event opens the CAN step.
  • Three subVI programs are respectively the Open subVI program, the Init subVI program, the Start subVI program, and the change events of other values include binding specific information values in the CAN communication standard cluster to other values changed by name,
  • the parallel Open value change event includes judging the event data flow, enumerating the running state and assigning Run and Wait values;
  • Described Run comprises the following steps:
  • the event structure includes the UpdateUIEvent generated from the front panel button control and the user event data stream,
  • UpdateUIEvent When it is user data and user event data flow UpdateUIEvent, it corresponds to the Disablie assignment of the Event attribute node, then judges the event data flow, and finally enumerates the running status and assigns the Run value.
  • step b5 when the final running state enumerations are all assigned Run and Wait values, the main thread enters the next cycle;
  • Said Exit comprises the following steps:
  • the secondary thread includes a receiving thread, a loop sending query message thread, an output parameter modification thread, and a calibration high and low parameter modification thread,
  • the running process of the receiving thread comprises the following steps:
  • the function of the loop sending query message thread is to obtain and update various operating parameters and mode status data of the digital power module in time, and the operation process includes the following steps:
  • T1 After entering the loop to send the query message thread, judge the state of the main thread, and then through a parallel program block diagram that automatically generates polling parameters according to the protocol, obtain the data frame and combine it into a character string of the data frame for the query.
  • the output parameter modification thread is to modify various operating parameters and mode status data of the digital power module, and the operation process includes the following steps:
  • the function of the calibration high and low parameter modification thread is to calibrate the digital power module, and the operation process includes the following steps:
  • the main thread is in the Init state.
  • the main function of the main thread is to open the CAN device and initialize it.
  • the specific operations include decomposing and rebinding the CAN communication standard cluster, and generating UI update events UpdateUIEvent by calling attribute nodes and dynamic registration events , so as to update the CAN communication standard cluster and adjust the state of UI data in time, and at the same time, assign a value to Wait for the running state enumeration, so that the main thread enters the Wait mode.
  • the main thread is in the Wait state.
  • the main function of the main thread is to wait for the CAN device to be ready, and judge the operation state of the CAN device to determine which main thread state to enter next and to update the information in the CAN communication standard cluster.
  • the main thread is a program with an event structure, and the event types of the event structure mainly include changes in specific information values in the CAN communication standard cluster and front panel closing events.
  • the main function of the main thread is to judge and receive data from each sub-thread, and pack these data into CAN communication standard clusters, and call the CAN sending subroutine to convert the packaged CAN communication standard clusters into The CAN message is sent out.
  • the main thread is in the Init state.
  • the main function of the main thread is to open the CAN device and initialize it.
  • the specific operations include decomposing and rebinding the CAN communication standard cluster, and generating UI update events UpdateUIEvent by calling attribute nodes and dynamic registration events , so as to update the CAN communication standard cluster and adjust the state of UI data in time, and at the same time, assign a value to Wait for the running state enumeration, so that the main thread enters the Wait mode.
  • the main function of the main thread is to wait for the CAN device to be ready, and judge the operation status of the CAN device to determine which main thread state to enter next and to update the information in the CAN communication standard cluster.
  • the secondary thread also includes threads for calibration reset, identification mark synthesis, module serial number setting parameter modification, module state information separation and display, logic variable output, and power module power on/off.
  • the main function of the main thread was to open the CAN device and initialize it.
  • the specific operation includes decomposing and re-bundling the CAN communication standard cluster, such as overwriting the CAN configuration information decomposed from the CAN communication standard cluster, and then bundling it back into the CAN communication standard cluster by name, by calling attribute nodes and dynamically registering events To generate a UI update event (English name UpdateUIEvent), so as to update the CAN communication standard cluster and adjust the state of the UI data in time.
  • UI update event English name UpdateUIEvent
  • the main function of the main thread is to wait for the CAN device to be ready, and judge the operation state of the CAN device to determine which main thread state to enter next and update the information in the CAN communication standard cluster.
  • the main thread in the Wait state is a program with an event structure, which is similar to an interrupt event. It is a programming structure that emphasizes real-time performance. The programming structure of the corresponding program will be executed only when the corresponding event occurs, and the event of the event structure
  • the types mainly include the change of specific information value in the CAN communication standard cluster and the closing event of the front panel, a total of ten event types.
  • the change of specific information values in other CAN communication standard clusters is just to replace the corresponding parameters in the CAN communication standard cluster, and then generate the corresponding UI update event (English name UpdateUIEvent ).
  • This part of the program is used to successfully open the CAN device after performing specific steps on the CAN device after the initialization of the CAN device is completed.
  • the usual steps are to execute three subVI programs in sequence, namely 1.Open, 2.Init, and 3.Start, and judge whether the execution is successful.
  • this part also needs to generate corresponding user events to regulate the entire multi-threaded system to improve the reliability of the system. And judge the assignment of "running state enumeration" according to the execution effect. If the CAN device is not successfully opened, it will stay in the Wait state. If the CAN device is successfully opened, the "running state enumeration" will be assigned a value of Run.
  • the main function of the main thread is to judge and receive data from each sub-thread, and pack these data into CAN communication standard clusters defined in the present invention, and call CAN to send subroutines to pack CAN communication standard clusters.
  • Clusters are converted into CAN messages and sent out.
  • the program is a programming structure of an event structure, and the operation of the program can be triggered by an event such as "a certain key is pressed". For example, when the event of "pressing the output parameter button" occurs, the corresponding program flow is entered, and the data frame (data frame that has been converted into a string) from the output parameter secondary thread is packaged into a CAN communication standard cluster, Then it is converted into a CAN message and sent out.
  • a CAN shutdown command is received (the command may come from the shutdown button on the front panel or the shutdown of the CAN device), it will enter the "CAN shutdown event".
  • the specific operation is to call the CAN shutdown subfunction and update the corresponding user event and A UI update event (English name UpdateUIEvent) is generated.
  • the main thread will also update some corresponding user events and generate UI update events (English name UpdateUIEvent).
  • Event which is a way to describe the data flow of parallel programs, and are generally used to coordinate the parallel operations of multiple threads) control the running status of other sub-threads and transmit data with other sub-threads. In this way, the purpose of coordinating the operation of multiple threads is achieved, and the parallel operation of the program is realized.
  • Receiving thread Combined with Figure 3, in order to receive and analyze messages from the digital power module in a timely manner, a thread that receives CAN messages and translates CAN messages is needed.
  • the secondary thread used in the present invention to realize this function is the "receiving thread”.
  • the running process of the secondary thread "receiving thread” first judge whether the state of the main thread is open, if the state of the main thread is open, then call the sub VI “VCI_Recieve", and call the CAN secondary library to receive the CAN message Format conversion to the CAN communication standard cluster. On the contrary, it is judged that CAN is open, and the delay is 50ms. After getting the CAN communication standard cluster, judge whether it is empty information. If it is not an empty message, proceed to the operation shown in the program block diagram to parse and translate the message.
  • Circular sending query message thread In combination with Figure 4, in order to obtain and update various operating parameters and mode status data of the digital power module in time, a thread that polls and sends query CAN messages is needed.
  • the secondary thread used to realize this function in the present invention is "circularly sending query message thread", and the program structure of "cyclically sending query message thread” is a flat sequence structure (English name flat sequence), that is, a method according to a specified order Execute the program structure of the corresponding program frame (English name frame).
  • the cyclic sending inquiry message thread of the present invention has used three program frames, is respectively: the character string (order 0) of the data frame of synthesizing inquiry, sending inquiry message (order 1) and updating multi-column list box data (order 2 ).
  • Adding a program to update multi-column list box data in the loop sending query message thread can avoid the competition-adventure effect of its data flow (similar to the competition-adventure effect of digital circuits, this phenomenon also occurs in parallel programs. After the same data is transmitted through the data streams of different threads, the time to arrive at a certain meeting point in the network is different, and some data errors will occur), so as to improve the reliability of the system.
  • the program structure of the output parameter modification thread is a conditional structure (English name case structure). Combined with Figure 5, first judge the enumeration variable generated by the drop-down selection control of the front panel control, then add the corresponding program branch (English name case), synthesize the corresponding output string according to the communication protocol, and convert this string Passed to the sender of the main process. Finally, the main process completes the process of CAN sending, which can avoid problems such as hardware conflicts of CAN devices.
  • the program structure of "calibration high and low parameter modification thread” is a conditional structure (English name case structure). Combined with Figure 6, the enumerations of “calibration high and low settings” and “calibration settings” will be judged respectively, and then calculated Enter the corresponding program branch (English name case). Then read the data control and synthesize the data frame in the corresponding program branch, and output the string of calibration parameters. Press the send button on the current panel, and the main thread enters the corresponding event branch to receive this character string, and send the CAN message.
  • the present invention has the following advantages:
  • the parallel software structure of the present invention can increase or decrease all secondary threads at will according to specific needs, and construct suitable host computer software according to needs. Moreover, by configuring and transmitting information such as running status enumeration and intermediate quantity status, the effect of coordinated operation of each thread is achieved.
  • the present invention can realize the connection with different CAN devices by accessing different secondary libraries, and has a wide tolerance for hardware downwards.
  • Serial-parallel coordination Combining certain threads is collectively called a flat sequence structure (English name flat sequence) to eliminate risky competition. In the actual design process, several single-function threads can be properly combined in series and parallel, some threads are in a serial relationship with each other, and some threads are in a parallel relationship with each other. This serial-parallel coordination helps to improve the robustness and reliability of the system.
  • a reconfigurable method in which multiple threads are connected in series and parallel According to the actual power module requirements, different types of sub-threads can be arranged in series or in parallel for reconfiguration. Among them, it is necessary to carry out program construction in a serial manner for the multiple sub-threads containing "data streams that may cause competition hazards" (the specific program construction method is to organize these sub-threads with data conflicts in a flat sequential structure (English name flat sequence) to be reconstructed so that they proceed in order to eliminate the risk of data stream competition), and the sub-threads that have no data conflicts between each other can be constructed in parallel with each other. All threads are then intermingled with each other in both serial and parallel connections.
  • the present invention can realize the connection with different CAN devices by accessing different secondary libraries, and has wide inclusiveness to hardware downwards.
  • the parallel software structure of the present invention can increase or decrease all sub-threads at will according to specific needs, and construct suitable host computer software according to needs. Moreover, by configuring and transmitting information such as running status enumeration and intermediate quantity status, the effect of coordinated operation of each thread is achieved.
  • This kind of reconfigurability has the characteristics of "one master and multiple slaves", that is, one main thread works continuously, multiple secondary threads work intermittently, and all threads work in the above-mentioned "serial-parallel hybrid mode".
  • All threads comprise a main thread and multiple sub-threads all share a CAN communication standard cluster, all threads can read/write to this CAN communication standard cluster
  • the CAN communication standard cluster defined by the present invention is Defined according to the existing electric vehicle on-board conductive charger standard CAN communication protocol, including identifier system type, source address, destination address, command type, data, standard frame/remote frame flag, data length frame and channel type, etc. and other data, and these plural types of data are re-bundled to form a cluster.
  • a cluster is a data structure, similar to a structure variable in C language.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Communication Control (AREA)

Abstract

The present invention relates to a reconfigurable multi-thread-parallelism upper computer system based on CAN communication. The system comprises a primary thread, and secondary threads, which are connected to the primary thread. The primary thread comprises starting a CAN device, initializing the CAN device, transmitting and receiving a CAN message, restarting the CAN device, and changing the settings of the CAN device. The running state of the primary thread is determined by means of a running state enumeration in an enumeration-type variable. The data type of the running state enumeration is a nameable set of integer constants to express different running states of the primary thread. The running state enumeration has four values: Init, Run, Wait and Exit. In different running state enumerations, the primary thread enters different states to run, and the running state enumeration may be updated according to the situation, such that the primary thread enters a designated running state in the next primary thread loop. The present invention has the advantages of effectively improving the running efficiency of an upper computer program, and reducing the fault probability.

Description

一种基于can通信的可重构化多线程并行上位机系统A Reconfigurable Multithread Parallel Host Computer System Based on CAN Communication 技术领域technical field
本发明涉及电路系统技术领域,具体是指一种基于can通信的可重构化多线程并行上位机系统。The invention relates to the technical field of circuit systems, in particular to a reconfigurable multi-thread parallel upper computer system based on can communication.
背景技术Background technique
上位机的作用主要是实时地在线监控数字电源的各项表征参数,运行状态和工作模式等,另外还可以控制数字电源系统。过去,在还没有这类基于虚拟仪器技术的上位机软件还没有出现的时候,人们是使用传统的仪器仪表来完成对电路系统的监控和控制工作。The role of the upper computer is mainly to monitor various characterization parameters, operating status and working mode of the digital power supply online in real time, and it can also control the digital power supply system. In the past, when there was no such host computer software based on virtual instrument technology, people used traditional instruments to complete the monitoring and control of the circuit system.
上位机软件可以传输数据,实现对数字电源的参数设置,在线校准和逻辑测试。过去,人们在调试这类型电源系统的时候,往往需要辅以许多测试仪器仪表来进行硬件调试工作,以实时得知电路的运行状态等信息。这类仪表数量繁多,读取和保存不方便,而且从外部直接耦合进入电源系统还会引入不知名的干扰,这些问题都会对研发工作造成极大的阻碍。The upper computer software can transmit data, realize the parameter setting of the digital power supply, online calibration and logic test. In the past, when people were debugging this type of power supply system, they often needed to use many test instruments to carry out hardware debugging work, so as to know the operating status of the circuit and other information in real time. There are a large number of such instruments, which are inconvenient to read and store, and direct coupling from the outside into the power system will introduce unknown interference. These problems will greatly hinder the research and development work.
此外,在进行软件调试的时候,需要一些控制模型的相关参数进行修改和验证。例如传统的PID控制就需要对比例系数/积分系数/微分系数等控制参数进行调节并观察其工作状态,以此为判据来进行软件调试。由于不能在线以及实时的修改控制策略和参数,对于数字电源模块来说,每次修改控制参数需要重新烧录程序。而对于传统电源模块,改变控制环路参数则意味着可能要修改硬件电路的元器件参数。In addition, when debugging the software, some relevant parameters of the control model need to be modified and verified. For example, the traditional PID control needs to adjust the control parameters such as proportional coefficient/integral coefficient/differential coefficient and observe its working status, and use this as a criterion for software debugging. Since the control strategy and parameters cannot be modified online and in real time, for the digital power module, the program needs to be reprogrammed every time the control parameters are modified. For traditional power modules, changing the parameters of the control loop means that the parameters of the components of the hardware circuit may need to be modified.
在使用过程中,同样也需要对电路的实时运行状态进行监控,调整和修改输出参数。过去,人们监控电路的实时运行状态需要多种仪器仪表嵌入电路系统。在需要监控的参数比较多的时候,这类仪表往往就显得人机交互体验不够顺畅,其外形不够美观以及系统操作不够简单/轻便/自由。During use, it is also necessary to monitor the real-time operating status of the circuit, adjust and modify the output parameters. In the past, people had to monitor the real-time operation status of the circuit and needed a variety of instruments embedded in the circuit system. When there are many parameters to be monitored, this type of instrument often appears that the human-computer interaction experience is not smooth enough, its appearance is not beautiful enough, and the system operation is not simple/light/free.
发明内容Contents of the invention
本发明要解决的技术问题是解决上述问题,提供一种有效地提升上位机程序的运行效率,降低故障概率的基于can通信的可重构化多线程并行上位机系统。The technical problem to be solved by the present invention is to solve the above problems and provide a reconfigurable multi-threaded parallel host computer system based on CAN communication that effectively improves the operating efficiency of host computer programs and reduces failure probability.
为解决上述技术问题,本发明提供的技术方案为:一种基于can通信的可重构化多线程并行上位机系统,其特征在于:包括主线程和与主线程连接的副线程,所述主线程包括打开CAN设备、初始化CAN设备、CAN报文传输和接收、CAN设备重启、CAN设备设定改变,所述主线程为一种有序、优雅地进行CAN通信的并行式程序的状态机模式,运行状态由一个枚举型变量中的运行状态枚举来决定,运行状态枚举的数据类型是一种可以被命名的整型常数的集合,来表达主线程的不同运行状态,所述运行状态枚举拥有四种数值:Init、Run、Wait和Exit,处于不同运行状态枚举进入不同的状态运行,同时会根据情况更新运行状态枚举, 然后在下一次主线程循环里面进入指定的运行状态,所述主线程包括以下步骤:In order to solve the above technical problems, the technical solution provided by the present invention is: a reconfigurable multi-threaded parallel upper computer system based on can communication, characterized in that: it includes a main thread and a secondary thread connected with the main thread, the main thread The thread includes opening the CAN device, initializing the CAN device, transmitting and receiving CAN messages, restarting the CAN device, and changing the settings of the CAN device. The main thread is a state machine mode of a parallel program that performs CAN communication in an orderly and elegant manner. , the running state is determined by the running state enumeration in an enumeration variable, and the data type of the running state enumeration is a collection of integer constants that can be named to express different running states of the main thread. The state enumeration has four values: Init, Run, Wait, and Exit. The enumeration enters different states to run in different running states. At the same time, the running state enumeration will be updated according to the situation, and then enter the specified running state in the next main thread cycle. , the main thread includes the following steps:
S1,判断运行状态枚举的值,判断运行状态枚举是否为Exit,判断运行状态枚举为Exit则结束该程序,判断运行状态枚举补位Exit则进入判断运行状态枚举的值;S1, judging the value of the running status enumeration, judging whether the running status enumeration is Exit, judging that the running status enumeration is Exit, then ending the program, judging the running status enumeration complementing Exit, then entering the judgment running status enumeration value;
S2、步骤S1中运行状态枚举的值包括有Init、Run、Wait和Exit,S2, the value of running status enumeration in step S1 includes Init, Run, Wait and Exit,
S3、所述Init包括以下步骤:S3, described Init comprises the following steps:
a1、对CAN配制信息按名称捆绑进CAN通信标准簇,a1. Bundle the CAN configuration information into the CAN communication standard cluster by name,
a2、创建用户事件CANOpen,a2. Create user event CANOpen,
a3、把新的CAN通信标准簇重新插入主线程数据流,a3. Reinsert the new CAN communication standard cluster into the main thread data stream,
a4、把事件插入主线程的事件数据流、运行状态枚举赋值Wait数值;a4. Insert the event into the event data stream of the main thread, enumerate the running status and assign the Wait value;
所述Wait包括事件结构产生自用户事件的更新,所述事件结构产生自用户事件的更新包括并行Open值改变事件、其他值的改变事件,所述并行Open值改变事件打开CAN的步骤为依次执行三个子VI程序,分别为Open子VI程序、Init子VI程序、Start子VI程序,所述其他值的改变事件包括对所改变的其他值按名称捆绑进CAN通信标准簇里面的特定信息值,所述并行Open值改变事件包括对事件数据流进行判断、运行状态枚举赋予Run和Wait数值;The Wait includes the update of the event structure generated from the user event, and the update of the event structure generated from the user event includes a parallel Open value change event and other value change events, and the parallel Open value change event opens the CAN step. Three subVI programs are respectively the Open subVI program, the Init subVI program, the Start subVI program, and the change events of other values include binding specific information values in the CAN communication standard cluster to other values changed by name, The parallel Open value change event includes judging the event data flow, enumerating the running state and assigning Run and Wait values;
所述Run包括以下步骤:Described Run comprises the following steps:
b1、事件结构,所述事件结构包括产生自前面板按键控件和用户事件数据流UpdateUIEvent,b1, the event structure, the event structure includes the UpdateUIEvent generated from the front panel button control and the user event data flow,
b2、当为对应控件事件调用CAN发送子程序把打包好的CAN通信标准簇转化为CAN报文,b2. When the CAN sending subroutine is called for the corresponding control event to convert the packaged CAN communication standard cluster into a CAN message,
b3、发送CAN报文,b3. Send CAN message,
b4、当为用户数据用户事件数据流UpdateUIEvent则对应Event属性节点的Disablie赋值,然后对事件数据流进行判断,最后运行状态枚举赋予Run数值,b4. When it is user data and user event data flow UpdateUIEvent, it corresponds to the Disablie assignment of the Event attribute node, then judges the event data flow, and finally enumerates the running status and assigns the Run value.
b5、步骤b3和步骤b4最后运行状态枚举都赋予Run和Wait数值的时候,主线程进入下一轮循环;b5, step b3 and step b4, when the final running state enumerations are all assigned Run and Wait values, the main thread enters the next cycle;
所述Exit包括以下步骤:Said Exit comprises the following steps:
c1、取消注册事件,注销用户事件和从CAN通信标准簇里面按名称解绑出对应数据,c1. Cancel the registration event, cancel the user event and unbind the corresponding data from the CAN communication standard cluster by name,
c2、关闭CAN设备,运行状态枚举都赋予Exit数值,则结束程序;c2, turn off the CAN device, the running state enumeration is given Exit value, then end the program;
所述副线程包括接收线程、循环发送询问报文线程、输出参数修改线程、校准高低位参数修改线程,The secondary thread includes a receiving thread, a loop sending query message thread, an output parameter modification thread, and a calibration high and low parameter modification thread,
所述接收线程运行过程包括以下步骤:The running process of the receiving thread comprises the following steps:
F1、先判断主线程的状态是否是open,若主线程的状态是open,则调用子VI,F1. First judge whether the state of the main thread is open. If the state of the main thread is open, call the subVI.
F2、通过调用CAN二次库把接收到CAN报文格式转换为CAN通信标准簇,反之,则判断为CAN为打开,延时50ms,F2. Convert the format of the received CAN message into a CAN communication standard cluster by calling the CAN secondary library. Otherwise, it is judged that CAN is open, and the delay is 50ms.
F3、在得到CAN通信标准簇之后,判断其是否为空信息,若不是空信息,则继续进行操作,对报文进行解析和翻译;F3, after obtaining the CAN communication standard cluster, judge whether it is empty information, if not empty information, then continue to operate, the message is analyzed and translated;
所述循环发送询问报文线程的功能为及时获取和更新数字电源模块的各种运行参数和模式状态数据,运行过程包括以下步骤:The function of the loop sending query message thread is to obtain and update various operating parameters and mode status data of the digital power module in time, and the operation process includes the following steps:
T1、进入循环发送询问报文线程为后对主线程状态进行判断,然后通过一个根据协议规定来自动生成轮询参数的并行程序框图,得到数据帧并组合为询问用的数据帧的字符串,T1. After entering the loop to send the query message thread, judge the state of the main thread, and then through a parallel program block diagram that automatically generates polling parameters according to the protocol, obtain the data frame and combine it into a character string of the data frame for the query.
T2、接着,进行对主线程状态进行判断,进入一个独立于主线程的发送程序框图,T2. Next, judge the state of the main thread, enter a sending program block diagram independent of the main thread,
T3、最后,又是进行对主线程状态进行判断,进行更新多列列表框数据的操作,T3. Finally, judge the state of the main thread and update the data of the multi-column list box.
T4、更新多列列表框数据需要判断数据帧的排队个数不超过500,然后判断是否要清空多列列表框,最终把接收到的数据更新到多列列表框控件,T4. To update the data of the multi-column list box, it is necessary to judge that the queued number of data frames does not exceed 500, then judge whether to clear the multi-column list box, and finally update the received data to the multi-column list box control,
所述输出参数修改线程为对数字电源模块的各种运行参数和模式状态数据进行修改,运行过程包括以下步骤:The output parameter modification thread is to modify various operating parameters and mode status data of the digital power module, and the operation process includes the following steps:
W1、在进入输出参数修改线程之后,先是判断参数设置枚举,然后加入对应的程序分支以合成输出报文用到的字符串,并把这个数据传输给主线程,并触发主线程的按键事件,W1. After entering the output parameter modification thread, first judge the parameter setting enumeration, then add the corresponding program branch to synthesize the string used in the output message, and transmit this data to the main thread, and trigger the key event of the main thread ,
W2、同时,有一个对话框的并行程序在本副线程中执行,W2. At the same time, there is a parallel program of a dialog box that is executed in this secondary thread.
W3、除了进行报文合成,还会对下拉选择控件所生成的枚举变量进行判断,生成相应的提示信息,来提示用户对应参数的输入范围;W3. In addition to message synthesis, it will also judge the enumerated variables generated by the drop-down selection control, and generate corresponding prompt information to prompt the user to input the corresponding parameter range;
所述校准高低位参数修改线程的功能为对数字电源模块进行校准,运行过程包括以下步骤:The function of the calibration high and low parameter modification thread is to calibrate the digital power module, and the operation process includes the following steps:
X1、分别对“校准高低位设置”数值输入控件和“较准设置”数值输入控件的枚举进行判断,然后分别计入对应的程序分支,X1. To judge the enumeration of the numerical input control of "calibration high and low setting" and the numerical input control of "calibration setting", respectively, and then count them into the corresponding program branch respectively,
X2、然后在对应程序分支里面读取数据控件的数据并合成数据帧,输出校准参数的字符串,X2. Then read the data of the data control in the corresponding program branch and synthesize the data frame, and output the string of calibration parameters.
X3、当前面板按下发送按键,主线程进入相应的事件分支接收这个字符串,并发送CAN报文。X3. Press the send button on the current panel, and the main thread enters the corresponding event branch to receive the string and send the CAN message.
采用以上结构后,本发明具有如下优点:本发明系统是一种用于数字电源模块的CAN上位机软件,是由一种图形化高级编程语言labview编写的,本发明的特点是:After adopting the above structure, the present invention has the following advantages: the present invention system is a kind of CAN host computer software for digital power supply module, is written by a kind of graphical high-level programming language labview, and the characteristics of the present invention are:
1、多线程以串并行混联的方式进行构成,同时又避免数据发生竞争冒险现象,1. Multi-threading is composed in a serial-parallel hybrid manner, while avoiding data competition risks.
2、可根据需要功能进行可重构化设计,可以根据实际需求增减线程的数量和构成方式,2. Reconfigurable design can be carried out according to the required functions, and the number and composition of threads can be increased or decreased according to actual needs.
3、可根据协议内容和实际硬件进行适应化以及可重构化设计,通过替换协议解读方式和二次库来适应不同的数字电源系统,3. Adaptable and reconfigurable design can be carried out according to the protocol content and actual hardware, and adapt to different digital power systems by replacing the protocol interpretation method and secondary library.
4、一主多副的软件构架,以提升上位机系统的稳定性,4. One master and multiple slave software architecture to improve the stability of the upper computer system,
5、主线程为一种可以有序及优雅地进行CAN通信的并行式程序的状态机模式。5. The main thread is a state machine mode of a parallel program that can perform CAN communication in an orderly and elegant manner.
本发明的主线程是整个程序唯一一个在整个使用过程都会一直运作的程序线程,其他程序线程会根据运行状态枚举和中间量状态等信息来决定是否运行,这种“一个主线程一直运行,多个副线程间断运作”的多线程模式可以有效地提升上位机程序的运行效率,降低故障概率。The main thread of the present invention is the only program thread that will run all the time during the entire use process of the entire program. Other program threads will decide whether to run according to information such as running state enumeration and intermediate quantity status. This "one main thread runs all the time, The multi-thread mode of "intermittent operation of multiple sub-threads" can effectively improve the operating efficiency of the host computer program and reduce the probability of failure.
作为改进,主线程在Init状态下,主线程的主要功能是打开CAN设备并对其进行初始化,具体操作包括对CAN通信标准簇进行分解和再捆绑,通过调用属性节点和动态注册事件来产生UI更新事件UpdateUIEvent,以此及时更新CAN通信标准簇与调整UI数据的状态,同时,为运行状态枚举赋值Wait,让主线程进入Wait模式。As an improvement, the main thread is in the Init state. The main function of the main thread is to open the CAN device and initialize it. The specific operations include decomposing and rebinding the CAN communication standard cluster, and generating UI by calling attribute nodes and dynamic registration events. Update the event UpdateUIEvent, so as to update the CAN communication standard cluster and adjust the state of the UI data in time. At the same time, assign Wait to the running state enumeration, so that the main thread enters the Wait mode.
作为改进,主线程在Wait状态下,主线程的主要功能是等待CAN设备准备完成,并判断CAN设备的操作状态来决定下一步进入何种主线程状态以及更新CAN通信标准簇里面的信息,Wait状态下的主线程是一种事件结构的程序,事件结构的事件类型主要包括CAN通信标准簇里面的特定信息值发生改变和前面板关闭事件。As an improvement, the main thread is in the Wait state. The main function of the main thread is to wait for the CAN device to be ready, and judge the operation status of the CAN device to determine which main thread state to enter next and update the information in the CAN communication standard cluster. Wait The main thread in the state is a program with an event structure, and the event types of the event structure mainly include changes in specific information values in the CAN communication standard cluster and front panel closing events.
作为改进,主线程在Run状态下,主线程的主要功能是判断并接收来自各个副线程的数据,并把这些数据打包为CAN通信标准簇,并调用CAN发送子程序把打包好的CAN通信标准簇转化为CAN报文发送出去。As an improvement, when the main thread is in the Run state, the main function of the main thread is to judge and receive data from each sub-thread, and pack these data into a CAN communication standard cluster, and call the CAN sending subroutine to convert the packaged CAN communication standard Clusters are converted into CAN messages and sent out.
作为改进,主线程在Init状态下,主线程的主要功能是打开CAN设备并对其进行初始化,具体操作包括对CAN通信标准簇进行分解和再捆绑,通过调用属性节点和动态注册事件来产生UI更新事件UpdateUIEvent,以此及时更新CAN通信标准簇与调整UI数据的状态,同时,为运行状态枚举赋值Wait,让主线程进入Wait模式。As an improvement, the main thread is in the Init state. The main function of the main thread is to open the CAN device and initialize it. The specific operations include decomposing and rebinding the CAN communication standard cluster, and generating UI by calling attribute nodes and dynamic registration events. Update the event UpdateUIEvent, so as to update the CAN communication standard cluster and adjust the state of the UI data in time. At the same time, assign Wait to the running state enumeration, so that the main thread enters the Wait mode.
作为改进,主线程在Wait状态下,主线程的主要功能是等待CAN设备准备完成,并判断CAN设备的操作状态来决定下一步进入何种主线程状态以及更新CAN通信标准簇里面的信息。As an improvement, the main thread is in the Wait state. The main function of the main thread is to wait for the CAN device to be ready, and judge the operation status of the CAN device to determine which main thread state to enter next and update the information in the CAN communication standard cluster.
作为改进,所述副线程还包括校准复位、识别符合成、模块序列号设置参数修改、模块状态信息分离与显示、逻辑变量输出、电源模块开关机线程。As an improvement, the secondary thread also includes threads for calibration reset, identification, module serial number setting parameter modification, module state information separation and display, logic variable output, and power module on/off.
附图说明Description of drawings
图1是本发明一种基于can通信的可重构化多线程并行上位机系统的主线程的程序功能示意图。Fig. 1 is a schematic diagram of the program function of the main thread of a reconfigurable multi-threaded parallel upper computer system based on can communication in the present invention.
图2是本发明一种基于can通信的可重构化多线程并行上位机系统的主线程的程序框图。Fig. 2 is a program block diagram of the main thread of a reconfigurable multi-threaded parallel upper computer system based on can communication in the present invention.
图3是本发明一种基于can通信的可重构化多线程并行上位机系统的接收线程程序框图。Fig. 3 is a program block diagram of a receiving thread of a reconfigurable multi-threaded parallel upper computer system based on can communication in the present invention.
图4是本发明一种基于can通信的可重构化多线程并行上位机系统的循环发送询问报文线程程序框图。Fig. 4 is a program block diagram of a reconfigurable multi-threaded parallel upper computer system based on can communication in the present invention, which is a thread program for cyclically sending inquiry messages.
图5是本发明一种基于can通信的可重构化多线程并行上位机系统的输出参数修改线程程序框图。Fig. 5 is a program block diagram of an output parameter modification thread of a reconfigurable multi-threaded parallel upper computer system based on can communication in the present invention.
图6是本发明一种基于can通信的可重构化多线程并行上位机系统的校准高低位参数修改线程程序框图。Fig. 6 is a program block diagram of a reconfigurable multi-threaded parallel upper computer system based on can communication in the present invention to modify the high and low parameters of the calibration thread.
具体实施方式detailed description
下面结合附图对本发明做进一步的详细说明。The present invention will be described in further detail below in conjunction with the accompanying drawings.
结合所有附图,一种基于can通信的可重构化多线程并行上位机系统,包括一个主线程和多个与主线程连接的副线程,所述主线程包括打开CAN设备、初始化CAN设备、CAN报文传输和接收、CAN设备重启、CAN设备设定改变,所述主线程运行状态由一个枚举型变量中的运行状态枚举来决定,运行状态枚举的数据类型是一种可以被命名的整型常数的集合,来表达主线程的不同运行状态,所述运行状态枚举拥有四种数值:Init、Run、Wait和Exit,处于不同运行状态枚举进入不同的状态运行,同时会根据情况更新运行状态枚举,然后在下一次主线程循环里面进入指定的运行状态,所述主线程包括以下步骤:Combining all the drawings, a reconfigurable multi-threaded parallel upper computer system based on can communication, including a main thread and multiple secondary threads connected to the main thread, the main thread includes opening the CAN device, initializing the CAN device, CAN message transmission and reception, CAN device restart, CAN device setting change, the running state of the main thread is determined by the running state enumeration in an enumeration variable, and the data type of the running state enumeration is a kind of A collection of named integer constants to express the different running states of the main thread. The running state enumeration has four values: Init, Run, Wait, and Exit. In different running states, the enumeration enters different states and runs at the same time. Update the running state enumeration according to the situation, and then enter the specified running state in the main thread cycle next time, and the main thread includes the following steps:
S1,判断运行状态枚举的值,判断运行状态枚举是否为Exit,判断运行状态枚举为Exit则结束该程序,判断运行状态枚举补位Exit则进入判断运行状态枚举的值;S1, judging the value of the running status enumeration, judging whether the running status enumeration is Exit, judging that the running status enumeration is Exit, then ending the program, judging the running status enumeration complementing Exit, then entering the judgment running status enumeration value;
S2、步骤S1中运行状态枚举的值包括有Init、Run、Wait和Exit,S2, the value of running status enumeration in step S1 includes Init, Run, Wait and Exit,
S3、所述Init包括以下步骤:S3, described Init comprises the following steps:
a1、对CAN配制信息按名称捆绑进CAN通信标准簇,a1. Bundle the CAN configuration information into the CAN communication standard cluster by name,
a2、创建用户事件CANOpen,a2. Create user event CANOpen,
a3、把新的CAN通信标准簇重新插入主线程数据流,a3. Reinsert the new CAN communication standard cluster into the main thread data stream,
a4、把事件插入主线程的事件数据流、运行状态枚举赋值Wait数值;a4. Insert the event into the event data stream of the main thread, enumerate the running status and assign the Wait value;
所述Wait包括事件结构产生自用户事件的更新,所述事件结构产生自用户事件的更新包括并行Open值改变事件、其他值的改变事件,所述并行Open值改变事件打开CAN的步骤为依次执行三个子VI程序,分别为Open子VI程序、Init子VI程序、Start子VI程序,所述其他值的改变事件包括对所改变的其他值按名称捆绑进CAN通信标准簇里面的特定信息值,所述并行Open值改变事件包括对事件数据流进行判断、运行状态枚举赋予Run和Wait数值;The Wait includes the update of the event structure generated from the user event, and the update of the event structure generated from the user event includes a parallel Open value change event and other value change events, and the parallel Open value change event opens the CAN step. Three subVI programs are respectively the Open subVI program, the Init subVI program, the Start subVI program, and the change events of other values include binding specific information values in the CAN communication standard cluster to other values changed by name, The parallel Open value change event includes judging the event data flow, enumerating the running state and assigning Run and Wait values;
所述Run包括以下步骤:Described Run comprises the following steps:
b1、事件结构,所述事件结构包括产生自前面板按键控件和用户事件数据流 UpdateUIEvent,b1, the event structure, the event structure includes the UpdateUIEvent generated from the front panel button control and the user event data stream,
b2、当为对应控件事件调用CAN发送子程序把打包好的CAN通信标准簇转化为CAN报文,b2. When the CAN sending subroutine is called for the corresponding control event to convert the packaged CAN communication standard cluster into a CAN message,
b3、发送CAN报文,b3. Send CAN message,
b4、当为用户数据用户事件数据流UpdateUIEvent则对应Event属性节点的Disablie赋值,然后对事件数据流进行判断,最后运行状态枚举赋予Run数值,b4. When it is user data and user event data flow UpdateUIEvent, it corresponds to the Disablie assignment of the Event attribute node, then judges the event data flow, and finally enumerates the running status and assigns the Run value.
b5、步骤b3和步骤b4最后运行状态枚举都赋予Run和Wait数值的时候,主线程进入下一轮循环;b5, step b3 and step b4, when the final running state enumerations are all assigned Run and Wait values, the main thread enters the next cycle;
所述Exit包括以下步骤:Said Exit comprises the following steps:
c1、取消注册事件,注销用户事件和从CAN通信标准簇里面按名称解绑出对应数据,c1. Cancel the registration event, cancel the user event and unbind the corresponding data from the CAN communication standard cluster by name,
c2、关闭CAN设备,运行状态枚举都赋予Exit数值,则结束程序;c2, turn off the CAN device, the running state enumeration is given Exit value, then end the program;
所述副线程包括接收线程、循环发送询问报文线程、输出参数修改线程、校准高低位参数修改线程,The secondary thread includes a receiving thread, a loop sending query message thread, an output parameter modification thread, and a calibration high and low parameter modification thread,
所述接收线程运行过程包括以下步骤:The running process of the receiving thread comprises the following steps:
F1、先判断主线程的状态是否是open,若主线程的状态是open,则调用子VI,F1. First judge whether the state of the main thread is open. If the state of the main thread is open, call the subVI.
F2、通过调用CAN二次库把接收到CAN报文格式转换为CAN通信标准簇,反之,则判断为CAN为打开,延时50ms,F2. Convert the format of the received CAN message into a CAN communication standard cluster by calling the CAN secondary library. Otherwise, it is judged that CAN is open, and the delay is 50ms.
F3、在得到CAN通信标准簇之后,判断其是否为空信息,若不是空信息,则继续进行操作,对报文进行解析和翻译;F3, after obtaining the CAN communication standard cluster, judge whether it is empty information, if not empty information, then continue to operate, the message is analyzed and translated;
所述循环发送询问报文线程的功能为及时获取和更新数字电源模块的各种运行参数和模式状态数据,运行过程包括以下步骤:The function of the loop sending query message thread is to obtain and update various operating parameters and mode status data of the digital power module in time, and the operation process includes the following steps:
T1、进入循环发送询问报文线程为后对主线程状态进行判断,然后通过一个根据协议规定来自动生成轮询参数的并行程序框图,得到数据帧并组合为询问用的数据帧的字符串,T1. After entering the loop to send the query message thread, judge the state of the main thread, and then through a parallel program block diagram that automatically generates polling parameters according to the protocol, obtain the data frame and combine it into a character string of the data frame for the query.
T2、接着,进行对主线程状态进行判断,进入一个独立于主线程的发送程序框图,T2. Next, judge the state of the main thread, enter a sending program block diagram independent of the main thread,
T3、最后,又是进行对主线程状态进行判断,进行更新多列列表框数据的操作,T3. Finally, judge the state of the main thread and update the data of the multi-column list box.
T4、更新多列列表框数据需要判断数据帧的排队个数不超过500,然后判断是否要清空多列列表框,最终把接收到的数据更新到多列列表框控件,T4. To update the data of the multi-column list box, it is necessary to judge that the queued number of data frames does not exceed 500, then judge whether to clear the multi-column list box, and finally update the received data to the multi-column list box control,
所述输出参数修改线程为对数字电源模块的各种运行参数和模式状态数据进行修改,运行过程包括以下步骤:The output parameter modification thread is to modify various operating parameters and mode status data of the digital power module, and the operation process includes the following steps:
W1、在进入输出参数修改线程之后,先是判断参数设置枚举,然后加入对应的程序分支以合成输出报文用到的字符串,并把这个数据传输给主线程,并触发主线程的按键事件,W1. After entering the output parameter modification thread, first judge the parameter setting enumeration, then add the corresponding program branch to synthesize the string used in the output message, and transmit this data to the main thread, and trigger the key event of the main thread ,
W2、同时,有一个对话框的并行程序在本副线程中执行,W2. At the same time, there is a parallel program of a dialog box that is executed in this secondary thread.
W3、除了进行报文合成,还会对下拉选择控件所生成的枚举变量进行判断,生成相应的提示信息,来提示用户对应参数的输入范围;W3. In addition to message synthesis, it will also judge the enumerated variables generated by the drop-down selection control, and generate corresponding prompt information to prompt the user to input the corresponding parameter range;
所述校准高低位参数修改线程的功能为对数字电源模块进行校准,运行过程包括以下步骤:The function of the calibration high and low parameter modification thread is to calibrate the digital power module, and the operation process includes the following steps:
X1、分别对“校准高低位设置”数值输入控件和“较准设置”数值输入控件的枚举进行判断,然后分别计入对应的程序分支,X1. To judge the enumeration of the numerical input control of "calibration high and low setting" and the numerical input control of "calibration setting", respectively, and then count them into the corresponding program branch respectively,
X2、然后在对应程序分支里面读取数据控件的数据并合成数据帧,输出校准参数的字符串,X2. Then read the data of the data control in the corresponding program branch and synthesize the data frame, and output the string of calibration parameters.
X3、当前面板按下发送按键,主线程进入相应的事件分支接收这个字符串,并发送CAN报文。X3. Press the send button on the current panel, and the main thread enters the corresponding event branch to receive the string and send the CAN message.
主线程在Init状态下,主线程的主要功能是打开CAN设备并对其进行初始化,具体操作包括对CAN通信标准簇进行分解和再捆绑,通过调用属性节点和动态注册事件来产生UI更新事件UpdateUIEvent,以此及时更新CAN通信标准簇与调整UI数据的状态,同时,为运行状态枚举赋值Wait,让主线程进入Wait模式。The main thread is in the Init state. The main function of the main thread is to open the CAN device and initialize it. The specific operations include decomposing and rebinding the CAN communication standard cluster, and generating UI update events UpdateUIEvent by calling attribute nodes and dynamic registration events , so as to update the CAN communication standard cluster and adjust the state of UI data in time, and at the same time, assign a value to Wait for the running state enumeration, so that the main thread enters the Wait mode.
主线程在Wait状态下,主线程的主要功能是等待CAN设备准备完成,并判断CAN设备的操作状态来决定下一步进入何种主线程状态以及更新CAN通信标准簇里面的信息,Wait状态下的主线程是一种事件结构的程序,事件结构的事件类型主要包括CAN通信标准簇里面的特定信息值发生改变和前面板关闭事件。The main thread is in the Wait state. The main function of the main thread is to wait for the CAN device to be ready, and judge the operation state of the CAN device to determine which main thread state to enter next and to update the information in the CAN communication standard cluster. The main thread is a program with an event structure, and the event types of the event structure mainly include changes in specific information values in the CAN communication standard cluster and front panel closing events.
主线程在Run状态下,主线程的主要功能是判断并接收来自各个副线程的数据,并把这些数据打包为CAN通信标准簇,并调用CAN发送子程序把打包好的CAN通信标准簇转化为CAN报文发送出去。When the main thread is in the Run state, the main function of the main thread is to judge and receive data from each sub-thread, and pack these data into CAN communication standard clusters, and call the CAN sending subroutine to convert the packaged CAN communication standard clusters into The CAN message is sent out.
主线程在Init状态下,主线程的主要功能是打开CAN设备并对其进行初始化,具体操作包括对CAN通信标准簇进行分解和再捆绑,通过调用属性节点和动态注册事件来产生UI更新事件UpdateUIEvent,以此及时更新CAN通信标准簇与调整UI数据的状态,同时,为运行状态枚举赋值Wait,让主线程进入Wait模式。The main thread is in the Init state. The main function of the main thread is to open the CAN device and initialize it. The specific operations include decomposing and rebinding the CAN communication standard cluster, and generating UI update events UpdateUIEvent by calling attribute nodes and dynamic registration events , so as to update the CAN communication standard cluster and adjust the state of UI data in time, and at the same time, assign a value to Wait for the running state enumeration, so that the main thread enters the Wait mode.
主线程在Wait状态下,主线程的主要功能是等待CAN设备准备完成,并判断CAN设备的操作状态来决定下一步进入何种主线程状态以及更新CAN通信标准簇里面的信息。When the main thread is in the Wait state, the main function of the main thread is to wait for the CAN device to be ready, and judge the operation status of the CAN device to determine which main thread state to enter next and to update the information in the CAN communication standard cluster.
所述副线程还包括校准复位、识别符合成、模块序列号设置参数修改、模块状态信息分离与显示、逻辑变量输出、电源模块开关机线程。The secondary thread also includes threads for calibration reset, identification mark synthesis, module serial number setting parameter modification, module state information separation and display, logic variable output, and power module power on/off.
本发明在具体实施时,在Init状态下,主线程的主要功能是打开CAN设备并对其进行初 始化。具体操作包括对CAN通信标准簇进行分解和再捆绑,如把从CAN通信标准簇分解出来的CAN配置信息进行覆写,然后按名称捆绑回CAN通信标准簇里面,通过调用属性节点和动态注册事件来产生UI更新事件(英文名称UpdateUIEvent),以此及时更新CAN通信标准簇与调整UI数据的状态。同时,为“运行状态枚举”赋值“Wait”,让主线程进入Wait模式。When the present invention was implemented, under the Init state, the main function of the main thread was to open the CAN device and initialize it. The specific operation includes decomposing and re-bundling the CAN communication standard cluster, such as overwriting the CAN configuration information decomposed from the CAN communication standard cluster, and then bundling it back into the CAN communication standard cluster by name, by calling attribute nodes and dynamically registering events To generate a UI update event (English name UpdateUIEvent), so as to update the CAN communication standard cluster and adjust the state of the UI data in time. At the same time, assign a value of "Wait" to the "running state enumeration" to let the main thread enter the Wait mode.
在Wait状态下,主线程的主要功能是等待CAN设备准备完成,并判断CAN设备的操作状态来决定下一步进入何种主线程状态以及更新CAN通信标准簇里面的信息。Wait状态下的主线程是一种事件结构的程序,这类似于中断事件,是一种讲究实时性的编程结构,只在发生相应的事件才会执行相应的程序的编程结构,事件结构的事件类型主要包括CAN通信标准簇里面的特定信息值发生改变和前面板关闭事件,一共十种事件类型。除了CAN通信标准簇里面的open值改变事件以外,其他CAN通信标准簇里面的特定信息值发生改变只是对CAN通信标准簇里面的对应参数进行替换而已,然后产生相应的UI更新事件(英文名称UpdateUIEvent)。In the Wait state, the main function of the main thread is to wait for the CAN device to be ready, and judge the operation state of the CAN device to determine which main thread state to enter next and update the information in the CAN communication standard cluster. The main thread in the Wait state is a program with an event structure, which is similar to an interrupt event. It is a programming structure that emphasizes real-time performance. The programming structure of the corresponding program will be executed only when the corresponding event occurs, and the event of the event structure The types mainly include the change of specific information value in the CAN communication standard cluster and the closing event of the front panel, a total of ten event types. In addition to the open value change event in the CAN communication standard cluster, the change of specific information values in other CAN communication standard clusters is just to replace the corresponding parameters in the CAN communication standard cluster, and then generate the corresponding UI update event (English name UpdateUIEvent ).
其中,需要重点描述一下主线程的Wait状态的open事件。该程序部分是用于初始化CAN设备完成之后,对CAN设备进行特定步骤的操作才可以成功打开CAN设备。通常的步骤是依次执行三个子VI程序,分别是1.Open、2.Init、3.Start,并判断是否执行成功。另外,该部分还需要产生对应的用户事件来对整个多线程系统进行调控,以提升系统的可靠性。并根据执行效果判断“运行状态枚举”的赋值。若打开CAN设备不成功便停留在Wait状态,如果打开CAN设备成功便对“运行状态枚举”赋值Run。Among them, it is necessary to focus on describing the open event of the Wait state of the main thread. This part of the program is used to successfully open the CAN device after performing specific steps on the CAN device after the initialization of the CAN device is completed. The usual steps are to execute three subVI programs in sequence, namely 1.Open, 2.Init, and 3.Start, and judge whether the execution is successful. In addition, this part also needs to generate corresponding user events to regulate the entire multi-threaded system to improve the reliability of the system. And judge the assignment of "running state enumeration" according to the execution effect. If the CAN device is not successfully opened, it will stay in the Wait state. If the CAN device is successfully opened, the "running state enumeration" will be assigned a value of Run.
在Run状态下,主线程的主要功能是判断并接收来自各个副线程的数据,并把这些数据打包为本发明所定义的CAN通信标准簇,并调用CAN发送子程序把打包好的CAN通信标准簇转化为CAN报文发送出去。该程序是一个事件结构的编程结构,可以通过“某个按键按下”这种事件来触发程序的运行。例如,当“输出参数按键按下”的事件发生的时候,便进入了相应的程序流程,把来自输出参数副线程的数据帧(已经转化为字符串的数据帧)打包为CAN通信标准簇,接着转化为CAN报文发送出去。另外,发生“超时事件”会让主线程继续运行在Run状态。最后如果接收到CAN关闭的命令(该命令可能来自于前面板的关闭按键或者CAN设备的关闭),便会进入“CAN关闭事件”,具体操作为调用CAN关闭子函数和更新相应的用户事件和产生UI更新事件(英文名称UpdateUIEvent)。In the Run state, the main function of the main thread is to judge and receive data from each sub-thread, and pack these data into CAN communication standard clusters defined in the present invention, and call CAN to send subroutines to pack CAN communication standard clusters. Clusters are converted into CAN messages and sent out. The program is a programming structure of an event structure, and the operation of the program can be triggered by an event such as "a certain key is pressed". For example, when the event of "pressing the output parameter button" occurs, the corresponding program flow is entered, and the data frame (data frame that has been converted into a string) from the output parameter secondary thread is packaged into a CAN communication standard cluster, Then it is converted into a CAN message and sent out. In addition, the occurrence of a "timeout event" will allow the main thread to continue running in the Run state. Finally, if a CAN shutdown command is received (the command may come from the shutdown button on the front panel or the shutdown of the CAN device), it will enter the "CAN shutdown event". The specific operation is to call the CAN shutdown subfunction and update the corresponding user event and A UI update event (English name UpdateUIEvent) is generated.
主线程除了进行上述的操作以外,还会更新一些相应的用户事件和产生UI更新事件(英文名称UpdateUIEvent)。这些事件(Event,是对并行程序的数据流的一种描述方式,一般用于协调多个线程的并行操作)会其他副线程的运行状态进行控制,并与其他副线程进行数据 的传输。以此来达到多个线程协调运作的目的,实现了程序的并行运行。In addition to the above operations, the main thread will also update some corresponding user events and generate UI update events (English name UpdateUIEvent). These events (Event, which is a way to describe the data flow of parallel programs, and are generally used to coordinate the parallel operations of multiple threads) control the running status of other sub-threads and transmit data with other sub-threads. In this way, the purpose of coordinating the operation of multiple threads is achieved, and the parallel operation of the program is realized.
接下来介绍各个副线程,这些线程会根据主线程所操作的“运行状态枚举”来进入相应运作状态,并执行相应的程序。Next, we will introduce each secondary thread. These threads will enter the corresponding operating state according to the "running state enumeration" operated by the main thread, and execute the corresponding program.
接收线程:结合图3,为了及时接收来自数字电源模块的报文并进行解析,需要一个接收CAN报文并对CAN报文进行翻译的线程。本发明用于实现该功能的副线程是“接收线程”。Receiving thread: Combined with Figure 3, in order to receive and analyze messages from the digital power module in a timely manner, a thread that receives CAN messages and translates CAN messages is needed. The secondary thread used in the present invention to realize this function is the "receiving thread".
副线程“接收线程”的运行过程:先判断主线程的状态状态是否是open,若主线程的状态状态是open,则调用子VI“VCI_Recieve”,通过调用CAN二次库把接收到CAN报文格式转换为CAN通信标准簇。反之,则判断为CAN为打开,延时50ms。在得到CAN通信标准簇之后,判断其是否为空信息。若不是空信息,则继续进行如程序框图所示的操作,对报文进行解析和翻译。The running process of the secondary thread "receiving thread": first judge whether the state of the main thread is open, if the state of the main thread is open, then call the sub VI "VCI_Recieve", and call the CAN secondary library to receive the CAN message Format conversion to the CAN communication standard cluster. On the contrary, it is judged that CAN is open, and the delay is 50ms. After getting the CAN communication standard cluster, judge whether it is empty information. If it is not an empty message, proceed to the operation shown in the program block diagram to parse and translate the message.
循环发送询问报文线程:结合图4,为了及时获取和更新数字电源模块的各种运行参数和模式状态数据,需要一个轮询发送询问CAN报文的线程。本发明用于实现该功能的副线程是“循环发送询问报文线程”,“循环发送询问报文线程”的程序结构是平铺式顺序结构(英文名称flat sequence),即一种按照指定顺序执行相应程序帧(英文名称frame)的程序结构。本发明的循环发送询问报文线程用了三个程序帧,分别是:合成询问的数据帧的字符串(顺序0)、发送询问报文(顺序1)和更新多列列表框数据(顺序2)。Circular sending query message thread: In combination with Figure 4, in order to obtain and update various operating parameters and mode status data of the digital power module in time, a thread that polls and sends query CAN messages is needed. The secondary thread used to realize this function in the present invention is "circularly sending query message thread", and the program structure of "cyclically sending query message thread" is a flat sequence structure (English name flat sequence), that is, a method according to a specified order Execute the program structure of the corresponding program frame (English name frame). The cyclic sending inquiry message thread of the present invention has used three program frames, is respectively: the character string (order 0) of the data frame of synthesizing inquiry, sending inquiry message (order 1) and updating multi-column list box data (order 2 ).
在进入“循环发送询问报文线程”之后,先是对主线程状态进行判断,然后通过一个根据协议规定来自动生成轮询参数的并行程序框图,得到数据帧并组合为询问用的数据帧的字符串。接着,进行对主线程状态进行判断,进入一个独立于主线程的发送程序框图。最后,又是进行对主线程状态进行判断,进行更新多列列表框数据的操作。更新多列列表框数据需要判断数据帧的排队个数(帧数)不超过500,然后判断是否要清空多列列表框,最终把接收到的数据更新到多列列表框控件。After entering the "loop sending query message thread", first judge the state of the main thread, and then through a parallel program block diagram that automatically generates polling parameters according to the protocol, obtain the data frame and combine it into the character of the data frame for query string. Then, judge the state of the main thread, and enter a sending program block diagram independent of the main thread. Finally, it is to judge the state of the main thread and update the data of the multi-column list box. Updating the multi-column list box data requires judging that the queued number of data frames (frame number) does not exceed 500, and then judging whether to clear the multi-column list box, and finally updating the received data to the multi-column list box control.
在循环发送询问报文线程里面加入更新多列列表框数据的程序可以避免其数据流的竞争-冒险效应(类似于数字电路的竞争-冒险效应,这种现象也在并行的程序里面会出现。同一数据经不同线程的数据流传输后,到达中某一会合点的时间有先有后,会发生一些数据错误现象),以提高系统的可靠性。Adding a program to update multi-column list box data in the loop sending query message thread can avoid the competition-adventure effect of its data flow (similar to the competition-adventure effect of digital circuits, this phenomenon also occurs in parallel programs. After the same data is transmitted through the data streams of different threads, the time to arrive at a certain meeting point in the network is different, and some data errors will occur), so as to improve the reliability of the system.
输出参数修改线程的程序结构是一种条件结构(英文名称case structure)。结合图5,先是对前面板控件的下拉选择控件所生成的枚举变量进行判断,然后加入对应的程序分支(英文名称case),根据通信协议合成相应的输出的字符串,并把这个字符串传递给主流程的发送程序。最终由主流程来完成CAN发送的过程,这可以避免CAN设备的硬件冲突等问题。The program structure of the output parameter modification thread is a conditional structure (English name case structure). Combined with Figure 5, first judge the enumeration variable generated by the drop-down selection control of the front panel control, then add the corresponding program branch (English name case), synthesize the corresponding output string according to the communication protocol, and convert this string Passed to the sender of the main process. Finally, the main process completes the process of CAN sending, which can avoid problems such as hardware conflicts of CAN devices.
在进入“输出参数修改线程”之后,先是判断“参数设置”枚举,然后加入对应的程序 分支(case)以合成输出报文用到的字符串,并把这个数据传输给主线程,并触发主线程的按键事件(Event,这个需要前面板的按键控件被按下才可以启动)。同时,有一个对话框的并行程序在本副线程中执行。除了进行报文合成,还会对下拉选择控件所生成的枚举变进行判断,生成相应的提示信息,来提示用户对应参数的输入范围。After entering the "output parameter modification thread", first judge the "parameter setting" enumeration, then add the corresponding program branch (case) to synthesize the string used in the output message, and transmit this data to the main thread, and trigger The key event of the main thread (Event, which requires the key control on the front panel to be pressed to start). At the same time, a parallel program of a dialog box is executed in this secondary thread. In addition to message synthesis, it also judges the enumeration variable generated by the drop-down selection control, and generates corresponding prompt information to prompt the user for the input range of the corresponding parameter.
校准高低位参数修改线程”的程序结构是一种条件结构(英文名称case structure)。结合图6,会分别对“校准高低位设置”和“较准设置”的枚举进行判断,然后分别计入对应的程序分支(英文名称case)。然后在对应程序分支里面读取数据控件并合成数据帧,输出校准参数的字符串。当前面板按下发送按键,主线程进入相应的事件分支接收这个字符串,并发送CAN报文。The program structure of "calibration high and low parameter modification thread" is a conditional structure (English name case structure). Combined with Figure 6, the enumerations of "calibration high and low settings" and "calibration settings" will be judged respectively, and then calculated Enter the corresponding program branch (English name case). Then read the data control and synthesize the data frame in the corresponding program branch, and output the string of calibration parameters. Press the send button on the current panel, and the main thread enters the corresponding event branch to receive this character string, and send the CAN message.
至此,本发明主要的几个线程已经介绍完毕,这几个线程已经可以满足对数字电源模块的一些常规的监控和控制。另外,为了增加本发明所提及的上位机系统的可用性,还可以根据对数字电源模块的功能需要,增加其他副线程,例如“校准复位”、“识别符合成”、“模块序列号设置参数修改”、“模块状态信息分离与显示”、“逻辑变量输出”和“电源模块开关机”等副线程,均可以这种方法来增加上位机的功能。So far, several main threads of the present invention have been introduced, and these threads can already satisfy some conventional monitoring and control of the digital power supply module. In addition, in order to increase the usability of the upper computer system mentioned in the present invention, other sub-threads can also be added according to the functional requirements of the digital power module, such as "calibration reset", "identification", "module serial number setting parameter Sub-threads such as "modification", "separation and display of module status information", "logic variable output" and "power module on and off" can all be used in this way to increase the functions of the host computer.
总而言之本发明具有以下优点:In a word, the present invention has the following advantages:
可重构性:本发明的并行软件结构可以根据具体需要随意地增减所有副线程,按照需要构造出合适的上位机软件。而且通过配置和传递运行状态枚举和中间量状态等信息,达到各个线程协调运行的效果。Reconfigurability: The parallel software structure of the present invention can increase or decrease all secondary threads at will according to specific needs, and construct suitable host computer software according to needs. Moreover, by configuring and transmitting information such as running status enumeration and intermediate quantity status, the effect of coordinated operation of each thread is achieved.
向下兼容性:本发明可以通过接入不同的二次库,实现与不同CAN设备的连接,向下地对硬件有很宽的包容性。Downward compatibility: the present invention can realize the connection with different CAN devices by accessing different secondary libraries, and has a wide tolerance for hardware downwards.
串并行协调性:对某些线程进行组合,合称为平铺式顺序结构(英文名称flat sequence),以通过消除冒险竞争。在实际设计过程中,可以把数种单功能线程进行合适的串并行组合,一些线程互为串行关系,一些线程互为并行关系。这种串并行协调性有助于提高系统的鲁棒性和可靠性。Serial-parallel coordination: Combining certain threads is collectively called a flat sequence structure (English name flat sequence) to eliminate risky competition. In the actual design process, several single-function threads can be properly combined in series and parallel, some threads are in a serial relationship with each other, and some threads are in a parallel relationship with each other. This serial-parallel coordination helps to improve the robustness and reliability of the system.
一种多线程以串并行混联的可重构方式:按照实际电源模块需求,可以安排不同种类的副线程进行串联或者并联的方式进行重构。其中,对包含“会产生竞争冒险现象的数据流”的复数个副线程需要以串行方式进行程序构造(具体程序构造方法是把这数个互相有数据冲突的副线程以平铺式顺序结构(英文名称flat sequence)进行重构,让它们按照顺序进行,以消除数据流的竞争冒险现象),而彼此之间没有数据冲突的副线程可以互相以并联的方式进行构造。然后,所有线程彼此以串行和并行同时具备的连接方式进行混合。在实际设计过程中,可以把数种单功能线程进行合适的串并行组合,一些线程互为串行关系,一些线程互为并行 关系。这种串并行协调性有助于提高系统的鲁棒性和可靠性。A reconfigurable method in which multiple threads are connected in series and parallel: According to the actual power module requirements, different types of sub-threads can be arranged in series or in parallel for reconfiguration. Among them, it is necessary to carry out program construction in a serial manner for the multiple sub-threads containing "data streams that may cause competition hazards" (the specific program construction method is to organize these sub-threads with data conflicts in a flat sequential structure (English name flat sequence) to be reconstructed so that they proceed in order to eliminate the risk of data stream competition), and the sub-threads that have no data conflicts between each other can be constructed in parallel with each other. All threads are then intermingled with each other in both serial and parallel connections. In the actual design process, several single-function threads can be properly combined in series and parallel, some threads are in a serial relationship with each other, and some threads are in a parallel relationship with each other. This serial-parallel coordination helps to improve the robustness and reliability of the system.
由于不同CAN硬件设备可能需要不同的操作方式(开启设备电平时序,关闭设备电平时序和反射匹配阻抗都可能不一样),所以对于不同的CAN设备需要不同的处置方式。本发明可以通过接入不同的二次库,实现与不同CAN设备的连接,向下地对硬件有很宽的包容性。Since different CAN hardware devices may require different operation methods (the timing of turning on the device level, the timing of turning off the device level and the reflection matching impedance may be different), so different handling methods are required for different CAN devices. The present invention can realize the connection with different CAN devices by accessing different secondary libraries, and has wide inclusiveness to hardware downwards.
对副线程种类以及数量的可重构性:本发明的并行软件结构可以根据具体需要随意地增减所有副线程,按照需要构造出合适的上位机软件。而且通过配置和传递运行状态枚举和中间量状态等信息,达到各个线程协调运行的效果。这种可重构性具有“一主多副”的特点,即一个主线程持续性地工作,多个副线程间歇性地工作,所有线程以上述的“串并行混联方式”进行工作。Reconfigurability of the type and quantity of sub-threads: the parallel software structure of the present invention can increase or decrease all sub-threads at will according to specific needs, and construct suitable host computer software according to needs. Moreover, by configuring and transmitting information such as running status enumeration and intermediate quantity status, the effect of coordinated operation of each thread is achieved. This kind of reconfigurability has the characteristics of "one master and multiple slaves", that is, one main thread works continuously, multiple secondary threads work intermittently, and all threads work in the above-mentioned "serial-parallel hybrid mode".
本发明的工作原理:所有线程,包括一个主线程和复数副线程都共用一个CAN通信标准簇,所有线程均可以对这个CAN通信标准簇读取/写入,本发明定义的CAN通信标准簇是根据现有电动汽车车载传导式充电机标准CAN通信协议进行定义的,包括识别符的系统类型、源地址、目标地址、命令类型、数据、标准帧/远程帧标志、数据长度帧和通道类型等等数据,并由这些复数类型的数据重新捆绑构成一个簇,簇是一种数据结构,类似于C语言中的结构体变量。Principle of work of the present invention: all threads, comprise a main thread and multiple sub-threads all share a CAN communication standard cluster, all threads can read/write to this CAN communication standard cluster, the CAN communication standard cluster defined by the present invention is Defined according to the existing electric vehicle on-board conductive charger standard CAN communication protocol, including identifier system type, source address, destination address, command type, data, standard frame/remote frame flag, data length frame and channel type, etc. and other data, and these plural types of data are re-bundled to form a cluster. A cluster is a data structure, similar to a structure variable in C language.
以上对本发明及其实施方式进行了描述,这种描述没有限制性,实际的结构并不局限于此。总而言如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。The present invention and its embodiments have been described above, but this description is not limiting, and the actual structure is not limited thereto. In a word, if a person of ordinary skill in the art is inspired by it, without departing from the purpose of the invention, without creatively designing a structural method and embodiment similar to the technical solution, it shall belong to the protection of the present invention. scope.

Claims (7)

  1. 一种基于can通信的可重构化多线程并行上位机系统,其特征在于:包括主线程和与主线程连接的副线程,所述主线程包括打开CAN设备、初始化CAN设备、CAN报文传输和接收、CAN设备重启、CAN设备设定改变,所述主线程为一种有序、优雅地进行CAN通信的并行式程序的状态机模式,运行状态由一个枚举型变量中的运行状态枚举来决定,运行状态枚举的数据类型是一种可以被命名的整型常数的集合,来表达主线程的不同运行状态,所述运行状态枚举拥有四种数值:Init、Run、Wait和Exit,处于不同运行状态枚举进入不同的状态运行,同时会根据情况更新运行状态枚举,然后在下一次主线程循环里面进入指定的运行状态,所述主线程包括以下步骤:A reconfigurable multi-threaded parallel upper computer system based on CAN communication, characterized in that: it includes a main thread and a secondary thread connected to the main thread, and the main thread includes opening CAN equipment, initializing CAN equipment, and CAN message transmission and receiving, restarting CAN equipment, and changing CAN equipment settings, the main thread is a state machine mode of a parallel program that performs CAN communication in an orderly and elegant manner, and the running state is enumerated by the running state in an enumerated variable To decide, the data type of the running state enumeration is a collection of integer constants that can be named to express the different running states of the main thread. The running state enumeration has four values: Init, Run, Wait and Exit, the enumeration in different running states enters different states to run, and will update the running state enumeration according to the situation at the same time, and then enter the specified running state in the next main thread cycle. The main thread includes the following steps:
    S1,判断运行状态枚举的值,判断运行状态枚举是否为Exit,判断运行状态枚举为Exit则结束该程序,判断运行状态枚举补位Exit则进入判断运行状态枚举的值;S1, judging the value of the running status enumeration, judging whether the running status enumeration is Exit, judging that the running status enumeration is Exit, then ending the program, judging the running status enumeration complementing Exit, then entering the judgment running status enumeration value;
    S2、步骤S1中运行状态枚举的值包括有Init、Run、Wait和Exit,S2, the value of running status enumeration in step S1 includes Init, Run, Wait and Exit,
    S3、所述Init包括以下步骤:S3, described Init comprises the following steps:
    a1、对CAN配制信息按名称捆绑进CAN通信标准簇,a1. Bundle the CAN configuration information into the CAN communication standard cluster by name,
    a2、创建用户事件CANOpen,a2. Create user event CANOpen,
    a3、把新的CAN通信标准簇重新插入主线程数据流,a3. Reinsert the new CAN communication standard cluster into the main thread data stream,
    a4、把事件插入主线程的事件数据流、运行状态枚举赋值Wait数值;a4. Insert the event into the event data stream of the main thread, enumerate the running status and assign the Wait value;
    所述Wait包括事件结构产生自用户事件的更新,所述事件结构产生自用户事件的更新包括并行Open值改变事件、其他值的改变事件,所述并行Open值改变事件打开CAN的步骤为依次执行三个子VI程序,分别为Open子VI程序、Init子VI程序、Start子VI程序,所述其他值的改变事件包括对所改变的其他值按名称捆绑进CAN通信标准簇里面的特定信息值,所述并行Open值改变事件包括对事件数据流进行判断、运行状态枚举赋予Run和Wait数值;The Wait includes the update of the event structure generated from the user event, and the update of the event structure generated from the user event includes a parallel Open value change event and other value change events, and the parallel Open value change event opens the CAN step. Three subVI programs are respectively the Open subVI program, the Init subVI program, the Start subVI program, and the change events of other values include binding specific information values in the CAN communication standard cluster to other values changed by name, The parallel Open value change event includes judging the event data flow, enumerating the running state and assigning Run and Wait values;
    所述Run包括以下步骤:Described Run comprises the following steps:
    b1、事件结构,所述事件结构包括产生自前面板按键控件和用户事件数据流UpdateUIEvent,b1, the event structure, the event structure includes the UpdateUIEvent generated from the front panel button control and the user event data flow,
    b2、当为对应控件事件调用CAN发送子程序把打包好的CAN通信标准簇转化为CAN报文,b2. When the CAN sending subroutine is called for the corresponding control event to convert the packaged CAN communication standard cluster into a CAN message,
    b3、发送CAN报文,b3. Send CAN message,
    b4、当为用户数据用户事件数据流UpdateUIEvent则对应Event属性节点的Disablie赋值,然后对事件数据流进行判断,最后运行状态枚举赋予Run数值,b4. When it is user data and user event data flow UpdateUIEvent, it corresponds to the Disablie assignment of the Event attribute node, then judges the event data flow, and finally enumerates the running status and assigns the Run value.
    b5、步骤b3和步骤b4最后运行状态枚举都赋予Run和Wait数值的时候,主线程进入下一轮循环;b5, step b3 and step b4, when the final running state enumerations are all assigned Run and Wait values, the main thread enters the next cycle;
    所述Exit包括以下步骤:Said Exit comprises the following steps:
    c1、取消注册事件,注销用户事件和从CAN通信标准簇里面按名称解绑出对应数据,c1. Cancel the registration event, cancel the user event and unbind the corresponding data from the CAN communication standard cluster by name,
    c2、关闭CAN设备,运行状态枚举都赋予Exit数值,则结束程序;c2, turn off the CAN device, the running state enumeration is given Exit value, then end the program;
    所述副线程包括接收线程、循环发送询问报文线程、输出参数修改线程、校准高低位参数修改线程,The secondary thread includes a receiving thread, a loop sending query message thread, an output parameter modification thread, and a calibration high and low parameter modification thread,
    所述接收线程运行过程包括以下步骤:The running process of the receiving thread comprises the following steps:
    F1、先判断主线程的状态是否是open,若主线程的状态是open,则调用子VI,F1. First judge whether the state of the main thread is open. If the state of the main thread is open, call the subVI.
    F2、通过调用CAN二次库把接收到CAN报文格式转换为CAN通信标准簇,反之,则判断为CAN为打开,延时50ms,F2. Convert the format of the received CAN message into a CAN communication standard cluster by calling the CAN secondary library. Otherwise, it is judged that CAN is open, and the delay is 50ms.
    F3、在得到CAN通信标准簇之后,判断其是否为空信息,若不是空信息,则继续进行操作,对报文进行解析和翻译;F3, after obtaining the CAN communication standard cluster, judge whether it is empty information, if not empty information, then continue to operate, the message is analyzed and translated;
    所述循环发送询问报文线程的功能为及时获取和更新数字电源模块的各种运行参数和模式状态数据,运行过程包括以下步骤:The function of the loop sending query message thread is to obtain and update various operating parameters and mode status data of the digital power module in time, and the operation process includes the following steps:
    T1、进入循环发送询问报文线程为后对主线程状态进行判断,然后通过一个根据协议规定来自动生成轮询参数的并行程序框图,得到数据帧并组合为询问用的数据帧的字符串,T1. After entering the loop to send the query message thread, judge the state of the main thread, and then through a parallel program block diagram that automatically generates polling parameters according to the protocol, obtain the data frame and combine it into a character string of the data frame for the query.
    T2、接着,进行对主线程状态进行判断,进入一个独立于主线程的发送程序框图,T2. Next, judge the state of the main thread, enter a sending program block diagram independent of the main thread,
    T3、最后,又是进行对主线程状态进行判断,进行更新多列列表框数据的操作,T3. Finally, judge the state of the main thread and update the data of the multi-column list box.
    T4、更新多列列表框数据需要判断数据帧的排队个数不超过500,然后判断是否要清空多列列表框,最终把接收到的数据更新到多列列表框控件,T4. To update the data of the multi-column list box, it is necessary to judge that the queued number of data frames does not exceed 500, then judge whether to clear the multi-column list box, and finally update the received data to the multi-column list box control,
    所述输出参数修改线程为对数字电源模块的各种运行参数和模式状态数据进行修改,运行过程包括以下步骤:The output parameter modification thread is to modify various operating parameters and mode status data of the digital power module, and the operation process includes the following steps:
    W1、在进入输出参数修改线程之后,先是判断参数设置枚举,然后加入对应的程序分支以合成输出报文用到的字符串,并把这个数据传输给主线程,并触发主线程的按键事件,W1. After entering the output parameter modification thread, first judge the parameter setting enumeration, then add the corresponding program branch to synthesize the string used in the output message, and transmit this data to the main thread, and trigger the key event of the main thread ,
    W2、同时,有一个对话框的并行程序在本副线程中执行,W2. At the same time, there is a parallel program of a dialog box that is executed in this secondary thread.
    W3、除了进行报文合成,还会对下拉选择控件所生成的枚举变量进行判断,生成相应的提示信息,来提示用户对应参数的输入范围;W3. In addition to message synthesis, it will also judge the enumerated variables generated by the drop-down selection control, and generate corresponding prompt information to prompt the user to input the corresponding parameter range;
    所述校准高低位参数修改线程的功能为对数字电源模块进行校准,运行过程包括以下步骤:The function of the calibration high and low parameter modification thread is to calibrate the digital power module, and the operation process includes the following steps:
    X1、分别对“校准高低位设置”数值输入控件和“较准设置”数值输入控件的枚举进行判断,然后分别计入对应的程序分支,X1. To judge the enumeration of the numerical input control of "calibration high and low setting" and the numerical input control of "calibration setting", respectively, and then count them into the corresponding program branch respectively,
    X2、然后在对应程序分支里面读取数据控件的数据并合成数据帧,输出校准参数的字符 串,X2. Then read the data of the data control in the corresponding program branch and synthesize the data frame, and output the string of calibration parameters.
    X3、当前面板按下发送按键,主线程进入相应的事件分支接收这个字符串,并发送CAN报文。X3. Press the send button on the current panel, and the main thread enters the corresponding event branch to receive the string and send the CAN message.
  2. 根据权利要求1所述的一种基于can通信的可重构化多线程并行上位机系统,其特征在于:主线程在Init状态下,主线程的主要功能是打开CAN设备并对其进行初始化,具体操作包括对CAN通信标准簇进行分解和再捆绑,通过调用属性节点和动态注册事件来产生UI更新事件UpdateUIEvent,以此及时更新CAN通信标准簇与调整UI数据的状态,同时,为运行状态枚举赋值Wait,让主线程进入Wait模式。A kind of reconfigurable multi-threaded parallel upper computer system based on CAN communication according to claim 1, characterized in that: the main thread is in the Init state, and the main function of the main thread is to open the CAN device and initialize it, The specific operations include decomposing and re-bundling the CAN communication standard cluster, generating the UI update event UpdateUIEvent by calling attribute nodes and dynamic registration events, so as to update the CAN communication standard cluster and adjust the state of UI data in time, and at the same time, set up the running status Assign Wait to let the main thread enter Wait mode.
  3. 根据权利要求1所述的一种基于can通信的可重构化多线程并行上位机系统,其特征在于:主线程在Wait状态下,主线程的主要功能是等待CAN设备准备完成,并判断CAN设备的操作状态来决定下一步进入何种主线程状态以及更新CAN通信标准簇里面的信息,Wait状态下的主线程是一种事件结构的程序,事件结构的事件类型主要包括CAN通信标准簇里面的特定信息值发生改变和前面板关闭事件。A reconfigurable multi-threaded parallel upper computer system based on can communication according to claim 1, wherein the main thread is in the Wait state, and the main function of the main thread is to wait for the CAN device to be ready to complete, and to judge the CAN The operating state of the device determines which main thread state to enter next and updates the information in the CAN communication standard cluster. The main thread in the Wait state is a program with an event structure. The event types of the event structure mainly include the CAN communication standard cluster. specific information value change and front panel close events.
  4. 根据权利要求1所述的一种基于can通信的可重构化多线程并行上位机系统,其特征在于:主线程在Run状态下,主线程的主要功能是判断并接收来自各个副线程的数据,并把这些数据打包为CAN通信标准簇,并调用CAN发送子程序把打包好的CAN通信标准簇转化为CAN报文发送出去。A reconfigurable multi-threaded parallel upper computer system based on can communication according to claim 1, characterized in that: when the main thread is in the Run state, the main function of the main thread is to judge and receive data from each secondary thread , and pack these data into CAN communication standard clusters, and call the CAN sending subroutine to convert the packaged CAN communication standard clusters into CAN messages and send them out.
  5. 根据权利要求1所述的一种基于can通信的可重构化多线程并行上位机系统,其特征在于:主线程在Init状态下,主线程的主要功能是打开CAN设备并对其进行初始化,具体操作包括对CAN通信标准簇进行分解和再捆绑,通过调用属性节点和动态注册事件来产生UI更新事件UpdateUIEvent,以此及时更新CAN通信标准簇与调整UI数据的状态,同时,为运行状态枚举赋值Wait,让主线程进入Wait模式。A kind of reconfigurable multi-threaded parallel upper computer system based on can communication according to claim 1, characterized in that: the main thread is in the Init state, and the main function of the main thread is to open the CAN device and initialize it, The specific operations include decomposing and re-bundling the CAN communication standard cluster, generating the UI update event UpdateUIEvent by calling attribute nodes and dynamic registration events, so as to update the CAN communication standard cluster and adjust the state of UI data in time, and at the same time, set up the running status Assign Wait to let the main thread enter Wait mode.
  6. 根据权利要求1所述的一种基于can通信的可重构化多线程并行上位机系统,其特征在于:主线程在Wait状态下,主线程的主要功能是等待CAN设备准备完成,并判断CAN设备的操作状态来决定下一步进入何种主线程状态以及更新CAN通信标准簇里面的信息。A reconfigurable multi-threaded parallel upper computer system based on can communication according to claim 1, wherein the main thread is in the Wait state, and the main function of the main thread is to wait for the CAN device to be ready to complete, and to judge the CAN The operating state of the device determines which main thread state to enter next and updates the information in the CAN communication standard cluster.
  7. 根据权利要求1所述的一种基于can通信的可重构化多线程并行上位机系统,其特征在于:所述副线程还包括校准复位、识别符合成、模块序列号设置参数修改、模块状态信息分离与显示、逻辑变量输出、电源模块开关机线程。A reconfigurable multi-threaded parallel upper computer system based on can communication according to claim 1, characterized in that: the secondary thread also includes calibration reset, identification code synthesis, module serial number setting parameter modification, module status Information separation and display, logic variable output, power module switch thread.
PCT/CN2022/082174 2021-06-24 2022-03-22 Reconfigurable multi-thread-parallelism upper computer system based on can communication WO2022267578A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110705246.9 2021-06-24
CN202110705246.9A CN113407214B (en) 2021-06-24 2021-06-24 Reconfigurable multithreading parallel upper computer system based on can communication

Publications (1)

Publication Number Publication Date
WO2022267578A1 true WO2022267578A1 (en) 2022-12-29

Family

ID=77683001

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/082174 WO2022267578A1 (en) 2021-06-24 2022-03-22 Reconfigurable multi-thread-parallelism upper computer system based on can communication

Country Status (2)

Country Link
CN (1) CN113407214B (en)
WO (1) WO2022267578A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407214B (en) * 2021-06-24 2023-04-07 广东泰坦智能动力有限公司 Reconfigurable multithreading parallel upper computer system based on can communication

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100125383A1 (en) * 2008-11-14 2010-05-20 Pierre Caouette Electronic method of controlling propulsion and regeneration for electric, hybrid-electric and diesel-electric marine crafts, and an apparatus therefor
CN102722150A (en) * 2012-06-07 2012-10-10 中国东方电气集团有限公司 Multi-way waveform acquiring and displaying and data analyzing and processing system based on universal serial
CN113407214A (en) * 2021-06-24 2021-09-17 广东泰坦智能动力有限公司 Reconfigurable multithreading parallel upper computer system based on can communication

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040015940A1 (en) * 2001-05-29 2004-01-22 3Com Corporation Intelligent device upgrade engine
DE102006047218B9 (en) * 2006-10-05 2008-07-10 Hippokratec Gesellschaft für Medizintechnik mbH Apparatus and method for centrally controlling interconnected medical devices
US8683444B1 (en) * 2006-12-11 2014-03-25 Synopsys, Inc. System and method of debugging multi-threaded processes
CN101854300B (en) * 2010-06-02 2012-05-16 北京工业大学 Method for realizing CANopen slave station
US8566841B2 (en) * 2010-11-10 2013-10-22 International Business Machines Corporation Processing communications events in parallel active messaging interface by awakening thread from wait state
US9804846B2 (en) * 2014-03-27 2017-10-31 International Business Machines Corporation Thread context preservation in a multithreading computer system
CN103984665B (en) * 2014-06-05 2017-06-20 哈尔滨工业大学 Serial communication device and method based on LabVIEW
US20160055029A1 (en) * 2014-08-21 2016-02-25 Qualcomm Incorporated Programmatic Decoupling of Task Execution from Task Finish in Parallel Programs
CN106445640B (en) * 2016-10-20 2019-06-18 南京南瑞继保电气有限公司 A kind of embedded type virtual device operation method and system
CN109254834B (en) * 2017-07-13 2021-05-14 普天信息技术有限公司 Multithreading starting synchronization method
CN111309353B (en) * 2020-01-20 2023-05-23 超越科技股份有限公司 Method and equipment for updating operation board FPGA firmware based on server control board
CN111640970B (en) * 2020-05-29 2021-07-06 湖北工业大学 CAN bus-based fuel cell engine upper computer monitoring method
CN111628197B (en) * 2020-05-29 2021-08-17 湖北工业大学 CAN bus-based fuel cell power system platform upper computer monitoring method
CN112014733B (en) * 2020-08-28 2023-07-21 东风电子科技股份有限公司 Method, system and storage medium for realizing fault monitoring of motor driver of pure electric vehicle based on Labview

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100125383A1 (en) * 2008-11-14 2010-05-20 Pierre Caouette Electronic method of controlling propulsion and regeneration for electric, hybrid-electric and diesel-electric marine crafts, and an apparatus therefor
CN102722150A (en) * 2012-06-07 2012-10-10 中国东方电气集团有限公司 Multi-way waveform acquiring and displaying and data analyzing and processing system based on universal serial
CN113407214A (en) * 2021-06-24 2021-09-17 广东泰坦智能动力有限公司 Reconfigurable multithreading parallel upper computer system based on can communication

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GAO YAN, DOU HAO, LU HAO: "Master Station Design of Servo Control System Based on CANopen", ELECTROTECHNICAL APPLICATION, no. 4, 29 February 2016 (2016-02-29), pages 65 - 68, XP093017267 *

Also Published As

Publication number Publication date
CN113407214A (en) 2021-09-17
CN113407214B (en) 2023-04-07

Similar Documents

Publication Publication Date Title
US6792584B1 (en) System and method for designing an integrated circuit
CA2208135C (en) Method, computer program product, and data structure for validating creation of and routing messages to file objects
CN109324787A (en) A kind of business software development approach, device and terminal device
CN109508202A (en) Drive development system, method and medium for embedded operating system
WO2022267578A1 (en) Reconfigurable multi-thread-parallelism upper computer system based on can communication
CN110838961B (en) General aviation bus message scheduling system
US6654946B1 (en) Interscalable interconnect
CN109542450B (en) Method and device for realizing intelligent component of process layer of intelligent substation
CN111899501B (en) Remote control method for switch in distribution network automation master station substation
CN105933767B (en) Middleware device, Middleware implementation method and television set
CN109040752A (en) Automatic debugging system for smart television
CN102981827A (en) Display interface data treatment method and platform based on middle piece
CN112332997A (en) Network distribution method of terminal equipment, terminal equipment and computer readable storage medium
CN108833005B (en) Optical network communication equipment and automatic test kit and method for networking service thereof
CN108959094A (en) A kind of definition and methods for using them of the test program based on data structure
US6751783B1 (en) System and method for optimizing an integrated circuit design
US20050015158A1 (en) Data acquisition system and method for process control and recording medium with recorded data acquisition program
CN109656622A (en) A kind of packaging method for realizing network tester in communication equipment automatic test
CN114629830B (en) Method and system for automatically controlling test center instrument test
Fraietta et al. Transparent communication within multiplicities
CN112559264B (en) Simulation test method for realizing FPGA (field programmable Gate array) universal serial port by verification platform based on UVM (Universal verification Module)
Kastner et al. An open approach to eib/knx software development
CN100456710C (en) Method and system for realizing Tclsh instruction long-distance call
CN113572652B (en) Wired Mesh network testing method
CN113163420B (en) Test method for simulating online of multiple APs

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22827083

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE