# Property of PMA Electrical Solutions, LLC. # # Allen-Bradley PowerFlex 755 AND PowerFlex 753 — PowerFlex 750-Series. # 755T (the AFE/regen drive) is NOT claimed: it is a different product with its # own documentation and was not sourced. # # WHY THE 753 IS CLAIMED HERE, WITH PAGES — one map, two drives. # 750-PM001Q-EN-P is written for both drives and says which parts are not: # p. 10 Manual Conventions: "Specific drives within the PowerFlex 750-Series # can be referred to as: - PowerFlex 753 ... - PowerFlex 755 ...". # p. 23 parameter-table tag legend: "753 = Parameter or option is specific to # PowerFlex 753 drives only. 755 = Parameter or option is specific to # PowerFlex 755 drives only." An UNTAGGED row is therefore common to # both. Every parameter this profile reads or writes — P1, P2, P3, P7, # P8, P9, P10, P11, P20-22, P935, P951-953 in Chapter 3 "Drive Port 0 # Parameters" (pp. 52-54, 159, 166) and the Logic Command/Status words # (pp. 243-244) — carries NO 753 or 755 tag. The tagged rows are the # 753's integrated I/O (P220-P291, pp. 76-81) and 755-only options, # none of which this profile touches. # 20COMH-RN006B p. 1: 20-COMM-H firmware 2.009 "Added support for PowerFlex # 750-Series drives (PowerFlex 753 and PowerFlex 755)". # 20COMH-RN006B p. 7: "For PowerFlex 753 and PowerFlex 755 Drives, these # restrictions apply:" — one restriction list, no per-model carve-out. # NOT checked on either drive: 750-IN001 (installation instructions) is where # the 20-COMM Carrier's mounting and the per-model option-port count live. It # was not sourced. Confirm the carrier physically fits the 753 in front of you. # # EVERY 750-SERIES METERING PARAMETER IS IEEE-754 FLOAT, NOT A SCALED INTEGER. # 750-PM001Q p. 52 gives data type "RO Real" for P1 [Output Frequency], P3 # [Mtr Vel Fdbk], P7 [Output Current], P8 [Output Voltage], P9 [Output Power], # P11 [DC Bus Volts] and the P20-P22 rated values. Decoding one as an integer # is not a rounding error — the exponent bits land in the value bits, so 60.0 Hz # reads as 1114636288. Every metering point below therefore carries # `float = true`, which core decodes with f32::from_bits (see codec.rs). # # MODBUS PATH ASSUMED BY THIS PROFILE # The PowerFlex 755 has embedded EtherNet/IP, NOT embedded Modbus RTU. Serial # Modbus needs a **20-COMM-H RS-485 adapter in a 20-COMM Carrier # (20-750-20COMM)**, protocol switch set to Modbus RTU. # - 20-COMM-H firmware **2.009 or later is REQUIRED**. 20COMH-RN006 lists # "Added support for PowerFlex 750-Series drives (PowerFlex 753 and # PowerFlex 755)" as a 2.009 enhancement. Older firmware will not work. # - Adapter par 33 [RTU Memory Map] must be **0 "Legacy"** (the default). # Setting 1 "PF4-Class" swaps in the PowerFlex 4-class map and every address # below becomes wrong. That parameter also arrived in 2.009. # - Adapter par 32 [RTU Param Mode] must be **1 "32-bit Mode"**. This is NOT # the default, and it is not optional here: 750-Series parameters are 32-bit, # and in the default 16-bit mode a Real cannot be read at all. Setting it # changes the address formula for EVERY parameter — see below. # - 20COMH-RN006 restriction: the adapter cannot access drive DPI port 7 or # higher. Only port 0 (the drive itself) is used here. # # SOURCES — Rockwell primary documentation only: # 750-PM001Q-EN-P, PowerFlex 750-Series Programming Manual (November 2024) # p. 10, p. 23 model coverage and the 753/755 tag legend — see above # p. 52 P1…P12 data types — the "RO Real" finding above # p. 54 P20 [Rated Volts], P21 [Rated Amps], P22 [Rated kW], all # "RO Real" ([rating] reads P21 from here) # p. 159 P935 [Drive Status 1], the full 32-bit map used below # pp. 166-167 P951 [Last Fault Code], P952/953 Fault Status A/B # p. 242 the 20-COMM carrier upper-word restriction # p. 243 Table 4, Logic Command Word — every [control] value below # p. 244 Table 5, Logic Status Word # p. 315 fault display formats (Port 0 = bare event number) # pp. 316-332 Table 10, the fault/alarm code table below # 20COMM-UM009D-EN-P, 20-COMM-H RS-485 HVAC Adapter User Manual # p. 4-2 the addressing rule # p. 4-4 Table 4.C, register map and parameter direct access # p. 4-7 Table 4.F, logic command and reference register outputs # pp. B-1…B-4 adapter parameter defaults # 20COMH-RN006B-EN-E, 20-COMM-H Firmware Revision 2.009 Release Note # (September 2012, supersedes 20COMH-RN006A-EN-E) # pp. 1-2 750-Series support, par 33 [RTU Memory Map], DPI port limit # p. 7 "For PowerFlex 753 and PowerFlex 755 Drives, these # restrictions apply" — word order and the 1:32 reference scale # # ADDRESSING — 0-BASED PROTOCOL ADDRESSES, FC03/06/16 HOLDING REGISTERS. # 20COMM-UM009D p. 4-2: "you must address it to one less than the Modbus # address in the manual", worked as Logic Command 4x0001 -> data address 0000. # Table 4.C gives parameter direct access as "4x1000 + (param # x 2)" in 32-bit # mode, so with par 32 = 1: # 0-based address = 999 + (2 * parameter number) # P1 [Output Frequency] -> 999 + 2 = 1001 # P7 [Output Current] -> 999 + 14 = 1013 # P935 [Drive Status 1] -> 999 + 1870 = 2869 # In the default 16-bit mode the formula is 999 + param# instead and NONE of # these addresses are right. Confirm par 32 before trusting anything here. # CAUTION: p. 4-9 of the adapter manual writes the 16-bit formula as "41000 + # (Drive Parameter #)" and then says parameter 1 is at 41000, one less than its # own formula gives. Table 4.C and the formula agree, so the worked example is # treated as the error — the identical contradiction is flagged in # rockwell_smc50.toml and rockwell_smcflex.toml. # # ###################### WORD ORDER — QUOTED FOR FLOATS, INFERRED FOR INTS #### # Every point here is two registers, so word order decides whether the values # are right or nonsense. Rockwell states it per access method, and the three # methods DISAGREE. 20COMH-RN006B p. 7, under "For PowerFlex 753 and PowerFlex # 755 Drives, these restrictions apply", "32-bit floating point parameters are # mapped as follows": # - "Datalinks are mapped as Little Endian (that is, Low/High word ordering)" # - "User In/Out registers are mapped as Big Endian (that is, High/Low word # ordering)" # - "Direct DPI parameters are mapped as Big Endian (that is, High/Low word # ordering)" # EVERY point in this file is Drive Parameter Direct Access (4x1000 + param#*2), # i.e. a direct DPI parameter. For the ten FLOAT points and [rating] that rule # is a QUOTATION. For the 32-bit INTEGER points — status_word (P935), # fault_status_a/b (P952/953), [faults] P951 and [running_check] — RN006B # scopes its list to "32-bit floating point parameters", so high_first there is # an INFERENCE by analogy, stated as such. If the integer order were actually # low_first, P935 bit 1 would land on bit 17 "Jogging" — so BENCH CHECK the # integers separately: with the drive stopped and then modulating, confirm bit # 1 of the 2869 read follows "Active", not bit 17. # An earlier revision of this file used "low_first" throughout, inferred from # the adapter's own I/O image — Table 4.C/4.F put "Reference Lo (Bits 0…15)" at # 4x0002 and "Reference Hi" at 4x0003, and Feedback the same way at # 3x0002/3x0003. That Lo/Hi order is real, but it governs the I/O IMAGE ONLY, # which this profile does not read. # FLOAT BENCH CHECK: read P11 [DC Bus Volts] at 1021. On a 480 V drive it # should be roughly 650-680 V DC. A denormal near zero or a wild number means # the installed adapter firmware does not behave as RN006B describes — flip # word_order to "low_first" on every point in this file before trusting any of # it, and treat [rating] as unusable until it reads a sane amp figure. # ############################################################################# # # PROBE: 20COMM-UM009D p. 4-9 — "The 32-bit adapter mode requires a minimum of # two registers to read or write." The 1-word probe read below may therefore # draw an exception from the adapter; core counts a NAK as the device being # alive (scan treats a NAK as FOUND), so that is acceptable for liveness. # # THE LOGIC I/O UPPER WORD IS UNREACHABLE — BUT PARAMETERS ARE NOT. # 750-PM001Q p. 242: "When a 20-COMM Carrier (20-750-20COMM) is used to install # a 20-COMM adapter on a 750-Series drive, the upper word (Bits 16…31) of the # Logic Command Word and Logic Status Word are not accessible." That restricts # the I/O IMAGE, which is why [control] below uses only lower-word command bits # — Coast Stop (16), Current Limit Stop (17) and Run (18) are out of reach. # It does NOT restrict parameter direct access, so P935 read as a parameter # still yields all 32 bits, and its bits 16-31 are named below. # # DRIVE-SIDE SETUP — without these the drive ACKs and ignores control writes. # Point the drive's command and reference at the adapter's port: P545 [Ref A # Sel] and the start/stop mask parameters must name the option port the # carrier occupies. Adapter par 16 [DPI I/O Cfg] bit 0 = 1 (Cmd/Ref), default. # Adapter node address: rotary switches, or switches at 00 and adapter par 03. name = "Allen-Bradley PowerFlex 755 / 753" vendor = "Allen-Bradley" device_type = "vfd" verified = false probe_register = 2869 # P935 Drive Status 1, readable whenever the adapter is up # 20-COMM-H defaults, 20COMM-UM009D Appendix B: par 05 [Net Rate Cfg] = 1 # (9600), par 07 [Net Parity Cfg] = 0 (None), par 30 [Stop Bits Cfg] = 0 # (1 bit). Confirm against the module actually installed. [serial] baudrate = 9600 parity = "N" stopbits = 1 [monitor] # P935 [Drive Status 1], RO 32-bit Integer, 750-PM001Q p. 159. Read as a # parameter, so the full 32 bits arrive despite the carrier's I/O-image # restriction. Bits 10-14 are a 5-bit Reference Source field, not flags. status_word = { address = 2869, words = 2, word_order = "high_first", bits = { 0 = "Ready", 1 = "Active", 2 = "CommandDir", 3 = "ActualDir", 4 = "Accelerating", 5 = "Decelerating", 6 = "Alarm", 7 = "Faulted", 8 = "AtSpeed", 9 = "Manual", 10 = "SpdRefBit0", 11 = "SpdRefBit1", 12 = "SpdRefBit2", 13 = "SpdRefBit3", 14 = "SpdRefBit4", 15 = "EmrgOvrRide", 16 = "Running", 17 = "Jogging", 18 = "Stopping", 19 = "DCBraking", 20 = "DBActive", 21 = "SpeedMode", 22 = "PositionMode", 23 = "TorqueMode", 24 = "AtZeroSpeed", 25 = "AtHome", 26 = "AtLimit", 27 = "CurLimit", 28 = "BusFrqReg", 29 = "EnableOn", 30 = "MotorOL", 31 = "Regen" } } # # Metering, all "RO Real" per 750-PM001Q p. 52. Units are the manual's own, and # a Real is already in engineering units — no scale factor applies, which is # exactly why reading these as scaled integers was never going to work. output_frequency = { address = 1001, words = 2, float = true, word_order = "high_first", unit = "Hz" } # P2/P3 units are "Hz / RPM, depending on the value of P300 [Speed Units]" # (750-PM001Q p. 52) — the Hz label below is only correct while P300 = Hz. commanded_speed_ref = { address = 1003, words = 2, float = true, word_order = "high_first", unit = "Hz" } motor_velocity_fdbk = { address = 1005, words = 2, float = true, word_order = "high_first", unit = "Hz" } motor_current = { address = 1013, words = 2, float = true, word_order = "high_first", unit = "A" } output_voltage = { address = 1015, words = 2, float = true, word_order = "high_first", unit = "V" } output_power = { address = 1017, words = 2, float = true, word_order = "high_first", unit = "kW" } power_factor = { address = 1019, words = 2, float = true, word_order = "high_first" } dc_bus_volts = { address = 1021, words = 2, float = true, word_order = "high_first", unit = "V" } # P20-P22, the drive's own nameplate. Compare these against a replacement unit # before restoring a configuration onto it. rated_volts = { address = 1039, words = 2, float = true, word_order = "high_first", unit = "V" } rated_amps = { address = 1041, words = 2, float = true, word_order = "high_first", unit = "A" } rated_kw = { address = 1043, words = 2, float = true, word_order = "high_first", unit = "kW" } # P952 / P953, active-fault bitfields (750-PM001Q pp. 166-167). Bit meanings # were NOT transcribed: P952's bits come from P937 [Condition Sts 1] ("See # parameter 937 for bit descriptions", p. 166) and P953 carries its own option # list on p. 167 — add them from those pages rather than guessing. fault_status_a = { address = 2903, words = 2, word_order = "high_first" } fault_status_b = { address = 2905, words = 2, word_order = "high_first" } # Logic Command Word, 750-PM001Q p. 243 Table 4, written to the adapter's # holding register 4x0001 -> 0-based 0 (20COMM-UM009D p. 4-4 Table 4.C). # Lower-word bits only, per the carrier restriction above: # 0 Normal Stop 1 Start 2 Jog 1 3 Clear Fault # 4-5 Unipolar Direction (01 = Forward, 10 = Reverse, 11 = Hold) # 6 Manual 8-9 Accel Time 10-11 Decel Time 12-14 Ref Select # 15 Emrg OvrRide # # Table 4 footnote (1): "A Not Stop condition (logic bit 0 = 0) must first be # present before a 1 = Start condition will start the drive." Every run # sequence therefore leads with 0x0000. # # NO SPEED REFERENCE, DELIBERATELY. The adapter carries the reference at # 4x0002/4x0003 (0-based 1 and 2) and sends it only when 4x0003 is written # (20COMM-UM009D p. 4-7 Table 4.F). But the 750-Series reference is a Real in # the drive, and the 16-bit value on the wire is rescaled by adapter par 31 # [RTU Ref Adjust] (default 100.0%) against the drive's own reference # configuration. 20COMH-RN006B p. 7 adds one more layer for these two drives: # "The Reference and Feedback words are internally scaled 1:32 to allow a range # of 0 to 650.00 Hz." That names the mechanism but still does not resolve to a # counts-per-Hz: it does not say whether the 1:32 applies before or after par 31 # [RTU Ref Adjust], nor what the drive's own max-speed configuration does to it, # and the only worked example in 20COMM-UM009D (p. 4-5 Table 4.D, 32767 = 100% = # P55 [Maximum Freq]) is for a PowerFlex 70/700, a different drive. Core can now # decode floats, but that does not tell us what the ADAPTER puts on the wire # here, which is a separate question. A wrong speed scale commands a wrong motor # speed, so speed_register, speed_scale, speed_unit and max_ref are all omitted # rather than guessed. Establish the scale on a bench, or reach the drive # through a 20-750-* module instead. [control] command_register = 0 step_delay = 0.05 # Bit 0 [Normal Stop] — the configured ramp stop. Coast Stop (bit 16) and # Current Limit Stop (bit 17) are in the unreachable I/O upper word. stop = [0x0001] # Clear Normal Stop, then Start (bit 1) with Unipolar Direction = 01 Forward # (bit 4). 0x0002 | 0x0010 = 0x0012. run_fwd = [0x0000, 0x0012] # Same, with Unipolar Direction = 10 Reverse (bit 5). 0x0002 | 0x0020 = 0x0022. # Direction here is a genuine command-bit pair, not the sign of a reference, so # reverse is a distinct word rather than a duplicate of forward. run_rev = [0x0000, 0x0022] # Bit 3 [Clear Fault]. Table 4 footnote (3): "the value must switch from 0 to # 1", hence the framing. Bit 1 [Start] is clear in every step, so this reset # value is NOT a run command. reset = [0x0000, 0x0008, 0x0000] # 20COMM-UM009D Appendix B: adapter par 11 [Network Timeout] is 10 s by default # and par 15 [Comm Flt Action] is 0 = Fault, so a master that goes quiet faults # the drive rather than leaving the motor running. 1 s keepalive sits an order # of magnitude inside that. # CHECK par 18 [Flt Cfg Logic] BEFORE ARMING: it holds the logic command the # adapter hands the drive when comms drop, and it is only safe because its # factory value is 0x0000. If someone has set a Start bit in it, losing comms # becomes a START command. The same trap exists on the embedded EtherNet/IP # side as P58 [Flt Cfg Logic] with P54 [Comm Flt Action] = 4 "Send Flt Cfg". [control.watchdog] interval_ms = 1000 fault = "20-COMM-H network timeout (par 11), action per par 15 [Comm Flt Action]" # P935 bit 1 "Active" — 750-PM001Q p. 159: "Condition is true if drive is # modulating." Preferred over bit 16 "Running" because it is true exactly when # the drive is producing output, and because it survives a fallback to the # adapter's 16-bit mode where only the low word arrives. [running_check] register = 2869 words = 2 bit = 1 # P951 [Last Fault Code], RO 32-bit Integer, "the fault code of the first fault # since the last reset" (750-PM001Q p. 166). Read as a full 32-bit parameter, so # the documented max of 424648720 is no longer truncated. [faults] register = 2901 words = 2 # 750-PM001Q Table 10, "Drive Fault and Alarm Types, Descriptions, and # Actions", pp. 316-332, transcribed from the Event No. / Fault-Alarm Text # columns. p. 315 confirms the decoding: "Port 00 (Host Drive) displays the # event number only", which is what P951 returns for the host drive. Some rows # carry per-model qualifiers in the ACTION column only (e.g. 917 FPGA CRC # Failure is Resettable on a 753); the event numbers themselves are common. # 14037 is Table 10's own port-prefixed example row (event 37 on port 14). [faults.codes] 0 = "No Entry" 2 = "Auxiliary Input" 3 = "Power Loss" 4 = "UnderVoltage" 5 = "OverVoltage" 7 = "Motor Overload" 8 = "Heatsink OvrTemp" 9 = "Trnsistr OvrTemp" 10 = "DynBrake OvrTemp" 12 = "HW OverCurrent" 13 = "Ground Fault" 14 = "Ground Warning" 15 = "Load Loss" 17 = "Input Phase Loss" 18 = "Motor PTC Trip" 19 = "Task Overrun" 20 = "TorqPrv Spd Band" 21 = "Output PhaseLoss" 24 = "Decel Inhibit" 25 = "OverSpeed Limit" 26 = "Brake Slipped" 27 = "Torq Prove Cflct" 28 = "TP Encls Config" 29 = "Analog In Loss" 30 = "Relay0 Life" 33 = "AuRsts Exhausted" 34 = "AutClrFltExhaust" 35 = "IPM OverCurrent" 36 = "SW OverCurrent" 38 = "Phase U to Grnd" 39 = "Phase V to Grnd" 40 = "Phase W to Grnd" 41 = "Phase UV Short" 42 = "Phase VW Short" 43 = "Phase WU Short" 44 = "Phase UNegToGrnd" 45 = "Phase VNegToGrnd" 46 = "Phase WNegToGrnd" 48 = "System Defaulted" 49 = "Drive Powerup" 51 = "Clr Fault Queue" 55 = "Ctrl Bd Overtemp" 58 = "Module Defaulted" 59 = "Invalid Code" 61 = "Shear Pin 1" 62 = "Shear Pin 2" 64 = "Drive OverLoad" 66 = "OW Torq Level" 67 = "Pump Off" 68 = "OW Torq Level Lo" 71 = "Port 1 Adapter" 72 = "Port 2 Adapter" 73 = "Port 3 Adapter" 74 = "Port 4 Adapter" 75 = "Port 5 Adapter" 76 = "Port 6 Adapter" 77 = "IR Volts Range" 78 = "FluxAmpsRef Rang" 79 = "Excessive Load" 80 = "AutoTune Aborted" 81 = "Port 1 DPI Loss" 82 = "Port 2 DPI Loss" 83 = "Port 3 DPI Loss" 84 = "Port 4 DPI Loss" 85 = "Port 5 DPI Loss" 86 = "Port 6 DPI Loss" 87 = "IXo VoltageRange" 91 = "Pri VelFdbk Loss" 93 = "Hw Enable Check" 94 = "Alt VelFdbk Loss" 95 = "Aux VelFdbk Loss" 96 = "PositionFdbkLoss" 97 = "Auto Tach Switch" 100 = "Parameter Chksum" 101 = "PwrDn NVS Blank" 102 = "NVS Not Blank" 103 = "PwrDn NVS Incomp" 104 = "Pwr Brd Checksum" 106 = "Incompat MCB-PB" 107 = "Replaced MCB-PB" 108 = "Anlg Cal Chksum" 110 = "Ivld Pwr Bd Data" 111 = "PwrBd Invalid ID" 112 = "PwrBd App MinVer" 113 = "Tracking DataErr" 115 = "PwrDn Table Full" 116 = "PwrDnEntry2Large" 117 = "PwrDn Data Chksm" 118 = "PwrBd PwrDn Chks" 124 = "App ID Changed" 125 = "Using Backup App" 134 = "Start On PowerUp" 137 = "Ext Prechrg Err" 138 = "Precharge Open" 141 = "Autn Enc Angle" 142 = "Autn Spd Rstrct" 143 = "Autotune CurReg" 144 = "Autotune Inertia" 145 = "Autotune Travel" 152 = "No Stop Source" 155 = "Bipolar Conflict" 157 = "DigIn Cfg B" 158 = "DigIn Cfg C" 161 = "Sleep Config" 162 = "Waking" 168 = "HeatSinkUnderTmp" 169 = "PWM Freq Reduced" 170 = "CurLimit Reduced" 171 = "Adj Vltg Ref" 175 = "Travel Lim Cflct" 176 = "Home Config" 177 = "Profiling Active" 178 = "Homing Active" 179 = "Home Not Set" 181 = "Fwd End Limit" 182 = "Rev End Limit" 185 = "Freq Conflict" 186 = "VHz Neg Slope" 187 = "VHz Boost Limit" 190 = "PM FV Pri Fdbk" 191 = "PM FV Alt Fdbk" 192 = "Fwd Spd Lim Cfg" 193 = "Rev Spd Lim Cfg" 194 = "PM OffsetConflict" 195 = "IPMSpdEstErr" 196 = "PM FS Cflct" 197 = "PM Offset Failed" 201 = "SpdReg DL Err" 202 = "AltSpdReg DL Err" 203 = "Port 13 Adapter" 204 = "Port 14 Adapter" 205 = "DPI TransportErr" 210 = "HW Enbl Jmpr Out" 211 = "Safety Brd Fault" 212 = "Safety Jmpr Out" 213 = "Safety Jumper In" 214 = "SafetyPortCnflct" 224 = "Port 4 Comm Loss" 225 = "Port 5 Comm Loss" 226 = "Port 6 Comm Loss" 227 = "Port 7 Comm Loss" 228 = "Port 8 Comm Loss" 229 = "Port 9 Comm Loss" 230 = "Port10 Comm Loss" 231 = "Port11 Comm Loss" 232 = "Port12 Comm Loss" 233 = "Port13 Comm Loss" 234 = "Port14 Comm Loss" 244 = "Port 4 Cfg" 245 = "Port 5 Cfg" 246 = "Port 6 Cfg" 247 = "Port 7 Cfg" 248 = "Port 8 Cfg" 249 = "Port 9 Cfg" 250 = "Port 10 Cfg" 251 = "Port 11 Cfg" 252 = "Port 12 Cfg" 253 = "Port 13 Cfg" 254 = "Port 14 Cfg" 264 = "Port 4 Checksum" 265 = "Port 5 Checksum" 266 = "Port 6 Checksum" 267 = "Port 7 Checksum" 268 = "Port 8 Checksum" 269 = "Port 9 Checksum" 270 = "Port10 Checksum" 271 = "Port11 Checksum" 272 = "Port12 Checksum" 273 = "Port13 Checksum" 274 = "Port14 Checksum" 281 = "Enet Checksum" 282 = "DLX Checksum" 290 = "Prev Maint Reset" 291 = "HSFan Life" 292 = "InFan Life" 293 = "MtrBrng Life" 294 = "MtrBrng Lube" 295 = "MachBrng Life" 296 = "MachBrng Lube" 300 = "Emer Ovr Act" 301 = "Emer Ovr Not Act" 307 = "Port7InvalidCard" 308 = "Port8InvalidCard" 310 = "Regeneration OK" 315 = "Excess Psn Err" 318 = "OutCurShare PhU" 319 = "OutCurShare PhV" 320 = "OutCurShare PhW" 322 = "N-1 Operation" 324 = "DC Bus Mismatch" 327 = "HS Temp Imbal U Ala" 328 = "HS Temp Imbal V" 329 = "HS Temp Imbal W" 331 = "I1 Comm Loss" 332 = "I2 Comm Loss" 333 = "I3 Comm Loss" 341 = "C1 Comm Loss" 342 = "C2 Comm Loss" 343 = "C3 Comm Loss" 351 = "In Cur Share L1" 352 = "In Cur Share L2" 353 = "In Cur Share L3" 357 = "In Vlt Imbal L12" 358 = "In Vlt Imbal L23" 359 = "In Vlt Imbal L31" 360 = "N-1 See Manual" 361 = "Rerate See Manual" 362 = "Cnv/Inv Mismatch" 363 = "CBP/Inv Mismatch" 364 = "CBP Num Mismatch" 365 = "Zero Cnv/Prechrg" 366 = "Cnv Num Mismatch" 371 = "P1 Comm Loss" 372 = "P2 Comm Loss" 380 = "PWM FPGA Overrun" 900 = "900 (critical input exception)" 901 = "Machine Check" 902 = "Data Storage Error" 903 = "Instruction Storage Error" 905 = "Alignment Error" 906 = "Program Error" 907 = "Floating Point Unit Not On" 909 = "Aux Processor Not On" 912 = "Watchdog" 913 = "Data TLB Error" 914 = "Instruction TLB Error" 916 = "FPGA Failed to Load" 917 = "FPGA CRC Failure" 918 = "Control Task Overrun" 919 = "System Task Overrun" 920 = "5 mSec Task Overrun" 921 = "Control Task Stall" 922 = "System Task Stall" 923 = "5 mSec Task Stall" 924 = "Background Task Stall" 925 = "Stack Overflow" 926 = "Ethernet Error" 927 = "CIP Motion Error" 14037 = "Net IO Timeout" # NO [parameters] BLOCK YET. A configuration clone would write the drive's setup # parameters, and most of those are Reals as well. Core can now encode a float # (codec.rs encode() handles float = true), but [parameters] ranges are raw # register spans with no per-register type information, so a restore would write # integer bit patterns into Real parameters. Giving ranges a type is a separate # change; until then a clone of this drive is not safe. # # P21 [Rated Amps], "RO Real" per 750-PM001Q p. 54 ("Continuous current rating # of drive", untagged, so the same parameter on a 753) — the drive's nameplate # current, so a restore can refuse to push a 250 hp configuration onto a 5 hp # frame. This needs a 2-word IEEE-754 read, which [rating] previously could not # express (it built a 1-word integer point and would have returned the float's # exponent half); Rating now carries words/word_order/float. # Same high_first caveat as every other point in this file — see the word-order # block in the header. CONFIRM this reads a sane amp figure before trusting the # guard: a mis-decoded rating fails OPEN, comparing equal to whatever the saved # file holds and waving the restore through. [rating] register = 1041 words = 2 float = true word_order = "high_first" unit = "A" label = "drive rated amps" [connection] summary = "The PowerFlex 753 / 755 has no compatible embedded Modbus port for this profile; install a Rockwell 20-COMM-H RS-485 adapter and connect it through DPI." warnings = ["Lock out the drive/starter, verify stored energy is discharged, and use ESD precautions before installing the adapter.", "The 20-COMM-H must be set to Modbus RTU, not N2 or P1.", "The optional 20-COMM-M Modbus TCP module is not this profile and is not interchangeable.", "Confirm parameter width/memory-map mode exactly as the profile requires before trusting an address."] [[connection.methods]] id = "20_comm_h_rs485" title = "20-COMM-H Modbus RTU option" transport = "serial" hardware = "option" port = "20-COMM carrier in a supported option port; adapter connected to drive Port 0" connector = "20-COMM-H six-pin network plug: TERM, A, B, COM, SHIELD, GND" adapter = "Isolated USB-to-RS-485 adapter" cable = "Belden 3106A three-wire RS-485 cable or equivalent; Belden 3105A two-wire is allowed where COM is intentionally omitted" parts = ["Rockwell 20-COMM-H RS-485 HVAC adapter", "Drive-specific DPI internal interface cable/carrier", "Isolated USB-to-RS-485 adapter", "Belden 3106A or equivalent", "Six-pin linear plug supplied for the adapter"] steps = ["Remove drive/starter and network power and verify discharge.", "Set the 20-COMM-H node-address switches and the protocol selector to RTU before installation.", "Mount and ground the adapter, then connect its internal interface cable to the documented DPI port.", "Land A, B, COM and shield on the six-pin network plug exactly as shown below.", "At a bus end jumper TERM to A; at one network point only jumper SHIELD to GND.", "Restore control power with the motor inhibited, verify adapter status, and prove a read before enabling control."] setup = ["Install the 20-COMM-H in the required 20-COMM carrier and set protocol RTU/node address.", "Set adapter par 32 = 1 (32-bit direct parameters) and configure the 750-Series RTU memory map.", "Enable Cmd/Ref and route control/reference ownership to the option port.", "Verify the carrier/adapter cannot access DPI port 7 or above and this profile uses drive Port 0 only."] warnings = ["Do not install/remove the adapter with the drive energized.", "A = TxRxD- and B = TxRxD+ on this adapter; preserve those literal labels.", "Ground the shield at one point on the entire network."] source = "Rockwell 20COMM-UM009D-EN-P pp. 2-6 and 3-3 to 3-8; 20COMH-RN006B pp. 1-2; 750-PM001Q p. 242." [[connection.methods.wiring]] adapter = "TxRxD- / A / -" device = "20-COMM-H A — TxRxD-" signal = "RS-485 A" [[connection.methods.wiring]] adapter = "TxRxD+ / B / +" device = "20-COMM-H B — TxRxD+" signal = "RS-485 B" [[connection.methods.wiring]] adapter = "COM / signal common" device = "20-COMM-H COM — Signal Common" signal = "Signal reference" [[connection.methods.wiring]] adapter = "Cable shield" device = "20-COMM-H SHIELD" signal = "Shield RC termination" required = false [[connection.methods.wiring]] adapter = "Protective earth at one network point" device = "20-COMM-H GND (jumper to SHIELD at one point only)" signal = "Shield earth bond" required = false