Академический Документы
Профессиональный Документы
Культура Документы
--------------------------------------------------------------------------------
Description
Here's the information on the elusive APC smart signalling protocol used by thei
r higher end units (Back-UPS Pro, Smart-UPS, Matrix-UPS, etc). What you see here
has been collected from a variety of sources. Some people analyzed the chatter
between PowerChute and their hardware. Others sent various characters to the UPS
and figured out what the results meant.
RS-232 differences
Normal 9 pin serial connections have TxD on 3 and RxD on 2. APC's smart serial p
orts put TxD on pin 1 and RxD on pin 2. This means you go nowhere if you use a n
ormal straight through serial cable. In fact, you might even power down the load
if you plug one of those cables in. This is due to the odd routing of pins - DT
R and RTS from the PC usually wind up driving the on/off line. So, when you open
the port, they go high and *poof* your computer dies.
Originally this evil hack was used to connect the UPS to the PC when this page w
as first being built. As you can see, I cheated and neglected the ground (only 2
wires!) and it still worked. This method can be used for playing around, but fo
r professional systems this is obviously not a viable option.
That hack didn't work out so well (damned cats), so it was retired quite awhile
back. The most practical solution was to go out and BUY the DOS/Win version of P
owerchute just for the black (smart) cable. I recommend doing the same thing if
you actually care about this thing working properly. Of course, if you have one
of the newer packages that came with PowerChute, you already have the cable you
need.
Diagram for cable hackers
If you are handy with cable creation tools, check out the 940-0024C clone diagra
m. That's the black "smart" cable normally provided with APC models sold after 1
996. The loopback pins on that diagram are used to keep PowerChute happy by allo
wing cable detection. If you use the NUT apcsmart driver, those pins don't matte
r.
Many thanks to Steve Draper for providing this scan.
The Smart Protocol
Despite the lack of official information from APC, this table has been construct
ed. It's standard RS-232 serial communications at 2400 bps/8N1. Don't rush the U
PS while transmitting or it may stop talking to you. This isn't a problem with t
he normal single character queries, but it really does matter for multi-char thi
ngs like "@000". Sprinkle a few calls to usleep() in your code and everything wi
ll work a lot better.
Character Meaning Typical results Other info
^A Model string SMART-UPS 700 Spotty support for this query on older models
^N Turn on UPS n/a Send twice with > 1.5s delay between chars
Only on 3rd gen SmartUPS and Black Back-UPS Pros
^Z Capability string (long string) See "Capabilities" section for more info
A Front panel test Light show + "OK" Also sounds the beeper for 2 seconds
B Battery voltage 27.87 This obviously varies a lot based on the current charge
.
Compare this to the nominal battery voltage
C Internal temperature 036.0 Units are degrees C
D Runtime calibration !, then $ Runs until battery is below 25% (35% for Matrix
)
This updates the 'j' values - only works at 100% battery charge
Can be aborted with a second "D"
E Automatic selftest intervals 336 Writable variable
Values:
336 (14 days)
168 (7 days)
ON (at power on) (note extra space)
OFF (never)
F Line frequency, Hz 60.00 If this varies much, have a word with your local elec
trician
G Cause of transfer O Writable variable
Values:
R (unacceptable utility voltage rate of change)
H (high utility voltage)
L (low utility voltage)
T (line voltage notch or spike)
O (no transfers yet since turnon)
S (transfer due to U command or activation of UPS test)
I Measure-UPS
Alarm enable (not yet recorded) (bitmapped table, coming soon)
J Measure-UPS
Alarm status (not yet recorded) (bitmapped table, coming soon)
K Shutdown with grace period OK Send twice with > 1.5s delay between chars
Older units may send "*" instead of "OK"
Also see grace period
L Input line voltage 118.3 Does not necessarily read 000.0 on line failure
M Maximum line voltage 118.9 This is the max voltage since the last time this q
uery was run
N Minimum line voltage 118.9 Like the one above, this one also resets itself on
every query
O Output voltage 118.3 Also see on battery output voltage
P Power load % 023.5 Relative to the capacity of the UPS
Q Status flags 08 See status flags section for more info
R Turn dumb BYE Only on 3rd gen Smart-UPS, Smart-UPS v/s, Back-UPS Pro
UPS must receive command to enter smart mode continue communications after sendi
ng this
S Soft shutdown OK Command executes after grace period
UPS goes online when power returns
Only works when on battery
U Simulate power failure !, then $ See async notifier section for info on ! and
$
V Firmware revision GWD Can be used to determine abilities of hardware
W Self test OK Tests battery, like pushing the test button on the front panel
Also see test results entry
X Self-test results OK Values:
OK - good battery
BT - failed due to insufficient capacity
NG - failed due to overload
NO - no results available (no test performed in last 5 minutes)
Y Enter smart mode SM This must be sent before anything else on this page will
work.
Also see turn dumb command to exit smart mode
Z Shutdown immediately n/a Send twice with > 1.5s delay between chars
UPS switches the load off immediately (no grace period)
a Protocol info (long string) Returns three main sections:
Protocol version
Alert messages (aka async notifiers)
Valid commands
Sections are separated with a period
b Firmware revision 50.9.D Decoding above info:
50 = SKU (variable length)
9 = firmware revision
D = country code (used in capability decoding)
c UPS local id UPS_IDEN Writable variable
Up to 8 letter identifier for keeping track of your hardware
e Return threshold 00 Writable variable
Minimum battery charge % to return from shutdown after power returns
Values:
00 = 0% (UPS switches on immediately)
01 = 15%
02 = 25%
03 = 90%
This prevents excessive cycling during multiple power failures
g Nominal battery voltage 024 The battery voltage that's expected to be present
in the UPS normally
Compare to the actual voltage reading
f Battery level 099.0 Percentage
It's much easier to use this rather than doing math on the current battery volta
ge and the nominal battery voltage
h Measure-UPS
Ambient humidity 042.4 Percentage
Only works on models with the Measure-UPS SmartSlot card
i Measure-UPS
Dry contacts 00 Bitmapped hex variable
Component values:
10 = contact 1
20 = contact 2
40 = contact 3
80 = contact 4
j Estimated runtime 0327: Minutes
Must be calibrated to be effective
k Alarm delay 0 Writable variable
Values:
0 = 5 second delay after power failure
T = 30 second delay
L = alarm at low battery only
N = alarm disabled
Does not affect low battery warning
l Low transfer voltage 103 Writable variable
See capabilities to get values for a UPS
UPS goes on battery after voltage drops below this point
m Manufacturing date 11/29/96 Format may vary by country (MM/DD/YY vs DD/MM/YY)
n Serial number WS9643050926 Unique for each UPS
o On-battery voltage 115 May be a writable variable on 220/230/240 VAC units
p Shutdown grace delay 020 Writable variable - seconds
See capabilities to read values
Sets the delay before soft shutdown completes
q Low battery warning 02 Writable variable - minutes
See capabilities to read values
The UPS will report a low battery this many minutes before it runs out of power
r Wakeup delay 000 Writable variable - seconds
See capabilities to read values
The UPS will wait this many seconds after reaching the minimum charge before ret
urning online
s Sensitivity H Writable variable
See capabilities to read values
Meaning of values:
H - highest
M - medium
L - lowest
A - autoadjust (Matrix only)
u Upper transfer voltage 132 Writable variable
See capabilities to read values
UPS goes on battery after voltage rises above this poiont
v Measure-UPS
Firmware (not yet recorded) Firmware information for Measure-UPS board
t Measure-UPS
Ambient temperature 80.5 Degrees C
Only works on models with the Measure-UPS SmartSlot card
x Last battery change 11/29/96 Writable variable
This holds whatever the user sets in it, much like the UPS local id variable
y Copyright notice (C) APCC Only works if firmware letter is later than O
z Reset to factory settings CLEAR Resets most variables to initial factory valu
es except identity or battery change date
Not on SmartUPS v/s or BackUPS Pro
- Capability cycle (various) Cycle through possible capability values
UPS sends | afterward to confirm change to PROM
@nnn Shutdown and return OK UPS shuts down after grace period with delayed wake
up after nnn tenths of an hour plus any wakeup delay time
Some older models send * instead of OK
0x7f Abort shutdown OK Abort shutdown - use to abort @, S, K
Also known as the delete key in some places
~ Register #1 n/a See register 1 table
' Register #2 n/a See register 2 table
7 Dip switch positions n/a See dip switch table
Only makes sense on models which actually have dip switches
8 Register #3 n/a See register 3 table
9 Line quality FF Values
00 - unacceptable
FF - acceptable
> Battery packs n/a SmartCell models: returns number of connected packs
Non-SmartCell models: returns number set by user (use + and -)
[ Measure-UPS
Upper temp limit (not yet recorded) Degrees C
] Measure-UPS
Lower temp limit (not yet recorded) Degrees C
{ Measure-UPS
Upper humidity limit (not yet recorded) %
} Measure-UPS
Lower humidity limit (not yet recorded) %
Matrix-UPS and Symmetra commands
^ Run in bypass mode n/a If online, "BYP" response is received as bypass mode st
arts
If already in bypass, "INV" is received and UPS goes online
If UPS can't transfer, "ERR" received
< Number of bad battery packs 000 Returns count of bad packs connected to the UP
S
/ Load current n/a True RMS load current drawn by UPS
\ Apparent load power n/a Output load as percentage of full rated load
^V Output voltage selection n/a Writable variable
Values:
A - Automatic (based on input tap)
M - 208 VAC
I - 240 VAC
^L Front panel language n/a Writable variable
Values:
E - English
F - French
G - German
S - Spanish
Also 1, 2, 3, 4 - unknown
w Run time conservation n/a Writable variable
Values:
NO - disabled
02 - leave 2 minutes of runtime in battery
05 - leave 5 minutes
08 - leave 8 minutes
Register 2
Matrix UPS models report bits 0-5. SmartUPS models only support bits 4 and 6. Sm
artUPS v/s and BackUPS Pro report bits 4, 6, 7. Unused bits are set to 0. Other
models do not respond.
Bit Meaning
0 Fan failure in electronics, UPS in bypass
1 Fan failure in isolation unit
2 Bypass supply failure
3 Output voltage select failure, UPS in bypass
4 DC imbalance, UPS in bypass
5 Command sent to stop bypass with no battery connected - UPS still in bypass
6 Relay fault in SmartTrim or SmartBoost
7 Bad output voltage
Register 3
All bits are valid on the Matrix UPS and 3rd generation SmartUPS models. SmartUP
S v/s and BackUPS Pro models report bits 0-5. All others report 0-4. State chang
e of bits 1,2,5,6,7 are reported asynchronously with ? and = messages.
Bit Meaning
0 Output unpowered due to shutdown by low battery
1 Unable to transfer to battery due to overload
2 Main relay malfunction - UPS turned off
3 In sleep mode from @ (maybe others)
4 In shutdown mode from S
5 Battery charger failure
6 Bypass relay malfunction
7 Normal operating temperature exceeded
Capabilities
Upon sending a ^Z, your UPS will probably spit back something like this (truncat
ed here for the example):
#uD43132135138129uM43229234239224uA43110112114108 ....
It looks bizarre and ugly, but is easily parsed. The # is some kind of marker/id
ent character. Skip it. The rest fits this form: