10.1. Modbus RTU over Serial

Modbus RTU is a serial communication protocol that allows devices to communicate over the provided serial interfaces (USB and RS-485). The following connection settings must be used to connect to Modbus RTU on Magna-Power products:

  • Baud Rate: 115200

  • Parity: None

  • Data Bits: 8 bits

If the serial connection settings are configured incorrectly, Modbus messages may result in framing or CRC timeout errors. Further information about framing errors can be found in Error Handling.

Bit Allocation - Read Holding Registers (Function Code = 0x03)

Slave
Address
Function
Code
Starting
Address
(Hi)
Starting
Address
(Lo)
Register
Count
(Hi)
Register
Count
(Lo)
CRC
(Lo)
CRC
(Hi)

0-7

8-15

16-23

24-31

32-39

40-47

48-55

56-63

Bit Allocation - Write Single Register (Function Code = 0x06)

Slave Address

Function Code

Starting
Address
(Hi)
Starting
Address
(Lo)
Write Data
(Hi)
Write Data
(Lo)
CRC
(Lo)
CRC
(Hi)

0-7

8-15

16-23

24-31

32-39

40-47

48-55

56-63

Bit Allocation - Write Multiple Registers (Function Code = 0x10)

Slave
Address
Function
Code
Starting
Address
(Hi)
Starting
Address
(Lo)
Register
Count
(Hi)
Register
Count
(Lo)
Byte
Count
Data
(Hi)
Data
(Lo)
Data
(Hi)
Data
(Lo)
CRC
(Lo)
CRC
(Hi)

0-7

8-15

16-23

24-31

32-39

40-47

48-55

56-63

64-71

72-79

80-87

88-95

96-103

10.2. Modbus Terminology

Slave Address

Address of the device to be communicated to. See Device Addressing Mode for details

Function Code

Defines the type of action to be performed by the device. See Functions for details.

Starting Address Hi/Lo

High/low bytes of the register address the command is referencing. In Table 2, this is listed as the Address.

Register Count Hi/Lo

Number of registers that the command is referencing. In Register List, this is listed as the Register Count. Ex. A register count of 2 should have a Hi value of 00h and a Lo value of 02h

Byte Count

Number of bytes referenced by the command. This number should be twice the Register Count.

Register Value Hi/Lo

High/low value of what is stored in the registers. See Data Format to see how this data is formatted.

CRC Lo/Hi

Cyclic Redundancy Check low and high bytes.

10.3. Device Addressing Mode

Modbus supports unicast and broadcast addressing modes.

In unicast mode request and response messages are sent by a master and slave nodes , respectively. In the master request, the slave address must be included to receive a response from a listening slave device. Magna-Power has this address set to 1.

In broadcast addressing mode, the master sends a request to all listening slaves, but none will respond. The slaves process the message and await the next request. To send a request in broadcast mode, the slave address must be set to 0.

10.4. Functions

Modbus protocol requires a function code, describing read write operations in the second byte of a message. In Table 1, a list of supported function codes and their uses are shown.

Table 1: Modbus Function Codes

Function Code

Name

Use

03 (0x03 Hex)

Read Holding Registers

Read 1-2 16-bit register(s)

06 (0x06 Hex)

Write Single Register

Write to 1 16-bit register

16 (0x10 Hex)

Write Multiple Registers

Write 2 16-bit registers

10.5. Data Format

10.5.1. Data Order

The order in which data is sent or received by the devices is a big-endian system, where the most significant 16-bit register should be sent first, and the following bytes should also go in order of most significant to least significant.

For example, the decimal value 123456789 (0x075BCD15 in hexadecimal), would be constructed and sent as a Modbus message as first 0x07, then 0x5B, 0xCD, and finally 0x15.

10.5.2. Floating Point Numbers

When reading or writing a register with a floating-point data format, as listed in Register List, the data should always be represented using IEEE-754 floating point notation, following the data order outlined in Data Order. For example, writing a value of 3.0 to a register should be sent in a Modbus message as 0x40, 0x40, 0x00, and 0x00.

10.6. Error Handling

Slave devices will respond with an error message if the request was not properly formatted for Magna-Power’s Modbus implementation. The first byte of this error message will be a number above 0x80. The second byte will be the exception code, which identifies the type of error encountered. In Table 3, the possible exception codes that can be received are listed.

Table 3: Modbus Exception Codes

Code

Name

Causes

0x01

Illegal Function

  • A currently unsupported function code has been sent. See Functions for supported function codes.

