pdf

LabVIEW Programming and Application (Ji Shujiao, Shang Weiwei, Lei Yanmin)

  • 2024-07-21
  • 74.45MB
  • Points it Requires : 1

This book is divided into two parts. The first part, the basic part (Chapters 1 to 6), introduces the basic programming methods of LabVIEW, including the introduction of the development environment, programming and debugging of VI, data expression, program structure, waveform control, network and communication, etc. The second part, the application part (Chapters 7 to 13), mainly combines the professional courses of electronic information majors. First, the main theoretical knowledge of the courses \"Signal Analysis and Processing\", \"Communication Principles\" and \"Automatic Control Principles\" are simulated and designed; then the basics of data acquisition are introduced, and the temperature acquisition system is designed in combination with the experimental platform Nextboard for engineering teaching, and the remote system acquisition design is realized. The last chapter introduces the design of the data acquisition system based on the sound card. The editor has carefully designed the examples in the book and tested them repeatedly based on many years of teaching experience and students\' learning points. This book can be used as a textbook for electronic information, instrumentation and related professional courses in colleges and universities, and can also be used as a study and reference for engineering and technical personnel in related fields. Contents Part 1 Basics Chapter 1 Overview of LabVIEW 1.1 Introduction to LabVIEW 1.2 Installing and Starting LabVIEW 1.2.1 Installing LabVIEW 1.2.2 Starting LabVIEW 1.3 LabVIEW Programming Environment 1.3.1 Control Palette 1.3.2 Tool Palette 1.3.3 Function Palette 1.3.4 Menu Bar and Toolbar 1.4 Project Explorer 1.5 LabVIEW Help Information 1.5.1 Help Documents 1.5.2 Finding Examples 1.5.3 Network Resources Chapter 2 Creating, Editing, and Debugging VIs 2.1 Creating and Editing VIs 2.2 Running and Debugging Programs 2.2.1 Running and Stopping VIs 2.2.2 Correcting VI Errors 2.2.3 Highlighting Program Execution 2.2.4 Running VIs Step by Step 2.3 Creating and Calling SubVIs 2.3.1 Creating SubVIs Using Icon Editing 2.3.2 Creating SubVIs Using Commands 2.3.3 Calling SubVIs Chapter 3 Data Expression in LabVIEW 3.1 Numeric Controls 3.1.1 Numeric Controls and Display Formats 3.1.2 Common Functions for Numerical Operations 3.2 Boolean Controls 3.2.1 Boolean Controls and Display Formats 3.2.2 Common Functions for Boolean Operations 3.3 String and Path Controls 3.3.1 String Controls and Display Formats 3.3.2 Common Functions for String Controls 3.4 Drop-Down Lists and Enumeration Controls 3.5 Array Controls 3.5.1 Creating an Array 3.5.2 Array Functions 3.6 Clusters 3.6.1 Creating a Cluster 3.6.2 Cluster Functions 3.6.3 Error Clusters 3.7 Waveform Data 3.7.1 Waveform Controls 3.7.2 Waveform Functions Chapter 4 Program Flow and Structure 4.1 Loop Structure 4.1.1 For Loop 4.1.2 Shift Register 4.1 .3while loop 4.2 conditional structure 4.3 flat sequence structure 4.4 event structure 4.5 formula node 4.6 local variables and global variables 4.6.1 local variables 4.6.2 global variables Chapter 5 Waveform Control 5.1 Waveform Chart 5.1.1 Right-click shortcut menu of waveform chart 5.1.2 Waveform Chart Application Example 5.2 Waveform Chart 5.3 XY Chart 5.4 Intensity Chart 5.5 Digital Waveform Chart 5.6 Three-dimensional Graphics Chapter 6 Network and Communication 6.1 Data Communication 6.2 Queue Operation Function Programming 6.2.1 Queue Operation Function 6.2.2 Queue Function Application 6.3 DataSocket Programming 6.3.1 DataSocket Communication 6.3.2 DataSocket Function 6.3.3 DataSocket Server Manager 6.3.4 DataSocket Server 6.3.5 DataSocket Communication Implementation 6.4 Protocol 6.4.1 TCP Function 6.4.2 TCP/IP Communication Implementation Part 2 Application Chapter 7 Signal Analysis and Processing 7.1 Waveform Generation 7.2 Signal Generation 7.3 Waveform Conditioning 7.4 Signal Operation 7.5 Waveform Measurement 7.6 Express VI 7.6.1 Input Function 7.6.2 Signal Analysis 7.6.3 Signal Operation Module 7.6.4 Output Function 7.7 Comprehensive Example: Production of signal generator Chapter 8 Application of LabVIEW in communication system 8.1 Analog modulation 8.1.1 AM modulation 8.1.2 FM modulation 8.2 Digital modulation 8.2.1 Binary amplitude shift keying 8.2.2 Binary frequency shift keying 8.2.3 Binary phase shift keying 8.3 Comprehensive design Chapter 9 Application of LabVIEW in automatic control system 9.1 Main functions of LabVIEW control and simulation 9.2 Establishment of LabVIEW control model 9.3 Time domain analysis of automatic control system 9.4 Frequency domain analysis of automatic control system 9.5 Dynamic performance analysis of automatic control system Chapter 10 Data acquisition 10.1 Introduction to basic knowledge of data acquisition 10.2 Installation and application of configuration management software MAX 10.2.1 Introduction to configuration management software MAX 10.2.2 Installation of NI DAQmx 10.2.3 Application of configuration management software MAX 10.3 DAQmx API function 10.4 DAQ Assistant Express VI Chapter 11 Design of data acquisition system based on Nextboard 11.1 Introduction to Nextboard 11.1.1 Introduction to Nextboard hardware 11.1.2 Introduction to Nextpad soft panel 11.2 Design of temperature acquisition system based on Nextboard 11.2.1 Working principle of thermocouple 11.2.2 Introduction to thermocouple experimental panel 11.2.3 Thermocouple temperature acquisition based on Nextpad software 11.2.4 Thermocouple temperature acquisition based on LabVIEW program design 11.3 Design of digital signal generation and acquisition based on Nextboard 11.3.1 Design of front panel 11.3.2 Design of program flowchart 11.3.3 Program debugging Chapter 12 Design of data acquisition system based on TCP/IP 12.1 Nextkit signal multimeter 12.1.1 Introduction to nextkit hardware 12.1.2 Nextkit tSoft Panel Introduction 12.1.3 Use of NextKit Oscilloscope and Signal Generator 12.2 Implementation of Stand-alone Data Acquisition System Based on LabVIEW 12.2.1 LabVIEW Program Design Based on API Function 12.2.2 Hardware Connection and Program Debugging 12.3 Implementation of TCP/IP Data Acquisition System Based on LabVIEW 12.3.1 Program Design of Signal Transmitter 12.3.2 Program Design of Signal Receiver 12.3.3 Program Debugging Chapter 13 Design of Data Acquisition System Based on Sound Card 13.1 Introduction to Sound Card 13.2 Working Principle of Sound Card 13.3 Main Technical Parameters of Sound Card 13.4 Design of Data Acquisition System Based on Sound Card 13.4.1 Introduction to Sound Card Functions in LabVIEW 13.4.2 LabVIEW Program Design of Sound Acquisition Module 13.4.3 LabVIEW Program Design of Playing Sound According to File 13.4.4 Playing sound according to waveform LabVIEW program design reference [Preface] Preface LabVIEW, an innovative software product of National Instruments (NI), uses a graphical programming language to make computer programming simple. Combined with efficient data acquisition equipment, it can quickly build a virtual measurement and control system. With the development of LabVIEW, new versions are released almost every one or two years. Its application scope covers many fields such as industrial automatic control, measurement and testing, computer simulation, communication and remote measurement and control. LabVIEW has entered the laboratories of many universities at home and abroad, and most engineering majors in universities at home and abroad have also opened related courses. Learning LabVIEW programming design well is also very helpful for learning professional theoretical courses. The author of this book has been engaged in virtual instrument teaching for many years and has accumulated a lot of practical experience in program development, which has been presented in a large number of examples in this book. For LabVIEW beginners, mastering efficient learning methods is an important factor in learning LabVIEW well. It is crucial to use LabVIEW to do more hands-on programming and think about why the program has such a running result. The author of this book has carefully written a large number of examples. Beginners should repeatedly write and test the program as much as possible to achieve the purpose of knowing why it is so. The basic part of this book was mainly written by Ji Shujiao and Lei Yanmin, the application part was written by Ji Shujiao and Shang Weiwei, and the whole book was edited by Ji Shujiao. A large number of literatures were referenced in the process of writing this book. I would like to express my sincere gratitude to the authors of these literatures. At the same time, I would like to thank Engineer Liu Yang, the manager of NI\'s cooperation with Chinese universities, and the technical staff of Panhua Company for their great help. The extensive communication between the editor-in-charge of this book and the author was also very helpful to the publication of this book. I would like to express my gratitude here. At the same time, I would like to thank the students who participated in the program writing and testing of this book, and thank Changchun University for its strong support for the publication of this book. The author wrote this book with the attitude of communication and learning. Due to his limited level, there are inevitably some shortcomings in the book. Readers are welcome to provide valuable suggestions. If you have any questions, please contact the author (shujiaoji@163.com). The publication of this book hopes to make some contributions to the promotion and use of LabVIEW in China, especially in colleges and universities, and to be helpful to the majority of LabVIEW learning enthusiasts. Author\'s courseware and program download in June 2018 [Excellent book excerpt] Chapter 5 Waveform Control Learning objectives of this chapter  Master the use of waveform charts and waveform graphs  Understand the use of XY graphs, intensity graphs and digital waveform graphs  Master the use of three-dimensional graphics The waveform display control is one of the commonly used objects on the front panel in program design. Its sub-selection panel is located in \"Controls\" → \"New\" → \"Graphics\", as shown in Figure 5.1. This chapter first introduces the relevant knowledge of waveform charts and waveform graphs, then introduces the use of XY graphs, intensity graphs and digital waveform graphs, and finally introduces the representation of three-dimensional graphics. Figure 5.1 \"Graphics\" sub-selection panel 5.1 Waveform charts Waveform charts are used as display controls, mainly consisting of waveform display areas, horizontal and vertical coordinates, and legends. Waveform charts can save old data, and the length of the saved data can be specified by yourself. The new data transmitted to the waveform chart is connected to the old data, so that the new data can be displayed while saving part of the old data. You can also imagine the working mode of the waveform chart as a first-in, first-out queue. When new data arrives, the old data of the same length will be squeezed out of the queue. The default length is 1024. Users can also right-click the chart and select \"Icon History Length\" from the pop-up shortcut menu to set the size. 5.1.1 Right-click shortcut menu of the waveform chart 1. Display items Display items are used to set the appearance of the waveform chart. They are used to indicate which elements in the object are visible. As shown in Figure 5.2, it provides a method for selecting display labels, X scroll bars, graphic tool palettes, and ruler legends. Figure 5.2 Waveform chart display item menu Figure 5.3 shows the display style of the ruler legend and graphic tool palette in addition to the waveform chart under default conditions. Figure 5.3 Waveform chart showing the ruler legend and graphic tool palette (X ruler, Y ruler) In the legend, you can expand multiple lines by dragging the mouse. Right-click the line to pop up the dialog box shown in Figure 5.4. You can set the line style, color, width and other properties to distinguish each line. 2. Advanced In the submenu of the \"Advanced\" option, select Refresh Mode to switch the waveform chart to three refresh modes in the interactive data display: Oscilloscope Chart, Strip Chart, and Scan Chart, as shown in Figure 5.5. Strip Chart: Continuously scrolls from left to right to display running data, similar to a paper strip chart recorder. Oscilloscope Chart: When the line reaches the right edge of the drawing area, LabVIEW erases the entire line and starts drawing a new line from the left edge, similar to an oscilloscope. Figure 5.4 Legend Dialog Box Figure 5.5 Waveform Chart Refresh Mode Scan Chart: There is a vertical line in the scan chart that separates the old data on the right from the new data on the left, similar to an electrocardiograph. 3. Properties The Properties dialog box is shown in Figure 5.6, which contains property settings such as appearance, display format, line, and ruler. Users can click the options they need to set as needed. 4. Grid display and cascade display settings In the waveform chart, when multiple lines are displayed, you can select the \"cascade\" overlap mode, that is, grid display lines or cascade display lines, as shown in Figure 5.7. Figure 5.6 Waveform Chart Properties Dialog Box Figure 5.7 Overlay Display Line 5.1.2 Waveform Chart Application Example Example 5.1 Use the waveform chart to output the result of multiplying a random number by 5 and 3. The front panel and flowchart of the program are shown in Figures 5.8 and 5.9. The bundle function is used in the flowchart, and the front panel is displayed in the form of overlay and grid. Figure 5.8 Example 5.1 Front Panel Figure 5.9 Example 5.1 Flowchart Example 5.2 Use the waveform chart to display the sine and cosine waveforms at the same time. The flowchart uses 2π, which is located in the \"Function\" → \"Number\" → \"Mathematics and Scientific Constants\" sub-palette; the \"Sine\" and \"Cosine\" functions used are in the \"Function\" → \"Mathematics\" → \"Elementary and Special Functions\" sub-palette. The front panel and flowchart are shown in Figures 5.10 and 5.11. On the waveform chart on the front panel, right-click and select the \"Properties\" command. In the \"Automatically adjust ruler\" in the ruler properties of the property setting interface, set the value to 359 and the minimum value to 0, as shown in Figure 5.12. The data length of each run is 360. After one cycle, run the program again, and the value of the horizontal axis will change to 360 at the start and 719 at the end. Run it again and increase it in sequence. Figure 5.10 Example 5.2 Front panel Figure 5.11 Example 5.2 Program flowchart Figure 5.12 Ruler setting dialog box 5.2 Waveform chart The waveform chart and the waveform chart have most of the same functions and display styles, and can also receive multiple data types, thereby greatly reducing the workload of type conversion before displaying the data as a graphic. The waveform chart displays the waveform in a batch data refresh mode. The basic form of data input is array, cluster or waveform data. The display contains the main network and auxiliary network in the default state. Example 5.3 Use the create waveform function to create a waveform and display it in the waveform chart. The specific steps are as follows: (1) Create a new VI. In the flowchart, click \"Function\" → \"Programming\" → \"Waveform\" sub-palette, find \"Create Waveform Function\", and display the elements Y, t0, and dt it contains. (2) Add a for loop, connect the output to the Y input terminal of the created waveform, and connect dt to the numerical constant 10. (3) Click \"Function\" → \"Programming\" → \"Numerical\" → \"Conversion\" sub-palette, select the \"Convert to Time Stamp\" function, and its connection is shown in Figure 5.13. (4) Add a waveform graph to the front panel, connect the flowchart to the output port of the created waveform, run the program, and the display result is shown in Figure 5.14. Here, the legend of the waveform graph display is set to highlight the numerical value. Example 5.4 This example shows all the data formats that the waveform can receive. The waveform data comes from two double-precision arrays, and the data of these two arrays comes from the \"output channel\" on the \"Open Index Function\" border. In the for loop, 100 points evenly distributed from 0 to 2π are connected to the sine and cosine functions, and the data is displayed. Seven data formats that the waveform can receive are given. Figure 5.15 and Figure 5.16 are the flowchart and front panel of Example 5.4 respectively. Figure 5.13 Flowchart of Example 5.3 Figure 5.14 Front panel of Example 5.3 Figure 5.15 Flowchart of Example 5.4 Figure 5.16 Example 5.4 The front panel uses Graph to draw one or more lines. In these two cases, the data organization format is different. When drawing a single line, the waveform Graph can receive the following two data formats: (1) One-dimensional array, corresponding to the single-line waveform graph in Figure 5.15 and Figure 5.16. At this time, the time defaults to starting from 0, and the time interval between data points is 1s, that is, time 0 corresponds to the 0th element in the array, time 1 corresponds to the 1st element in the array, and so on. (2) Cluster data type. Corresponding to the single line (Xo=10, dx=2, Y) in Figure 5.15 and Figure 5.16. The cluster should include three elements: the time start point, the time interval, and the value array. When drawing multiple lines, the waveform Graph can receive the following data formats: (1) Two-dimensional array, corresponding to the multi-line waveform graph 1 in Figure 5.15 and Figure 5.16. Each line can be interpreted as a line of data, with time starting from 0 and the interval between each data point being 1s. Because the two-dimensional array itself requires that each line has the same length, this data format requires that the data length of each line is the same. (2) Pack the array into clusters, and then use the clusters as elements to form an array, which corresponds to Multi Plot 2 in Figures 5.15 and 5.16. Each array contained in each cluster is a line. This data organization method can be used when the number of data points of multiple lines is different. Time starts at 0, and the interval between each data point is 1s. (3) The cluster composed of numeric type elements t0, dt and numeric type two-dimensional array Y corresponds to the (Xo=10, dx=0.5, Y) multi-line waveform chart in Figures 5.15 and 5.16, where t0 is the starting time, dt is the time interval between data points, and each row of Y is a line of data. (4) The one-dimensional array with clusters as elements corresponds to (Xo=10, dx=2, Y) Multi Plot 1 in Figures 5.15 and 5.16. Each cluster element consists of three elements: numeric type elements t0, dt and numeric type array. t0 is the starting time, dt is the time interval between data points, and the numerical array represents the data points of a line. This is a common multi-line data format because each line is allowed to have a different starting time, data point time interval, and data point length. (5) In the cluster consisting of three elements, t0, dt, and an array with cluster elements, each cluster element is packed with an array, and each array is a line, corresponding to the (Xo=10, dx=5, Y) multi-line waveform graphs in Figures 5.15 and 5.16. All lines share the starting time t0 and time interval dt parameters provided by the outer cluster. 5.3 XY Graph \"Waveform Chart\" and \"Waveform Graph\" can only be used to display data in a one-dimensional array or a series of single-point data. They are powerless for data that needs to display a horizontal axis and a vertical axis pair. To depict the functional relationship between X and Y, you need to use \"XY Graph\". Example 5.5 Use XY Graph to Describe Concentric Circles. The design steps are as follows: (1) Create a new VI and place an XY graph on the front panel so that the line graph displays two line labels. (2) Place a for loop structure in the program flowchart window and assign 360 to the counting port. Follow the path \"Numerical\" → \"Mathematics\" → \"Elementary and Trigonometric Functions\" → \"Trigonometric Functions\" sub-palette \"Sine and Cosine\" function to calculate the sine and cosine values ​​of a period of 0~2π data respectively. Select the \"Bundle\" function to group the pair of sine and cosine values ​​generated in each loop into a cluster. After the loop ends, group these 360 ​​clusters into a cluster array. (3) Because the display mechanism of the XY graph determines that its input must be a cluster, add two Create Cluster Array functions, and then use the \"Create Array\" function to form a cluster array. Select \"Connect Inputs\" for the Create Array function. Complete the wiring and run the program. The front panel and program flowchart are shown in Figures 5.17 and 5.18. Figure 5.17 Front panel of Example 5.5 Figure 5.18 Flowchart of Example 5.5 5.4 Intensity Graph The \"Intensity Graph\" control provides a method for displaying three-dimensional data on a two-dimensional plane. For example, the brightness of the screen color can be used to reflect the size of a two-dimensional array element. Intensity graphs can be divided into \"Intensity Trend Graph\" and \"Intensity Waveform Graph\". Most of their components and functions are the same. Example 5.6 uses an example to illustrate the use of an intensity waveform graph to display the size of array elements. The design steps are as follows: (1) Create a new VI, place an \"Intensity Graph\" on the front panel, and change the \"Scale\" labels of its X-axis and Y-axis to \"Row\" and \"Column\" respectively. (2) Also place a numeric \"Two-Dimensional Array\" control on the front panel, right-click any array member, change the data type to I8 in the \"Display Type\" command item on the shortcut menu, use the operating tool to enter 4 rows and 3 columns of data into the two-dimensional array, switch to the flowchart editing window, and connect the \"Two-Dimensional Array\" to the \"Intensity Graph\". Run the program, and the front panel and flowchart are shown in Figure 5.19. When the value of an element in a two-dimensional array is changed, the color value in the corresponding intensity waveform graph will also change accordingly. Figure 5.19 Front panel and flowchart of Example 5.6 5.5 Digital Waveform Graph LabVIEW provides a \"digital waveform graph\" to display digital signals represented by 0 and 1. To display digital signals, you must first use the \"bundle function\" to bundle the digital signals. The order of digital bundling is Xo, Delta X, input data and number of sampling points. The number of sampling points here reflects the number of bits or word length of the binary system. When it is equal to 1, it is 8 bits, when it is equal to 2, it is 16 bits, and so on. Example 5.7 Use a digital waveform graph to display a binary array, 1 is a high level, and 0 is a low level. Design steps: (1) Create a new VI and place a \"digital waveform graph\" on the front panel. (2) Place a numeric \"one-dimensional array\" on the front panel, set the data type to I8, select \"binary display\" in the \"format and settings\" dialog box, select an array element, and select \"right alignment\" in the \"font\" setting drop-down menu on the toolbar to set the binary number to right alignment display. Figure 5.20 Flowchart of Example 5.7 (3) Switch to the flow chart, select the \"Package\" function in the \"Cluster Function\" sub-template, add Xo=0, Delta X=1, input array and number of sampling points=1 to the input port of the \"Package\" function, and send the output cluster to the digital waveform display. The flow chart is shown in Figure 5.20. Run the program and the running result is shown in Figure 5.21. Figure 5.21 Front panel of Example 5.7 As can be seen from the program running result chart, the horizontal axis X axis represents the sequence number of the data, which ranges from 0 to 5, and the vertical axis Y axis represents the level change of the digital signal from bit to bit from top to bottom. For example, for the binary number 101 (decimal 5) with sequence number 3, it is represented by a digital waveform chart as 00000101, row 7 represents the bit, and row 0 represents the bit. 5.6 Three-dimensional graphics In actual engineering applications, \"three-dimensional graphics\" is usually an intuitive data display method. It can clearly draw spatial trajectories and give the dependence relationship in the three directions of X, Y and Z. For example, in the analysis of non-stationary random signals, time domain analysis methods are usually used. In this case, three-dimensional graphics can be used to describe it. The X axis represents time, the Y axis represents frequency, and the Z axis represents the time domain spectrum. The three-dimensional graphics included in LabVIEW are shown in Figure 5.22. Figure 5.22 The main modules of the three-dimensional graphics sub-palette are introduced as follows: 1. Three-dimensional surface graphics When a three-dimensional surface graphic is placed on the front panel, the program flowchart will display two icons at the same time, as shown in Figure 5.23, respectively, creat_plot_surface.vi and 3D Graph. The former is used for three-dimensional drawing, and the latter is used to display the graph. The ports and definitions of creat_plot_surface.vi are shown in Figure 5.24. This port draws the surface based on the x, y and z points. This VI has two one-dimensional arrays (x, y) and a two-dimensional array (z) to specify the points on the graph. Figure 5.23 Three-dimensional surface graphics Figure 5.24 Ports of creat_plot_surface.vi 2. Three-dimensional parameter graphics When a three-dimensional parameter graphic is placed on the front panel, the program flowchart will display two icons at the same time, as shown in Figure 5.25, similar to the three-dimensional surface graphics. Figure 5.25 The ports and definitions of creat_plot_parametric.vi are shown in Figure 5.26. The surface is drawn based on the x, y and z points. This VI has three two-dimensional arrays that specify the points on the surface. Example 5.8 Three-dimensional surface graphics routine. This example displays the surface graph of z=sin(x)cos(y). The front panel and program flowchart are shown in Figure 5.27 and Figure 5.28. You can use the mouse to drag the three-dimensional graphics on the front panel to observe the graphics from multiple angles. Figure 5.26Ports of creat_plot_parametric.vi Figure 5.27 Front panel of Example 5.8 Figure 5.28 Flowchart of Example 5.8 Here, the z variable is a two-dimensional array, but x and y are one-dimensional arrays, so the output of the for loop should select \"end value\" instead of \"index\". Example 5.9 Use three-dimensional parametric graphics to draw a hollow sphere. The parametric equation of the hollow sphere is: x=(2 cosα)cosβ y=(2 cosα)sinβ z=sinα(51) The flow chart and front panel are shown in Figure 5.29 and Figure 5.30 respectively. Figure 5.29 Flowchart of Example 5.9 There is a three-dimensional graphics property setting on the front panel when you right-click. The dialog box is shown in Figure 5.31, and you can make further settings for the three-dimensional graphics. Figure 5.30 Front panel of Example 5.9 Figure 5.31 \"Three-dimensional Graphics Properties\" dialog box

unfold

You Might Like

Uploader
抛砖引玉
 

Recommended ContentMore

Popular Components

Just Take a LookMore

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号
×