using the functional syntax diagram and the needs
of the device. The functional elements include sepa-
rators, terminators, headers, and data types. These
elements are discussed in the following.
4-9-1. Functional Element Summary
<Program Message> Represents a sequence of
zero or more <Program Message Unit> elements
separated by <Program Message Unit Terminator>
elements.
<Program Message Unit> Represents a single
command or programming data received by the
device.
<Command Message Unit> Represents a single
command or programming data received by the
device.
<Query Message Unit> Represents a single query
sent from the controller to the device.
<Program Data> Represents any of the six dif-
ferent program data types.
<Program Message Unit separator> Separates
the <Program Message Unit> elements from one
another in a <Program Message>.
<Program Data Separator> Separates sequential
<Program data> elements that are related to the
same header.
<Program Header Separator> Separates the
header from any associated <Program Data>.
<Program Message Terminator> Terminates a
<Program Message>.
<Command Program Header> Specifies function
operation. Used with any associated <Program Data
elements>.
<Query Program Header> Similar to <Command
Program Header> except a query indicator (?) shows
that a response is expected from the device.
<Character Program Data> A data type suitable
for sending short mnemonic data, generally where
a numeric data type is not suitable.
<Decimal Numeric Program Data> A data type
suitable for sending decimal integers or decimal
fractions with or without exponents.
<Suffix Program Data> An optional field following
<Decimal Numeric Program Data> used to indicate
associated multipliers and units.
<NonDecimal Numeric Program Data> A data
type suitable for sending integer numeric repre-
sentation in base 16, 8, or 2. Useful for data that
is more easily interpreted when directly expressed
in a non-decimal format.
<String Program Data> A data type suitable for
sending 7-bit ASCII character strings where the
content needs to be “Hidden” (by delimiters)
<Arbitrary Block Program Data> A data type
suitable for sending blocks of arbitrary 8-bit informa-
tion.
<Expression Program data> A data type suitable
for sending data that is elevated as one or more
non-expression data elements before further parsing.
4-9-2. Separator Functional Element Summary
The various elements within the <Program Message>
are separated by ASCII characters that were specially
assigned for this purpose. These separators are
discussed in the following paragraphs.
4-9-2-1. Program Message Unit Separator
The <Program Message Unit Separator> separates
sequential <Program Message Unit> elements from
one another within a <Program Message>. The <Pro-
gram Message Unit Separator> is defined as:
;
It is allowed to use leading <white space> elements
before the <Program Message Separator>. <White
Space> is defined as a single ASCII-encoded byte
in the range of 00-09, 0B-20. This range includes
the ASCII control characters and the space, but
excludes the new line.
4-9-2-2. Program Data Separator
The <Program Data Separator> separates sequential
<Program Data> elements from one another after a
<Command Program Header> or <Query Program
Header>. It is used when a <Command Program
Header> or <Query Program Header> has multiple
parameters. The <Program Data Separator> is defined
as:
,
Preceding and succeeding <White Space> elements
are permitted.
4-9-2-3. Program Header Separator
The <Program Header Separator> separates the
<Command Program Header> or <Query Program
Header> from the <Program Data> elements. The
<Program Header Separator> is defined as white
space:
<White Space>
Refer to paragraph 4-9-2-1 for the definition of <White
Space> elements.
IEEE-488.2 Operation Model 8020
Page 4-10