US20050251564A1 - Remote instrument control by multiple clients - Google Patents

Remote instrument control by multiple clients Download PDF

Info

Publication number
US20050251564A1
US20050251564A1 US10/825,465 US82546504A US2005251564A1 US 20050251564 A1 US20050251564 A1 US 20050251564A1 US 82546504 A US82546504 A US 82546504A US 2005251564 A1 US2005251564 A1 US 2005251564A1
Authority
US
United States
Prior art keywords
application
client
communication
received
instrument
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US10/825,465
Inventor
Timothy Tillotson
Sara Ting
Byron Jenings
Nathan Berg
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agilent Technologies Inc
Original Assignee
Agilent Technologies Inc
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 Agilent Technologies Inc filed Critical Agilent Technologies Inc
Priority to US10/825,465 priority Critical patent/US20050251564A1/en
Assigned to AGILENT TECHNOLOGIES, INC. reassignment AGILENT TECHNOLOGIES, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BERG, NATHAN A., JENNINGS, JR., BYRON T., TILLOTSON, TIM NEPHI, TING, SARA
Publication of US20050251564A1 publication Critical patent/US20050251564A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2294Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by remote test

Definitions

  • SCPI Programmable Instrumentation
  • An instrumentation system is a collection of test and measurement devices connected by a communication bus to a control computer called the system controller.
  • An instrumentation system may include stand-alone devices like IEEE 488 instruments or instrument cards in an enclosure such as a VXIbus rack.
  • Commands may be, for example, a command to apply a signal, make a measurement, perform a calibration, or the like to one or more instruments over the bus. These commands are called program messages. Instruments may also send response messages back to the clients. The response messages may be measurement results, instrument settings, error messages, or the like.
  • SCPI Prior to the SCPI standard, the commands that controlled a particular device function varied between instruments which had similar capabilities. SCPI provided a uniform and consistent language for the control of test and measurement instruments. The same commands and responses can control corresponding instrument functions in SCPI equipment, regardless of the supplier or the type of instrument.
  • the command to measure a frequency is the same whether the measurement is made by an oscilloscope or a counter.
  • the set of commands to control multimeters from two manufacturers differs only in places where the underlying hardware has different capabilities. Thus, instruments from different vendors can be expected to be essentially interchangeable in many applications.
  • the SCPI provides a means to perform simple operations.
  • the MEAS (measure) command for example, can configure and read data from an instrument.
  • the program message “:MEAS:VOLT:AC?” is received by a voltmeter, for example. the meter will select settings and configure its circuitry for an AC voltage measurement, initiate the measurement, and return the result to the system controller.
  • the question mark at the end of the command instructs the voltmeter to return the measured value to the controller.
  • the SCPI command “:MEAS:FREQ?” returns a frequency measurement from an oscilloscope or a counter, despite great internal differences in the hardware of the instruments.
  • SCPI commands are organized in hierarchical structures referred to as trees.
  • MEAS is a parent node in a SCPI tree while “VOLT” is one child node of that parent and “FREQ” is another child node.
  • SCPI SCPI standard
  • Command Reference is a list of definitions for all the program messages. These definitions specify precisely the syntax and semantics for every SCPI message. Instrument functions covered by the standard may only be controlled through SCPI commands. However, SCPI was designed with a modular structure that permits commands controlling new functions to be added at any time.
  • HPIB Hewlett-Packard Interface Bus
  • GPIB General-Purpose Interface Bus
  • IEEE 488 IEEE 488 is a scheme by which groups of devices may be connected to a controlling computer and communicate under its direction. Instruments from multiple vendors can be operated in the same HPIB system. SCPI commands can be implemented on an instrument using any sort of interface, as for example, HPIB, serial/RS-232, VXI backplane, or the like, but they are especially common on HPIB busses.
  • the IEEE 488.1 standard defines hardware for an instrumentation bus.
  • This instrumentation bus is a digital bus with lines for the serial transfer of data bytes, plus extra control and handshaking lines.
  • the IEEE 488.2 standard is an additional standard that defines protocols for data/command exchange between controller and instruments, basic data formats, systematic rules for program messages, and definition of instrument status structures.
  • IEEE 488.2 also defines some common commands covering instrument functions that are universally applicable. However, IEEE 488.2 does not define commands or data structures for specific applications. Instrument makers are free to define the commands that control the primary functions of their instruments. SCPI builds upon IEEE 488.2 by standardizing these primary functions.
  • .NET is an open software standard initially developed by Microsoft which is becoming more and more popular for use in developing applications for instruments and instrument systems in the test and measurement field. Since a large majority of test and measurement instruments and systems are connected to one or more computers and since NET was developed primarily for use with computer controlled applications, .NET has become a standard development platform for instruments and instrument systems. As such, NET may well eventually replace SCPI as the application language of choice in a large number of instruments and instrument systems.
  • methods and apparatus for remotely controlling an instrument are disclosed.
  • at least one communication is received from each of at least two clients, wherein each received communication conforms to a client specific protocol. It is determined from which client each received communication was received.
  • An application resident on the instrument for which each received communication is intended is determined, wherein at least one application is resident on the instrument. And each received communication is transferred to the intended application.
  • an instrument comprises at least two server logic modules, at least one interpreter logic module, and at least one application module resident on the instrument.
  • Each server logic module is configured to receive communications from separate client logic modules, each received communication conforms to a client specific protocol of the client logic module from which the received communication was transmitted, and each server logic module is configured to determine from which client the received communications were transmitted.
  • the interpreter logic module is configured for formatting the received communications.
  • Each server logic module is connected to and transfers its received communications to one of the interpreter logic modules, and each interpreter logic module is configured to format the received communications from the server logic modules to a format in which its intended application can respond.
  • Each server logic module is configured to determine for which application each received communication is intended, and each interpreter logic module is configured to transfer the interpreter logic module formatted communications to the intended application.
  • FIG. 1 is a block diagram of a measurement system as described in various representative embodiments.
  • FIG. 2 is a block diagram of an embodiment of part of the measurement system of FIG. 1 .
  • FIG. 3 is a block diagram of an alternative embodiment of part of the measurement system of FIG. 1 .
  • FIG. 4 is a block diagram of another alternative embodiment of part of the measurement system of FIG. 1 .
  • FIG. 5 is a drawing of a flow chart of a method for remote control of an instrument by multiple clients as described in various representative embodiments.
  • FIG. 6 is a drawing of a flow chart of another method for remote control of an instrument by multiple clients as described in various representative embodiments.
  • a measurement system can comprise multiple concurrent SCPI observers (clients) of an instrument and a single instrument controller.
  • a single client with security permissions can become the instrument controller, thereby locking control of the instrument so that the other clients may only be observers.
  • multiple clients can share and collaborate for use and access of the instrument.
  • clients with different security permissions and privileges can collaborate and share the instrument as allowed by specified privileges and permissions.
  • Such collaboration includes GPIB and SCPI commands/queries, device synchronization, and the SCPI status system.
  • FIG. 1 is a block diagram of a measurement system 100 as described in various representative embodiments.
  • two clients 105 client 1 and client 2
  • applications 110 application A and application B
  • application modules 110 and application logic modules 110 on an instrument 115 by means of communication links 120 and communication modules 123 , also referred to herein as communication logic modules 123 .
  • Each of the clients 105 sends communications 108 to and receives communications 108 from its associated application 110 on the instrument 115 by means of communication links 120 and communication modules 123 .
  • the clients 105 typically comprise a central processing unit (CPU) 106 or other control module 106 and a memory 107 , also referred to herein as a memory module 107 .
  • a controller module 150 also referred to herein as a controller logic module 150 , which is connected to another memory 175 , again referred to as memory module 175 , communications 108 to and from the instrument application 110 .
  • RPC remote procedure control
  • API Application Program(ming) Interface
  • Communications 108 controlling the functioning of the instrument 115 are generically referred to as remote procedure control (RPC) commands 125 and herein as commands 125 (see FIG. 2 ).
  • RPC commands 125 are typically formatted by the client 105 into a SCPI protocol command 125 .
  • a number of standard sets of program calls or routines referred to as Application Program(ming) Interface (API) functions are used to control various applications on the instrument 115 .
  • the set of API functions which the application 110 on the instrument 115 has been programmed to understand are written using RPC functions or commands 125 which are resident on the instrument 115 and which are referred to as the instrument resident or instrument native API's.
  • the format or grammar used to write these API's is referred to as the native language of the instrument 115 .
  • the instrument native API's are formatted in conformance to an application specific protocol. In order to control the instrument 115 , commands 125 reaching instrument measurement software 140 need to conform to the application specific protocol.
  • the application 110 sends instructions to the instrument measurement software 140 which in turn transfers these instructions to instrument firmware 165 .
  • the instrument firmware 165 finally transfers the required instructions to instrument hardware 170 for performing the requested task.
  • SCPI Standard Communication protocols are used in various industries.
  • Standard Commands for Programmable Instruments (SCPI) is one such protocol commonly used in the Test and Measurement industry.
  • SCPI comprises a common set of commands that instruments of a particular type will understand. For example, as a general rule, voltmeters and spectrum analyzers will understand particular sets of SCPI commands which control various functions on these instruments. Instrument functionality varies depending upon instrument manufacturer and type. Product differentiation is enhanced by the manufacturer by the addition of various capabilities to the instrument.
  • SCPI is coded as an ASCII string and has a hierarchical command structure. At the top level could be an instruction to select the general function to perform, such as measure or calibrate a subsystem or system sub-system.
  • the next level could be a more specific statement of what the function is to perform, for example measure a frequency, voltage, or current in the item selected for measurement.
  • Under voltage for example, might be the type of voltage, i.e., DC voltage (direct current voltage) or AC voltage (alternating current voltage).
  • a command might be “Measure voltage DC”.
  • Each of these items “Measure”, “Voltage” and “DC” are considered to be a SCPI node.
  • the collection of all SCPI nodes in an instrument is a SCPI tree.
  • a SCPI parser waits and listens for a SCPI command. When the SCPI parser receives a SCPI command that it understands, it identifies the correct SCPI node that corresponds to the SCPI command and instructs that node to perform the requested function.
  • FIG. 2 is a block diagram of an embodiment of part of the measurement system 100 of FIG. 1 .
  • the communication module 123 comprises a server module 205 , also referred to herein as a server logic module 205 , an interpreter 215 , also referred to herein as a interpreter module 215 and as a interpreter logic module 215 , and a status system 250 .
  • the server module 205 receives commands 125 from its associated client 105 and transfers those commands to the interpreter module 215 .
  • the interpreter module 215 interprets the commands 125 from the associated client 105 , which commands 125 have a client specific protocol, into an interpreted command 145 usable by the application module 110 .
  • the application module 110 comprises a virtual instrument module 220 , also referred to herein as a virtual instrument 220 , a virtual instrument logic module 220 , an interface 220 , an interface module 220 , and an interface logic module 220 , and an application component module 210 , also referred to herein as an application component 210 and an application component logic module 210 .
  • the virtual instrument module 220 acts as an interface to the application component module 210 . It receives the interpreted command 145 at the input of the virtual instrument 220 and acts as an interface to control the flow of communications 108 between the client 105 and its associated application component 210 . If necessary, the virtual instrument module 220 may provide further modification of the interpreted command 145 . This modified interpreted command 145 is shown in the figures as application command 155 .
  • the application component module 210 connects to the instrument measurement software 140 .
  • client-application communications 108 Another form of client-application communications 108 are messages 225 which are also referred to herein as application messages 225 .
  • Messages 225 can be sent from the application component module 110 to the associated client 105 .
  • the messages 225 are transferred from the application component 210 to the virtual instrument 220 which in turn transfers them to the interpreter 215 in the communication module 123 .
  • the interpreter 215 modifies the messages 225 to produce client messages 255 which are in appropriate format for the client 105 .
  • the interpreter 215 then transfers the client messages 255 to the server 205 .
  • the server 205 then transmits the client messages 255 to the appropriate client 105 .
  • Such transmission may include breaking the client message 105 into one or more packets and wrapping these packets with appropriate code for routing the packets to the appropriate client 105 and subsequent reformation of the client message 255 by the client 105 .
  • clients 105 can be notified of events occurring on the application component 210 via the posting of such information by the application 110 to the status system 250 and a subsequent asynchronous notification sent to the client 105 .
  • a query 126 which is another form of communication 108 from the client 105 and which is a request for information from the instrument 115
  • additional information regarding the event that is obtained from the status system 250 can be transmitted by the server 205 to the client 105 .
  • FIG. 3 is a block diagram of an alternative embodiment of part of the measurement system 100 of FIG. 1 .
  • the communication module 123 comprises the server module 205 , the interpreter 215 , and the status system 250 .
  • the server module 205 receives commands 125 from its associated client 105 and transfers those commands to the interpreter module 215 .
  • the interpreter module 215 interprets the commands 125 from the associated client 105 , which commands 125 have the client specific protocol, into the interpreted command 145 usable by the application module 110 .
  • the application module 110 comprises the application component module 210 .
  • the application component module 210 connects to the instrument measurement software 140 .
  • Messages 225 can be sent from the application component module 210 to the associated client 105 .
  • the messages 225 are transferred from the application component 210 to the interpreter 215 in the communication module 123 .
  • the interpreter 215 modifies the messages 225 to produce client messages 255 which are in appropriate format for the client 105 .
  • the interpreter 215 then transfers the client messages 255 to the server 205 .
  • the server 205 then transmits the client messages 255 to the appropriate client 105 .
  • Such transmission may include breaking the client message 225 into one or more packets and wrapping these packets with appropriate code for routing the packets to the appropriate client 105 and subsequent reformation of the client message 255 by the client 105 .
  • clients 105 can be notified of events occurring on the application component 210 via the posting of such information by the application 110 to the status system 250 and a subsequent asynchronous notification sent to the client 105 .
  • a query 126 which is another form of communication 108 from the client 105 and which is a request for information from the instrument 115
  • additional information regarding the event that is obtained from the status system 250 can be transmitted by the server 205 to the client 105 .
  • FIG. 4 is a block diagram of another alternative embodiment of part of the measurement system 100 of FIG. 1 .
  • the communication module 123 comprises the server module 205 , the interpreter 215 , and the status system 250 .
  • the server module 205 receives commands 125 from its associated client 105 and transfers those commands to the interpreter module 215 .
  • the interpreter module 215 interprets the commands 125 from the associated client 105 , which commands 125 have the client specific protocol, into the interpreted command 145 usable by the application module 110 .
  • the interpreter module 215 comprises a stream wrapper 460 , also referred to herein as a stream wrapper module 460 and as a stream wrapper logic module 460 , a parser 465 , also referred to herein as a parser module 465 and as a parser logic module 465 , and a semantics checker 470 , also referred to herein as a semantics checker module 470 and as a semantics checker logic module 470 .
  • a stream wrapper 460 also referred to herein as a stream wrapper module 460 and as a stream wrapper logic module 460
  • a parser 465 also referred to herein as a parser module 465 and as a parser logic module 465
  • a semantics checker 470 also referred to herein as a semantics checker module 470 and as a semantics checker logic module 470 .
  • servers 205 can be input/output (I/O) drivers 205 which are essentially kernel drivers to control a GPIB card, USB hardware, or the like.
  • I/O drivers 205 can be modified by the stream wrapper 460 to place the communication 108 in a format more usable by other protocols as, for example, the .NET protocol. In this way, the I/O drivers 205 can be made to look like NET class of objects.
  • the parser 465 parses the commands 125 received from the stream wrapper 460 which are typically SCPI ASCII commands 125 which it needs to put into a format usable by the application 110 . Such actions by the application 110 might be, for example, “set an instrument setting variable”, “retrieve and instrument setting”, or “execute an instrument functionality”.
  • the parser 465 acts as an intermediary between the SCPI ASCII commands 125 and the internal instrument 115 application 110 .
  • the status system 250 is an error/event notification system.
  • the semantics checker 470 checks items in the communications 108 such as the range of the measurement to be made or the value of the measurement taken. If either of these parameters are out of an acceptable range, the semantics checker 470 will report to the status system 250 that an out of limit error has been detected.
  • various components of the communication module 123 can be shared by more than one client 105 and/or by more than one application 110 .
  • Messages 225 can be sent from the application 110 to the associated client 105 .
  • the messages 225 are transferred from the application 110 to the semantics checker 470 in the interpreter 215 in the communication module 123 .
  • the components of the interpreter 215 modify the messages 225 to produce client messages 255 which are in appropriate format for the client.
  • the interpreter 215 then transfers the client messages 255 to the server 205 .
  • the server 205 then transmits the client messages 255 to the appropriate client 105 .
  • Such transmission may include breaking the client message 225 into one or more packets and wrapping these packets with appropriate code for routing the packets to the appropriate client 105 and subsequent reformation of the client message 255 by the client 105 .
  • clients 105 can be notified of events occurring on the application component 210 via the posting of such information by the application 110 to the status system 250 and a subsequent asynchronous notification sent to the client 105 .
  • a query 126 which is another form of communication 108 from the client 105 and which is a request for information from the instrument 115
  • additional information regarding the event which is obtained from the status system 250 can be transmitted by the server 205 to the client 105 .
  • FIG. 5 is a drawing of a flow chart of a method for remote control of an instrument 115 by multiple clients 105 as described in various representative embodiments.
  • block 505 receives at least one communication 108 from each of at least two clients 105 . Each of the received communications 108 conforms to the client specific protocol associated with the respective clients 105 . Block 505 then transfers control to block 510 .
  • Block 510 it is determined from which client 105 each received communication 108 was received. Block 510 then transfers control to block 515 .
  • Block 515 it is determined for which application 110 resident on the instrument 115 that each received communication 108 is intended. There is at least one application 110 resident on the instrument 115 . Block 515 then transfers control to block 520 .
  • Block 520 transfers each received communication 108 to the intended application 110 for that received communication 108 . Block 520 then terminates the process.
  • FIG. 6 is a drawing of a flow chart of another method for remote control of an instrument 115 by multiple clients 105 as described in various representative embodiments.
  • at least one communication 108 is obtained from at least one application 110 separately for each of at least two intended clients 105 .
  • Each obtained communication 108 conforms to the application specific protocol associated with the respective application 110 .
  • Block 605 then transfers control to block 610 .
  • Block 610 it is determined from which application 110 each obtained communication 108 was obtained. Block 610 then transfers control to block 615 .
  • Block 615 it is determined for which client 105 each obtained communication 108 is intended. Block 615 then transfers control to block 620 .
  • Block 620 transfers the obtained communications 108 to the intended clients 105 . Block 620 then terminates the process.
  • the techniques for remote instrument 115 control by multiple clients 105 described herein may be implemented as a combination of hardware and software components.
  • the functionality needed for using such implementations may be embodied in computer-readable media, such as 3.5 inch floppy disks, conventional hard disks, DVD's, CD-ROM's, Flash ROM's, nonvolatile ROM, RAM and the like, to be used in programming an information-processing apparatus (e.g., a computer and/or instrument 115 ) to perform in accordance with these implementations.
  • program storage medium is broadly defined herein to include any kind of computer memory such as, but not limited to, floppy disks, conventional hard disks, DVD's, CD-ROM's, Flash ROM's, nonvolatile ROM, RAM, and the like.
  • Client 105 and developer computers, as well as instruments 115 used with the measurement system 100 can be capable of running one or more of any commercially available operating system such as DOS, various versions of Microsoft Windows (Windows 95, 98, Me, 2000, NT, XP, or the like), Apple's MAC OS X, UNIX, Linux, or other suitable operating system.
  • DOS DOS
  • Microsoft Windows Windows 95, 98, Me, 2000, NT, XP, or the like
  • Apple's MAC OS X UNIX, Linux, or other suitable operating system.