0x02

Illegal Data Address

  • The number of registers specified in the message does not match. See Register List for register count.

  • The register address and function code do not match any commands. See Register List for command list.

0x03

Illegal Data Value

  • The register count is outside the allowed count. Modify the register count to be 1-2 registers.

  • The register count and byte count conflict. The number of bytes is two times the register count.

Slave will not respond under certain addressing modes and when a request is malformed or corrupted. Non-response can happen when:

  • The queue has overflowed. To prevent overflow, allow more time between Modbus requests.

  • The message is corrupt. This happens when the message’s calculated CRC does not match the sent CRC, which can occur because of electrical noise or malformed messages. Ensure your software forms messages properly, using the correct byte ordering, and is calculating CRC correctly. Modbus CRC is sent low-order byte followed by high-order byte and is calculated using CRC-16.

  • There is a framing error. This can happen when the serial connection is incorrect or if there is electrical noise. Refer to Modbus RTU over Serial on the proper serial configuration.

  • The device is in broadcast addressing mode. By design slaves should not respond in broadcast since slaves’ response messages would trample each other on the network. Verify that the slave address is set to 1 if a response is needed.

10.7. Communication Examples

The ALx Series must be explicitly configured to communicate using the Modbus protocol. The factory default is SCPI Command Set, but can be changed from in the front panel menu Communication Setting-Command Protocol by selecting Modbus. Modbus messages are binary and traditional terminal programs (e.g., PuTTY, HyperTerminal) design for ASCII serial can not be used for communicating with ALx Series. For all the following examples, the open-source Modbus specific program, QModMaster was used to construct messages. Each example outlines a function, its arguments, the request, and the expected response. A screen capture showing field entries in QModMaster are also shown below.

10.7.1. Example Request Source Setpoint

Request

Response

Slave Address

0x01

Slave Address

0x01

Function Code

0x03

Function Code

0x03

Starting Address Hi

0x80

Byte Count

0x02

Starting Address Lo

0xB0

Register Value Hi

0x00

Register Count Hi

0x00

Register Value Lo

0x00

Register Count Lo

0x01

CRC Lo

0xB8

CRC Lo

0xAC

CRC Hi

0x44

CRC Hi

0x2D

../../../../../../_images/modbus-qmodmaster-sourcesetpoint-read.png

10.7.2. Example Set Front Panel Lock

Request

Response

Slave Address

0x01

Slave Address

0x01

Function Code

0x06

Function Code

0x06

Register Address Hi

0x80

Register Address Hi

0x80

Register Address Lo

0x30

Register Address Lo

0x30

Register Value Hi

0x00

Register Value Hi

0x00

Register Value Lo

0x01

Register Value Lo

0x01

CRC Lo

0x61

CRC Lo

0x61

CRC Hi

0xC5

CRC Hi

0xC5

../../../../../../_images/modbus-qmodmaster-lock-write.png

10.7.3. Example Write Current Setpoint to 5.00

Request

Response

Slave Address

0x01

Slave Address

0x01

Function Code

0x10

Function Code

0x10

Starting Address Hi

0x30

Starting Address Hi

0x30

Starting Address Lo

0x10

Starting Address Lo

0x10

Register Count Hi

0x00

Register Count Hi

0x00

Register Count Lo

0x02

Register Count Lo

0x02

Byte Count

0x04

CRC Lo

0x4F

Register Value Hi

0x40

CRC Hi

0x0D

Register Value Lo

0xA0

Register Value Hi

0x00

Register Value Lo

0x00

CRC Lo

0xB3

CRC Hi

0x40

../../../../../../_images/modbus-qmodmaster-setpointcurr-write.png

10.7.4. Example Request Current Setpoint (5.00)

Request

Response

Slave Address

0x01

Slave Address

0x01

Function Code

0x03

Function Code

0x03

Starting Address Hi

0x30

Byte Count

0x04

Starting Address Lo

0x20

Register Value Hi

0x40

Register Count Hi

0x00

Register Value Lo

0x9F

Register Count Lo

0x02

Register Value Hi

0xFF

CRC Lo

0xCA

Register Value Lo

0x60

CRC Hi

0xCE

CRC Lo

0x9E

CRC Hi

0x05

../../../../../../_images/modbus-qmodmaster-setpointcurr-read.png

10.8. Register List

The Modbus protocol consists of requests to specific register addresses stored in memory. Each register contains stored value in memory that can be read from or written to. When a Modbus request is sent by a master to a register address, the listening slave device will respond in one of two ways. If the master’s request was a read operation, the slave device will respond with the value stored at the register that was read. If the master’s request was a write operation, the slave device will set the registers to the requested value and will respond with a confirmation that the registers were written to.

For instance, if the current set point needs to be read, the request message must specify the register address 0x3020, and the listening slave device will respond with its current set point value. Table 2 lists all the register addresses.

Modbus Command

Write Address

Read Address

Description

Operation Commands

StatusQuesQ

N/A

0x10B0

Returns the value of the Questionable Status register

StatusRegQ

N/A

0x10D0

Status Register

Input

0x1110

N/A

Enables or disables the DC input based on parameter setting

Measurement Commands

MeasCurrQ

N/A

0x2010

Measures and returns the average current at the sense location

MeasVoltQ

N/A

0x2020

Measures and returns the average voltage at the sense location

MeasPwrQ

N/A

0x2030

Measures and returns the instantaneous DC power at sense location

MeasResQ

N/A

0x2040

Measures and returns the instantaneous resistance at sense location

Setpoint Commands

SetpointCurr

0x3010

0x3020

Sets the current set-point

SetpointVolt

0x3030

0x3040

Sets the voltage set-point

SetpointPwr

0x3050

0x3060

Sets the power set-point

SetpointRes

0x3070

0x3080

Sets the resistance set-point

Trip Commands

OverTripCurr

0x4010

0x4020

Sets the over current trip (OCT) set-point

OverTripVolt

0x4030

0x4040

Sets the over voltage trip (OVT) set-point

OverTripPwr

0x4050

0x4060

Sets the over power trip (OPT) set-point

UnderTripVolt

0x4070

0x4080

Sets the under voltage trip (UVT) set-point

Slew Commands

RiseRampCurr

0x5010

0x5020

Sets the rising slew rate for current when in current regulation state

RiseRampVolt

0x5030

0x5040

Sets the rising slew rate for voltage when in voltage regulation state

RiseRampPwr

0x5050

0x5060

Sets the rising slew rate for power when in power regulation state

RiseRampRes

0x5070

0x5080

Sets the rising slew rate for resistance when in resistance regulation state

FallRampCurr

0x5090

0x50A0

Sets the falling slew rate for current when in current regulation state

FallRampVolt

0x50B0

0x50C0

Sets the falling slew rate for voltage when in voltage regulation state

FallRampPwr

0x50D0

0x50E0

Sets the falling slew rate for power when in power regulation

FallRampRes

0x50F0

0x5100

Sets the falling slew rate for resistance when in resistance regulation state

Control Commands

PowerRange

0x6010

0x6020

Enables extended power range

ControlMode

0x6030

0x6040

Sets the control mode

Function Generator Commands

FuncType

0x7010

0x7020

Sets the desired function for the integrated function generator

FuncSinAmpl

0x7030

0x7040

Sets the amplitude for the sinusoid function

FuncSinOff

0x7050

0x7060

Sets the DC offset from zero for the sinusoid function’s midline

FuncSinPrd

0x7070

0x7080

Sets the period for the sinusoid function

FuncSquLoLevel

0x7090

0x70A0

Sets the low level amplitude for the square function

FuncSquHiLevel

0x70B0

0x70C0

Sets the high level amplitude for the square function

FuncSquLoPrd

0x70D0

0x70E0

Sets the period that the square function remains at the low level amplitude

FuncSquHiPrd

0x70F0

0x7100

Sets the period that the square function remains at the high level amplitude

FuncStepLoLevel

0x7110

0x7120

Sets the low level amplitude for the step function

FuncStepHiLevel

0x7130

0x7140

Sets the high level amplitude for the step function

FuncRampLoLevel

0x7150

0x7160

Sets the low level amplitude for the ramp function

FuncRampHiLevel

0x7170

0x7180

Sets the high level amplitude for the ramp function

FuncRampRisePrd

0x7190

0x71A0

Sets the period for the ramp function to transition from low to high level amplitude

FuncRampFallPrd

0x71B0

0x71C0

Sets the period for the ramp function to transition from high to low level amplitude

Configuration Commands

FactoryRestore

0x8010

N/A

Restores the factory EEPROM data

Lock

0x8030

0x8020

Locks and unlocks the product from configuration and set-point changes

SenseMode

0x8060

0x8070

Configures the sense location and automated compensation values

SetSource

0x80A0

0x80B0

