Service Manuals, User Guides, Schematic Diagrams or docs for : Fluke 123 FLUKE 123 Remote Control & Programming

<< Back | Home

Most service manuals and schematics are PDF files, so You will need Adobre Acrobat Reader to view : Acrobat Download Some of the files are DjVu format. Readers and resources available here : DjVu Resources
For the compressed files, most common are zip and rar. Please, extract files with Your favorite compression software ( WinZip, WinRAR ... ) before viewing. If a document has multiple parts, You should download all, before extracting.
Good luck. Repair on Your own risk. Make sure You know what You are doing.




Image preview - the first page of the document
FLUKE 123 Remote Control & Programming


>> Download FLUKE 123 Remote Control & Programming documenatation <<

Text preview - extract from the document
          REMOTE CONTROL AND PROGRAMMING REFERENCE

                     for the FLUKE 123

                    Industrial ScopeMeter


=============================================================


This file contains remote control and programming information
for the above-mentioned model with use of the PM9080/001
Optically Isolated RS232 Adapter/Cable.


It consists of the following chapters:

1.   INSTALLING THE PM9080/001

2.   INTRODUCTION TO PROGRAMMING

3.   COMMAND REFERENCE


APPENDIXES

     APPENDIX   A        ACKNOWLEDGE DATA
     APPENDIX   B        STATUS DATA
     APPENDIX   C        WAVEFORM DATA
     APPENDIX   D        ASCII 7-BIT CODES
                         Page 1.1
=============================================================

1.   INSTALLATION OF THE PM9080/001


- Connect the PM9080/001 to the RS232 port of the computer
  as indicated in the PM9080/001 Instruction Manual.
  If necessary, use the 9-pin to 25-pin adapter and the
  25-pin gender changer included in the PM9080/001 shipment.

- Hook the PM9080/001 cable to the ScopeMeter as
  indicated in the PM9080/001 Instruction Manual.

- Turn on the computer and the ScopeMeter.

- Make sure that the communication settings match for the
  RS232 port of the computer and the ScopeMeter.

 After power-on, the default settings of the ScopeMeter
 are as follows:

          1200 baud, No parity, 8 data bits, 1 stop bit

 You can modify the baud rate with the PC (Program
 Communication) command. See chapter 3 COMMAND REFERENCE.
 Other settings are fixed.

 You can modify the computer RS232 port settings to match
 the above ScopeMeter settings with the following
 DOS command:

          MODE COM1:1200,N,8,1

 This command assumes that COM1 is the RS232 port used on
 the computer. Replace COM1 in the above command with COM2,
 COM3, or COM4 if one of these ports is used. You can place
 this command in the computer startup file AUTOEXEC.BAT so
 that the default settings for the computer are the same as
 for the ScopeMeter. If you want to use a higher
 data transfer speed (baud rate), let your QBASIC program
 change the settings for both the computer and the
 ScopeMeter. See the example under the PC (Program
 Communication) command in chapter 3 COMMAND REFERENCE.
                         Page 2.1
=============================================================

2.   INTRODUCTION TO PROGRAMMING


         ** Basic Programming Information **


When you have installed the PM9080/001 as described in the
previous chapter, you can control the ScopeMeter
from the computer with simple communication facilities, such
as GWBASIC, QuickBASIC and QBASIC (programming languages from
Microsoft Corporation).

All examples given in this manual are in the QBASIC language
but will also run in QuickBASIC. QuickBASIC allows you to
make executable files from programs so you can start such
programs directly from DOS.
It is assumed that you have knowledge of these programming
languages. QBASIC is supplied with Microsoft Operating System
MS-DOS 5.0 and higher, and has an 'on-line' Help function.

Features of the syntax and protocol for the ScopeMeter
are as follows:

- Easy input format with a 'forgiving' syntax:
     All commands consist of two characters that can be
     UPPER or lower case.
     Parameters that sometimes follow the command may be
     separated from it by one or more separation characters.

- Strict and consistent output format:
     Alpha character responses are always in UPPERCASE.
     Parameters are always separated by a comma
     ("," = ASCII 44, see Appendix D).
     Responses always end with the carriage return code
     (ASCII 13). Because the carriage return code is a
     non-visible character (not visible on the screen or on
     paper), this character is represented as  in the
     command syntax.
- Synchronization between input and output:
     After receipt of every command, the ScopeMeter
     returns an acknowledge character (digit) followed by the
     carrige return code (ASCII 13). This indicates that the
     command has been successfully received and executed.
     The computer program must always read this acknowledge
     response before sending the next command to the
     ScopeMeter.
                         Page 2.2

       ** Commands sent to the ScopeMeter **


All commands for the ScopeMeter consist of a header
made up of two alpha characters sometimes followed by
parameters. Example:

RI             This is the Reset Instrument command. It
               resets the ScopeMeter.


Some of the commands are followed by one or more parameters
to give the ScopeMeter more information.
Example:

SS 8           This is the Save Setup command. It saves the
               present acquisition settings in memory. The SS
               header is followed by a separator (space),
               then followed by the parameter "8" to
               indicate where to store the settings. The
               meaning of this parameter is described in
               Chapter 3 COMMAND REFERENCE.


Some commands require several parameters.
Example:

WT 9,50,30     This is the Write Time command.
               This command requires three parameters. The
               parameters are separated by a comma, which is
               called the Program Data Separator. You may
               use only one comma between the parameters.
               Also refer to the section 'Data Separators'.


A code at the end of each command tells the ScopeMeter
that the command is ended. This is the carriage return
code (ASCII 13) and is called the Program Message Terminator.
This code is needed to indicate to the ScopeMeter
that the command is completed so it can start executing the
command. Also refer to the section 'Command and Response
Terminators'.
                        Page 2.3

 ** Responses received from the ScopeMeter **


After each command sent to the ScopeMeter there
is an automatic response from it, indicated as 
(which you MUST input), to let the computer know whether or
not the received command has been successfully executed.
Refer to the 'Acknowledge' section below.

There are several commands that ask the ScopeMeter
for response data. Such commands are called Queries.
Example:

ID       This is the IDentification query, which asks for
         the model number and the software version of the
         ScopeMeter.

When the ScopeMeter has received a query, it sends
the  reply as it does after any command, but
now it is followed by the queried response data.

The format of the response data depends upon which query is
sent. When a response consists of different response data
portions, these are separated with commas (ASCII code 44).
Also refer to the section 'Data Separators'.

All response data,  as well as following
(queried) response data are terminated with the carriage
return code ( = ASCII 13). Also refer to the section
'Command and Response Terminators'.
                        Page 2.4

                   ** Acknowledge **


After receiving of a command, the ScopeMeter
automatically returns the  response to let the
computer know whether or not the received command has been
successfully executed.
This response is a one-digit number followed by  as
response terminator. If  is 0, it indicates
that the ScopeMeter has successfully executed the
command. If the command was a query, the 
response is immediately followed by the queried response data
terminated with .
If  is 1 or higher, it indicates that the
ScopeMeter has not executed the command
successfully. In that case, if the command was a query, the
 response is NOT followed by any further
response data.
There can be several reasons for a non-zero 
response. For more information see Appendix A.
In case of an error you can obtain more detailed status
information by using the ST (STATUS) query.


Note:   YOU MUST ALWAYS INPUT , EVEN WHEN
        THE COMMAND WAS NOT A QUERY.
                           Page 2.5

                 ** Data Separators **