Abstract

Method and apparatus for remotely controlling an instrument. In representative embodiments, at least one communication is received from each of at least two clients, wherein each received communication conforms to a client specific protocol. It is determined from which client each received communication was received. An application resident on the instrument for which each received communication is intended is determined, wherein at least one application is resident on the instrument. And each received communication is transferred to the intended application.

Description

    BACKGROUND
  • Initially, electronic instruments were stand-alone units designed for rather limited and specific applications. Within the instrument industry, a wide variety of instrument command sets were developed which required instrument users to learn a new vocabulary for each instrument. This proliferation of command sets resulted in users spending a great deal of time learning how to program instruments, made maintenance of test programs difficult, and made it difficult to upgrade test systems as new equipment became available. In order to reduce development costs, various standard electrical and mechanical interfaces were developed for instruments and other electronic devices. With the advent of computer communication with and computer control of instruments and systems of instruments, standardized signal protocols and other standardized electrical and mechanical interfaces became more prevalent. These protocols were mainly intended to set standards for digital messages sent over these interfaces.
  • The Standard Commands for Programmable Instrumentation (SCPI) protocol standard was developed to define a set of commands for controlling programmable test and measurement devices in instrumentation systems. An instrumentation system is a collection of test and measurement devices connected by a communication bus to a control computer called the system controller. An instrumentation system may include stand-alone devices like IEEE 488 instruments or instrument cards in an enclosure such as a VXIbus rack.
  • Client processes often located on remote computers address commands, which may be, for example, a command to apply a signal, make a measurement, perform a calibration, or the like to one or more instruments over the bus. These commands are called program messages. Instruments may also send response messages back to the clients. The response messages may be measurement results, instrument settings, error messages, or the like. Prior to the SCPI standard, the commands that controlled a particular device function varied between instruments which had similar capabilities. SCPI provided a uniform and consistent language for the control of test and measurement instruments. The same commands and responses can control corresponding instrument functions in SCPI equipment, regardless of the supplier or the type of instrument.
  • For instance, the command to measure a frequency is the same whether the measurement is made by an oscilloscope or a counter. The set of commands to control multimeters from two manufacturers differs only in places where the underlying hardware has different capabilities. Thus, instruments from different vendors can be expected to be essentially interchangeable in many applications.
  • SCPI provides a means to perform simple operations. The MEAS (measure) command, for example, can configure and read data from an instrument. When the program message “:MEAS:VOLT:AC?” is received by a voltmeter, for example. the meter will select settings and configure its circuitry for an AC voltage measurement, initiate the measurement, and return the result to the system controller. The question mark at the end of the command instructs the voltmeter to return the measured value to the controller. As another example, the SCPI command “:MEAS:FREQ?” returns a frequency measurement from an oscilloscope or a counter, despite great internal differences in the hardware of the instruments.
  • SCPI commands are organized in hierarchical structures referred to as trees. In the above two commands, “MEAS” is a parent node in a SCPI tree while “VOLT” is one child node of that parent and “FREQ” is another child node.
  • A central feature of the SCPI standard is the Command Reference which is a list of definitions for all the program messages. These definitions specify precisely the syntax and semantics for every SCPI message. Instrument functions covered by the standard may only be controlled through SCPI commands. However, SCPI was designed with a modular structure that permits commands controlling new functions to be added at any time.
  • The Hewlett-Packard Interface Bus (HPIB) interface system, also known as the General-Purpose Interface Bus (GPIB) or by its Institute of Electrical and Electronic Engineers (IEEE) specification number, IEEE 488 is a scheme by which groups of devices may be connected to a controlling computer and communicate under its direction. Instruments from multiple vendors can be operated in the same HPIB system. SCPI commands can be implemented on an instrument using any sort of interface, as for example, HPIB, serial/RS-232, VXI backplane, or the like, but they are especially common on HPIB busses.
  • The IEEE 488.1 standard defines hardware for an instrumentation bus. This instrumentation bus is a digital bus with lines for the serial transfer of data bytes, plus extra control and handshaking lines. The IEEE 488.2 standard is an additional standard that defines protocols for data/command exchange between controller and instruments, basic data formats, systematic rules for program messages, and definition of instrument status structures. IEEE 488.2 also defines some common commands covering instrument functions that are universally applicable. However, IEEE 488.2 does not define commands or data structures for specific applications. Instrument makers are free to define the commands that control the primary functions of their instruments. SCPI builds upon IEEE 488.2 by standardizing these primary functions.
  • .NET is an open software standard initially developed by Microsoft which is becoming more and more popular for use in developing applications for instruments and instrument systems in the test and measurement field. Since a large majority of test and measurement instruments and systems are connected to one or more computers and since NET was developed primarily for use with computer controlled applications, .NET has become a standard development platform for instruments and instrument systems. As such, NET may well eventually replace SCPI as the application language of choice in a large number of instruments and instrument systems.
  • SUMMARY
  • In representative embodiments, methods and apparatus for remotely controlling an instrument are disclosed. In one representative embodiment, at least one communication is received from each of at least two clients, wherein each received communication conforms to a client specific protocol. It is determined from which client each received communication was received. An application resident on the instrument for which each received communication is intended is determined, wherein at least one application is resident on the instrument. And each received communication is transferred to the intended application.
  • In another representative embodiment, an instrument, comprises at least two server logic modules, at least one interpreter logic module, and at least one application module resident on the instrument. Each server logic module is configured to receive communications from separate client logic modules, each received communication conforms to a client specific protocol of the client logic module from which the received communication was transmitted, and each server logic module is configured to determine from which client the received communications were transmitted. The interpreter logic module is configured for formatting the received communications. Each server logic module is connected to and transfers its received communications to one of the interpreter logic modules, and each interpreter logic module is configured to format the received communications from the server logic modules to a format in which its intended application can respond. Each server logic module is configured to determine for which application each received communication is intended, and each interpreter logic module is configured to transfer the interpreter logic module formatted communications to the intended application.
  • Other aspects and advantages will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the representative embodiments.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The accompanying drawings provide visual representations which will be used to more fully describe various representative embodiments and can be used by those skilled in the art to better understand them and their inherent advantages. In these drawings, like reference numerals identify corresponding elements.
  • FIG. 1 is a block diagram of a measurement system as described in various representative embodiments.
  • FIG. 2 is a block diagram of an embodiment of part of the measurement system of FIG. 1.
  • FIG. 3 is a block diagram of an alternative embodiment of part of the measurement system of FIG. 1.
  • FIG. 4 is a block diagram of another alternative embodiment of part of the measurement system of FIG. 1.
  • FIG. 5 is a drawing of a flow chart of a method for remote control of an instrument by multiple clients as described in various representative embodiments.
  • FIG. 6 is a drawing of a flow chart of another method for remote control of an instrument by multiple clients as described in various representative embodiments.
  • DETAILED DESCRIPTION
  • As shown in the drawings for purposes of illustration, the present patent document relates to novel techniques for enabling the ability to share the usage of an instrument. In representative embodiments, a measurement system can comprise multiple concurrent SCPI observers (clients) of an instrument and a single instrument controller. A single client with security permissions can become the instrument controller, thereby locking control of the instrument so that the other clients may only be observers. In other embodiments, multiple clients can share and collaborate for use and access of the instrument. And in still other embodiments, clients with different security permissions and privileges can collaborate and share the instrument as allowed by specified privileges and permissions. Such collaboration includes GPIB and SCPI commands/queries, device synchronization, and the SCPI status system.
  • While the representative embodiments disclosed herein are presented in terms of SCPI clients, the methods are not limited to such frameworks and protocols. Other protocols, for example NET which is an open software standard initially developed by Microsoft, Sun Microsystems' Java, CORBA which is a standard of the Object Management Group (OMG), or the like, could be used.
  • In the following detailed description and in the several figures of the drawings, like elements are identified with like reference numerals.
  • FIG. 1 is a block diagram of a measurement system 100 as described in various representative embodiments. In the embodiment of FIG. 1, two clients 105 (client 1 and client 2) are each separately connected to two applications 110 (application A and application B), also referred to herein as application modules 110 and application logic modules 110, on an instrument 115 by means of communication links 120 and communication modules 123, also referred to herein as communication logic modules 123. Each of the clients 105 sends communications 108 to and receives communications 108 from its associated application 110 on the instrument 115 by means of communication links 120 and communication modules 123.
  • The clients 105 typically comprise a central processing unit (CPU) 106 or other control module 106 and a memory 107, also referred to herein as a memory module 107. Under control of a controller module 150, also referred to herein as a controller logic module 150, which is connected to another memory 175, again referred to as memory module 175, communications 108 to and from the instrument application 110.
  • Communications 108 controlling the functioning of the instrument 115 are generically referred to as remote procedure control (RPC) commands 125 and herein as commands 125 (see FIG. 2). Before transmission RPC commands 125 are typically formatted by the client 105 into a SCPI protocol command 125. A number of standard sets of program calls or routines referred to as Application Program(ming) Interface (API) functions are used to control various applications on the instrument 115. The set of API functions which the application 110 on the instrument 115 has been programmed to understand are written using RPC functions or commands 125 which are resident on the instrument 115 and which are referred to as the instrument resident or instrument native API's. Similarly, the format or grammar used to write these API's is referred to as the native language of the instrument 115. The instrument native API's are formatted in conformance to an application specific protocol. In order to control the instrument 115, commands 125 reaching instrument measurement software 140 need to conform to the application specific protocol.
  • In a representative embodiment, the application 110 sends instructions to the instrument measurement software 140 which in turn transfers these instructions to instrument firmware 165. The instrument firmware 165 finally transfers the required instructions to instrument hardware 170 for performing the requested task.
  • Standard communication protocols are used in various industries. Standard Commands for Programmable Instruments (SCPI) is one such protocol commonly used in the Test and Measurement industry. SCPI comprises a common set of commands that instruments of a particular type will understand. For example, as a general rule, voltmeters and spectrum analyzers will understand particular sets of SCPI commands which control various functions on these instruments. Instrument functionality varies depending upon instrument manufacturer and type. Product differentiation is enhanced by the manufacturer by the addition of various capabilities to the instrument. SCPI is coded as an ASCII string and has a hierarchical command structure. At the top level could be an instruction to select the general function to perform, such as measure or calibrate a subsystem or system sub-system. The next level could be a more specific statement of what the function is to perform, for example measure a frequency, voltage, or current in the item selected for measurement. Under voltage, for example, might be the type of voltage, i.e., DC voltage (direct current voltage) or AC voltage (alternating current voltage). A command might be “Measure voltage DC”. Each of these items “Measure”, “Voltage” and “DC” are considered to be a SCPI node. The collection of all SCPI nodes in an instrument is a SCPI tree. In the instrument capable of deciphering SCPI grammar, a SCPI parser waits and listens for a SCPI command. When the SCPI parser receives a SCPI command that it understands, it identifies the correct SCPI node that corresponds to the SCPI command and instructs that node to perform the requested function.
  • However, not all instruments use SCPI for their resident command language API's, and computers used in the control of instruments do not always use a SCPI command set. There are potentially several different command languages that the computer can communicate with an instrument. In addition to SCPI, a computer or system could use NET which is an open software standard initially developed by Microsoft, Sun Microsystems' Java, CORBA which is a standard of the Object Management Group (OMG), or the like.
  • FIG. 2 is a block diagram of an embodiment of part of the measurement system 100 of FIG. 1. In the embodiment of FIG. 2, the communication module 123 comprises a server module 205, also referred to herein as a server logic module 205, an interpreter 215, also referred to herein as a interpreter module 215 and as a interpreter logic module 215, and a status system 250. The server module 205 receives commands 125 from its associated client 105 and transfers those commands to the interpreter module 215. The interpreter module 215 interprets the commands 125 from the associated client 105, which commands 125 have a client specific protocol, into an interpreted command 145 usable by the application module 110.
  • The application module 110 comprises a virtual instrument module 220, also referred to herein as a virtual instrument 220, a virtual instrument logic module 220, an interface 220, an interface module 220, and an interface logic module 220, and an application component module 210, also referred to herein as an application component 210 and an application component logic module 210. The virtual instrument module 220 acts as an interface to the application component module 210. It receives the interpreted command 145 at the input of the virtual instrument 220 and acts as an interface to control the flow of communications 108 between the client 105 and its associated application component 210. If necessary, the virtual instrument module 220 may provide further modification of the interpreted command 145. This modified interpreted command 145 is shown in the figures as application command 155. The application component module 210 connects to the instrument measurement software 140.
  • Another form of client-application communications 108 are messages 225 which are also referred to herein as application messages 225. Messages 225 can be sent from the application component module 110 to the associated client 105. The messages 225 are transferred from the application component 210 to the virtual instrument 220 which in turn transfers them to the interpreter 215 in the communication module 123.
  • The interpreter 215 modifies the messages 225 to produce client messages 255 which are in appropriate format for the client 105. The interpreter 215 then transfers the client messages 255 to the server 205. The server 205 then transmits the client messages 255 to the appropriate client 105. Such transmission may include breaking the client message 105 into one or more packets and wrapping these packets with appropriate code for routing the packets to the appropriate client 105 and subsequent reformation of the client message 255 by the client 105.
  • Alternatively, clients 105 can be notified of events occurring on the application component 210 via the posting of such information by the application 110 to the status system 250 and a subsequent asynchronous notification sent to the client 105. Upon receipt of a query 126 which is another form of communication 108 from the client 105 and which is a request for information from the instrument 115, additional information regarding the event that is obtained from the status system 250 can be transmitted by the server 205 to the client 105.
  • FIG. 3 is a block diagram of an alternative embodiment of part of the measurement system 100 of FIG. 1. In the embodiment of FIG. 3, the communication module 123 comprises the server module 205, the interpreter 215, and the status system 250. The server module 205 receives commands 125 from its associated client 105 and transfers those commands to the interpreter module 215. The interpreter module 215 interprets the commands 125 from the associated client 105, which commands 125 have the client specific protocol, into the interpreted command 145 usable by the application module 110. The application module 110 comprises the application component module 210. The application component module 210 connects to the instrument measurement software 140.
  • Messages 225 can be sent from the application component module 210 to the associated client 105. The messages 225 are transferred from the application component 210 to the interpreter 215 in the communication module 123.
  • The interpreter 215 modifies the messages 225 to produce client messages 255 which are in appropriate format for the client 105. The interpreter 215 then transfers the client messages 255 to the server 205. The server 205 then transmits the client messages 255 to the appropriate client 105. Such transmission may include breaking the client message 225 into one or more packets and wrapping these packets with appropriate code for routing the packets to the appropriate client 105 and subsequent reformation of the client message 255 by the client 105.
  • Alternatively, clients 105 can be notified of events occurring on the application component 210 via the posting of such information by the application 110 to the status system 250 and a subsequent asynchronous notification sent to the client 105. Upon receipt of a query 126 which is another form of communication 108 from the client 105 and which is a request for information from the instrument 115, additional information regarding the event that is obtained from the status system 250 can be transmitted by the server 205 to the client 105.
  • FIG. 4 is a block diagram of another alternative embodiment of part of the measurement system 100 of FIG. 1. In the embodiment of FIG. 4, the communication module 123 comprises the server module 205, the interpreter 215, and the status system 250. The server module 205 receives commands 125 from its associated client 105 and transfers those commands to the interpreter module 215. The interpreter module 215 interprets the commands 125 from the associated client 105, which commands 125 have the client specific protocol, into the interpreted command 145 usable by the application module 110.
  • In the embodiment of FIG. 4, the interpreter module 215 comprises a stream wrapper 460, also referred to herein as a stream wrapper module 460 and as a stream wrapper logic module 460, a parser 465, also referred to herein as a parser module 465 and as a parser logic module 465, and a semantics checker 470, also referred to herein as a semantics checker module 470 and as a semantics checker logic module 470.
  • In a representative embodiment, servers 205 can be input/output (I/O) drivers 205 which are essentially kernel drivers to control a GPIB card, USB hardware, or the like. In the alternative embodiment of FIG. 4, the typically SCPI communications 108 can be modified by the stream wrapper 460 to place the communication 108 in a format more usable by other protocols as, for example, the .NET protocol. In this way, the I/O drivers 205 can be made to look like NET class of objects.
  • The parser 465 parses the commands 125 received from the stream wrapper 460 which are typically SCPI ASCII commands 125 which it needs to put into a format usable by the application 110. Such actions by the application 110 might be, for example, “set an instrument setting variable”, “retrieve and instrument setting”, or “execute an instrument functionality”. The parser 465 acts as an intermediary between the SCPI ASCII commands 125 and the internal instrument 115 application 110. The status system 250 is an error/event notification system.
  • The semantics checker 470 checks items in the communications 108 such as the range of the measurement to be made or the value of the measurement taken. If either of these parameters are out of an acceptable range, the semantics checker 470 will report to the status system 250 that an out of limit error has been detected.
  • Not all commands will flow through all components of the interpreter 215. If the stream wrapper 460, the parser 465, or the semantics checker 470 detects an error, the status system 250 will be informed that an error has been detected and what that error is. In another example, if the instrument 115 is out of calibration that event will also be reported to the status system 250.
  • In representative embodiments, various components of the communication module 123, including but not limited to, the server 205, the interpreter 215, the stream wrapper 460, the parser 465, the semantics checker 470, and the status system 250 can be shared by more than one client 105 and/or by more than one application 110.
  • Messages 225 can be sent from the application 110 to the associated client 105. The messages 225 are transferred from the application 110 to the semantics checker 470 in the interpreter 215 in the communication module 123.
  • The components of the interpreter 215 modify the messages 225 to produce client messages 255 which are in appropriate format for the client. The interpreter 215 then transfers the client messages 255 to the server 205. The server 205 then transmits the client messages 255 to the appropriate client 105. Such transmission may include breaking the client message 225 into one or more packets and wrapping these packets with appropriate code for routing the packets to the appropriate client 105 and subsequent reformation of the client message 255 by the client 105.
  • Alternatively, clients 105 can be notified of events occurring on the application component 210 via the posting of such information by the application 110 to the status system 250 and a subsequent asynchronous notification sent to the client 105. Upon receipt of a query 126 which is another form of communication 108 from the client 105 and which is a request for information from the instrument 115, additional information regarding the event which is obtained from the status system 250 can be transmitted by the server 205 to the client 105.
  • FIG. 5 is a drawing of a flow chart of a method for remote control of an instrument 115 by multiple clients 105 as described in various representative embodiments. In FIG. 5, block 505 receives at least one communication 108 from each of at least two clients 105. Each of the received communications 108 conforms to the client specific protocol associated with the respective clients 105. Block 505 then transfers control to block 510.
  • In block 510, it is determined from which client 105 each received communication 108 was received. Block 510 then transfers control to block 515.
  • In block 515, it is determined for which application 110 resident on the instrument 115 that each received communication 108 is intended. There is at least one application 110 resident on the instrument 115. Block 515 then transfers control to block 520.
  • Block 520 transfers each received communication 108 to the intended application 110 for that received communication 108. Block 520 then terminates the process.
  • FIG. 6 is a drawing of a flow chart of another method for remote control of an instrument 115 by multiple clients 105 as described in various representative embodiments. In block 605, at least one communication 108 is obtained from at least one application 110 separately for each of at least two intended clients 105. Each obtained communication 108 conforms to the application specific protocol associated with the respective application 110. Block 605 then transfers control to block 610.
  • In block 610, it is determined from which application 110 each obtained communication 108 was obtained. Block 610 then transfers control to block 615.
  • In block 615, it is determined for which client 105 each obtained communication 108 is intended. Block 615 then transfers control to block 620.
  • Block 620 transfers the obtained communications 108 to the intended clients 105. Block 620 then terminates the process.
  • As previously noted, not all instruments use SCPI for their resident command language API's, and computers used in the control of instruments do not always use a SCPI command set. There are potentially several different command languages that the computer can communicate with an instrument. In addition to SCPI, a computer or system could use .NET which is an open software standard initially developed by Microsoft, Sun Microsystems' Java, CORBA which is a standard of the Object Management Group (OMG), or the like.
  • As is the case, in many data-processing products, the techniques for remote instrument 115 control by multiple clients 105 described herein may be implemented as a combination of hardware and software components. Moreover, the functionality needed for using such implementations may be embodied in computer-readable media, such as 3.5 inch floppy disks, conventional hard disks, DVD's, CD-ROM's, Flash ROM's, nonvolatile ROM, RAM and the like, to be used in programming an information-processing apparatus (e.g., a computer and/or instrument 115) to perform in accordance with these implementations.
  • The term “program storage medium” is broadly defined herein to include any kind of computer memory such as, but not limited to, floppy disks, conventional hard disks, DVD's, CD-ROM's, Flash ROM's, nonvolatile ROM, RAM, and the like.
  • Client 105 and developer computers, as well as instruments 115 used with the measurement system 100, can be capable of running one or more of any commercially available operating system such as DOS, various versions of Microsoft Windows (Windows 95, 98, Me, 2000, NT, XP, or the like), Apple's MAC OS X, UNIX, Linux, or other suitable operating system.
  • While the present invention has been described in detail in relation to representative embodiments thereof, the described embodiments have been presented by way of example and not by way of limitation. It will be understood by those skilled in the art that various changes may be made in the form and details of the described embodiments resulting in equivalent embodiment that remain within the scope of the appended claims.