Sets the setpoint source

The Magna-Power implementation for Modbus limits reading/writing to one value (one to two registers) at a time. These registers must be adjacent in memory. For example, for measuring both current and voltage, two separate requests from the master device are needed – one for current and one for voltage.

10.8.1. Operation Commands

10.8.2. StatusQuesQ

This command queries and returns the values of the Questionable Register. This read-only register holds the live (unlatched) questionable statuses of the MagnaLOAD electronic load. Issuing this query does not clear the register. The bit configuration of the Questionable Register is shown in the table below.

Address

0x10B0

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Integer

Questionable Register

Bit

Weight

Abbreviation

Description

0

1

OVP

over voltage protection, hard fault

1

2

OCT

over current trip, soft fault

2

4

OVT

over voltage trip, soft fault

3

8

OPT

over power trip, soft fault

4

16

OCP

over current protection, hard fault

5

32

OTP

over temperature protection, hard fault

6

64

RSL

remote sense loss, hard fault

7

128

CC

constant current regulation, regulation status

8

256

CV

constant voltage regulation, regulation status

9

512

CR

constant resistance regulation, regulation status

10

1024

CP

constant power regulation, regulation status

11

2048

SFLT

soft fault, the ord value of all soft faults

12

4096

HFLT

hard fault, the ord value of all hard faults

10.8.3. StatusRegQ

This command queries the Status Register. This read-only register holds the live (unlatched) operation status of the MagnaLOAD electronic load. Issuing a query does not clear the register. The register location and definitions are subject to change after any firmware release to accommodate new features. The Questionable Register is a subset of the status register and does not change between firmware updates. The present bit assignments are shown in the table below.

Address

0x10D0

Function Code

0x03

Access

Read

Register Count

4

Data Format

32-bit Integer

Status Register

Bit

Name

Description

0

standby

output is in standby

1

live

output is active

2

nonhalt1

available

3

nonhalt2

available

4

overCurrTrip

over current trip

5

overVoltTrip

over voltage trip

6

overPwrTrip

over power trip

7

remoteSenseLoss

remote sense voltage outside of acceptable bounds

8

underVoltTrip

under voltage trip

9

shutdown

target is creating a shutdown condition

10

linPwrLim

power across linear modules exceed ratings

11

resPwrLim

power across resistors exceed ratings

12

bootFailure

one or multiple target did not boot up

13

bootState

one or more targets are waiting to boot

14

phaseCurr

rated phase current exceeded

15

comm

communications are corrupted

16

overCurrProtect

terminal current exceeded product rating

17

overVoltProtect

terminal voltage exceeded product rating

18

tempRLin

linear module exceeded temperature

19

blownFuse

fuse is blown on the auxiliary power supply

20

interlock

interlock open

21

haltUserClear

available

22

maintenance

maintenance

23

tempDMod

diode modules exceeded temperature

24

incompatibleSysConfig

incompatible system configuration

25

stackOverflow

exceeded firmware stack

26

lineFault

line fault analog/digital inputs

27

tempRMod

resistor module exceeded temperature

28

belowRatedMinVolt

below minimum voltage rating(28)

29

outOfRegulation

out of regulation, unexpected currents measured

30

targetUpgrade

mainctrl upgrading other targets

31

haltSelfClear

available

32

phaseLoss

one or more phase missing

33

blownFuseInput

input fuse blown on fuse/emi filter

34

fanLockedRotor

one or more fan’s rotor has locked

35

notUsed29

available

36

tempPwrMod

power processing module temperature fault

37

tempOutputMod

output filter module temperature fault

38

tempOutputCap

output capacitors temperature fault

39

notUsed25

available

40

notUsed26

available

41

notUsed27

available

42

notUsed28

available

43

notUsed1

available

44

notUsed2

available

45

notUsed3

available

46

notUsed4

available

47

notUsed5

available

48

invalidSysRating

invalid system rating

49

notUsed7

available

50

notUsed8

available

51

notUsed9

available

52

notUsed10

available

53

notUsed11

available

54

notUsed12

available

55

notUsed13

available

56

notUsed14

available

57

notUsed15

available

58

notUsed16

available

59

notUsed17

available

60

notUsed18

available

61

notUsed19

available

62

notUsed20

available

63

notUsed21

available

10.8.4. Input

This command enables or disables the MagnaLOAD electronic load input. The state of a disabled input is a high impedance condition.

Address

0x1110

Function Code

0x06

Access

Write

