Can the emc ax150 work without the UPS cable?
I moved my AX-150 to a location that would not allow me to install the UPS as it has redundant power/UPS and you should not connect a UPS to the output of another UPS.
Without the UPS the AX-150 forces the Write Cache to be Disabled. Performance drops, form what I have tested, to around 25x slower. This is due to not just turning off the controllers write cache, but as with ALL RAID controllers, the onboard drive 8/16M write cache is disabled as well so the drives are even slower then they would be if they where not used on a RAID controller.
The write cache disable is your real killer! Actually the write cache is disabled one a week while the REQUIRED battery test is performed.
My solution was to write an APC SmartUPS Serial Emulator that talks to the AX-150 telling it that the UPS is working fine so the write cache never gets turned off, including during the weekly battery test!
Here is the needed RJ45 to DB9F. Colors are base on someone cutting off the end of a cat5 patch cable.
You can find the APC SmartUPS commands off the web.
Communications capture:
Normal Comms from/to AX-150
Y >>
SM<0D><0A>
Q >>
08<0D><0A>
f >>
100.0<0D><0A>
R >>
BYE<0D><0A>
Y >>
SM<0D><0A>
Q >>
08<0D><0A>
f >>
100.0<0D><0A>
R >>
BYE<0D><0A>
!!! Weekly Batt Test Time !!!!!
Y >>
SM<0D><0A>
Q >>
08<0D><0A>
f >>
100.0<0D><0A>
R >>
BYE<0D><0A>
Y >>
SM<0D><0A>
W >> !! Tests battery, like pushing the test button on the front panel
OK<0D><0A>
R >>
BYE<0D><0A>
Y >>
SM<0D><0A>
Q >>
08<0D><0A>
f >>
100.0<0D><0A>
R >>
BYE<0D><0A>
Y >>
SM<0D><0A>
Q >>
08<0D><0A>
f >>
100.0<0D><0A>
X >> !! Self-test results
OK<0D><0A>
l >> !! Low transfer voltage
097<0D><0A>
R >>
BYE<0D><0A>
Y >>
SM<0D><0A>
Q >>
08<0D><0A>
f >>
100.0<0D><0A>
R >>
BYE<0D><0A>
Y >>
SM<0D><0A>
n >> !! Get Serial number
AS0632112344<00><0D><0A>
R >>
BYE<0D><0A>
!!! End of Test !!!
Y >>
SM<0D><0A>
Q >>
08<0D><0A>
f >>
100.0<0D><0A>
R >>
BYE<0D><0A>
Y >>
SM<0D><0A>
Q >>
08<0D><0A>
f >>
100.0<0D><0A>
R >>
BYE<0D><0A>
Y >>
SM<0D><0A>
Q >>
08<0D><0A>
f >>
100.0<0D><0A>
R >>
BYE<0D><0A>
Y >>
SM<0D><0A>
Q >>
08<0D><0A>
f >>
100.0<0D><0A>
R >>
BYE<0D><0A>
I would be happy to share the Delphi source and EXE with anyone that would like to use it. Do not see a place to attach files here.
Can give you snapshot of main command-response logic:
if Result = pmerGood then
begin
tRx := Engine.RxString;
if cbHex.Checked then
Msg(Engine.SeeBytes(tRx)+ ' >> ' + #$0D + #$0A)
else
Msg(Engine.SeeChars(tRx)+ ' >> ' + #$0D + #$0A);
PendingCmd := '';
Engine.CharDelay := 0;
CmdData := 'NA' + #$0D + #$0A;
if length(tRx) > 0 then
case ord(tRx[1]) of
$01 : CmdData := 'Smart-UPS 750 RM' + #$0D + #$0A;
$1A : CmdData := '#uD43127130133136uA43108110112114uI43253257261265uM432252292' + '33237lD43106103100097lA43092090088086lI43208204200196lM43182178174170e47200153045607590oD13120oA13100oI33230240220oM13208s431HMLq4820205081114172023p483090180270360450540630000k4310TNr483000060120180240300360420E443336168ON OFF' + #$0D + #$0A;
ord('A') : CmdData := 'OK' + #$0D + #$0A;
ord('B') : CmdData := '27.40' + #$0D + #$0A;
ord('C') : CmdData := '016.2' + #$0D + #$0A;
ord('D') : begin CmdData := '!!!$'; Engine.CharDelay := 600; end;
ord('E') : CmdData := '336' + #$0D + #$0A;
ord('F') : CmdData := '60.00' + #$0D + #$0A;
ord('G') : CmdData := 'S' + #$0D + #$0A;
ord('I') : CmdData := 'FF' + #$0D + #$0A;
ord('J') : CmdData := '0F,00' + #$0D + #$0A;
ord('K') : CmdData := 'OK' + #$0D + #$0A;
ord('L') : CmdData := '126.7' + #$0D + #$0A;
ord('M') : CmdData := '128.1' + #$0D + #$0A;
ord('N') : CmdData := '125.2' + #$0D + #$0A;
ord('O') : CmdData := '113.0' + #$0D + #$0A;
ord('P') : CmdData := '000.0' + #$0D + #$0A;
ord('Q') : CmdData := '08' + #$0D + #$0A;
ord('R') : CmdData := 'BYE' + #$0D + #$0A;
ord('S') : CmdData := 'OK' + #$0D + #$0A;
ord('U') : begin CmdData := '!!!$'; Engine.CharDelay := 600; end;
ord('V') : CmdData := 'FWD' + #$0D + #$0A;
ord('W') : CmdData := 'OK' + #$0D + #$0A;
ord('X') : CmdData := 'OK' + #$0D + #$0A;
ord('Y') : CmdData := 'SM' + #$0D + #$0A;
ord('a') : CmdData := '3.!$%+?=#|.' + #$01 + #$0E + #$1A + ''')+-89>@ABCDEFGKLMNOPQRSUVWXYZabcefgjklmnopqrsuxyz~' + #$0D + #$0A;
ord('b') : CmdData := '615.3.D' + #$0D + #$0A;
ord('c') : CmdData := 'UPS_IDEN' + #$0D + #$0A;
ord('e') : CmdData := '00' + #$0D + #$0A;
ord('g') : CmdData := '024' + #$0D + #$0A;
ord('f') : CmdData := '100.0' + #$0D + #$0A;
ord('i') : CmdData := 'FWD' + #$0D + #$0A;
ord('j') : CmdData := '0375:' + #$0D + #$0A;
ord('k') : CmdData := '0' + #$0D + #$0A;
ord('l') : CmdData := '097' + #$0D + #$0A;
ord('m') : CmdData := '08/03/06' + #$0D + #$0A;
ord('n') : CmdData := 'AS0632112344' + #$00 + #$0D + #$0A;
ord('o') : CmdData := '120' + #$0D + #$0A;
ord('p') : CmdData := '090' + #$0D + #$0A;
ord('q') : CmdData := '02' + #$0D + #$0A;
ord('r') : CmdData := '000' + #$0D + #$0A;
ord('s') : CmdData := 'H' + #$0D + #$0A;
ord('u') : CmdData := '127' + #$0D + #$0A;
ord('x') : CmdData := '01/01/10' + #$0D + #$0A;
ord('y') : CmdData := '(C) APCC' + #$0D + #$0A;
ord('z') : CmdData := 'CLEAR' + #$0D + #$0A;
ord('9') : CmdData := 'FF' + #$0D + #$0A;
end;
if CmdData <> '' then
begin
if cbHex.Checked then
Msg(Engine.SeeBytes(CmdData)+ #$0D + #$0A)
else
Msg(Engine.SeeChars(CmdData)+ #$0D + #$0A);
Engine.SendMsg := CmdData;
end;
Bob A. Hay
Bob, is there a place you could put the exe that I could grab a copy from?
Bob, Great Article. We have had a hell of a time finding this same cable for the AX100 to an APC SMART UPS 750. Dell doesn't carry the cable anymore and APC doesn't have any knowledge of it. Checking with EMC next. Do you have the original cable wiring specs to include special resistor? Also can you send the source code and .exe to [email protected]. Also what OS Platform will this program run on? Windows? RHEL?
Thanks again!!
×
Can anyone with this cable confirm the pinout? I haven't had success with the pinout displayed above. I have an actual APC750, so I am not emulating the UPS. The pinout above that only uses 3 wires doesn't not get interpreted by the ax150i as being a valid APC750.
Any help is appreciated,
T
This looks like exactly what we are looking for! the wiring diagram looks a bit confusing though, especially when I look at a more indepth article, which gives a completely different wiring diagram
http://blog.amal.net/?p=3154
Can anyone advise the correct cable pinout please?
Thanks
I'm also very interested in the exe, I can't find the cable anywhere
please send it to [email protected]
Hi,
Can you make the exe available.
Cheers
Scott
Yes it can work but just auto shutdown function will not work means it will not shutdown before empty battery
Thanks for posting this. I am actually trying to recreate the cable and I think I have done it successfully but when i connect via hyper terminal at 2400bps all the SP throws is a "S" which means it trying to tell the UPS to do a soft shut down. The UPS never listens because this command is only valid when the UPS is running on battery. Do you know why the SP is sending an S and not the commands you defined above? I am really stumped, i tested all of the commands your app produces against my UPS and received the same results as your command responses. The SPA still shows the UPS Module as EMPTY but I have been able to create a cable that at least receives the UPS Commands.
Any help you may be able to offer would appreciated because i have been able to find any help from EMC.
×
2,506 views
Usually answered in minutes!
Bob,
Would you mind sending me a copy of the executable? [email protected]
Thanks!
Could you please send me the executable at [email protected].
Thank you.
Anyone have the exe file or source for this? I inherited a AX150 at work and the ups is no longer around. Our whole building on on battery backup and Generator backup so it would take pretty major outage for us to have an issue. But if anyone could send me the EXE or the source that would be awesome. Please send to (jon dot slaterhouse at gmail dot com)
For anyone that is still looking for a program to Emulate the APC SmartUPS for the AX150. Here is a link to one that is done in C#. You will need .Net installed on you system to run this (4.0 it may work with 3.5). I have it running on my system right now and it has allowed for Write Caching to be enabled without the UPS. The program is based on Serial Comm program found here http://www.dreamincode.net/forums/topic/...
The program i am using can be found @http://slaterhouse.com/AX150_APC.zip
I will be making some changes to it as the program right now has alot more to it then needed, but for right now it does work. (do not use the HEX option as it has not been finished.)
If you would like the source for this let me know.
jon dot slaterhouse at gmail dot com
×