Claims (23)

1. A method for remotely controlling an instrument, comprising:
receiving at least one communication from each of at least two clients, wherein each received communication conforms to a client specific protocol;
determining from which client each received communication was received;
determining an application resident on the instrument for which each received communication is intended, wherein at least one application is resident on the instrument; and
transferring each received communication to the intended application.
2. The method as recited in claim 1, wherein the client specific protocol is the Standard Commands for Programmable Instrumentation (SCPI) protocol.
3. The method as recited in claim 1, wherein the communications from the clients are interpreted into an interpreted command usable by the application module.
4. The method as recited in claim 1, further comprising:
separately for each of at least two intended clients, obtaining at least one additional communication from at least one application, wherein each obtained additional communication conforms to an application specific protocol;
determining from which application each obtained additional communication was obtained;
determining for which client each obtained additional communication is intended; and
transferring each obtained additional communication to the intended client.
5. The method as recited in claim 4, wherein the application specific protocol is the Standard Commands for Programmable Instrumentation (SCPI) protocol.
6. The method as recited in claim 4, wherein the obtained additional communications are modified to produce client messages which are in appropriate format for the client.
7. The method as recited in claim 4, wherein at least one obtained additional communication is in response to one of the communications received from one of the at least two clients, wherein the application tracks from which client the received communication originated, and wherein the application uses that tracking information to direct the at least one obtained additional communication to the client from which the received communication originated.
8. A computer readable memory device embodying a computer program of instructions executable by the computer, the instructions comprising:
receiving at least one communication from each of at least two clients, wherein each received communication conforms to a client specific protocol;
determining from which client each received communication was received;
determining an application resident on the instrument for which each received communication is intended, wherein at least one application is resident on the instrument; and
transferring the received communication to the intended application.
9. The computer readable memory device as recited in claim 8, wherein the client specific protocol is the Standard Commands for Programmable Instrumentation (SCPI) protocol.
10. The computer readable memory device as recited in claim 8, wherein the communications from the clients are interpreted into an interpreted command usable by the application module.
11. The computer readable memory device as recited in claim 8, the instructions further comprising:
separately for each of at least two intended clients, obtaining at least one additional communication from at least one application, wherein each obtained additional communication conforms to an application specific protocol;
determining from which application each obtained additional communication was obtained;
determining for which client each obtained additional communication is intended; and
transferring each obtained additional communication to the intended client.
12. The computer readable memory device as recited in claim 11, wherein the application specific protocol is the Standard Commands for Programmable Instrumentation (SCPI) protocol.
13. The computer readable memory device as recited in claim 11, wherein the obtained additional communications are modified to produce client messages which are in appropriate format for the client.
14. The computer readable memory device as recited in claim 11, wherein at least one obtained additional communication is in response to one of the communications received from one of the at least two clients, wherein the application tracks from which client the received communication originated, and wherein the application uses that tracking information to direct the at least one obtained additional communication to the client from which the received communication originated.
15. An instrument, comprising:
at least two server logic modules, wherein each server logic module is configured to receive communications from separate client logic modules, wherein each received communication conforms to a client specific protocol of the client logic module from which the received communication was transmitted, and wherein each server logic module is configured to determine from which client the received communications were transmitted;
at least one interpreter logic module configured for formatting the received communications, wherein each server logic module is connected to and transfers its received communications to one of the interpreter logic modules and wherein each interpreter logic module is configured to format the received communications from the server logic modules to a format in which it its intended application can respond; and
at least one application module resident on the instrument, wherein each server logic module is configured to determine for which application each received communication is intended, and wherein each interpreter logic module is configured to transfer the interpreter logic module formatted communications to the intended application.
16. The instrument as recited in claim 15, wherein the interpreter further comprises a parser logic module, wherein the parser logic module is configured for parsing received communications, wherein each server logic module is connected to and transfers its received communications to one of the parser logic modules, and wherein each parser logic module is configured to parse the received communications from the server logic modules to which it is attached.
17. The instrument as recited in claim 16, wherein the interpreter further comprises a stream wrapper and wherein the stream wrapper modifies the communication to place it in a format more usable by the application.
18. The instrument as recited in claim 16, wherein the interpreter further comprises a semantics checker logic module and wherein the semantics checker logic module checks for the validity of various components of the communication.
19. The instrument as recited in claim 15, wherein the client specific protocol is the Standard Commands for Programmable Instrumentation (SCPI) protocol.
20. The instrument as recited in claim 15, wherein the application comprises a virtual instrument configured to receive the parsed received communications, wherein the application further comprises an application logic module configured to receive the parsed received communications from the virtual instrument, and wherein the application logic module is configured to perform actions in response to the parsed received communication.
21. The instrument as recited in claim 15, wherein the server is configured to send and receive communications via a connection selected from the group consisting of USB-488, a GPIB, and a IEEE 488 LAN.
22. The instrument as recited in claim 15, wherein each interpreter logic module is configured to receive communications from the application intended for the client associated with that interpreter logic module, to translate the communication received into an appropriate translated communication having the client specific protocol for the associated client, and to transfer that translated communication to the associated server logic module, wherein each server logic module is configured to receive communications from the interpreter logic module associated with that server logic module and to transmit the translated communications to the client associated with that server logic module, and wherein each server logic module which receives commands having client specific protocol the same as the application specific protocol of the intended application is configured to receive communications from that application and to transmit those communications to the client logic circuit associated with that server logic module.
23. The instrument as recited in claim 22, wherein the application is configured to respond as appropriate to communications received from clients, wherein the application is configured to track from which client the received communication originated, and wherein the application is configured to use that tracking information to direct the response communication to the client from which the received communication originated.
US10/825,465 2004-04-15 2004-04-15 Remote instrument control by multiple clients Abandoned US20050251564A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/825,465 US20050251564A1 (en) 2004-04-15 2004-04-15 Remote instrument control by multiple clients

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/825,465 US20050251564A1 (en) 2004-04-15 2004-04-15 Remote instrument control by multiple clients