Register Count

1

Parameters

0 (OFF) | 1 (ON)

Data Format

Boolean

10.8.5. Measurement Commands

10.8.6. MeasCurrQ

This query commands the MagnaLOAD electronic load to measure and return the average current through the DC terminals.

Address

0x2010

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.7. MeasVoltQ

This query commands commands the MagnaLOAD electronic load to measure and return the average voltage at the DC terminals. If the remote sense function is used and engaged, this command returns the voltage measured at the sense terminals.

Address

0x2020

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.8. MeasPwrQ

This query commands commands the MagnaLOAD electronic load to measure and return the average power at the DC terminals.

Address

0x2030

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.9. MeasResQ

This query commands commands the MagnaLOAD electronic load to measure and return the average power at the DC terminals.

Address

0x2040

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.10. Setpoint Commands

10.8.11. SetpointCurr

This command programs the current set-point that the MagnaLOAD electronic load will regulate to when operating in constant current mode.

Address

0x3010

Function Code

0x10

Access

Write

Register Count

2

Parameters

0 through MAX | MINimum | MAXimum

Data Format

32-bit Floating Point Number

Query Address

0x3020

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.12. SetpointVolt

This command programs the voltage set-point, in volts, which the MagnaLOAD electronic load will regulate to when operating in constant voltage mode.

Address

0x3030

Function Code

0x10

Access

Write

Register Count

2

Parameters

0 through MAX | MINimum | MAXimum

Data Format

32-bit Floating Point Number

Query Address

0x3040

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.13. SetpointPwr

This command programs the power set-point, in watts, which the MagnaLOAD electronic load will regulate to when operating in constant power mode.

Address

0x3050

Function Code

0x10

Access

Write

Register Count

2

Parameters

0 through MAX | MINimum | MAXimum

Data Format

32-bit Floating Point Number

Query Address

0x3060

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.14. SetpointRes

This command programs the resistance set-point, in ohms, which the MagnaLOAD electronic load will regulate to when operating in constant resistance mode.

Address

0x3070

Function Code

0x10

Access

Write

Register Count

2

Parameters

0 through MAX | MINimum | MAXimum

Data Format

32-bit Floating Point Number

Query Address

0x3080

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.15. Trip Commands

10.8.16. OverTripCurr

This command programs the over current trip (OCT) set-point. If the input current exceeds the over current trip set-point for multiple samples, the input is disconnected and an OCT fault is indicated.

Address

0x4010

Function Code

0x10

Access

Write

Register Count

2

Parameters

0 through MAX | MINimum | MAXimum

Data Format

32-bit Floating Point Number

Query Address

0x4020

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.17. OverTripVolt

This command programs the over voltage trip (OVT) set-point. If the input voltage exceeds the over voltage trip set-point for multiple samples, the input is disconnected and an OVT fault is indicated.

Address

0x4030

Function Code

0x10

Access

Write

Register Count

2

Parameters

0 through MAX | MINimum | MAXimum

Data Format

32-bit Floating Point Number

Query Address

0x4040

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.18. OverTripPwr

This command programs the over power trip (OPT) set-point. If the input power exceeds the over power trip set-point for multiple sample, the input is disconnected and an OPT fault is indicated.

Address

0x4050

Function Code

0x10

Access

Write

Register Count

2

Parameters

0 through MAX | MINimum | MAXimum

Data Format

32-bit Floating Point Number

Query Address

0x4060

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.19. UnderTripVolt

This command programs the under voltage trip (UVT) set-point. If the input voltage falls below the under voltage trip set-point for multiple samples, the input is disconnected and an UVT fault is indicated.

Address

0x4070

Function Code

0x10

Access

Write

Register Count

2

Parameters

0 through MAX | MINimum | MAXimum

Data Format

32-bit Floating Point Number

Query Address

0x4080

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.20. Slew Commands

10.8.21. RiseRampCurr

This command sets the current slew rate for increasing current transitions while in constant current regulation. MAXimum sets the slew to the fastest possible rate. MINimum sets the slew to the slowest rate. Slew rates less than the minimum value are set to MINimum. Slew rate settings less than the minimum value are set to MINimum. Slew rate settings greater than the maximum value are set to MAXimum.

Address

0x5010

Function Code

0x10

Access

Write

Register Count

2

Parameters

1 to MAXimum [A/ms] | MAXimum | MINimum

Data Format

32-bit Floating Point Number

Query Address

0x5020

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.22. RiseRampVolt