Data Separators are used between parameters sent to the
ScopeMeter and between values and strings received
from the ScopeMeter. Comma (",") is used as program
data separator as well as response data separator:

- Program Data Separator

 Name     Character   ASCII Value    Comments
                        Decimal
----------------------------------------------------------
 comma        ,           44      Single comma allowed


- Response Data Separator

 Name     Character   ASCII Value    Comments
                        Decimal
----------------------------------------------------------
 comma        ,           44
                        Page 2.6

         ** Command and Response Terminators **
                 (Message Terminators)


- Command (Program Message) Terminators

 A code is needed at the end of each command to tell the
 ScopeMeter that the command is ended, and that it
 can start executing the command. This code is called the
 Program Message Terminator. The code needed for the
 ScopeMeter is carriage return (ASCII code 13 decimal).
 Notes:

  1. The carriage return code is a non-visible ASCII
     character. Therefore this code is represented as 
     in the Command Syntax and Response Syntax lines given
     for each command.
  2. The QBASIC programming language, which is used for
     all program examples, automatically adds a carriage
     return to the end of the command output. (In the QBASIC
     language, this is the PRINT #.... statement.)

 After  is recognized by the ScopeMeter, the
 entered command is executed. After EACH command the
 ScopeMeter returns  to the
 computer to signal the end of the command processing (also
 see the section 'Acknowledge'.)

- Response (Message) Terminators

 The response from the ScopeMeter ends with a
 carriage return (ASCII 13). This is indicated as  in
 the Response Syntax for each command.
                        Page 2.7

            ** Typical program sequence **
                       An example


A typical program sequence consists of the following user
actions:


1. Set the communication parameters for the RS232 port of
   the computer to match the ScopeMeter settings.

2. Output a command or query to the ScopeMeter.

3. Input the acknowledge response from the ScopeMeter.

  If the response value is zero, go to step 4.

  If the response value is non-zero, the ScopeMeter did not
  execute the previous command. Read the error message from
  the following acknowledge subroutine, recover the error,
  and repeat the command or query. (This is not shown in the
  following program example.)

4. If a query was output to the ScopeMeter, input its
   response.

5. The sequence of points 2, 3, and 4 may be repeated for
   different commands or queries.

6. Close the communication channel.


Refer to the program example on the next page.
                          Page 2.8

'Example of a typical program sequence:

'*****************    Begin example program   ****************

OPEN "COM1:1200,N,8,1,CS,DS,RB2048" FOR RANDOM AS #1

      'This QBASIC program line sets the parameters for the
      'RS232 port (COM1 on the Computer) to match the
      'ScopeMeter power-on default settings. It also opens a
      'communication channel (assigned #1) for input or output
      'through the COM1 port. Your ScopeMeter must be connected
      'to this port. "RB2048" sets the size of the computer
      'receive buffer to 2048 bytes to prevent buffer overflow
      'during communication with the ScopeMeter.

PRINT #1, "ID"

      'Outputs the IDENTITY command (query) to the ScopeMeter.

GOSUB Acknowledge

      'This subroutine inputs the acknowledge response from
      'the ScopeMeter and displays an error message if the
      'acknowledge value is non-zero.

INPUT #1, Response$

      'This inputs the response data from the IDENTITY query.

PRINT Response$

      'Displays the queried data.

CLOSE #1

      'This closes the communication channel.

END

      'This ends the program.

'
'                        Page 2.9

'**************** Acknowledge subroutine ******************
'Use this subroutine after each command or query sent to the
'ScopeMeter. This routine inputs the acknowledge
'response from the ScopeMeter. If the response is non-zero,
'the previous command was not correct or was not correctly
'received by the ScopeMeter. Then an error message is
'displayed and the program is aborted.

Acknowledge:
INPUT #1, ACK           'Reads acknowledge from ScopeMeter.
IF ACK <> 0 THEN
   PRINT "Error "; ACK; ": ";
   SELECT CASE ACK
     CASE 1
        PRINT "Syntax Error"
     CASE 2
        PRINT "Execution Error"
     CASE 3
        PRINT "Synchronization Error"
     CASE 4
        PRINT "Communication Error"
     CASE IS < 1
        PRINT "Unknown Acknowledge"
     CASE IS > 4
        PRINT "Unknown Acknowledge"
   END SELECT
   PRINT "Program aborted."
   END
END IF
RETURN

'******************   End example program   *****************
                         Page 3.1
=============================================================

3.   COMMAND REFERENCE


CONVENTIONS


           ** Page layout used for each command **

- Header

 Each command description starts on a new page with a header
 for quickly finding the command. This header indicates the
 command name and the two-character header used for the
 command syntax. Example:

 ===========================================================
              AUTO SETUP                    AS
 -----------------------------------------------------------

 Where   AUTO SETUP is a descriptive name for the command
 (this is no syntax!),

 and       AS            are the first two characters used for
                         the command syntax (not the complete
                         syntax).

- Purpose:
  Explains what the command does or what it is used for.

- Command Syntax:
  Shows the syntax for the command. Parameters are separated
  by commas. Commands are terminated by  (carriage
  return).

- Response Syntax:
  Shows the format of the response from the ScopeMeter.
  Responses are terminated by  (carriage return).
  Each Response Syntax starts with the 
  response, followed by the query response if the syntax
  relates to a query.

- Example:
  This is an example QBASIC program which shows how you can
  use the command. The example may also include some other
  commands to show the relation with these commands.
  The following two comment lines (start with ') successively
  indicate the beginning and the end of an example program.

 '*****************      Begin example program   ****************

 '******************     End example program     *****************
                      Page 3.2

Use an MS-DOS Editor and copy the complete program between
these two lines to a file name with the .BAS extension.
Start QBASIC and open this file from the FILE menu.
Long programs (longer than 55 lines) include page breaks.
Such page breaks are preceded by the ' (remark) character
to prevent the QBASIC interpreter from interpreting them as
an incorrect statement.
When you have connected the ScopeMeter as
indicated in the PM9080 Instruction Manual, you can start
the program from the RUN menu.
                         Page 3.3

                ** Syntax conventions **

The Command Syntax and the Response Syntax may contain the
following meta symbols and data elements:

UPPERCASE     These characters are part of the syntax.
              For commands, lower case is also allowed.

<...>         An expression between these brackets is a
              code, such as  (carriage return) that can
              not be expressed in a printable character, or
              it is a parameter that is further specified.
              Do not insert the brackets in the command!

[...]         The item between these brackets is optional.
              This means that you may omit it for the
              command, or for a response it may not appear.
              Do not insert the brackets in the command!

 |            This is a separator between selectable items.
              This means that you must choose only one of
              the items (exclusive or).

{...}         Specifies an element that may be repeated 0 or
              more instances.

(...)         Grouping of multiple elements.

= 0 to 255

 =            0 to 9

=    {}

 = 
    = 
    = 

 =   
                     Two bytes representing a signed
                     integer value. The first byte is the
                     most significant and contains the
                     sign bit (bit 7).

= 
                    Two bytes representing an unsigned
                    integer value. The first byte is the
                    most significant.
                         Page 3.4
=============================================================


    ** Overview of commands for the ScopeMeter **


                             COMMAND       PAGE
    COMMAND NAME             HEADER        NUMBER
    -------------------------------------------------------
    AUTO SETUP                 AS            3.5
    ARM TRIGGER                AT            3.7
    CLEAR MEMORY               CM            3.9
    CPL VERSION QUERY          CV            3.11
    DEFAULT SETUP              DS            3.13
    GET DOWN                   GD            3.15
    GO TO LOCAL                GL            3.17
    GO TO REMOTE               GR            3.20
    IDENTIFICATION             ID            3.21
    INSTRUMENT STATUS          IS            3.23
    PROGRAM COMMUNICATION      PC            3.26
    PROGRAM SETUP              PS            3.28
    QUERY MEASUREMENT          QM            3.32
    QUERY PRINT                QP            3.35
    QUERY SETUP                QS            3.39
    QUERY WAVEFORM             QW            3.40
    READ DATE                  RD            3.54
    RESET INSTRUMENT           RI            3.56
    RECALL SETUP               RS            3.58
    READ TIME                  RT            3.61
    SWITCH ON                  SO            3.63
    SAVE SETUP                 SS            3.64
    STATUS QUERY               ST            3.65
    TRIGGER ACQUISITION        TA            3.68
    WRITE DATE                 WD            3.70
    WRITE TIME                 WT            3.72
                         Page 3.5
=============================================================
               AUTO SETUP                    AS
-------------------------------------------------------------

Purpose:

  Invokes an automatic setup for the active mode. The result
  of this command is the same as pressing the AUTO key
  on the ScopeMeter.

  Note:    You can select the items that are affected by the
           AUTO SET procedure via the USER OPTIONS key on
           the ScopeMeter.


Command Syntax:

  AS


Response Syntax:

  


Example:

The following example program sends an AUTO SETUP command to
the ScopeMeter. Connect a repetitive signal on
INPUT A to see the effect of AUTO SETUP.
'                         Page 3.6

'*****************    Begin example program   *****************

CLS                     'Clears the PC screen.
OPEN "COM1:1200,N,8,1,CS,DS,RB2048" FOR RANDOM AS #1
PRINT #1, "AS"          'Sends AUTO SETUP command.
GOSUB Acknowledge       'Input acknowledge from ScopeMeter.
CLOSE #1
END


'**************** Acknowledge subroutine ******************
'Use this subroutine after each command or query sent to the
'ScopeMeter. This routine inputs the acknowledge
'response from the ScopeMeter. If the response is non-zero,
'the previous command was not correct or was not correctly
'received by the ScopeMeter. Then an error message is
'displayed and the program is aborted.

Acknowledge:
INPUT #1, ACK           'Reads acknowledge from ScopeMeter.
IF ACK <> 0 THEN
   PRINT "Error "; ACK; ": ";
   SELECT CASE ACK
     CASE 1
        PRINT "Syntax Error"
     CASE 2
        PRINT "Execution Error"
     CASE 3
        PRINT "Synchronization Error"
     CASE 4
        PRINT "Communication Error"
     CASE IS < 1
        PRINT "Unknown Acknowledge"
     CASE IS > 4
        PRINT "Unknown Acknowledge"
   END SELECT
   PRINT "Program aborted."
   END
END IF
RETURN

'******************   End example program     ******************
                             Page 3.7
    =============================================================
                   ARM TRIGGER                   AT
    -------------------------------------------------------------

    Purpose:

      Resets and arms the trigger system for a new acquisition.
      This command is used for single shot measurements.
      When the AT command is given while an acquisition is in
      progress, this acquisition is aborted and the trigger
      system is rearmed.


    Command Syntax:

      AT


    Response Syntax:

      


    Example:

    The following example program arms the trigger system of
    the ScopeMeter with the AT command.
    This means that after this command the ScopeMeter starts an
    acquisition when a trigger occurs from the signal (when
    exceeding the trigger level) or from a TA (Trigger
    Acquisition) command.
    After the AT command it is assumed that the signal amplitude
    is sufficient to trigger the acquisition. If it is not, you
    can use the TA (TRIGGER ACQUISITION) command to force the
    acquisition to be triggered. But this is not useful if you
    want the acquisition to be started on a signal edge for
    synchronization purposes.

    Also see the example program for the IS command, which also
    uses the AT command for a single shot application.


    '*****************   Begin example program   *****************

    OPEN "COM1:1200,N,8,1,CS,DS,RB2048" FOR RANDOM AS #1
    PRINT #1, "AT"          'Sends the ARM TRIGGER command.
    GOSUB Acknowledge       'Input acknowledge from ScopeMeter.
    CLOSE #1
    END

'
'                            Page 3.8

    '**************** Acknowledge subroutine ******************
    'Use this subroutine after each command or query sent to the
    'ScopeMeter. This routine inputs the acknowledge
    'response from the ScopeMeter. If the response is non-zero,
    'the previous command was not correct or was not correctly
    'received by the ScopeMeter. Then an error message is
    'displayed and the program is aborted.

    Acknowledge:
    INPUT #1, ACK           'Reads acknowledge from ScopeMeter.
    IF ACK <> 0 THEN
       PRINT "Error "; ACK; ": ";
       SELECT CASE ACK
         CASE 1
            PRINT "Syntax Error"
         CASE 2
            PRINT "Execution Error"
         CASE 3
            PRINT "Synchronization Error"
         CASE 4
            PRINT "Communication Error"
         CASE IS < 1
            PRINT "Unknown Acknowledge"
         CASE IS > 4
            PRINT "Unknown Acknowledge"
       END SELECT
       PRINT "Program aborted."
       END
    END IF
    RETURN

    '******************   End example program   ******************
                         Page 3.9
=============================================================
               CLEAR MEMORY                  CM
-------------------------------------------------------------

Purpose:

  Clears all saved setups, waveforms, and screens from
  memory.


Command Syntax:

  CM


Response Syntax:

  

Example:
'                         Page 3.10

'*****************    Begin example program   *****************

OPEN "COM1:1200,N,8,1,CS,DS,RB2048" FOR RANDOM AS #1
PRINT #1,"CM"            'Sends the Clear Memory command.
GOSUB Acknowledge        'Input acknowledge from ScopeMeter.
CLOSE #1
END


'**************** Acknowledge subroutine ******************
'Use this subroutine after each command or query sent to the
'ScopeMeter. This routine inputs the acknowledge
'response from the ScopeMeter. If the response is non-zero,
'the previous command was not correct or was not correctly
'received by the ScopeMeter. Then an error message is
'displayed and the program is aborted.

Acknowledge:
INPUT #1, ACK           'Reads acknowledge from ScopeMeter.
IF ACK <> 0 THEN
   PRINT "Error "; ACK; ": ";
   SELECT CASE ACK
     CASE 1
        PRINT "Syntax Error"
     CASE 2
        PRINT "Execution Error"
     CASE 3
        PRINT "Synchronization Error"
     CASE 4
        PRINT "Communication Error"
     CASE IS < 1
        PRINT "Unknown Acknowledge"
     CASE IS > 4
        PRINT "Unknown Acknowledge"
   END SELECT
   PRINT "Program aborted."
   END
END IF
RETURN

'******************   End example program     ******************
                         Page 3.11
=============================================================
               CPL VERSION QUERY             CV
-------------------------------------------------------------

Purpose:

  Queries the CPL interface version.


Command Syntax:

  CV


Response Syntax:

  []

  where,

     is an ASCII string representing the year this
              version has been created.


Example:
'                         Page 3.12

'*****************    Begin example program   *****************

OPEN "COM1:1200,N,8,1,CS,DS,RB2048" FOR RANDOM AS #1
PRINT #1,"CV"            'Sends CPL VERSION query.
GOSUB Acknowledge        'Input acknowledge from ScopeMeter.
INPUT #1,VERSION$        'Inputs queried data.
PRINT "CPL Version "; VERSION$    'Displays version data.
END


'**************** Acknowledge subroutine ******************
'Use this subroutine after each command or query sent to the
'ScopeMeter. This routine inputs the acknowledge
'response from the ScopeMeter. If the response is non-zero,
'the previous command was not correct or was not correctly
'received by the ScopeMeter. Then an error message is
'displayed and the program is aborted.

Acknowledge:
INPUT #1, ACK           'Reads acknowledge from ScopeMeter.
IF ACK <> 0 THEN
   PRINT "Error "; ACK; ": ";
   SELECT CASE ACK
     CASE 1
        PRINT "Syntax Error"
     CASE 2
        PRINT "Execution Error"
     CASE 3
        PRINT "Synchronization Error"
     CASE 4
        PRINT "Communication Error"
     CASE IS < 1
        PRINT "Unknown Acknowledge"
     CASE IS > 4
        PRINT "Unknown Acknowledge"
   END SELECT
   PRINT "Program aborted."
   END
END IF
RETURN

'******************   End example program     ******************
                         Page 3.13
=============================================================
               DEFAULT SETUP                 DS
-------------------------------------------------------------

Purpose:

  Resets the ScopeMeter to the factory settings at
  delivery, except for the RS232 communication settings such
  as baud rate, to keep the communication alive.
  A Master Reset (refer to the Users Manual) performs the
  same, but also resets the RS232 communication settings to
  the default values.


Command Syntax:

  DS


Response Syntax:

  

  Note:    Wait for at least 2 seconds after the
            reply has been received, to let
           the ScopeMeter settle itself before you send the
           next command.

Example:
'                         Page 3.14

'*****************    Begin example program   *****************

OPEN "COM1:1200,N,8,1,CS,DS,RB2048" FOR RANDOM AS #1
CLS
PRINT #1, "DS"          'Sends DEFAULT SETUP command.
GOSUB Acknowledge       'Input acknowledge from ScopeMeter.
SLEEP 2                 'Delay (2 s) necessary after "DS".
PRINT #1, "ID"          'Sends the IDENTIFICATION query.
GOSUB Acknowledge       'Input acknowledge from ScopeMeter.
INPUT #1, ID$           'Inputs identity data from ScopeMeter.
PRINT ID$               'Displays identity data.
CLOSE #1
END


'**************** Acknowledge subroutine ******************
'Use this subroutine after each command or query sent to the
'ScopeMeter. This routine inputs the acknowledge
'response from the ScopeMeter. If the response is non-zero,
'the previous command was not correct or was not correctly
'received by the ScopeMeter. Then an error message is
'displayed and the program is aborted.

Acknowledge:
INPUT #1, ACK           'Reads acknowledge from ScopeMeter.
IF ACK <> 0 THEN
   PRINT "Error "; ACK; ": ";
   SELECT CASE ACK
     CASE 1
        PRINT "Syntax Error"
     CASE 2
        PRINT "Execution Error"
     CASE 3
        PRINT "Synchronization Error"
     CASE 4
        PRINT "Communication Error"
     CASE IS < 1
        PRINT "Unknown Acknowledge"
     CASE IS > 4
        PRINT "Unknown Acknowledge"
   END SELECT
   PRINT "Program aborted."
   END
END IF
RETURN

'******************   End example program     ******************
                         Page 3.15
=============================================================
               GET DOWN                      GD
-------------------------------------------------------------

Purpose:

  Switches the instrument's power off. If a power adapter
  is connected, you can use the SO command to switch power
  on again. If there is no power adapter connected, the
  instrument can only be switched on manually by pressing
  the Power ON/OFF key.


Command Syntax:

  GD


Response Syntax:

  


Example:
'                         Page 3.16

'*****************    Begin example program   *****************

OPEN "COM1:1200,N,8,1,CS,DS,RB2048" FOR RANDOM AS #1
CLS
PRINT #1, "GD"          'Sends the GET DOWN command.
GOSUB Acknowledge       'Input acknowledge from ScopeMeter.
PRINT "The GET DOWN command switched the ScopeMeter off."
PRINT "Press any key on the PC keyboard to switch "
PRINT "the ScopeMeter on again."
SLEEP
PRINT #1, "SO"          'Sends the SWITCH ON command.
GOSUB Acknowledge       'Input acknowledge from ScopeMeter.
CLOSE #1
END


'**************** Acknowledge subroutine ******************
'Use this subroutine after each command or query sent to the
'ScopeMeter. This routine inputs the acknowledge
'response from the ScopeMeter. If the response is non-zero,
'the previous command was not correct or was not correctly
'received by the ScopeMeter. Then an error message is
'displayed and the program is aborted.

Acknowledge:
INPUT #1, ACK           'Reads acknowledge from ScopeMeter.
IF ACK <> 0 THEN
   PRINT "Error "; ACK; ": ";
   SELECT CASE ACK
     CASE 1
        PRINT "Syntax Error"
     CASE 2
        PRINT "Execution Error"
     CASE 3
        PRINT "Synchronization Error"
     CASE 4
        PRINT "Communication Error"
     CASE IS < 1
        PRINT "Unknown Acknowledge"
     CASE IS > 4
        PRINT "Unknown Acknowledge"
   END SELECT
   PRINT "Program aborted."
   END
END IF
RETURN

'******************   End example program     ******************
                         Page 3.17
=============================================================
               GO TO LOCAL                   GL
-------------------------------------------------------------

Purpose:

  Sets the ScopeMeter in the local operation mode
  so the keypad is enabled.
  Also refer to the GR (Go to Remote) command.


Command Syntax:

  GL


Response Syntax:

  


Example:

The following example uses the GR (GO TO REMOTE) command
(refer to the description for this command) to set the
ScopeMeter in the REMOTE state so that the keypad
is disabled (except for the F4 key). After that, the GL
(GO TO LOCAL) command is sent so that the keypad is enabled
again.
'                        Page 3.18

'*****************   Begin example program   *****************

CLS                     'Clears the PC screen.
OPEN "COM1:1200,N,8,1,CS,DS,RB2048" FOR RANDOM AS #1
PRINT #1, "GR"          'Sends GO TO REMOTE command.
GOSUB Acknowledge       'Input acknowledge from ScopeMeter.
PRINT "All ScopeMeter keys (except F4 softkey, which sets
PRINT "ScopeMeter back to LOCAL, and the Power ON/OFF key)
PRINT "are now disabled by the GR (GO TO REMOTE) command."
PRINT "Check this."
PRINT "The remote state is indicated as REMOTE on the bottom"
PRINT "right of the display."
PRINT
PRINT "Press any key on the PC keyboard to continue."
SLEEP
PRINT
PRINT #1, "GL"          'Sends GO TO LOCAL command.
GOSUB Acknowledge       'Input acknowledge from ScopeMeter.
PRINT "The ScopeMeter keys are now enabled again by the "
PRINT "GL (GO TO LOCAL) command."
PRINT "Check this."
CLOSE #1
END

'
'                        Page 3.19

'**************** Acknowledge subroutine ******************
'Use this subroutine after each command or query sent to the
'ScopeMeter. This routine inputs the acknowledge
'response from the ScopeMeter. If the response is non-zero,
'the previous command was not correct or was not correctly
'received by the ScopeMeter. Then an error message is
'displayed and the program is aborted.

Acknowledge:
INPUT #1, ACK           'Reads acknowledge from ScopeMeter.
IF ACK <> 0 THEN
   PRINT "Error "; ACK; ": ";
   SELECT CASE ACK
     CASE 1
        PRINT "Syntax Error"
     CASE 2
        PRINT "Execution Error"
     CASE 3
        PRINT "Synchronization Error"
     CASE 4
        PRINT "Communication Error"
     CASE IS < 1
        PRINT "Unknown Acknowledge"
     CASE IS > 4
        PRINT "Unknown Acknowledge"
   END SELECT
   PRINT "Program aborted."
   END
END IF
RETURN

'******************   End example program   ******************
                         Page 3.20
=============================================================
               GO TO REMOTE                  GR
-------------------------------------------------------------

Purpose:

  Sets the ScopeMeter in the remote operation mode
  so that the keypad is disabled (except for the F4 key).
  You can use one of the following methods to return to
  the local operation mode so that the keypad is enabled:
  1. Sending the GL (Go to Local) command.
  2. Pressing the F4 key on the ScopeMeter keypad.


Command Syntax:

  GR


Response Syntax:

  


See an example for this command under GO TO LOCAL (GL).
                         Page 3.21
=============================================================
               IDENTIFICATION                ID
-------------------------------------------------------------

Purpose:

  Returns the ScopeMeter model identification information.


Command Syntax:

  ID


Response Syntax:

  []

  where,

   is an ASCII string containing the following
             data elements:
                 ;;
                 ;


Example:

The following example program queries the identity data of
the ScopeMeter and displays this data on the PC
screen.
'                         Page 3.22

'*****************    Begin example program   *****************

CLS                     'Clears the PC screen.
OPEN "COM1:1200,N,8,1,CS,DS,RB2048" FOR RANDOM AS #1
PRINT #1, "ID"          'Sends IDENTIFICATION query.
GOSUB Acknowledge       'Input acknowledge from ScopeMeter.
INPUT #1, IDENT$        'Inputs the queried data.
PRINT IDENT$            'Displays queried data.
CLOSE #1
END


'**************** Acknowledge subroutine ******************
'Use this subroutine after each command or query sent to the
'ScopeMeter. This routine inputs the acknowledge
'response from the ScopeMeter. If the response is non-zero,
'the previous command was not correct or was not correctly
'received by the ScopeMeter. Then an error message is
'displayed and the program is aborted.

Acknowledge:
INPUT #1, ACK           'Reads acknowledge from ScopeMeter.
IF ACK <> 0 THEN
   PRINT "Error "; ACK; ": ";
   SELECT CASE ACK
     CASE 1
        PRINT "Syntax Error"
     CASE 2
        PRINT "Execution Error"
     CASE 3
        PRINT "Synchronization Error"
     CASE 4
        PRINT "Communication Error"
     CASE IS < 1
        PRINT "Unknown Acknowledge"
     CASE IS > 4
        PRINT "Unknown Acknowledge"
   END SELECT
   PRINT "Program aborted."
   END
END IF
RETURN

'******************   End example program     ******************
                         Page 3.23
=============================================================
               INSTRUMENT STATUS             IS
-------------------------------------------------------------

Purpose:

  Queries the contents of the ScopeMeter's status register.
  The returned value reflects the present operational status
  of the ScopeMeter. This is a 16-bit word, presented as an
  integer value, where each bit represents the Boolean value
  of a related event.


Command Syntax:

  IS


Response Syntax:

  []


  where,

   =       integer value 0 to 32768

  
   value     Status Description
  ----------------------------------------------------------
      1      Maintenance mode
      2      Charging
      4      Refreshing
      8      AutoRanging
     16      Remote
     32      Battery Connected
     64      Power Adapter connected
    128      Calibration necessary
    256
    512      Pre Calibration busy
   1024
   2048      Ground Error detected
   4096      Triggered
   8192      Instrument On

Example:
                         Page 3.24

'*****************   Begin example program   *****************

CLS                     'Clears the PC screen
OPEN "COM1:1200,N,8,1,CS,DS,RB2048" FOR RANDOM AS #1
PRINT #1, "IS"          'Sends the INSTRUMENT STATUS query
GOSUB Acknowledge       'Input acknowledge from ScopeMeter
INPUT #1, Status$        'Input Instrument Status
StatVal = VAL(Status$)   'Decimal value of Instrument Status
PRINT "Instrument Status : "; StatVal
IF (StatVal AND 2) = 2 THEN PRINT " ScopeMeter charging."
IF (StatVal AND 8) = 8 THEN PRINT " AutoRanging active"
IF (StatVal AND 32) = 32 THEN PRINT " Battery connected."
IF (StatVal AND 64) = 64 THEN PRINT " Power Adapter connected."
IF (StatVal AND 8192) = 8192 THEN PRINT " Instrument On."
IF StatVal < 8192 THEN PRINT " Instrument Off."
END
'
'                            Page 3.25

    '**************** Acknowledge subroutine ******************
    'Use this subroutine after each command or query sent to the
    'ScopeMeter. This routine inputs the acknowledge
    'response from the ScopeMeter. If the response is non-zero,
    'the previous command was not correct or was not correctly
    'received by the ScopeMeter. Then an error message is
    'displayed and the program is aborted.

    Acknowledge:
    INPUT #1, ACK           'Reads acknowledge from ScopeMeter.
    IF ACK <> 0 THEN
       PRINT "Error "; ACK; ": ";
       SELECT CASE ACK
         CASE 1
            PRINT "Syntax Error"
         CASE 2
            PRINT "Execution Error"
         CASE 3
            PRINT "Synchronization Error"
         CASE 4
            PRINT "Communication Error"
         CASE IS < 1
            PRINT "Unknown Acknowledge"
         CASE IS > 4
            PRINT "Unknown Acknowledge"
       END SELECT
       PRINT "Program aborted."
       END
    END IF
    RETURN

    '******************   End example program   ******************
                         Page 3.26
=============================================================
               PROGRAM COMMUNICATION         PC
-------------------------------------------------------------

Purpose:

  Programs the baud rate for RS232 communication:


Command Syntax:

  PC 

  where,

     =      1200|2400|4800|9600|19200

  The default baudrate is 1200. This is set at power-on or
  after a Reset Instrument command (command "RI")

  Notes:
        The Fluke 123 supports 1 stopbit, 8 databits and
        software handshake (X-on X-off protocol).
        Handware handshaking is not supported.
                        Page 3.27


Response Syntax:

  


See an example for this command under QUERY PRINT (QP).
                         Page 3.28
=============================================================
               PROGRAM SETUP                 PS
-------------------------------------------------------------

Purpose:

  Restores a complete setup, previously saved with the SS
  (Save Setup) command and queried with the QS (Query Setup)
  command and saved in a string variable or to a file.

Command Syntax 1:

  PS []

  where,

   = 0 to 10
                     This is the register number where a
                     setup is stored. Also see the
                     description of the Save Setup (SS)
                     command.

Response Syntax 1:

  

Command Syntax 2:

  

   =   The data returned with the QS command.
                      ( response).

Response Syntax 2:

  

  Note:    Wait for at least two seconds after the
            reply has been received, to let
           the ScopeMeter settle itself before you send the
           next command.

Remarks:

  The ScopeMeter sends the  reply
  after it has executed the setup from the PS command.
  You must send the  string as a whole, exactly as
  returned from the QS (Query Setup) command.
  If you do not follow this rule, the ScopeMeter
  may crash. A Reset may then be necessary to recover
  the ScopeMeter. (Refer to the ScopeMeter Users Manual.)

Example:

The following example program demonstrates the use of the
QS (QUERY SETUP) and the PS (PROGRAM SETUP) commands.
The present setup is queried from ScopeMeter and saved to
file. The program asks you to change the ScopeMeter settings.
Then the original setup is read from file and sent back
to the ScopeMeter.
'                        Page 3.29

'*****************   Begin example program   *****************

OPEN "COM1:1200,N,8,1,CS,DS,RB2048" FOR RANDOM AS #1
CLS
GOSUB ClearPort         'Clears pending data from port.
PRINT #1, "QS"          'Queries the actual setup data.
GOSUB Acknowledge       'Input acknowledge from ScopeMeter.
GOSUB Response          'Writes the setup data to file.
PRINT "Present setup data are stored in the file SETUP0"
PRINT "This setup will now be retrieved from the file and"
PRINT "sent back to the ScopeMeter."
PRINT "To see if this works, change the present settings and"
PRINT "verify if the ScopeMeter returns to the previous"
PRINT "settings."
PRINT
PRINT "Press any key on the PC keyboard to continue."
SLEEP
CLS
PRINT #1, "PS"          'Program header for programming
                        'the setup data to the ScopeMeter.
GOSUB Acknowledge       'Input acknowledge from ScopeMeter.
OPEN "SETUP0" FOR INPUT AS #2
                        'Opens file SETUP0 for data retrieval.
DO WHILE NOT EOF(2)
  SUCHR$ = INPUT$(1, #2)   'Reads setup data from file
  PRINT #1, SUCHR$;     'Programs ScopeMeter with the"
                        'setup data stored in SETUP0$.
LOOP
PRINT #1, CHR$(13);     'Program message terminator
CLOSE #2                'Close file SETUP0.
GOSUB Acknowledge       'Input acknowledge from ScopeMeter.
END
'
   '                        Page 3.30

   '**************** Acknowledge subroutine ******************
   'Use this subroutine after each command or query sent to the
   'ScopeMeter. This routine inputs the acknowledge
   'response from the ScopeMeter. If the response is non-zero,
   'the previous command was not correct or was not correctly
   'received by the ScopeMeter. Then an error message is
   'displayed and the program is aborted.

Acknowledge:
    INPUT #1, ACK           'Reads acknowledge from ScopeMeter.
    IF ACK <> 0 THEN
       PRINT "Error "; ACK; ": ";
       SELECT CASE ACK
         CASE 1
            PRINT "Syntax Error"
         CASE 2
            PRINT "Execution Error"
         CASE 3
            PRINT "Synchronization Error"
         CASE 4
            PRINT "Communication Error"
         CASE IS < 1
            PRINT "Unknown Acknowledge"
         CASE IS > 4
            PRINT "Unknown Acknowledge"
       END SELECT
       PRINT "Program aborted."
       END
    END IF
    RETURN


    '******* Clears pending data from the RS232 port *********
ClearPort:
       WHILE LOC(1) > 0
         Dummy$ = INPUT$(1, #1)
      WEND
    RETURN

   '
   '                        Page 3.31

   '****************** Response subroutine *********************
   'This subroutine reads bytes from the RS232 buffer as long
   'as they enter. When no bytes enter for 1 second, the program
   'assumes that the ScopeMeter has terminated its response.
   'All bytes that enter the buffer are appended to the string
   'Resp$.

Response:
      start! = TIMER
      'Wait for bytes (maximum 1 s) to enter RS232 buffer
      WHILE ((TIMER < (start! + 1)) AND (LOC(1) = 0))
      WEND
      IF LOC(1) > 0 THEN       'If RS232 buffer contains bytes
           OPEN "Setup0" FOR OUTPUT AS #2    'File for setup data
           DO
               ' LOC(1) gives the number of bytes waiting:
               ScopeInput$ = INPUT$(LOC(1), #1)    'Input bytes
               PRINT #2, ScopeInput$;
               start! = TIMER
               WHILE ((TIMER < (start! + 1)) AND (LOC(1) = 0))
               WEND
           LOOP WHILE LOC(1) > 0   'Repeat as long as bytes enter
           CLOSE #2
      END IF
    RETURN

   '******************   End example program   ******************
                         Page 3.32
=============================================================
               QUERY MEASUREMENT             QM
-------------------------------------------------------------

Purpose:

  Queries a measurement result from the ScopeMeter.


Command Syntax:

  QM 

  where,

   =      11 to 18 and 21 to 28
                    (see the following table)

     MEASUREMENT TYPE / DESCRIPTION

      11          Channel A main reading.
      12          Channel A sub reading, only available when
                  sub reading is active on channel A.
      13          Maximum result on A, only available when
                  Trend Plot is active.
      14          Average result on A, only available when
                  Trend Plot is active.
      15          Minimum result on A, only available when
                  Trend Plot is active.
      16          Time stamp of last recorded maximum on A,
                  only available when Trend Plot is active.
      17          Time stamp of last recorded average on A,
                  only available when Trend Plot is active.
      18          Time stamp of last recorded minimum on A,
                  only available when Trend Plot is active.

      21          Channel B main reading, only available when
                  channel B is on.
      22          Channel B sub reading, only available when
                  channel B is on.
      23          Maximum result on B, only available when
                  channel B is on and Trend Plot is active.
      24          Average result on B, only available when
                  channel B is on and Trend Plot is active.
      25          Minimum result on B, only available when
                  channel B is on and Trend Plot is active.
      26          Time stamp of last recorded maximum on B,
                  only available when channel B is on and
                  Trend Plot is active.
      27          Time stamp of last recorded average on B,
                  only available when channel B is on and
                  Trend Plot is active.
      28          Time stamp of last recorded minimum on B,
                  only available when channel B is on and
                  Trend Plot is active.
                         Page 3.33

Response Syntax:

  []


  where,

   =     []"E"
                      
                     Note: Only displayed results are
                           available for output.


Example:


'*****************   Begin example program   *****************

'This example program resets the ScopeMeter (RI command),
'programs the default setup (DS command).

CLS                     'Clears the PC screen.
OPEN "COM1:1200,N,8,1,CS,DS,RB2048" FOR RANDOM AS #1
PRINT #1, "RI"          'Sends the RESET INSTRUMENT command.
GOSUB Acknowledge       'Input acknowledge from ScopeMeter.
SLEEP 2                 'Delay (2 s) necessary after reset.
PRINT #1, "QM 11"       'Queries the Vac rms result.
GOSUB Acknowledge       'Input acknowledge from ScopeMeter.
INPUT #1, result$
PRINT "Measurement result = ";result$;" Vrms"
CLOSE #1
END
'
'                        Page 3.34

'**************** Acknowledge subroutine ******************
'Use this subroutine after each command or query sent to the
'ScopeMeter. This routine inputs the acknowledge
'response from the ScopeMeter. If the response is non-zero,
'the previous command was not correct or was not correctly
'received by the ScopeMeter. Then an error message is
'displayed and the program is aborted.

Acknowledge:
INPUT #1, ACK           'Reads acknowledge from ScopeMeter.
IF ACK <> 0 THEN
   PRINT "Error "; ACK; ": ";
   SELECT CASE ACK
     CASE 1
        PRINT "Syntax Error"
     CASE 2
        PRINT "Execution Error"
     CASE 3
        PRINT "Synchronization Error"
     CASE 4
        PRINT "Communication Error"
     CASE IS < 1
        PRINT "Unknown Acknowledge"
     CASE IS > 4
        PRINT "Unknown Acknowledge"
   END SELECT
   PRINT "Program aborted."
   END
END IF
RETURN

'******************   End example program   ******************
                         Page 3.35
=============================================================
               QUERY PRINT                   QP
-------------------------------------------------------------

Purpose:

  Queries a screen dump of the ScopeMeter in different
  printer formats. This allows you to make a copy of the
  ScopeMeter screen on paper.


Command Syntax:

  QP 0,

  where,

   = 0   Epson FX, LQ compatible
                    1   Laser Jet
                    2   Desk Jet
                    3   PostScript


Response Syntax:

  []

  
  This data can directly be sent to the printer to get a
  screen copy on paper.


Example:

The following program reads the ScopeMeter screen (print)
data and copies this data to the file Qpfile. Hereafter, you
can copy this file to the printer port LPT1, for example.
The Read Buffer length for the PC is set to 7500 bytes to
prevent buffer overflow during input from the ScopeMeter.
The data transfer speed (baud rate) is set to 19200 and after
the output it is set back to 1200 (default baud rate).
'                        Page 3.36

'*****************   Begin example program   *****************

CLS
OPEN "COM1:1200,N,8,1,CS,DS,RB7500" FOR RANDOM AS #1
                          'Programs COM1 port parameters to
                          'match with the ScopeMeter power-on
                          'defaults.
PRINT #1, "PC 19200"      'Programs ScopeMeter to the maximum
                          'baud rate.
GOSUB Acknowledge         'Input acknowledge from ScopeMeter.
CLOSE #1
OPEN "COM1:19200,N,8,1,CS,DS,RB7500" FOR RANDOM AS #1
                          'Programs COM1 port parameters to
                          'match with the new ScopeMeter
                          'settings.
PRINT #1, "QP 0,1"        'Sends QUERY PRINT data command.
                          '(actual screen for LaserJet print)
GOSUB Acknowledge         'Input acknowledge from ScopeMeter.
PRINT
PRINT "Busy reading print data !"
PRINT
GOSUB Response
PRINT #1, "PC 1200"       'Programs ScopeMeter back to the
                          'default baud rate.
GOSUB Acknowledge         'Input acknowledge from ScopeMeter.

PRINT "Print data copied to file 'QPFILE'."
PRINT "You can copy the file contents to the Laser Printer."
PRINT "DOS-example: COPY Qpfile LPT1"
CLOSE                     'Close all files.
END
'
'                       Page 3.37

'**************** Acknowledge subroutine ******************
'Use this subroutine after each command or query sent to the
'ScopeMeter. This routine inputs the acknowledge
'response from the ScopeMeter. If the response is non-zero,
'the previous command was not correct or was not correctly
'received by the ScopeMeter. Then an error message is
'displayed and the program is aborted.

Acknowledge:
INPUT #1, ACK           'Reads acknowledge from ScopeMeter.
IF ACK <> 0 THEN
   PRINT "Error "; ACK; ": ";
   SELECT CASE ACK
     CASE 1
        PRINT "Syntax Error"
     CASE 2
        PRINT "Execution Error"
     CASE 3
        PRINT "Synchronization Error"
     CASE 4
        PRINT "Communication Error"
     CASE IS < 1
        PRINT "Unknown Acknowledge"
     CASE IS > 4
        PRINT "Unknown Acknowledge"
   END SELECT
   PRINT "Program aborted."
   END
END IF
RETURN
'
   '                        Page 3.38

   '****************** Response subroutine *********************
   'This subroutine reads bytes from the RS232 buffer as long
   'as they enter. When no bytes enter for 1 second, the program
   'assumes that the ScopeMeter has terminated its response.
   'All bytes that enter the buffer are appended to the string
   'Resp$.

Response:
      start! = TIMER
      'Wait for bytes (maximum 2 s) to enter RS232 buffer
      WHILE ((TIMER < (start! + 2)) AND (LOC(1) = 0))
      WEND
      IF LOC(1) > 0 THEN       'If RS232 buffer contains bytes
           Resp$ = ""
           OPEN "Qpfile" FOR OUTPUT AS #2    'File for print data
           DO
               ' LOC(1) gives the number of bytes waiting:
               ScopeInput$ = INPUT$(LOC(1), #1)    'Input bytes
               PRINT #2, ScopeInput$;
               start! = TIMER
               WHILE ((TIMER < (start! + 2)) AND (LOC(1) = 0))
               WEND
           LOOP WHILE LOC(1) > 0   'Repeat as long as bytes enter
           CLOSE #2
      END IF
    RETURN

   '******************   End example program   ******************
                        Page 3.39
============================================================
              QUERY SETUP                   QS
------------------------------------------------------------

Purpose:

  Queries the present acquisition setup data from the
  ScopeMeter.


Command Syntax:

  QS []


Response Syntax:

  [#0{}]

  where,

   =        
                  []
   = 
                  Posible values:
                  20 hex    All nodes except the last (end
                            node)
                  A0 hex    End node
   = 
                      Unique number for each specific node.
   = 
                  Specifies the number of 
                  fields that follow in the 
                  field.
   =   {}
                  The contents of  depends on the
                   and the selected setup.
   =   
                  Contains the sum of all the binary bytes
                  in the  field.

  Note: Also see the Program Setup (PS) command.

See an example for this command under PROGRAM SETUP (PS).
                         Page 3.40
=============================================================
               QUERY WAVEFORM                QW
-------------------------------------------------------------

Purpose:

  Queries the waveform data and/or the setup data related to
  the waveform from the ScopeMeter.


Command Syntax:

  QW [,V|S]

   =     Decimal number assigned to the following
                   trace sources:

                        Trace Source:
                   ---------------------------------
                        10        MinMax trace INPUT   A
                        11        Normal trace INPUT   A
                        20        MinMax trace INPUT   B
                        21        Normal trace INPUT   B

  V | v      Trace values (samples) only
  S | s      Setup (administration) data only.
             When V or S is omitted, both trace vales and
             setup data are returned.


Response Syntax:

  []

  where,

   =    |  |
                    ,

  If the optional parameter (V or S) is omitted:

   = ,
  This includes the complete information about the trace
  (waveform).

  For detailed descriptions about the waveform structure,
  refer to Appendix C.
                        Page 3.41

  If option V or v (value only) is given:

   = 

  For detailed descriptions about the waveform structure,
  refer to Appendix C.

  If option S or s (Setup data only) is given:

   = 

  where,

   =   string of hexadecimal characters,
                    representing the setup related to the given
                    .

Example:

'***************** Begin example program *****************
'
'***** If an error occurs in the waveform data,
'***** the program stops.
'
C65536 = 65536          '2-bytes Maximum constant
C32768 = 32768          '2-bytes Sign-bit constant
C256   =   256          '1-byte Maximum constant
C128   =   128          '1-byte Sign-bit constant
OPEN "COM1:1200,N,8,1,CS,DS,RB2048" FOR RANDOM AS #1
CLS
GOSUB ClearPort         'Clears pending data from port
'
'A min/max trace is a series of waveform samples consisting of
'minimum and maximum waveform points.
'Query$ = "QW 10"        'Queries min/max trace INPUT A
'
'A normal trace is a series of waveform samples consisting of
'single waveform points from the acquisition memory.
Query$ = "QW 11"        'Queries normal trace INPUT A
                        'See also Command Syntax
PRINT #1, Query$        'Response = ,
GOSUB Acknowledge       'Inputs acknowledge from ScopeMeter
Resp$ = ""              'Clears the total Response string
GOSUB Response          'Writes waveform data to Resp$ & files
GOSUB Interpret.Admin   'Interpretes waveform administration data
                        'See also Appendix C
GOSUB Interpret.Samples 'Interpretes waveform sample data
GOSUB Create.CSV        'Creates Wave.CSV file from waveform data
                        'as input for Excel, for example.
END
'
   '                        Page 3.42

   '**************** Acknowledge subroutine ******************
   'Use this subroutine after each command or query sent to the
   'ScopeMeter. This routine inputs the acknowledge
   'response from the ScopeMeter. If the response is non-zero,
   'the previous command was not correct or was not correctly
   'received by the ScopeMeter. Then an error message is
   'displayed and the program is aborted.

Acknowledge:
    INPUT #1, ACK           'Reads acknowledge from ScopeMeter.
    IF ACK <> 0 THEN
       PRINT "Error "; ACK; ": ";
       SELECT CASE ACK
         CASE 1
            PRINT "Syntax Error"
         CASE 2
            PRINT "Execution Error"
         CASE 3
            PRINT "Synchronization Error"
         CASE 4
            PRINT "Communication Error"
         CASE IS < 1
            PRINT "Unknown Acknowledge"
         CASE IS > 4
            PRINT "Unknown Acknowledge"
       END SELECT
       PRINT "Program aborted."
       END
    END IF
    RETURN

    '******* Clears pending data from the RS232 port *********
ClearPort:
       WHILE LOC(1) > 0
         Dummy$ = INPUT$(1, #1)
      WEND
    RETURN

   '
   '                        Page 3.43

    '****************** Response subroutine *********************
    'This subroutine reads bytes from the RS232 buffer as long
    'as they enter. When no bytes enter for 1 second, the program
    'assumes that the ScopeMeter has terminated its response. All
    'bytes that enter the buffer are appended to the string Resp$
    'and are written to the following files:
    'File Waveform : the waveform data bytes
    'File Waveresp : the waveform ASCII values
    '
Response:
      start! = TIMER
      'Wait for bytes (maximum 1 s) to enter RS232 buffer
      WHILE ((TIMER < (start! + 1)) AND (LOC(1) = 0))
      WEND
      IF LOC(1) > 0 THEN       'If RS232 buffer contains bytes
           OPEN "WaveForm" FOR OUTPUT AS #2
                          'File to contain the waveform data bytes
           DO
               ' LOC(1) gives the number of bytes waiting:
               ScopeInput$ = INPUT$(LOC(1), #1)    'Input bytes
               PRINT #2, ScopeInput$;
               PRINT ASC(ScopeInput$); 'Prints only first byte value
               Resp$ = Resp$ + ScopeInput$
               start! = TIMER
               WHILE ((TIMER < (start! + 1)) AND (LOC(1) = 0))
               WEND
           LOOP WHILE LOC(1) > 0   'Repeat as long as bytes enter
           CLOSE #2
           PRINT
      END IF
    '
    '***** Write the total Response string to file WaveResp
    '
    OPEN "WaveResp" FOR OUTPUT AS #3
    PRINT "Response data length = "; LEN(Resp$)
    PRINT #3, "Response data length = "; LEN(Resp$)
    FOR i = 1 TO LEN(Resp$)
        PRINT #3, ASC(MID$(Resp$, i, 1));
    NEXT i
    CLOSE #3: RETURN
    '
    '                        Page 3.44
    '
Interpret.Admin:
    Resp.Count = 1            'Byte counter for Resp$
    SumCheck1% = 0              'Sumcheck byte for Resp$
    '
    '***** Interpret the  waveform data bytes
    '***** in the Resp$ string (see appendix C).
    '
    '***** 2 bytes  block trailing : #0
    '
    IF MID$(Resp$, Resp.Count, 2) <> "#0" GOTO Wave.Error
    Resp.Count = Resp.Count + 2
    '
    '***** 1 byte 
    nb = ASC(MID$(Resp$, Resp.Count, 1))
    IF nb <> 128 AND nb <> 0 GOTO Wave.Error
    Resp.Count = Resp.Count + 1
    '
    '***** 2 bytes 
    Block1.Length = ASC(MID$(Resp$, Resp.Count, 1)) * 256
    Block1.Length = Block1.Length + ASC(MID$(Resp$, Resp.Count + 1, 1))
    Resp.Count = Resp.Count + 2
    '
    '***** 1 byte  : 1, 2, or 3
    Trace.Process = ASC(MID$(Resp$, Resp.Count, 1))
    SumCheck1% = SumCheck1% + Trace.Process
    IF Trace.Process < 1 OR Trace.Process > 3 GOTO Wave.Error
    Resp.Count = Resp.Count + 1
    '
    '***** 1 byte  : 1, 2, or 3
    Trace.Result = ASC(MID$(Resp$, Resp.Count, 1))
    SumCheck1% = SumCheck1% + Trace.Result
    IF Trace.Result < 1 OR Trace.Result > 3 GOTO Wave.Error
    Resp.Count = Resp.Count + 1
    '
    '***** 1 byte  : 0 or 128
    Misc.Setup = ASC(MID$(Resp$, Resp.Count, 1))
    SumCheck1% = SumCheck1% + Misc.Setup
    IF Misc.Setup <> 0 AND Misc.Setup <> 128 GOTO Wave.Error
    Resp.Count = Resp.Count + 1
    '
    '***** 1 byte 
    Y.Unit = ASC(MID$(Resp$, Resp.Count, 1))
    SumCheck1% = SumCheck1% + Y.Unit
    Resp.Count = Resp.Count + 1
    PRINT "          ="; Y.Unit;
    '
    '***** 1 byte 
    X.Unit = ASC(MID$(Resp$, Resp.Count, 1))
    SumCheck1% = SumCheck1% + X.Unit
    Resp.Count = Resp.Count + 1
    PRINT "                      ="; X.Unit
    '
    '                        Page 3.45
    '
DIM exponent(4)         'Exponents for Y/X.Zero & Y/X.Resol
DIM YXvalue#(4)         'Values for Y/X.Zero & Y/X.Resol
    '
    '***** 3 bytes  = 
    '*****  =  * 256 + 
    '*****  =  E 
    '*****            Example: +123E-4 = 123 / 10000 = 0.0123
    FOR i = 0 TO 2
        SumCheck1% = (SumCheck1% + ASC(MID$(Resp$, Resp.Count + i, 1))) M
    NEXT i
    nb = ASC(MID$(Resp$, Resp.Count, 1))
    IF nb >= 128 THEN
      nb = - (256 - nb) * 256       'Negative value
      nb = nb + ASC(MID$(Resp$, Resp.Count + 1, 1))
    ELSE
      nb = nb * 256                 'Positive value
      nb = nb + ASC(MID$(Resp$, Resp.Count + 1, 1))
    END IF
    ex



◦ Jabse Service Manual Search 2024 ◦ Jabse PravopisonTap.bg ◦ Other service manual resources online : FixyaeServiceinfo