DGH D1000 D2000 User Manual
DGH D1000 D2000 User Manual
REVISED: 10/1/97
DGH CORPORATION
P. O. BOX 5638
MANCHESTER, NH 03108
TELEPHONE: 603-622-0452
FAX: 603-622-0487
URL: http://www.dghcorp.com
The information in this publication has been carefully checked and is
believed to be accurate; however, no responsibility is assumed for possible
inaccuracies or omissions. Applications information in this manual is in-
tended as suggestions for possible use of the products and not as explicit
performance in a specific application. Specifications may be subject to
change without notice.
D1000 modules are not intrinsically safe devices and should not be used in
an explosive environment unless enclosed in approved explosion-proof
housings.
TABLE OF CONTENTS
Warranty 4
CHAPTER 1 Getting Started
Default Mode 1-1
Quick Hook-Up 1-2
CHAPTER 2 Functional Description
Block Diagram 2-4
CHAPTER 3 Communications
Data Format 3-2
RS-232 3-2
Multi-party Connection 3-3
Software Considerations 3-4
Changing Baud Rate 3-5
Using a Daisy-Chain With a Dumb Terminal 3-5
RS-485 3-6
RS-485 Multidrop System 3-8
CHAPTER 4 Command Set
Table of Commands 4-6
User Commands 4-7
Error Messages 4-18
CHAPTER 5 Setup Information and Command
Command Syntax 5-2
Setup Hints 5-11
CHAPTER 6 Digital I/O Function
Digital Outputs 6-1
Digital Inputs 6-2
Events Counter 6-3
Alarm Outputs 6-4
On-Off Controller 6-5
Setpoint 6-9
CHAPTER 7 Power Supply
CHAPTER 8 Troubleshooting
CHAPTER 9 Calibration
Appendix A (ASCII TABLE )
Appendix B D1600 Data Sheet
Appendix C D1400 Data Sheet
Appendix D D1500 Data Sheet
Appendix E D2000 Series
Appendix F Continuous Operation
Appendix G RTS Operation
Appendix H D1000/2000 Specifications
WARRANTY
DGH warrants each D1000 and D2000 series module to be free from defects
in materials and workmanship under normal conditions of use and service
and will replace any component found to be defective, on its return to DGH,
transportation charges prepaid within one year of its original purchase. DGH
assumes no liability, expressed or implied, beyond its obligation to replace
any component involved. Such warranty is in lieu of all other warranties
expressed or implied.
WARNING
The circuits and software contained in D1000 and D2000 series
modules are proprietary. Purchase of these products does not transfer
any rights or grant any license to the circuits or software used in these
products. Disassembling or decompiling of the software program is
explicitly prohibited. Reproduction of the software program by any
means is illegal.
As explained in the setup section, all setups are performed entirely
from the outside of the D1000 module. There is no need to open the
module because there are no user-serviceable parts inside. Removing
the cover or tampering with, modifying, or repairing by unauthorized
personnel will automatically void the warranty. DGH is not responsible
for any consequential damages.
RETURNS
When returning products for any reason, contact the factory and request a
Return Authorization Number and shipping instructions. Write the Return
Authorization Number on the outside of the shipping box. DGH strongly
recommends that you insure the product for value prior to shipping. Items
should not be returned collect as they will not be accepted.
Shipping Address:
DGH Corporation
Hillhaven Industrial Park
146 Londonderry Turnpike
Hooksett, NH 03106
Chapter 1
Getting Started
Default Mode
All D1000 modules contain an EEPROM (Electrically Erasable Program-
mable Read Only Memory) to store setup information and calibration
constants. The EEPROM replaces the usual array of switches and pots
necessary to specify baud rate, address, parity, etc. The memory is
nonvolatile which means that the information is retained even if power is
removed. No batteries are used so it is never necessary to open the module
case.
The EEPROM provides tremendous system flexibility since all of the
module’s setup parameters may be configured remotely through the com-
munications port without having to physically change switch and pot
settings. There is one minor drawback in using EEPROM instead of
switches; there is no visual indication of the setup information in the module.
It is impossible to tell just by looking at the module what the baud rate,
address, parity and other settings are. It is difficult to establish communica-
tions with a module whose address and baud rate are unknown. To
overcome this, each module has an input pin labeled DEFAULT*. By
connecting this pin to Ground, the module is put in a known communications
setup called Default Mode.
The Default Mode setup is: 300 baud, one start bit, eight data bits, one
stop bit, no parity, any address is recognized.
Grounding the DEFAULT* pin does not change any of the setups stored in
EEPROM. The setup may be read back with the Read Setup (RS) command
to determine all of the setups stored in the module. In Default Mode, all
commands are available.
A module in Default Mode will respond to any address except the six
identified illegal values (NULL, CR, $, #, {, }). A dummy address must be
included in every command for proper responses. The ASCII value of the
module address may be read back with the RS command. An easy way to
determine the address character is to deliberately generate an error
message. The error message outputs the module’s address directly after
the “?” prompt.
Setup information in a module may be changed at will with the SetUp (SU)
command. Baud rate and parity setups may be changed without affecting
the Default values of 300 baud and no parity. When the DEFAULT* pin is
released, the module automatically performs a program reset and config-
ures itself to the baud rate and parity stored in the setup information.
The Default Mode is intended to be used with a single module connected to
a terminal or computer for the purpose of identifying and modifying setup
Getting Started 1-2
values. In most cases, a module in Default Mode may not be used in a string
with other modules.
undesired signal such as a tare weight. The Trim Zero (TZ) command is used
to adjust the output to any desired value by loading the appropriate value in
the offset register. The offset register data is nonvolatile.
The output offset may also be modified using the Set Point (SP) command.
The data value specified by the SP command is multiplied by -1 before being
loaded into the register. The Set Point command specifies a null value that
is subtracted from the input data. The output reading becomes a deviation
value from the downloaded setpoint. This feature is very useful in on-off
controllers as described in Chapter 6 of this manual.
The value stored in the offset register may be read back using the Read Zero
(RZ) command. Data loaded in with the SP command will be read back with
the sign changed. The output register may be reset to zero with the Clear
Zero (CZ) command.
The output data may be read with the Read Data (RD) command. In some
cases when a computer is used as a host, the same data value may be read
back several times before it is updated with a new A/D conversion. To
guarantee that the same data is not read more than once, the New Data (ND)
command is used. Each time an RD or ND command is performed, the New
Data Flag is cleared. The flag is set each time the output data register is
loaded as the result of a new A/D conversion. The ND command waits until
the flag is set before it outputs the data reading.
The remainder of Figure 2.1 shows several functions: a versatile alarm
function, an event counter and general-purpose digital inputs and outputs.
These functions are described in detail in Chapter 6.
The alarm section consists of two registers that are used to store high and
low alarm limit values. These registers may be down-loaded with data
values by using the HI and LO alarm commands. The alarm values are
loaded with the same data format that is used with the output data. The high
and low alarm registers are nonvolatile so they will not be lost when the unit
is powered down. The values held in the alarm registers may be read back
at any time with the Read High (RH) and Read Low (RL) commands.
The data held in the alarm registers is continually compared with the
calculated output data. The result of the comparison is used to trip alarms
that may be used as control outputs. The high alarm is turned on when the
output data exceeds the high limit value. The low alarm is activated if the
output data is less than the low alarm value. Each alarm has two user
selectable modes, either Momentary (M) or Latching (L). Momentary alarms
are activated only while the alarm condition is met; if the output data returns
within limits, the alarm is turned off. Conversely, when latching alarms are
activated, they remain on even if the output data returns within limits.
Functional Description 2-3
Latching alarms are turned off with the Clear Alarms (CA) command or if the
opposite alarm limit is exceeded.
The state of the alarms may be read with the Digital Input (DI) command.
Also, the alarm outputs may be used to activate digital outputs on the module
to turn on alarms or to perform simple control functions. The alarm outputs
are shared with the general purpose digital output bits DO0 and DO1. To
connect the alarm outputs to the module connector, the Enable Alarm (EA)
command is used. The connector pins may be switched back to the general-
purpose digital outputs using the Disable Alarms (DA) command. The EA/
DA selection is nonvolatile.
The general-purpose digital outputs are open-collector transistor switches
that may be controlled by the host with the Digital Output (DO) command.
They are designed to activate external solid-state relays to control AC or DC
power circuits. The output may also be used to interface to other logic-level
devices. The number of digital outputs available depends on the module
type.
The Digital Input (DI) command is used to sense the logic levels on the digital
input pins DI0-DI7. The digital inputs are used to read logic levels generated
by other devices. They are also useful to sense the state of electro-
mechanical limit switches. The number of digital inputs available varies with
the module type.
The DI0 input is shared with the input to the Event Counter. The Event
Counter accumulates the number of positive transitions that occur on the
DI0/EV connector pin. The counter can accumulate up to 9999999 (decimal)
events and may be read with the Read Events (RE) command. The counter
input is filtered and uses a Schmitt-trigger input to provide a bounce-free
input for mechanical switches. The counter value may be zeroed with the
Clear Events (CE) command or the write-protected Events Clear (EC)
command.
Functional Description 2-4
Chapter 3
Communications
Introduction
The D1000 modules has been carefully designed to be easy to interface to
all popular computers and terminals. All communications to and from the
modules are performed with printable ASCII characters. This allows the
information to be processed with string functions common to most high-level
languages such as BASIC. For computers that support RS-232C, no special
machine language software drivers are necessary for operation. The
modules can be connected to auto-answer modems for long-distance
operation without the need for a supervisory computer. The ASCII format
makes system debugging easy with a dumb terminal.
This system allows multiple modules to be connected to a communications
port with a single 4-wire cable. Up to 32 RS-485 modules may be strung
together on one cable; 122 with repeaters. A practical limit for RS-232C units
is about ten, although a string of 122 units is possible. The modules
communicate with the host on a polling system; that is, each module
responds to its own unique address and must be interrogated by the host.
A module can never initiate a communications sequence. A simple com-
mand/response protocol must be strictly observed to avoid communications
collisions and data errors.
Communications to the D1000 modules is performed with two-character
ASCII command codes such as RD to Read Data from the analog input. A
complete description of all commands is given in the Chapter 4. A typical
command/response sequence would look like this:
Command: $1RD
Response: *+00123.00
A command/response sequence is not complete until a valid response is
received. The host may not initiate a new command until the response from
a previous command is complete. Failure to observe this rule will result in
communications collisions. A valid response can be in one of three forms:
1) a normal response indicated by a ‘ * ‘ prompt
2) an error message indicated by a ‘ ? ‘ prompt
3) a communications time-out error
When a module receives a valid command, it must interpret the command,
perform the desired function, and then communicate the response back to
the host. Each command has an associated delay time in which the module
is busy calculating the response. If the host does not receive a response in
an appropriate amount of time specified in Table 3.1, a communications
time-out error has occurred. After the communications time-out it is as-
sumed that no response data is forthcoming. This error usually results when
Communications 3-2
Data Format
All modules communicate in standard NRZ asynchronous data for-
mat. This format provides one start bit, seven data bits, one parity bit
and one stop bit for each character.
RS-232C
RS-232C is the most widely used communications standard for information
transfer between computing equipment. RS-232C versions of the D1000 will
interface to virtually all popular computers without any additional hardware.
Although the RS-232C standard is designed to connect a single piece of
equipment to a computer, the D1000 system allows for several modules to
be connected in a daisy-chain network structure.The advantages offered by
the RS-232C standard are:
1) widely used by all computing equipment
2) no additional interface hardware in most cases
3) separate transmit and receive lines ease debugging
4) compatible with dumb terminals
However, RS-232C suffers from several disadvantages:
1) low noise immunity
2) short usable distance
3) greater communications delay in multiple-module systems
4) less reliable–loss of one module; communications are lost
5) wiring is slightly more complex than RS-485
6) host software must handle echo characters
Figure 1.1 shows the connections necessary to attach one module to a host.
Use the Default Mode to enter the desired address, baud rate, and other
setups (see Setups). The use of echo is not necessary when using a single
module on the communications line.
Multi-party Connection
RS-232C is not designed to be used in a multiparty system; however the
D1000 modules can be daisy-chained to allow many modules to be
connected to a single communications port. The wiring necessary to create
the daisy-chain is shown in Figure 3.1. Notice that starting with the host,
each Transmit output is wired to the Receive input of the next module in the
daisy chain. This wiring sequence must be followed until the output of the last
module in the chain is wired to the Receive input of the host. All modules in
the chain must be setup to the same baud rate and must echo all received
data (see Setups). Each module must be setup with its own unique address
to avoid communications collisions (see Setups). In this network, any
characters transmitted by the host are received by each module in the chain
and passed on to the next station until the information is echoed back to the
Receive input of the host. In this manner all the commands given by the host
are examined by every module. If a module in the chain is correctly
addressed and receives a valid command, it will respond by transmitting the
response on the daisy chain network. The response data will be ripple
through any other modules in the chain until it reaches its final destination,
the Receive input of the host.
The daisy chain network must be carefully implemented to avoid the pitfalls
Software Considerations
If the host device is a computer, it must be able to handle the echoed
command messages on its Receive input along with the responses from the
module. This can be handled by software string functions by observing that
a module response always begins with a ‘ * ‘ or ‘ ? ‘ character and ends with
a carriage return.
A properly addressed D1000 module in a daisy chain will echo all of the
characters in the command including the terminating carriage return. Upon
receiving the carriage return, the module will immediately calculate and
transmit the response to the command. During this time, the module will not
echo any characters that appear on its receive input. However, if a character
is received during this computation period, it will be stored in the module’s
internal receive buffer. This character will be echoed after the response
string is transmitted by the module. This situation will occur if the host
computer appends a linefeed character on the command carriage return. In
this case the linefeed character will be echoed after the response string has
been transmitted.
The daisy chain also affects the command timeout specifications. When a
module in the chain receives a character it is echoed by retransmitting the
character through the module’s internal UART. This method is used to
provide more reliable communications since the UART eliminates any
slewing errors caused by the transmission lines. However, this method
creates a delay in propagating the character through the chain. The delay
is equal to the time necessary to retransmit one character using the baud
rate setup in the module:
Baud Rate Delay Baud Rate Delay
300 33.30ms 9600 1.04ms
600 16.70ms 19200 0.52ms
1200 8.33ms 38400 0.26ms
2400 4.17ms 57600 173.6µs
4800 2.08ms 115200 86.8µs
One delay time is accumulated for each module in the chain. For example,
Communications 3-5
if four modules are used in a chain operating at 1200 baud, the accumulated
delay time is 4 X 8.33 mS = 33.3 mS This time must be added to the times
listed in Table 3.1 to calculate the correct communications time-out error.
For modules with RS-232C outputs, the programmed communications
delay specified in the setup data (see Chapter 5) is implemented by sending
a NULL character (00) followed by an idle line condition for one character
time. This results in a delay of two character periods. For longer delay times
specified in the setup data, this sequence is repeated. Programmed
communications delay is seldom necessary in an RS-232C daisy chain
since each module in the chain adds one character of communications
delay.
Command Structure
Each command message from the host must begin with a command prompt
character to signal to the modules that a command message is to follow.
There are four valid prompt characters; a dollar sign character ($) is used to
generate a short response message from the module. A short response is
the minimum amount of data necessary to complete the command. The
second prompt character is the pound sign character (#) which generates
long responses (will be covered later in this chapter). The other two prompt
characters: left curly brace ({ ) and right curly brace ( }) are part of the
Extended Addressing mode described in chapter 10
The prompt character must be followed by a single address character
identifying the module to which the command is directed. Each module
attached to a common communications port must be setup with its own
unique address so that commands may be directed to the proper unit.
Module addresses are assigned by the user with the SetUp (SU) command.
Printable ASCII characters such as ‘1’ (ASCII $31) or ‘A’ (ASCII $41) are the
best choices for address characters.
The address character is followed by a two-character command that
identifies the function to be performed by the module. All of the available
commands are listed in Table 4.1 along with a short function definition. All
commands are described in Chapter 4. Commands must be transmitted as
upper-case characters.
A two-character checksum may be appended to any command message as
a user option. See ‘Checksum’ in Chapter 4 .
All commands must be terminated by a Carriage Return character (ASCII
$0D). (In all command examples in this text the Carriage Return is either
implied or denoted by the symbol ‘CR’.)
In addition to the command structure discussed above there is a special
command format called Extended Addressing. This mode uses a differ-
ent prompt, either '{' or '}' to distinguish it from the regular command
syntax. The Extended Addressing mode is described in chapter 10.
Command Set 4-2
Data Structure
Many commands require additional data values to complete the command
definition as shown in the example commands in Table 4.1. The particular
data necessary for these commands is described in full in the complete
command descriptions.
The most common type of data used in commands and responses is analog
data. Analog data is always represented in the same format for all models
in the D1000 series. Analog data is represented as a nine-character string
consisting of a sign, five digits, decimal point, and two additional digits. The
string represents a decimal value in engineering units. Examples:
+12345.68
+00100.00
-00072.10
-00000.00
When using commands that require analog data as an argument, the full
nine-character string must be used, even if some digits are not significant.
Failure to do this results in a SYNTAX ERROR.
Analog data responses from the module will always be transmitted in the
nine-character format. This greatly simplifies software parsing routines
since all analog data is in the same format for all module types.
In many cases, some of the digits in the analog data may not be significant.
For instance, the D1300 thermocouple input modules feature 1 degree
output resolution. A typical analog data value from this type of module could
be +00123.00. The two digits to the right of the decimal point have no
significance in this particular model. However, the data format is always
adhered to in order to maintain compatibility with other module types.
The maximum computational resolution of the module is 16 bits, which is
less than the resolution that may be represented by an analog data variable.
This may lead to round-off errors in some cases. For example, an alarm
value may be stored in a D1000 module using the ‘HI’ command:
Command: $1HI+12345.67M
Response: *
The alarm value is read back with the Read High (RH) command:
Command: $1RH
Response: *+12345.60M
It appears that the data read back does not match the value that was
originally saved. The error is caused by the fact that the value saved exceeds
the computational resolution of the module. This type of round-off error only
Command Set 4-3
appears when large data values saved in the module’s EEPROM are read
back. In most practical applications, the problem is non-existent.
Overload values of analog data are +99999.99 and -99999.99 .
Data read back from the Event Counter with the Read Events (RE)
command is in the form of a seven-digit decimal number with no sign or
decimal point. Round-off errors do not occur on the event counter. For
example:
Command: $1RE
Response: *0000123
The Digital Input, Digital Output, and Setup commands use hexadecimal
representations of data. The data structures for these commands are
detailed in the command descriptions.
Write Protection
Many of the commands listed in Table 4.1 are under the heading of ‘Write
Protected Commands’. These commands are used to alter setup data in the
module’s EEPROM. They are write protected to guard against accidental
loss of setup data. All write-protected commands must be preceded by a
Write Enable (WE) command before the protected command may be
executed.
Response Structure
Response messages from the module begin with either an asterisk ‘ * ‘
(ASCII $2A) or a question mark ‘ ? ‘ (ASCII $3F) prompt. The ‘ * ‘ prompt
indicates acknowledgment of a valid command. The ‘ ? ‘ prompt precedes
an error message. All response messages are terminated with a CR. Many
commands simply return a ‘ * ‘ character to acknowledge that the command
has been executed by the module. Other commands send data information
Command Set 4-4
following the ‘ * ‘ prompt. The response format of all commands may be found
in the detailed command description.
The maximum response message length is 20 characters.
A command/response sequence is not complete until a valid response is
received. The host may not initiate a new command until the response from
a previous command is complete. Failure to observe this rule will result in
communications collisions. A valid response can be in one of three forms:
1) a normal response indicated by a ‘ * ‘ prompt
2) an error message indicated by a ‘ ? ‘ prompt
3) a communications time-out error
When a module receives a valid command, it must interpret the command,
perform the desired function, and the communicate the response back to the
host. Each command has an associated delay time in which the module is
busy calculating the response. If the host does not receive a response in an
appropriate amount of time specified in Table 4.1, a communications time-
out error has occurred. After the communications time-out it is assumed that
no response data is forthcoming. This error usually results when an
improper command prompt or address is transmitted.
Checksum
Checksum is a two character hexadecimal value appended to the end of a
message. It verifies that the message received is exactly the same as the
message sent. The checksum ensures the integrity of the information
communicated.
Command Checksum
A two-character checksum may be appended to any command to the
module as a user option. When a module interprets a command, it looks for
Command Set 4-5
the two extra characters and assumes that it is a checksum. If the checksum
is not present, the module will perform the command normally. If the two
extra characters are present, the module calculates the checksum for the
message. If the calculated checksum does not agree with the transmitted
checksum, the module responds with a ‘BAD CHECKSUM’ error message
and the command is aborted. If the checksums agree, the command is
executed. If the module receives a single extra character, it responds with
‘SYNTAX ERROR’ and the command is aborted For example:
Command: $1RD (no checksum)
Response: *+00072.10
Command: $1RDEB (with checksum)
Response: *+00072.10
Command: $1RDAB (incorrect checksum)
Response: ?1 BAD CHECKSUM
Command: $1RDE (one extra character)
Response: ?1 SYNTAX ERROR
Response Checksums
If the long form ‘ # ‘ version of a command is transmitted to a module, a
checksum will be appended to the end of the response. For example:
Command: $1RD (short form)
Response: *+00072.10
Command: #1RD (long form)
Response: *1RD+00072.10A4 (A4=checksum)
Checksum Calculation
The checksum is calculated by summing the hexadecimal values of all the
ASCII characters in the message. The lowest order two hex digits of the sum
are used as the checksum. These two digits are then converted to their
ASCII character equivalents and appended to the message. This ensures
that the checksum is in the form of printable characters.
Example: Append a checksum to the command #1DOFF
Characters: # 1 D O F F
ASCII hex values: 23 31 44 4F 46 46
Sum (hex addition) 23 + 31 + 44 + 4F + 46 + 46 = 173
The checksum is 73 (hex). Append the characters 7 and 3 to the end of
the message: #1DOFF73
Example: Verify the checksum of a module response *1RD+00072.10A4
Command Set 4-6
The checksum is the two characters preceding the CR: A4
Add the remaining character values:
* 1 R D + 0 0 0 7 2 . 1 0
2A + 31 + 52 + 44 + 2B + 30 + 30 + 30 + 37 + 32 + 2E + 31 + 30 = A4
The two lowest-order hex digits of the sum are A4 which agrees with the
transmitted checksum.
The transmitted checksum is the character string equivalent to the calcu-
lated hex integer. The variables must be converted to like types in the host
software to determine equivalency.
If checksums do not agree, a communications error has occurred.
If a module is setup to provide linefeeds, the linefeed characters are not
included in the checksum calculation.
Parity bits are never included in the checksum calculation.
Table 4.1 D1000 Command Set
Command and Definition Typical Typical
Command Response
Message Message
($ prompt)
The ID command is write protected and checksums are not supported. The
module will abandon any ID command with a message length in excess of
16 characters.
Command: #1REA
Response: *1REA3031FA
In this example the '30' and '31' are the hex ASCII codes for the characters
'0' and '1' respectively. The Extended Address is '01'.
Command: $1RID
Response: *BOILER ROOM
Command: #1RID
Response: *1RIDBOILER ROOM54
Command Set 4-15
Read Low Alarm (RL)
The Read Low alarm command reads the value and type of the low alarm.
The alarm type can be either latching or momentary. A letter indicating the
alarm type, “L” for latching or “M” for momentary, will follow the alarm value.
For example:
Command: $1RL
Response: *+00000.00L
Command: #1RL
Response: *1RL+00000.00LEE
The RL command may be used to verify data loaded into the nonvolatile
memory with the LO command.
Command: $1RPT
Response: *+ -
Command: #1RPT
Response: *1RPT+ -A2
Setpoint (SP)
Data specified by the setpoint command is multiplied by -1 and loaded into
the Output Offset Register (Figure 2.1). The SP command is useful in on-off
controllers—see Chapter 6. The SP command may be used to null out
sensor data to obtain a deviation output when using RD or ND commands.
Command: $1SP+00450.00
Response: *
Command: #1SP+00450.00
Response: *1SP+00450.00B0
It is possible to load setpoint data that is beyond the output range of the
sensor. In this case, the setpoint is never reached by the sensor data unless
an overload is present.
Command Set 4-17
To clear a setpoint, use the Clear Zero (CZ) command.
The SP command writes over data written into the Output Offset Register by
the Trim Zero (TZ) command. If the Output Offset Register is used as a trim
value, this must be accounted for by the host before using the SP command.
The value stored in this register may be read back using the Read Zero (RZ)
command.
The setpoint data or trim data in the Output Offset Register is saved in
nonvolatile memory.
Command: #1WEA3031
Response: *1WEA3031FF
Note that '30' and '31' are the hex ASCII values for characters '0' and '1'
respectively.
The EA command is write-protected and must be preceded with a WE
command.
The address data may be read back with the Read Extended Address (REA)
command.
Command Set 4-20
ERROR MESSAGES
The D1000 modules feature extensive error checking on input commands
to avoid erroneous operation. Any errors detected will result in an error
message and the command will be aborted.
All error messages begin with “?”, followed by the channel address, a space
and error description. The error messages have the same format for either
the ‘ $ ‘ or ‘ # ‘ prompts. For example:
?1 SYNTAX ERROR
There are eight error messages, and each error message begins with a
different character. It is easy for a computer program to identify the error
without having to read the entire string.
ADDRESS ERROR
There are six ASCII values that are illegal for use as a module address:
NULL ($00), CR ($0D), $ ($24), # ($23), { ($7B) and } ($7D). The ADDRESS
ERROR will occur when an attempt is made to load an illegal address into
a module with the SetUp (SU) command. An attempt to load an address
greater than $7F will produce an error.
BAD CHECKSUM
This error is caused by an incorrect checksum included in the command
string. The module recognizes any two hex characters appended to a
command string as a checksum. Usually a BAD CHECKSUM error is due to
noise or interference on the communications line. Often, repeating the
command solves the problem. If the error persists, either the checksum is
calculated incorrectly or there is a problem with the communications
channel. More reliable transmissions might be obtained by using a lower
baud rate.
COMMAND ERROR
This error occurs when the two-character command is not recognized by the
module. Often this error results when the command is sent with lower-case
letters. All valid commands are upper-case.
NOT READY
If a module is reset, it performs a self-calibration routine which takes 2-3
seconds to complete. Any commands sent to the module during the self-
calibration period will result in a NOT READY error. When this occurs, simply
wait a couple seconds and repeat the command.
The module may be reset in three ways: a power-up reset, a Remote Reset
(RR) command, or an internal reset. All modules contain a ‘watchdog’ timer
Command Set 4-21
to ensure proper operation of the microprocessor. The timer may be tripped
if the microprocessor is executing its program improperly due to power
transients or static discharge.
If the NOT READY error persists for more than 30 seconds, check the power
supply to be sure it is within specifications.
PARITY ERROR
A parity error can only occur if the module is setup with parity on (see Setup).
Usually a parity error results from a bit error caused by interference on the
communications line. Random parity errors are usually overcome by simply
repeating the command. If too many errors occur, the communications
channel may have to be improved or a slower baud rate may be used.
A consistent parity error will result if the host parity does not match the
module parity. In this situation, the easiest solution may be to change the
parity in the host to obtain communication. At this point the parity in the
module may be changed to the desired value with the SetUp (SU) command.
The parity may be changed or turned off by using Default Mode.
SYNTAX ERROR
A SYNTAX ERROR will result if the structure of the command is not correct.
This is caused by having too few or too many characters, signs or decimal
points missing or in the wrong place. Table 4.1 lists the correct syntax for all
the commands.
VALUE ERROR
This error results when an incorrect character is used as a numerical value.
Data values can only contain decimal digits 0-9. Hex values used in the
SetUp (SU) and Digital Output (DO) commands can range from 0-F.
WRITE PROTECTED
All commands that write data into nonvolatile memory are write-protected to
prevent accidental erasures. These commands must be preceded with a
Write Enable (WE) command or else a WRITE PROTECTED error will
result.
Chapter 5
Setup Information/SetUp Command
Byte 1
Byte 1 contains the module (channel) address. The address is stored as the
ASCII code for the string character used to address the module. In our
example command $1SU31070080 , the first byte ‘31’ is the ASCII code for
the character ‘1’. If our sample command is sent to a module, the EEPROM
will be loaded with the address ‘1’, which in this particular case remains
unchanged. To change the module address to ‘2’ , byte 1 of the SetUp
command becomes ‘32’, which is the ASCII code for the character ‘2’. Now
the command will look like this: $1SU32070080. When this command is
sent, the module address is changed from ‘1’ to ‘2’ and will no longer respond
to address ‘1’.
Setup & SetUp Command 5-3
When using the SU command to change the address of a module, be sure
to record the new address in a place that is easily retrievable. The only way
to communicate with a module with an unknown address is with the Default
Mode.
The most significant bit of byte 1 (bit 7) must be set to ‘0’. In addition, there
are six ASCII codes that are illegal for use as an address. These codes are
$00, $0D, $24, $23, $7B, $7D which are ASCII codes for the characters
NUL, CR, $, #, { and }. Using these codes for an address will cause an
ADDRESS ERROR and the setup data will remain unchanged. This leaves
a total of 122 possible addresses that can be loaded with the SU command.
It is highly recommended that only ASCII codes for printable characters be
used ($21 to $7E) which greatly simplifies system debugging with a dumb
terminal. Refer to Appendix A for a list of ASCII codes. Table 5.1 lists the
printable ASCII codes that may be used as addresses.
Linefeeds
The most significant bit of byte 2 (bit 7) controls linefeed generation by the
module. This option can be useful when using the module with a dumb
terminal. All responses from the D1000 are terminated with a carriage return
(ASCII $0D). Most terminals will generate a automatic linefeed when a
carriage return is detected. However, for terminals that do not have this
capability, the D1000 module can generate the linefeed if desired. By setting
bit 7 to ‘1’ the module will send a linefeed (ASCII $0A) before and after each
response. If bit 7 is cleared (0), no linefeeds are transmitted.
When using the ‘#’ command prompt, the linefeed characters are not
included in the checksum calculation.
Parity
Bits 5 and 6 select the parity to be used by the module. Bit 5 turns the parity
on and off. If bit 5 is ‘0’, the parity of the command string is ignored and the
parity bit of characters transmitted by the module is set to ‘1’.
If bit 5 is ‘1’, the parity of command strings is checked and the parity of
characters output by the module is calculated as specified by bit 6.
If bit 6 is ‘0’, parity is even; if bit 6 is ‘1’, parity is odd.
If a parity error is detected by the module, it will respond with a PARITY
ERROR message. This is usually caused by noise on the communications
line.
If parity setup values are changed with the SU command, the response to
the SU command will be transmitted with the old parity setup. The new parity
setup becomes effective immediately after the response message from the
SU command.
Baud Rate
Bits 0-3 specify the communications baud rate. The baud rate can be
selected from ten values between 300 and 115200 baud. Refer to Table 5.2
for the desired code.
The baud rate selection is the only setup data that is not implemented
directly after an SU command. In order for the baud rate to be actually
changed, a module reset must occur. A reset is performed by sending a
Remote Reset (RR) command (see Communications) or powering down.
This extra level of write protection is necessary to ensure that communica-
tions to the module is not accidently lost. This is very important when
Setup & SetUp Command 5-5
changing the baud rate of an RS-232C string. For more information on
changing baud rate, refer to Chapter 3.
Let’s run through an example of changing the baud rate. Assume our sample
module contains the setup data value of ‘31070080’. Byte 2 is ‘07’. By
referring to the SU command chart we can determine that the module is set
for no linefeeds, no parity, and baud rate 300. If we perform the Read Setup
command with this module we would get:
Command: $1RS
Response: *31070080
Let’s say we wish to change the baud rate to 9600 baud. The code for 9600
baud is ‘0010’ (from Table 5.2). This would change byte 2 to ‘02’. To perform
the SU command we must first send a Write Enable command because SU
is write protected:
Command: $1WE
Response: *
Command: $1SU31020080
Response: *
This sequence of messages is done in 300 baud because that was the
original baud rate of the module. The module remains in 300 baud after this
sequence. We can use the Read Setup (RS) command to check the setup
data:
Command: $1RS
Response: *31020080
Notice that although the module is communicating in 300 baud, the setup
data indicates a baud rate of 9600 (byte 2 = ‘02’). To actually change the
baud rate to 9600, send a Remote Reset (RR) command (RR is write
protected):
Command: $1WE
Response: *
Command: $1RR
Response: *
Up to this point all communications have been sent at 300 baud. The module
will not respond to any further communications at 300 baud because it is now
running at 9600 baud. At this point the host computer or terminal must be set
to 9600 baud to continue operation.
If the module does not respond to the new baud rate, most likely the setup
data is incorrect. Try various baud rates from the host until the module
Setup & SetUp Command 5-6
responds. The last resort is to set the module to Default Mode where the
baud rate is always 300.
Setting a string of RS-232C modules to a new baud rate requires special
consideration. Refer to Chapter 3 for instructions.
Bit 4
Bit 4 is used to enable or disable extended addressing mode.
Table 5.2 Byte 2: Linefeed, Parity, Addressing and Baud Rate.
FUNCTION DATA BIT
7 6 5 4 3 2 1 0
LINEFEED 1
NO LINEFEED 0
NO PARITY 0 0
NO PARITY 1 0
EVEN PARITY 0 1
ODD PARITY 1 1
NORMAL ADDRESSING 0
EXTENDED ADDRESSING 1
115200 BAUD 1 0 0 0
57600 BAUD 1 0 0 1
38400 BAUD 0 0 0 0
19200 BAUD 0 0 0 1
9600 BAUD 0 0 1 0
4800 BAUD 0 0 1 1
2400 BAUD 0 1 0 0
1200 BAUD 0 1 0 1
600 BAUD 0 1 1 0
300 BAUD 0 1 1 1
Byte 3
This byte contains the setup information for several seldom-used options.
The default value for this byte is ‘01’.
Alarm Enable
Bit 7 determines if the outputs from the LO and HI alarms are connected to
module terminal block. If the value is ‘0’ the alarms are not connected to the
terminal block. In this condition the outputs are controlled by the Digital
Output (DO) command. If bit 7 is ‘1’ the alarms are connected to the terminal
block. This bit is also controlled by the Enable Alarms (EA) command which
sets the bit to ‘1’. The Disable Alarms (DA) command clears the bit to ‘0’.
Low Alarm Latch
Bit 6 determines whether the LO Alarm is latching or momentary. A ‘1’
indicates that the alarm is latching; ‘0’ indicates a momentary alarm. Bit 6 is
also controlled by the LO Alarm (LO) command.
Setup & SetUp Command 5-7
High Alarm Latch
Bit 5 determines whether the HI Alarm is latching or momentary. A’1'
indicates latching. Bit 5 is also controlled individually by the HI Alarm (HI)
command.
Disable CJC
RTD 3/4 Wire
Trigger Edge Select
The setup information stored in bit 4 has different meanings depending on
the D1000 model number.
Disable CJC; this function pertains only to the D1300 series of thermo-
couple input modules. If the bit is set to ‘1’ the Cold Junction Compensation
is disabled. The module calculates the temperature output with a fixed cold
junction temperature of 0 degrees Celsius. This setup is useful for calibrating
the module or in cases where remote CJC is used. Normally this bit is cleared
to ‘0’.
RTD 3/4 Wire; this function pertains only to the D1400 series of RTD input
modules. If the bit is set to ‘1’, the module provides the correct lead-
compensation calculation for 4-wire RTD’s. If the bit is cleared to ‘0’, the
module calculates the correct lead compensation for 3-wire RTD’s. Meas-
urement errors may result if the module is not set to the correct sensor type.
This function has no affect on D145X or D146X Thermistor inputs.
Celsius/Fahrenheit
The default scaling for temperature output modules is Celsius which is
selected by making bit 3 = 0. To change the scaling to Fahrenheit, set bit 3
to ‘1’. All modules that do not have temperature output must have bit 3
cleared to zero. The scaling factors are operative only on the sensor data;
HI and LO limits and setpoints must be modified by appropriate commands
to reflect a scaling change (see Figure 2.1).
Echo
When bit 2 is set to ‘1’, the D1000 module will retransmit any characters it
has received on the communications line. This option is necessary to ‘daisy-
chain’ multiple RS-232C modules. Echo is optional for systems with a single
RS-232C module. Bit 2 must be cleared to ‘0’ on RS-485 models. See
Chapter 3 for a more complete description.
Delay
Bits 0 and 1 specify a minimum turn-around delay between a command and
the module response. This delay time is useful on host systems that are not
fast enough to capture data from quick-responding commands such as RD.
This is particularly true for systems that use software UART’s. The specified
Setup & SetUp Command 5-8
delay is added to the typical command delays listed in the Software
Considerations section of Chapter 3. Each unit of delay specified by bits 0
and 1 is equal to the amount of time required to transmit one character with
the baud rate specified in byte 2. For example, one unit of delay at 300 baud
is 33.3 mS; for 38.4 kilobaud the delay is 0.26 mS. The number of delay units
is selectable from 0 to 6 as shown in Table 5.3.
In some systems, such as IBM BASIC, a carriage return (CR) is always
followed by a linefeed (LF). The D1000 modules will respond immediately
after a command terminated by a CR and will ignore the linefeed. To avoid
a communications collision between the linefeed and the module response,
the module should be setup to delay by 2 units.
Table 5.3 Byte 3 Options.
FUNCTION DATA BIT
7 6 5 4 3 2 1 0
ALARMS OFF 0
ALARMS ON 1
HIGH ALARM MOMENTARY 0
HIGH ALARM LATCHING 1
LOW ALARM MOMENTARY 0
LOW ALARM LATCHING 1
CJC ( D1300’S ) 0
NO CJC ( D1300’S ) 1
3 WIRE ( D1400’S ) 0
4 WIRE ( D1400’S ) 1
CELSIUS 0
FAHRENHEIT 1
NO ECHO 0
ECHO 1
NO DELAYS 0 0
2 BYTE TIME DELAYS 0 1
4 BYTE TIME DELAYS 1 0
6 BYTE TIME DELAYS 1 1
Setup & SetUp Command 5-9
Byte 4
This setup byte specifies the number of displayed digits and the digital filter
time constants.
Number of displayed digits
For ease of use, the data outputs of all modules are standardized to a
common 7-digit output consisting of sign, 5 digits, decimal point, and two
more digits. Typical output data looks like: +00100.00. However, best-case
resolution of the A/D converter is 1 part in 32,768. In some cases, the
resolution of the output format is much greater than the resolution of the
measurement system. In such cases, the trailing digits of the response
would display meaningless information. Bits 6 and 7 are used to insert
trailing zeros into the output data to limit the output resolution and mask off
meaningless digits.
Bit 7 Bit 6
0 0 XXXX0.00 (4 displayed digits)
0 1 XXXXX.00 (5 displayed digits)
1 0 XXXXX.X0 (6 displayed digits)
1 1 XXXXX.XX (7 displayed digits)
For example, the D1411 model for RTD’s has 0.1 degree output resolution.
The appropriate number of digits for this module is 6, to mask off the 0.01
digit which has no meaningful data. In some cases, the user may want to limit
the output resolution to 1 degree. To do this, select bits 6 and 7 to display
5 digits. With this selection, the right-most two digits will always be set to ‘0’.
The number of displayed digits affects only data received from an RD or ND
command.
Large Signal Filter, Bits 3,4,5
Small Signal Filter, Bits 0,1,2
The modules contain a versatile single-pole, low-pass digital filter to smooth
out unwanted noise caused by interference or small signal variations. The
digital filter offers many advantages over traditional analog filters. The
filtering action is done completely in firmware and is not affected by
component drifts, offsets, and circuit noise typically found in analog filters.
The filter time constant is programmable through the SetUp (SU) command
and can be changed at any time, even if the module is remote from the host.
The digital filter features separate time constants for large and small signal
variations. The Large Signal Filter time constant is controlled by bits 3,4,5.
This time constant is used when large signal variations are present on the
input. The Small Signal Filter time constant is controlled by bits 0,1,2. This
filter time constant is automatically selected when input signal variations are
small. The microprocessor in the module automatically selects the correct
Setup & SetUp Command 5-10
filter constant after every A/D conversion. The constant selected depends
on the magnitude of the change of the input signal and the setup for the
number of digits displayed. The microprocessor always keeps the value of
the last calculated output to compare to a new data conversion. If the new
data differs from the last output by more than ten counts of the last displayed
digit, the large signal time constant is used in the digital filter. If the result of
the most recent A/D conversion differs from the last output value by less than
ten counts of the last displayed digit, the small signal time constant is used.
Let’s look at an example:
The D1411 RTD module has a standard output resolution of 0.1 degrees.
The standard number-of-displayed-digits setup for this module is 6 digits,
from byte 4 of the setup data. Therefore, the large signal filter will be selected
if a new input conversion differs from the previous value by > 1.0 degree:
Previous data New data Filter selected
+00100.00 +00100.50 small
+00100.00 +00101.50 large
+00100.00 +00099.90 small
+00100.00 +00098.90 large
-00050.50 -00050.00 small
-00050.50 -00060.00 small
Setup Hints
Until you become completely familiar with the SetUp command, the best
method of changing setups is to change one parameter at a time and to verify
that the change has been made correctly. Attempting to modify all the setups
at once can often lead to confusion. If you reach a state of total confusion,
the best recourse is to reload the factory setup shown in Table 5.5 and try
again, changing one parameter at a time. Use the Read Setup (RS)
command to examine the setup information currently in the module as a
basis for creating a new setup.
For example: Assume you have a D1111 unit and you wish to set the unit
Setup & SetUp Command 5-12
to echo so that it may be used in a daisy-chain (See Communications). Read
out the current setup with the Read Setup command:
Command: $1RS
Response: *310701C2
By referring to Table 5.3, we find that the echo is controlled by bit 2 of byte
3. From the RS command we see that byte 3 is currently set to 01. This is
the hexadecimal representation of binary 0000 0001. To set echo, bit 2 must
be set to ‘1’. This results in binary 0000 0101. The new hexadecimal value
of byte 3 is 05. To perform the SU command, use the data read out with the
RS command, changing only byte 3:
Command: $1WE (SU is write-protected)
Response: *
Command: $1SU310705C2
Response: *
Verify that the module is echoing characters and the setup is correct.
By using the RS command and changing one setup parameter at a time, any
problems associated with incorrect setups may be identified immediately.
Once a satisfactory setup has been developed, record the setup value and
use it to configure similar modules.
If you commit an error in using the SetUp command, it is possible to lose
communications with the module. In this case, it may be necessary to use
the Default Mode to re-establish communications.
The DA, EA, HI, and LO commands affect some of the bits of the setup data
that are associated with alarms. If these commands are performed, the
setup data read back with the Read Setup command may not correspond
exactly with the data previously written with the SetUp command.
Digital Outputs
A digital output consists of an open-collector transistor controlled by the
host, using the Digital Output (DO) command (See Figure 6.1). The
number of digital outputs implemented depends on the specific D1000
model number. Most sensor modules contain two digital outputs and the
D1701/2 has eight digital outputs. The open-collector configuration is used
to provide maximum versatility in interfacing to solid state relays (SSR’s)
or to standard logic levels such as TTL or CMOS. Each digital output can
sink up to 30mA and can withstand up to 30V. Power in the transistor must
be limited to 300mW. The emitter of each transistor is tied to the GND
terminal on the input connector.
Digital Inputs
ALARM OUTPUTS
ON-OFF CONTROLLERS
The alarm capabilities of the D1000 sensor-input modules may be utilized
to construct simple ON-OFF controllers that operate without host interven-
tion. In fact, since all the alarm information is stored in nonvolatile memory,
the module can act as a stand-alone controller with the communications
lines disconnected.
The simplest controller connection is to use a momentary alarm output to
control the process. A typical application would have a temperature input
module controlling a heater, as shown in Figure 6.5. To maintain a con-
stant temperature, set the low limit to the setpoint desired and specify the
alarm output to be momentary. Use the LO alarm output to control the
heater. If the temperature measurement exceeds the low limit, the heater
will be turned off. When the temperature goes below the limit, the LO
alarm output goes on, turning on the heater. The negative feedback action
of the control output will keep the temperature at the desired value. The
high limit is still available to activate an alarm or shut down the system if
the temperature goes out of limit.
Digital I/O Functions 6-6
• Read Data (RD) values are factor of two times normal values
Ensure that the Degree C/Degree F bit in the setup (SU) message is set
to Degree C.
Command: {01WE
Response: *
Both the command and response are terminated with carriage returns.
Note that the command uses a two-character address, '01.'
There are two benefits to using Extended Addressing with the D1000:
Structured Addressing
Even for a relatively small system, it can be advantageous to employ a
hierarchical addressing system as used in Fig. 7.1. This is particularly
true in systems that consist of many sites that are identical. From a host
software standpoint, each site can be treated identically with the same
module addresses, with each site having a different D1000 address.
Command: {01WE
Response: *
Command: }01WE
Response: *01WE27
Command: {01RS
Response: *31070000 (typical)
Command: }01RS
Response: *01RS31070000BB (typical)
Command: {01WE78
Response: *
R Vswitching ± Vhysteresis
<0.5V:
34 Vhysteresis
R (in KΩ) =
0.5 -Vhysteresis
R Vswitching ± Vhysteresis
34 Vhysteresis
R (in KΩ) =
0.5 - Vhysteresis
14
Vswitching = 2.5 -
17 + R
J3 = Wire Jumper
Data Format
The ASCII output data is expressed in millivolts with 10 microvolt resolution.
For Example:
Command: $1RD (Read Data)
Response: *+00012.34
In this case, the output data is 12.34 millivolts.
Modules that are configured for ±30mV and have a usable span of ±60mV.
Modules configured for ±100mV have a usable span of ±120mV. The extra
overhead is used to trim any bridge offsets. Modules configured for 1-6V
have a usable span of 0-6V with a resolution of 1mV.
Setup Data
The factory setup for all versions of D1500 modules is 310701C2
Sensor Connections
See Figure 1 for the proper bridge sensor connections. Shields or grounds
should be connected to the -Excitation terminal.
Offset Trim
TheD1500modulesdonotprovideanymeansoftrimmingtheanalogoffset
of the sensor bridge. However, sensor offsets may be nulled from the output
data with the Trim Zero (TZ) command. This method of trimming is
convenientbecausetheoffsetmaybetrimmedthroughthecommunications
port at any time. There is no need to have access to the module since the
trimming is performed remotely.
The input signal conditioning circuitry of the D1500 modules have a wide
input range to accommodate large sensor offsets without the need for
external trims. Modules rated for ±30mV. have an input range capability of
±60mV. Modules rated for ±100mV have an input range of ±120mV.
D1500 Data Sheet D-2
To perform an initial offset trim, attach the bridge unit to the module (as
shown in Figure 1). Clear out any previous offset trims with the Clear Zero
(CZ) command. Apply the desired zero condition to the bridge sensor. For
a Strain Gage Bridge this would be the relaxed or unstrained condition. For
load cells, the zero condition could include any tare weight due to a weighing
platform or other attachments that would affect the zero balance. Obtain an
initial reading using the Read Data (RD) command. The output data will
indicate the total offset of the system. Subtract the offset value from the
usable input range of your module, either ±60mV or ±120mV. The result is
the maximum usable “input overhead”. If the overhead is not sufficient for
your application, the bridge must be trimmed externally to lower the offset
to an acceptable value. The bridge may be trimmed with a small series
resistance or a large shunt resistance to the appropriate leg of the bridge (as
shown is Figure 2). If the initial offset is acceptable, the offset may be
trimmed with the Trim Zero (TZ) command.
D1500 Data Sheet D-3
Example 2:
A strain gage bridge will be used to measure both compression and tensile
strains on a structural member. The bridge is attached to a D1521 module
and the ideal output from the bridge is ±30mV full scale.
Clear the Zero Trim:
Command: $1WE
Response: *
Command: $1CZ (Clear Zero)
Response: *
Measure the initial offset from the bridge:
Command: $1RD
Response: *-00043.21
Inthiscase,thebridgeexhibitsalargeinitialoffsetof-43.21mV.Subtractthis
value from the ± 60mV useful range of the D1521 to obtain and “input
overhead” value of -16.79mV to 103.21mV. In this case the -16.79mV
overhead is not large enough to cover the -30mV that may be obtained from
thebridge.Thebridgemustbetrimmedexternallytobringtheoffsettowithin
±30mV. It is not necessary to obtain an exact zero with the external trim.
After the external trim has been performed, check the offset:
Command: $1RD
Response: *-00022.22
D1500 Data Sheet D-5
This value is within the ±30mV offset necessary to provide enough head-
room for the strain gage bridge.
Trim out the remaining offset with the Trim Zero (TZ) command:
Command: $1WE
Response: *
Command: $1TZ+00000.00
Response: *
The bridge is now trimmed to zero. Verify:
Command: $1RD
Response: * +00000.00
The Trim Zero (TZ) command may be used at any time to balance out offsets
due to temperature, residual stress, tare, etc.
Excitation
D1500 modules may be ordered with either 5V or 10V excitation. Maximum
excitation current available is 60mA. Modules with 10V excitation may be
used with bridges that have input impedances of 166 ohms or greater. Half-
bridges of 120 Ω strain gages may be used with 10V excitation if the bridge
is completed with 350 Ω resistors. Modules with 5V excitation will source
bridges of 85 Ω and up.
The actual excitation voltage may vary ±0.5V from the nominal values of
+10V and +5V. However, the module’s internal microprocessor constantly
monitors the actual excitation voltage and provides compensation for any
deviation from the nominal value. This results in a constant data output for
a constant bridge load even if the excitation changes. From a user’s point
of view, the excitation voltage will appear to be exactly +10V or +5V.
Calibration
Since the D1500 modules use a ratiometric technique to compensate for
variances in the excitation voltage, special consideration is required to
properly calibrate the unit. Figure 3 shows the calibration setup. The Digital
Voltmeter (DVM) must be capable of measuring the excitation voltage to 4
digit accuracy. The voltage source must be able to provide millivolt signals
accurateto ±5microvolts.Theresistivedividermaybeconstructedfrom1%
resistors of equal value from 100 to 1000 Ω. The resistor divider places the
voltage source in the center of the common-mode range of the input
amplifier for best accuracy.
D1500 Data Sheet D-6
Step 1: power up the unit under test and let it warm up for at least two
minutes.
Step 2: set the voltage source to 0 volts (short). Perform a TZ+00000.00
(Trim Zero) command to eliminate any common-mode offset errors.
Step3:measuretheexcitationvoltagewiththeDVM.Dividetheresultbythe
nominal excitation voltage, either 10V or 5V, to obtain a “compensation
factor” = CF.
Step 4: calculate the correct calibration voltage to apply to the unit.
For ±30mV units the voltage is V = +50mV X CF
For ± 100mV units the voltage is V = +100mV X CF
Set the voltage source to the calculated voltage V.
Step 5: trim the unit with the Trim Span (TS) command.
For ±30mV modules the command is $1TS+00050.00
For ±100mV modules the command is $1TS+00100.00
Step 6: verify the trim using the $1RD command. The result should be either
*+00050.00or*+00100.00
D1500 Data Sheet D-7
Calibration Example:
We wish to calibrate a D1511 module. This unit contains 5V excitation and
a ±30mVinput.
Step 1 is straightforward and needs no further explanation.
Step 2: set the voltage source to 0 volts. Trim zero:
Command: $1WE
Response: *
Command: $1TZ+00000.00
Response: *
Step 3: measure the excitation voltage with the DVM. In this example the
measured voltage is 4.954V Calculate the “compensation factor”:
CF = 4.954 / 5 = 0.9908
Step 4: calculate the calibration voltage:
V=+50mVX0.9908=+49.54mV.
Set the voltage standard to +49.54mV.
Step 5: perform the Trim Span command:
Command: $1WE
Response: *
Command: $1TS+00050.00
Response: *
Step 6: verify the calibration, continuing to apply +49.54mV to the input:
Command: $1RD
Response: *+00050.00
The span trim is now complete. The Trim Zero (TZ) command may be used
to trim sensor offsets without affecting the span trim.
Options
AllD1500unitscomestandardwithaDigitalOutput/LowAlarmoutput.This
connector pin may be factory configured for a Digital Input /Event Counter
input. Consult factory.
Continuous Output
AnyoftheD1000sensorinputmodulesmaybefactoryconfiguredtoprovide
continuous output data without interrogation from the host. This option is
ideal for use with LED display panels to provide a continuous visual output.
D1500 Data Sheet D-8
Tospecifycontinuousoutput,adda“C”suffixtothemodelnumber;D1511C
for example.
Programmable Scaling
The D2500 series of interface modules are bridge units similar to the D1500
seriesexceptthattheinput/outputtransferfunctionmaybeprogrammedby
the user. Output data may be scaled to any desired engineering units such
as pounds, psi, Newtons, etc. Nonlinear functions may also be programmed
into the module. All scaling data is stored in nonvolatile memory and may be
reprogrammed any number of times. Call factory for details.
Bridge Completion Resistors
For convenience, standard bridge completion resistors may be obtained
from the factory. Standard values available are 120 Ω and 350 Ω.
Appendix E
D2000 Series
The D2000 series is an enhancement of the D1000 series. As shipped from
the factory, the D2000 modules operate in the same manner as their D1000
counterparts. For example, a D2111 shipped from the factory contains the
same transfer function as a D1111 module; in this case they are both ±100
mV inputs and communicate with RS-232C.
Before any attempt is made to program a D2000, you must first be
familiar with the operation of a D1000 module as described in this
manual. That is why you received both the D1000 manual and the
D2000 programming manual with your purchase of the D2000. Please
refer to Chapter 1 "Getting Started" of this manual.
The D2000 series hardware is similar to the D1000 series in every respect
except that the D2000 contains built-in commands to create custom input-
to-output transfer functions. All programming is performed through the
communications port of the D2000 module. There is never any need to open
the module case. Modules may be re-ranged remotely as many times as
desired. Function data is stored in nonvolatile memory to retain the scaling
even if power is removed.
Appendix F
D1000/2000 Continuous Operation
All D1000/2000 computer interface modules may be factory-configured to
provide continuous output of analog input data. A D1000/2000 continuous
module is intended for applications where no host computer is present. The
limitation to the continuous mode is that only one module can be on the
communications line.
Interfaces with the “C” option have one connector pin labeled CONT*. This
input pin is used to activate the continuous mode. The “*” in CONT* label
indicates that the signal is active low. The CONT* signal is pulled up
internally in the module and is voltage protected up to ±30Vdc.
If the CONT* line is left open or pulled high (>3.5Vdc), the module will
operate normally as described in the manual. The only change is that the
CONT* input occupies a pin normally used for a digital input or output.
If the CONT* input is pulled low or shorted to GND, the module will
continuously output the analog input data. The data output is transmitted in
the “short form” response format. For example, a typical output would look
like *+00100.00. Each data message starts with an asterisk (*) and is
terminated with a carriage return. Communication delays and line feeds may
be added if necessary using the Set Up Command (see manual).
When the CONT* input is held low, the module will not respond to any input
commands. Usually this is not a problem since in most cases a continuous-
output module is used in a dedicated output-only application. If it is
necessary to send commands to the module, some means of switching the
CONT* line must be employed. This may be in the form of a simple toggle
switch between the CONT* line and GND. The switch may be located local
to the module or a dedicated wire may be run from the module to the host.
In continuous mode, a module will output data after every A/D conversion,
or approximately eight times a second. For baud rates of 300 and 600, the
repetition rate is limited by the time required for communications.
When using higher baud rates, you may notice a slight pause in the data
output after every 15 conversions. This pause is created when the module
performs an internal auto-calibration cycle and is part of normal operation.
Step1. The S1000 utility software is the best way to alter the setup
message in each module. This program will run on any personal com-
puter that is DOS compatible. The configuration process for both mod-
ules should take about 10 minutes after all wiring connections have been
made.
Connect the analog input module to a computer serial port (either COM1:
or COM2:) using the “Figure 1.1 RS-232C Quick Hook-Up” drawing in
Chapter 1 of this users manual. Note that a power supply is also re-
quired. Once the connections are made turn the power supply on and
Continuous Operation F-3
Step 2. Select main menu “SETUP” and enter a module address and
model number. If the module “DEFAULT*” pin is grounded (connected to
GND terminal) then enter address “1” and press <ENTER>. Enter the
correct model number located on the module label and press <ENTER>.
The module setup information will then be read and displayed for editing.
The Baud Rate value is the only value that must change in most cases.
With the mouse pointer, double-click on the Baud Rate box and incre-
ment to the desired value. Press the “+” key to increment the value if a
mouse is not available. After the value has been changed, depress the
<F10> function key to download the new setup value. Press “N” not to
reset the remote device. The analog input module is now configured.
Press the <ESC> key and return to the main menu. Turn the module
power supply off and remove the black screw terminal plug from the side
of the analog input module.
Step 3. Plug the screw terminal plug, that is connected to the computer,
into the side of the analog output module and turn the power supply on.
Select main menu “SETUP” and re-enter the address and new model
number. If the “DEFAULT*” pin is grounded, enter address “1” and press
<ENTER>. Enter the analog output module model number and press
<ENTER>.
The Baud Rate value and “Continuous Enabled” bit are the only values
that must change in most cases. With the mouse pointer, double-click on
the Baud Rate box and increment to the desired value. Double-click on
the “Continuous Input” selection box to “enable” that option. Press the “+”
key to increment either value if a mouse is not available. After the values
have been changed, depress the <F10> function key to download the
new values. Press “N” not to reset the remote device.
The analog output module is now configured. Press the <ESC> key and
return to the main menu. Turn the module power supply off and remove
the black screw terminal plug from the side of the analog output module.
Both modules are now properly configured.
Continuous Operation F-4
Install/Test the configuration
The module setup modifications are complete. Both modules may now
be bench tested or installed into the final application. The module power
supply and communications connections should be straight forward
during installation.
Make sure that the “DEFAULT*” pin on each module IS NOT connected
to ground. For proper “continuous” operation, another pin on each
module MUST BE connected to ground. The “CONT*” pin on the analog
input module and the “DI2” pin on the analog output module must both
be connected to ground (GND pin).
Turn the power supplies on for both modules, apply an test or real signal
input into the analog input module and some corresponding signal level
should be output from the output module.
Appendix G
RTS Operation
The D1000R/2000R series analog input modules interface to radio and
leased telephone line modems. Many of these modems require an RS-232
signal to activate, or “key-up”, the transmitter. They also require adequate
delay time for the transmitter to turn on before transmitting data. The amount
of delay time required varies between modem types and manufacturers.
Typical time periods range from 150ms for leased line modems to 500ms for
radio modems.
THEORY OF OPERATION
The D1000R/2000R series analog input modules each contain an RS-232
Request-To-Send (RTS) output signal. The RTS signal may be activated
using simple ASCII commands. The RTS output signal works together with
three user programmable time delays that control the operation of the RTS
signal. Each delay has a user-programmable range of 0 to 2000ms and may
be set to 1ms resolution. The delay values are stored in EEPROM and must
RTS Operation G-2
be specified using the standard data format ‘+#####.##’. Use the write
protected commands T1, T2 and T3 to specify the delay time values.
The RTS output function is activated using the RTS+ or RTS- commands.
The + and - polarity characters determine the active polarity of the RTS
signal while data is being transmitted. The signal polarity can be either active
high (typically +Vs) or low (zero volts). Use the RTS+ command to specify
an active high output or the RTS- command to specify an active low output.
Once the RTS+ or RTS- command is received, the module will store the
polarity information in internal EEPROM and the RTS output function will be
enabled. The RTS output function will remain enabled until an RTSD
command is received by the module.
In addition to the RTS signal three user programmable time delays are
provided in the RTS series. As shown in Figure G-1, when the RTS module
receives a command it begins the first delay time, T1. After T1 is completed,
the module activates the RTS signal to key the radio transmitter. After the
RTS signal is activated, delay time T2 started to allow the transmitter
adequate time to turn-on. After T2 is completed the module outputs the
buffered response data to the RS-232 Transmit line. When the data
transmission is complete, the module starts delay time T3. After time T3, the
module’s RTS signal turns off and is now ready for the next command.
RTS Operation G-3
The RTS output and the delay time values are disabled while in Default
Mode.
The RTS output is located on digital output bit 0 (DO0/RTS). The digital
output is an open-collector transistor and will require an external pull-up
resistor. The external pull-up may be eliminated if a module contains one
unused digital input bit. All D1000R/2000R series digital input bits contain
an internal 10K ohm pull-up resistor to +5Vdc. Simply connect the DO0/RTS
terminal to the unused digital input.
IDentification (ID)
The IDentification command allows the user to write a message into the
internal nonvolatile memory which may be read back at any time using the
Read IDentification (RID) command. The message may be up to 16
characters long and has no affect on the module operation. Useful informa-
tion such as the module location, calibration date or model number may be
stored for later retrieval.
RTS Operation G-4
The ID command is write protected and checksums are not supported. The
module will abandon any ID command with a message length in excess of
16 characters.
Command: $1RID
Response: *BOILER ROOM
Command: #1RID
Response: *1RIDBOILER ROOM54
Command: $1RT1
Response: *+00100.00
Command: #1RT1
Response: *1RT1+00100.00DC
Command: $1RT2
Response: *+00550.00
RTS Operation G-5
Command: #1RT2
Response: *1RT2+00550.00E6
Command: $1RT3
Response: *+00035.00
Command: #1RT3
Response: *RT3+00035.00E5
Request-To-Send+ (RTS+)
The RTS+ command enables the RTS output function and sets the active
signal polarity to high (positive voltage). The RTS+ command should be
selected for modems that require a positive signal level to enable the
transmitter. During the idle state, while no data is being transmitted, the RTS
output terminal will be low (zero volts).
The RTS+ command is write protected and the polarity value is stored in
EEPROM memory. Therefore, all subsequent power ups will activate the
RTS+ mode eliminating the need for software initialization. The RTS+ mode
will remain active until the module receives a RTSD command.
NOTE: The RTS output function will override any alarm or digital output
commands associated with digital output 0.
Command: $1RTS+
Response: *
Command: #1RTS+
Response: *1RTS+7F
Request-To-Send- (RTS-)
The RTS- command enables the RTS output function and sets the active
signal polarity to low (zero volts). The RTS- command should be selected
for modems that require a low signal level to enable the transmitter. During
the idle state, while no data is being transmitted, the RTS output terminal will
be high (positive voltage).
RTS Operation G-6
The RTS- command is write protected and the polarity value is stored in
EEPROM memory. Therefore, all subsequent power ups will activate the
RTS- mode eliminating the need for software initialization. The RTS- mode
will remain active until the module receives a RTSD command.
NOTE: The RTS output function will override any alarm or digital output
commands associated with digital output 0.
Command: $1RTS-
Response: *
Command: #1RTS-
Response: *1RTS-81
Command: $1RTSD
Response: *
Command: #1RTSD
Response: *1RTSD98
Command: $1T1+00100.00
Response: *
RTS Operation G-7
Command: #1T1+00100.00
Response: *1T1+00100.008A
Command: $1T2+00450.00
Response: *
Command: #1T2+00450.00
Response: *1T2+00450.0093
Command: $1T3+00035.00
Response: *
Command: #1T3+00035.00
Response: *1T3+00035.0093
Command: $1WE
Response: *
Command: #1WE
Response: *1WEF7
Appendix H
D1000/2000 Specifications
Specifications (typical @ +25° C and nominal power supply unless
otherwise noted.)
Analog
• Single channel analog input.
• Maximum CMV, input to output at 60Hz: 500V rms.
• Leakage current, input to output at 115Vrms, 60Hz: <2µA rms.
• 15 bit measurement resolution.
• 8 conversions per second.
• Autozero & autocalibration—no adjustment pots.
Digital
• 8-bit CMOS microcomputer.
• Digital scaling, linearization and calibration.
• Nonvolatile memory eliminates pots and switches.
Digital filtering
• Small and large signal with user selectable time
constants from 0 to 16 seconds.
Events counter
• Up to 10 million positive transitions at 60Hz max., filtered for switch
debounce.
Digital inputs
• Voltage levels: ±30V without damage.
• Switching levels: High, 3.5V min., Low, 1.0V max.
• Internal pull up resistors for direct switch input.
Digital outputs
• Open collector to 30V, 30mA max. load.
Alarm outputs
• HI/LO limit checking by comparing input values to down-loaded HI/LO
limit values stored in memory.
• Alarms: latching (stays on if input returns to within limits) or momentary
(turns off if input returns to within limits).
Communications
• Communications in ASCII via RS-232C, RS-485 ports.
• Selectable baud rates: 300, 600, 1200, 2400, 4800, 9600, 19200,
38400, 57600, 115200.
• NRZ asynchronous data format; 1 start bit, 7 data bits, 1 parity bit and 1
stop bit.
Specifications H-2
Power
Requirements: Unregulated +10V to +30Vdc, 0.75W max (D1500/D2500,
2.0W max.).
Internal switching regulator.
Protected against power supply reversals.
Environmental
Temperature Range: Operating -25°C to +70°C.
Storage -25°C to +85°C.
Relative Humidity: 0 to 95% noncondensing.
Warranty
12 months on workmanship and material.
D1400RTDInputs
• RTD types: α = .00385, .00392, 100Ω at 0°C,
.00388, 100Ω at 25°C.
• Ranges: .00385 = -200°C to +850°C.
.00392 = -200°C to +600°C.
.00388 = -100°C to +125°C.
• Resolution: 0.1°.
• Accuracy: ±0.3°C.
• Span tempco: ±50 ppm/°C max.
• Common mode rejection: 100dB at 50/60Hz.
• Input connections: 2, 3, or 4 wire.
• Excitation current: 0.25mA.
• Lead resistance effect:3 wire - 2.5°C per Ω of imbalance.
4 wire - negligible.
• Max lead resistance: 50Ω.
• Input burnout protection to 120Vac .
• Automatic linearization and lead compensation.
• User selectable °C or °F.
• 1 Digital output.
Frequency Input
• Range: 1Hz to 20KHz.
• Resolution: 0.005% of reading + 0.01Hz.
•Accuracy: ±0.01%ofreading ±0.01Hz.
•Tempco: ±20ppm/ °C.
Timer Input
• Range: 100 µs to 30s.
• Resolution: 0.005% of reading +10 µs.
• Accuracy: ±0.01% of reading ±10 µs.
•Tempco: ±20ppm/ °C.
Accumulator Input
• Input Frequency Range: 1Hz to 10KHz.
Specifications H-5
• Input Timer Range: 100 µs to 30s.
• Pulse Count: Up to 10 million positive transitions.
• Resolution: 0.005% of reading +0.01Hz (Frequency).
0.005% of reading +10 µs (Timer) .
•Accuracy: ±0.01% of frequency reading ±0.01Hz.
±0.01% of timer reading ±10µs.
• Tempco: ±20ppm/°C.
D1700 Digital Inputs/Outputs
D1711, D1712: 15 digital input/output bits.
• User can define any bit as an input or an output.
• Input voltage levels: 0-30V without damage.
• Input switching levels: High, 3.5V min., Low, 1.0V max.
• Outputs: Open collector to 30V, 100mA max. load.
• Vsat: 1.0V max @ 100mA.
• Single bit or parallel I/O addressing.