This command sets the voltage slew rate for increasing voltage transitions while in constant voltage regulation. The units for voltage slew rate are volts per millisecond. MAXimum sets the slew to the fastest possible rate. MINimum sets the slew to the slowest rate. Slew rates less than the minimum value are set to MINimum. Slew rate settings less than the minimum value are set to MINimum. Slew rate settings greater than the maximum value are set to MAXimum.

Address

0x5030

Function Code

0x10

Access

Write

Register Count

2

Parameters

1 to MAXimum [V/ms] | MAXimum | MINimum

Data Format

32-bit Floating Point Number

Query Address

0x5040

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.23. RiseRampPwr

This command sets the power slew rate for increasing power transitions while in constant power regulation. The units for power slew rate are watts per millisecond. MAXimum sets the slew to the fastest possible rate. MINimum sets the slew to the slowest rate. Slew rates less than the minimum value are set to MINimum. Slew rate settings less than the minimum value are set to MINimum. Slew rate settings greater than the maximum value are set to MAXimum.

Address

0x5050

Function Code

0x10

Access

Write

Register Count

2

Parameters

1 to MAXimum [W/ms] | MAXimum | MINimum

Data Format

32-bit Floating Point Number

Query Address

0x5060

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.24. RiseRampRes

This command sets the resistance slew rate for increasing resistance transitions while in constant resistance regulation. The units for resistance slew rate are ohms per millisecond. MAXimum sets the slew to the fastest possible rate. MINimum sets the slew to the slowest rate. Slew rates less than the minimum value are set to MINimum. Slew rate settings less than the minimum value are set to MINimum. Slew rate settings greater than the maximum value are set to MAXimum.

Address

0x5070

Function Code

0x10

Access

Write

Register Count

2

Parameters

1 to MAXimum [?/ms] | MAXimum | MINimum

Data Format

32-bit Floating Point Number

Query Address

0x5080

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.25. FallRampCurr

This command sets the current slew rate for decreasing current transitions while in constant current regulation. MAXimum sets the slew to the fastest possible rate. MINimum sets the slew to the slowest rate. Slew rates less than the minimum value are set to MINimum. Slew rate settings less than the minimum value are set to MINimum. Slew rate settings greater than the maximum value are set to MAXimum.

Address

0x5090

Function Code

0x10

Access

Write

Register Count

2

Parameters

1 to MAXimum [A/ms] | MAXimum | MINimum

Data Format

32-bit Floating Point Number

Query Address

0x50A0

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.26. FallRampVolt

This command sets the voltage slew rate for decreasing voltage transitions while in constant voltage regulation. The units for voltage slew rate are volts per millisecond. MAXimum sets the slew to the fastest possible rate. MINimum sets the slew to the slowest rate. Slew rates less than the minimum value are set to MINimum. Slew rate settings less than the minimum value are set to MINimum. Slew rate settings greater than the maximum value are set to MAXimum.

Address

0x50B0

Function Code

0x10

Access

Write

Register Count

2

Parameters

1 to MAXimum [V/ms] | MAXimum | MINimum

Data Format

32-bit Floating Point Number

Query Address

0x50C0

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.27. FallRampPwr

This command sets the power slew rate for decreasing power transitions while in constant power regulation. The units for power slew rate are watts per millisecond. MAXimum sets the slew to the fastest possible rate. MINimum sets the slew to the slowest rate. Slew rates less than the minimum value are set to MINimum. Slew rate settings less than the minimum value are set to MINimum. Slew rate settings greater than the maximum value are set to MAXimum.

Address

0x50D0

Function Code

0x10

Access

Write

Register Count

2

Parameters

1 to MAXimum [W/ms] | MAXimum | MINimum

Data Format

32-bit Floating Point Number

Query Address

0x50E0

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.28. FallRampRes

This command sets the resistance slew rate for decreasing resistance transitions while in constant resistance regulation. The units for resistance slew rate are ohms per millisecond. MAXimum sets the slew to the fastest possible rate. MINimum sets the slew to the slowest rate. Slew rates less than the minimum value are set to MINimum. Slew rate settings less than the minimum value are set to MINimum. Slew rate settings greater than the maximum value are set to MAXimum.

Address

0x50F0

Function Code

0x10

Access

Write

Register Count

2

Parameters

1 to MAXimum [?/ms] | MAXimum | MINimum

Data Format

32-bit Floating Point Number

Query Address

0x5100

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.29. Control Commands