Publications (1)

Publication Number Publication Date
US20050251564A1 true US20050251564A1 (en) 2005-11-10

Family

ID=35240643

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/825,465 Abandoned US20050251564A1 (en) 2004-04-15 2004-04-15 Remote instrument control by multiple clients

Country Status (1)

Country Link
US (1) US20050251564A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020013835A1 (en) * 1999-08-17 2002-01-31 Satoshi Umezu Adapter for controlling a measuring device, a measuring device, a controller for a measuring device, a method for processing measurement and a recording medium
US20070239862A1 (en) * 2006-04-07 2007-10-11 The Mitre Corporation Smart data dissemination
US20150032877A1 (en) * 2013-07-23 2015-01-29 Fujitsu Limited Fault-tolerant monitoring apparatus, method and system
US20160092175A1 (en) * 2014-09-29 2016-03-31 National Instruments Corporation Remote Interface to Logical Instruments
US10425394B1 (en) * 2008-09-08 2019-09-24 United Services Automobile Association (Usaa) System and method for disabling and/or enabling a device
CN115314543A (en) * 2022-03-01 2022-11-08 上海御渡半导体科技有限公司 Method for realizing SCPI communication based on TCP

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5749081A (en) * 1995-04-06 1998-05-05 Firefly Network, Inc. System and method for recommending items to a user
US5790977A (en) * 1997-02-06 1998-08-04 Hewlett-Packard Company Data acquisition from a remote instrument via the internet
US6041311A (en) * 1995-06-30 2000-03-21 Microsoft Corporation Method and apparatus for item recommendation using automated collaborative filtering
US6049777A (en) * 1995-06-30 2000-04-11 Microsoft Corporation Computer-implemented collaborative filtering based method for recommending an item to a user
US6064980A (en) * 1998-03-17 2000-05-16 Amazon.Com, Inc. System and methods for collaborative recommendations
US6092049A (en) * 1995-06-30 2000-07-18 Microsoft Corporation Method and apparatus for efficiently recommending items using automated collaborative filtering and feature-guided automated collaborative filtering
US6108493A (en) * 1996-10-08 2000-08-22 Regents Of The University Of Minnesota System, method, and article of manufacture for utilizing implicit ratings in collaborative filters
US6199099B1 (en) * 1999-03-05 2001-03-06 Ac Properties B.V. System, method and article of manufacture for a mobile communication network utilizing a distributed communication network
US20020052873A1 (en) * 2000-07-21 2002-05-02 Joaquin Delgado System and method for obtaining user preferences and providing user recommendations for unseen physical and information goods and services
US20020184326A1 (en) * 2001-05-31 2002-12-05 Andrew Thomson System and method for providing network interfaces to instruments without networking capabilities
US20020198882A1 (en) * 2001-03-29 2002-12-26 Linden Gregory D. Content personalization based on actions performed during a current browsing session
US6522334B2 (en) * 1999-04-28 2003-02-18 Expertcity.Com, Inc. Method and apparatus for providing remote access, control of remote systems and updating of display information
US6766279B2 (en) * 2001-03-01 2004-07-20 Parkinelmer Instruments Llc System for remote monitoring and control of an instrument
US20040216139A1 (en) * 2002-08-21 2004-10-28 Rhoda Merlin A. System controlling test/measurement devices on a network using markup language documents and methods thereof
US20050175031A1 (en) * 2004-02-09 2005-08-11 Harley Joseph L.Jr. Method and apparatus for remotely monitoring and controlling devices

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5749081A (en) * 1995-04-06 1998-05-05 Firefly Network, Inc. System and method for recommending items to a user
US6092049A (en) * 1995-06-30 2000-07-18 Microsoft Corporation Method and apparatus for efficiently recommending items using automated collaborative filtering and feature-guided automated collaborative filtering
US6041311A (en) * 1995-06-30 2000-03-21 Microsoft Corporation Method and apparatus for item recommendation using automated collaborative filtering
US6049777A (en) * 1995-06-30 2000-04-11 Microsoft Corporation Computer-implemented collaborative filtering based method for recommending an item to a user
US6108493A (en) * 1996-10-08 2000-08-22 Regents Of The University Of Minnesota System, method, and article of manufacture for utilizing implicit ratings in collaborative filters
US5790977A (en) * 1997-02-06 1998-08-04 Hewlett-Packard Company Data acquisition from a remote instrument via the internet
US6064980A (en) * 1998-03-17 2000-05-16 Amazon.Com, Inc. System and methods for collaborative recommendations
US6199099B1 (en) * 1999-03-05 2001-03-06 Ac Properties B.V. System, method and article of manufacture for a mobile communication network utilizing a distributed communication network
US6522334B2 (en) * 1999-04-28 2003-02-18 Expertcity.Com, Inc. Method and apparatus for providing remote access, control of remote systems and updating of display information
US20020052873A1 (en) * 2000-07-21 2002-05-02 Joaquin Delgado System and method for obtaining user preferences and providing user recommendations for unseen physical and information goods and services
US6766279B2 (en) * 2001-03-01 2004-07-20 Parkinelmer Instruments Llc System for remote monitoring and control of an instrument
US20020198882A1 (en) * 2001-03-29 2002-12-26 Linden Gregory D. Content personalization based on actions performed during a current browsing session
US20020184326A1 (en) * 2001-05-31 2002-12-05 Andrew Thomson System and method for providing network interfaces to instruments without networking capabilities
US20040216139A1 (en) * 2002-08-21 2004-10-28 Rhoda Merlin A. System controlling test/measurement devices on a network using markup language documents and methods thereof
US20050175031A1 (en) * 2004-02-09 2005-08-11 Harley Joseph L.Jr. Method and apparatus for remotely monitoring and controlling devices

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020013835A1 (en) * 1999-08-17 2002-01-31 Satoshi Umezu Adapter for controlling a measuring device, a measuring device, a controller for a measuring device, a method for processing measurement and a recording medium
US7035959B2 (en) * 1999-08-17 2006-04-25 Advantest Corporation Adapter for controlling a measuring device, a measuring device, a controller for a measuring device, a method for processing measurement and a recording medium
US20070239862A1 (en) * 2006-04-07 2007-10-11 The Mitre Corporation Smart data dissemination
WO2007130004A2 (en) * 2006-04-07 2007-11-15 The Mitre Corporation Smart data dissemination
WO2007130004A3 (en) * 2006-04-07 2009-04-23 Mitre Corp Smart data dissemination
US8892704B2 (en) 2006-04-07 2014-11-18 The Mitre Corporaton Dynamic rule-based distributed network operation for wireless sensor networks
US10425394B1 (en) * 2008-09-08 2019-09-24 United Services Automobile Association (Usaa) System and method for disabling and/or enabling a device
US20150032877A1 (en) * 2013-07-23 2015-01-29 Fujitsu Limited Fault-tolerant monitoring apparatus, method and system
US10069698B2 (en) * 2013-07-23 2018-09-04 Fujitsu Limited Fault-tolerant monitoring apparatus, method and system
US20160092175A1 (en) * 2014-09-29 2016-03-31 National Instruments Corporation Remote Interface to Logical Instruments
US9785415B2 (en) * 2014-09-29 2017-10-10 National Instruments Corporation Remote interface to logical instruments
CN115314543A (en) * 2022-03-01 2022-11-08 上海御渡半导体科技有限公司 Method for realizing SCPI communication based on TCP