10.8.30. PowerRange

This command activates a programmable series resistance and is available only in ARx and WRx models. When enabled, power dissipation is shared across series resistors and linear devices allowing the product to reach higher power levels.

Address

0x6010

Function Code

0x06

Access

Write

Register Count

1

Parameters

0 (low power) | 1 (high power)

Data Format

Boolean

Query Address

0x6020

Function Code

0x03

Access

Read

Register Count

1

Data Format

16-bit Integer

10.8.31. ControlMode

This command configures the MagnaLOAD electronic load’s control mode. Control Modes provides more information about the various options.

Address

0x6030

Function Code

0x06

Access

Write

Register Count

1

Parameters

1 (CURRENT) | 2 (VOLTAGE) | 3 (POWER) | 4 (RESISTANCE) | 5 (RHEOSTAT) | 6 (SHUNTREG)

Data Format

16-bit Integer

Query Address

0x6040

Function Code

0x03

Access

Read

Register Count

1

Data Format

16-bit Integer

10.8.32. Function Generator Commands

10.8.33. FuncType

This command selects the desired function for the integrated function generator, which is active when the product’s set point source is set to function generator.

Address

0x7010

Function Code

0x06

Access

Write

Register Count

1

Parameters

0 (Sinusoid) | 1 (Square) | 2 (Step) | 3 (Ramp)

Data Format

16-bit Integer

Query Address

0x7020

Function Code

0x03

Access

Read

Register Count

1

Data Format

16-bit Integer

10.8.34. FuncSinAmpl

This command sets the amplitude (Adc) for the sinusoid function when the set point source is set to 1 (function generator) and the function type is set to 0 (sinusoid).

Address

0x7030

Function Code

0x10

Access

Write

Register Count

2

Parameters

0 through MAX | MINimum | MAXimum

Data Format

32-bit Floating Point Number

Query Address

0x7040

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.35. FuncSinOff

This command sets the DC offset from zero (Adc) for the sinusoid function midline when the set point source is set to 1 (function generator) and the function type is set to 0 (sinusoid).

Address

0x7050

Function Code

0x10

Access

Write

Register Count

2

Parameters

0 through MAX | MINimum | MAXimum

Data Format

32-bit Floating Point Number

Query Address

0x7060

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.36. FuncSinPrd

This command sets the period (milliseconds) for the sinusoid function when the set point source is set to 1 (function generator) and the function type is set to 0 (sinusoid). The sinusoid’s period is the length of one full cycle.

Address

0x7070

Function Code

0x10

Access

Write

Register Count

2

Parameters

2 through MAX | MINimum (2 ms) | MAXimum (65,000 ms)

Data Format

32-bit Floating Point Number

Query Address

0x7080

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.37. FuncSquLoLevel

This command sets the low level amplitude for the square function when the set point source is set to 1 (function generator) and the function type is set to 1 (square).

Address

0x7090

Function Code

0x10

Access

Write

Register Count

2

Parameters

0 through MAX | MINimum | MAXimum

Data Format

32-bit Floating Point Number

Query Address

0x70A0

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.38. FuncSquHiLevel

This command sets the high level amplitude for the square function when the set point source is set to 1 (function generator) and the function type is set to 1 (square).

Address

0x70B0

Function Code

0x10

Access

Write

Register Count

2

Parameters

0 through MAX | MINimum | MAXimum

Data Format

32-bit Floating Point Number

Query Address

0x70C0

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.39. FuncSquLoPrd

This command sets the period/duration (milliseconds) that the square function remains at the low level amplituide when the set point source is set to 1 (function generator) and the function type is set to 1 (square).

Address

0x70D0

Function Code

0x10

Access

Write

Register Count

2

Parameters

2 through MAX | MINimum (2 ms) | MAXimum (65,000 ms)

Data Format

32-bit Floating Point Number

Query Address

0x70E0

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.40. FuncSquHiPrd

This command sets the period/duration (milliseconds) that the square function remains at the low level amplituide when the set point source is set to 1 (function generator) and the function type is set to 1 (square).

Address

0x70F0

Function Code

0x10

Access

Write

Register Count

2

Parameters

2 through MAX | MINimum (2 ms) | MAXimum (65,000 ms)

Data Format

32-bit Floating Point Number

Query Address

0x7100

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.41. FuncStepLoLevel

This command sets the low level amplitude for the step function when the set point source is set to 1 (function generator) and the function type is set to 2 (step).

Address

0x7110

Function Code

0x10

Access

Write

Register Count

2

Parameters

0 through MAX | MINimum | MAXimum

Data Format

32-bit Floating Point Number

Query Address

0x7120

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.42. FuncStepHiLevel

This command sets the high level amplitude for the step function when the set point source is set to 1 (function generator) and the function type is set to 2 (step).

Address

0x7130

Function Code

0x10

Access

Write

Register Count

2

Parameters

0 through MAX | MINimum | MAXimum

Data Format

32-bit Floating Point Number

Query Address

0x7140

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.43. FuncRampLoLevel

This command sets the low level amplitude for the ramp function when the set point source is set to 1 (function generator) and the function type is set to 3 (ramp).

Address

0x7150

Function Code

0x10

Access

Write

Register Count

2

Parameters

0 through MAX | MINimum | MAXimum

Data Format

32-bit Floating Point Number

Query Address

0x7160

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.44. FuncRampHiLevel

This command sets the high level amplitude for the ramp function when the set point source is set to 1 (function generator) and the function type is set to 3 (ramp).

Address

0x7170

Function Code

0x10

Access

Write

Register Count

2

Parameters

0 through MAX | MINimum | MAXimum

Data Format

32-bit Floating Point Number

Query Address

0x7180

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.45. FuncRampRisePrd

This command sets the period/duration (milliseconds) for the ramp function to transition from the low level amplitude to the high level amplitude when the set point source is set to 1 (function generator) and the function type is set to 3 (ramp).

Address

0x7190

Function Code

0x10

Access

Write

Register Count

2

Parameters

2 through MAX | MINimum (2 ms) | MAXimum (65,000 ms)

Data Format

32-bit Floating Point Number

Query Address

0x71A0

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.46. FuncRampFallPrd

This command sets the period/duration (milliseconds) for the ramp function to transition from the high level amplitude to the low level amplitude when the set point source is set to 1 (function generator) and the function type is set to 3 (ramp).

Address

0x71B0

Function Code

0x10

Access

Write

Register Count

2

Parameters

2 through MAX | MINimum (2 ms) | MAXimum (65,000 ms)

Data Format

32-bit Floating Point Number

Query Address

0x71C0

Function Code

0x03

Access

Read

Register Count

2

Data Format

32-bit Floating Point Number

10.8.47. Configuration Commands

10.8.48. FactoryRestore

This command performs a factory restore to default EPROM values. Both Soft Restore and Hard Restore are available through command parameters.

Address

0x8010

Function Code

0x06

Access

Write

Register Count

1

Parameters

1 (Soft Restore) | 2 (Hard Restore)

Data Format

16-bit Integer

10.8.49. Lock

This command configures the MagnaLOAD electronic load’s lock state. While locked, the stop button is the only functional button on the front panel. See Lock for more details on how lock works and how behaves relative to other locking inputs (front panel and digital input).

Address

0x8030

Function Code

0x06

Access

Write

Register Count

1

Parameters

0 (OFF) | 1 (ON)

Data Format

Boolean

Query Address

0x8020

Function Code

0x03

Access

Read

Register Count

1

Data Format

16-bit Integer

10.8.50. SenseMode

This command configures where the MagnaLOAD electronic load senses voltage. The sense location also effects how power and resistance are calculated. Local sensing monitors the directly across the output terminals. Remote sensing, as described in Remote Sense Connection, measures across the terminal JS2. This external connection can be used to improve regulation at the point of load, as is needed for example, in compensating voltage drops caused by wire resistance.

Address

0x8060

Function Code

0x06

Access

Write

Register Count

1

Parameters

0 (local) | 1 (remote)

Data Format

16-bit Integer

Query Address

0x8070

Function Code

0x03

Access

Read

Register Count

1

Data Format

16-bit Integer

10.8.51. SetSource

The command selects and routes different set points sources to the digital controller. Operation of this feature is described in Set Point Source. By default, the source is set to local (value 0), where set points originating from the front panel or communication interfaces are routed to the ALx Series digital control. When the source is set to function generator (value 1), set points are generated internally, by a periodic function generator block. When external analog input (value 3) is set, the voltage(s) applied to the rear connector are converted into set points.

Address

0x80A0

Function Code

0x06

Access

Write

Register Count

1

Parameters

0 (local) | 1 (function generator) | 2 (external analog input)

Data Format

16-bit Integer

Query Address

0x80B0

Function Code

0x03

Access

Read

Register Count

1

Data Format

16-bit Integer