Similar Documents

Publication Publication Date Title
US7546584B2 (en) Method and system for remote software testing
US5963726A (en) Instrumentation system and method including an improved driver software architecture
US20020184326A1 (en) System and method for providing network interfaces to instruments without networking capabilities
US9348771B1 (en) Cloud-based instrument driver system
JPH0588859A (en) Compatible inspection method, system component and computer system
CN108768730B (en) Method and device for operating intelligent network card
JP2004133632A (en) Data relay device and data management system using it
CN108965052A (en) A kind of data reading system for the electronic control unit software debugging after entrucking
US20080161957A1 (en) Transaction Interface for Standardizing Transactions with a Measurement Instrument
KR20180061589A (en) Software build system and software build method using the system
US20050251564A1 (en) Remote instrument control by multiple clients
US10868880B2 (en) Control system with persistent and transient data stores for registration, production and status data for networked devices
US20050232302A1 (en) Translation between SCPI protocol communications and .NET protocol communications
US7873498B2 (en) Remote hardware inspection system and method
US20040268318A1 (en) Expert system for intelligent testing
CN112905197A (en) Information processing method, device and system, electronic equipment and storage medium
US6975957B2 (en) Dynamic runtime modification of SCPI grammar
CN116737640A (en) Information acquisition method, device, equipment and storage medium
US7519719B2 (en) Automatic creation of protocol dependent control path for instrument application
US20050235292A1 (en) Client program grammar derivation from application programming interface (API) calls and associated metadata
CN115374018B (en) Automatic interface testing method and device
Schmalzel et al. SCPI: IoT and the Déjà Vu of instrument control
Wang et al. A Prepar3d Based Signal Simulation System for ARINC429 Bus
CN116192922B (en) Issuing management method, device and system for test cases
CN114449370B (en) Integrated management method, device and storage medium for switch assembly parts

Legal Events

Date Code Title Description
AS Assignment

Owner name: AGILENT TECHNOLOGIES, INC., COLORADO

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TILLOTSON, TIM NEPHI;TING, SARA;JENNINGS, JR., BYRON T.;AND OTHERS;REEL/FRAME:014814/0864;SIGNING DATES FROM 20040403 TO 20040415

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO PAY ISSUE FEE