poePoweredDevice

poePoweredDevice - control Power over Ethernet Powered Device (PD) emulation

SYNOPSIS

poePoweredDevice sub-command options

DESCRIPTION

The poePoweredDevice command is used to setup the parameters by which a PoE Powered Device (PD) is emulated on a port.

The port can emulate a device that uses either Alternative A and/or Alternative B. This is controlled by the relayControl option.

The emulated class is controlled by the enableClassSignature and signatureValue options; the classType indicates the calculated class based on the signature value.

The emulated detection signature is controlled by the enableDetectionSignature, rsig, csig and enableCsig10uF options.

The emulated Alternating Current Maintain Power Signature (ACMPS) is controlled by the enableAcMpsSignature, rpd, cpd and enable CpdAdd10uF options.

Once the PSE (Power Sourcing Equipment) has classified the emulated PD, it should provide power to the port. The power requirements of the emulated port are controlled by the steadyStateLoadControl, controlledCurrent, controlledPower and idleCurrent options. Transient load variations may be inserted through the use of the enableTransientLoadControl, transientLoadControl, pulseWidth, duty, pulsedCurrent and slewRate options. Pulses are applied through the use of the portGroup setCommand sub-command, with an loadPoEPulse value or through the high-level ixLoadPoePulse and ixLoadPortPoePulse commands; if enableTransientLoadControl is true and transientLoadControl is set to poeLoadControlSinglePusle, then a pulsed current as indicated by pulsedCurrent and slewRate is injected for the period indicated by pulseWidth.

The voltage thresholds that are used by the PD to detect state transitions may be set by the vOperate, vOff, vClassify, vDetect and vNoop options.

STANDARD OPTIONS
classType

Read-only. If enableClassSignature is true, this is the calculated classification of signatureValue.

Option

Value

Usage

poeClass0

0

Class 0.

poeClass1

1

Class 1.

poeClass2

2

Class 2.

poeClass3

3

Class 3.

poeClass4

4

Class 4.

poeMaybeClass0or1

5

Either class 0 or 1.

poeMaybeClass0or1or2

6

Either class 0, 1 or 2.

poeMaybeClass0or2or3

7

Either class 0, 2 or 3.

poeMaybeClass0or3or4

8

Either class 0, 3 or 4.

poeMaybeClass0or4

9

Either class 0 or 4.

poeClassTypeUndefined

10

Unknown classification.

controlledCurrent

If steadyStateLoadControl is set to poeLoadControlConstantCurrent, then this is the amount of current that the PD requires from the PSE, in mA. The value may be between 0 and 600mA. (default = 42. 5)

If steadyStateLoadControl is set to poeLoadControlConstantPower, then this is the amount of power that the PD requires from the PSE, in watts. The value may be between 0 and 20W. (default = 2.0)

cpd

If enableAcMpsSignature is true, this is the capacitance signature expressed in nFarads, between 0 and 220nF. If enableCpdAdd10uF is set, then 10uF of capacitance is added to this value, effectively overriding it. (default = 50)

csig

If enableDetectionSignature is true, this is the capacitance signature expressed in nFarads, between 0 and 220nF. If enableCsigAdd10uF is set, then 10uF of capacitance is added to this value, effectively overriding it. (default = 50)

duty

If enableTransientLoadControl is true and transientLoadControl is set to poeLoadControlContinuousPusle, then this is the duty cycle of the transient load. This is expressed as a percentage of total time that transient loads is injected. (default = 30)

enableAcMpsSignature true | false

If true, then the ACMPS signature is set from the values in rpd, cpd and enableCpdAdd10uF. (default = true)

enableClassSignature true | false

If true, then the signatureValue option is used to set the emulated class. The computed class name is indicated in classType. (default = true)

enableCpdAdd10uF true | false

If enableAcMpsSignature is true, then if this option is true, a value of 10uF is added to the cpd value which sets the capacitance signature. This effectively overrides the cpd value, which is expressed in nF. (default = false)

enableCsigAdd10uF true | false

If enableDetectionSignature is true, then if this option is true, a value of 10uF is added to the csig value which sets the capacitance signature. This effectively overrides the csig value, which is expressed in nF. (default = false)

enableDetection Signature true | false

Enables the use of the rsig, csig and enableCsigAdd10uF options to set the PoE detection signature. (default = true)

enablePulseOnStart true | false

If true, then a single pluse is sent each time that the PSE starts to apply power. (default = false)

enableTransientLoad Control true | false

If true, then transient loads is injected based on the values in the transientLoadControl, pulseWidth, duty, pulsedCurrent and slewRate options. (default = true)

idleCurrent

If steadyStateLoadControl is set to poeLoadControlIdle, then this is the amount of current that the PD requires from the PSE, in mA. The value may be between 0 and 16mA. (default = 10)

pulseWidth

If enableTransientLoadControl is true and transientLoadControl is set to poeLoadControlSinglePusle, then this is the width of the transient pulse that is injected. This is expressed in msec. (default = 40.25)

pulsedCurrent

If enableTransientLoadControl is true and transientLoadControl is set to poeLoadContrlContinuousPusle, then this is the current injected. This is expressed in mA and may be less than or greater than the steady state value. (default = 333.0)

relayControl

This option controls the combination of power options are supported by the PD.

Option

Value

Usage

poeRelayControlNoMode

0

Neither mode is supported.

poeRelayControlAlternativeA

1

Use Alternative A.

poeRelayControlAlternativeB

2

Use Alternative B.

poeRelayControlBothAandB

3

(default) Use Alternative A or B.

rpd

If enableAcMpsSignature is true, this is the ACMPS resistance signature expressed as a floating point value between 10 and 40 kOhms. (default = 23.0)

rpdRangeControl

On newer, 30watt PoE modules, it is possible to change the range associated with rpd.

Option

Value

Usage

poeRpdRangeZac1

0

(default) The range of rpd is from 10 - 45kOhm.

poeRpdRangeZac2

1

The range of rpd is from 200 - 1200kOhm.

rsig

If enableDetectionSignature is true, this is the resistance signature expressed as a floating point value between 10 and 40 kOhms. (default = 17.0)

signatureValue

If enableClassSignature is true, the class signature value, expressed as a floating point number between 0mA and 60mA. (default = 18.5)

slewRate

If enableTransientLoadControl is true and transientLoadControl is set to poeLoadControlContinuousPusle, then this is the slew rate at which the current indicated in pulsedCurrent is injected. This is expressed in mA/msec. (default = 33.0)

steadyStateLoadControl

This option controls the type of power requirements for the emulated PD after classification has completed.

Option

Value

Usage

poeLoadControlConstantCurrent

0

(default) The PD requires constant current, as indicated in the controlledCurrent option.

poeLoadControlControlledPower

1

The PD requires controlled power, as indicated in the controlledPower option.

poeLoadControlIdle

2

The PD requires constant current, as indicated in the idleCurrent option.

poeLoadControlShutdown

3

The PD is in shutdown mode.

transientLoad
Control

If enableTransientLoadControl is true, then this option indicates the type of transient load that is injected.

Option

Value

Usage

poeLoadControlSinglePulse

0

Inject a transient load once when the pulse sub-command is used.

poeLoadControlContinuousPulse

1

(default) Inject transient loads continuously.

vClassify

The maximum voltage for the emulated PD classification stage. Between this setting and vDetect, the classification currents ae presented to the PSE by the PD. (default = 20.5)

vDetect

The maximum voltage for emulated PD detection. Between this setting and vNoop, the detection signature impedances are presented to the PSE by the PD. (default = 10.0)

vNoop

The minimum detection voltage. No signatures are presented below this threshold value. (default = 2.8)

vOff

Sets the input threshold below which the PSE load is removed.(default = 33.0)

vOperate

Sets the input threshold where the PSE load is first applied. (default = 38.0)

COMMANDS

The poePoweredDevice command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

poePoweredDevice cget option

Returns the current value of the configuration option given by option. Option may have any of the values accepted by the poePoweredDevice command.

poePoweredDevice config option value

Modify the poePoweredDevice configuration options of the port. If no option is specified, returns a list describing all of the available poePoweredDevice options (see STANDARD OPTIONS) for port.

poePoweredDevice get chasID cardID portID

Gets the current configuration of the poePoweredDevice parameters on the indicated port from its hardware. Call this command before calling poePoweredDevice cget option value to get the value of the configuration option. Specific errors are:

poePoweredDevice set chasID cardID portID

Sets the configuration of the poePoweredDevice parameters in IxHAL on port with id portID on card cardID, chassis chasID by reading the configuration option values set by the poePoweredDevice config option value command. Specific errors are:

poePoweredDevice setDefault

Sets to IxTclHal default values for all configuration options.

poePoweredDevice setNominal chasID cardID portID [controlType]

Sets the option values for a particular control type to its nominal value. controlType may be one of these:

Control Type

Usage

"class0"

Class 0 device emulation

"class1"

Class 1 device emulation

"class2"

Class 2 device emulation

"class3"

Class 3 device emulation

"class4"

Class 4 device emulation

"cpd"

AC MPS capacitance

"csig"

Detection signature capacitance

"idleCurrent"

Steady state current to idle current

"rpd"

AC MPS resistance

"rsig"

Detection signature resistance

"vClassify"

vClassify threshold voltage

"vDetect"

vDetect threshold voltage

"vNoop"

vNoop threshold voltage

"vOperate"

vOperate threshold voltage

"vOff"

vOff threshold voltage

EXAMPLES

package require IxTclHal

 

set host localhost

set username user

 

# Check if we're running on UNIX - connect to the TCL Server

# which must be running on the chassis

if [isUNIX] {

if [ixConnectToTclServer $host] {

ixPuts "Could not connect to $host"

return 1

}

}

 

# Now connect to the chassis

if [ixConnectToChassis $host] {

ixPuts $::ixErrorInfo

return 1

}

 

# Get the chassis ID to use in port lists

set chId [ixGetChassisID $host]

 

set card 27

set portId 1

set waitForCalibration 20

 

# Useful port lists

set portList [list [list $chas $card $portId]]

 

# Login before taking ownership

if [ixLogin $username] {

ixPuts $::ixErrorInfo

return 1

}

# Take ownership of the ports we'll use

if [ixTakeOwnership $portList] {

ixPuts $::ixErrorInfo

return 1

}

 

set retCode "PASS"

 

poePoweredDevice setDefault

 

# Initiate an auto calibration

if {[poeAutoCalibration initiateCalibrate $chId $card $portId ]} {

errorMsg "Error initiating autoCalibrate on port $chId $card $portId"

set retCode "FAIL"

}

# Wait for the maximum possible time

after [expr $waitForCalibration*1000]

 

# Ask for the status of the calibration

if {[poeAutoCalibration requestStatus $chId $card $portId ]} {

errorMsg "Error requesting status on autoCalibrate for port $chId $card $portId"

set retCode "FAIL"

}

# Wait a bit for the answers to be read back

after 1000

 

if {[poeAutoCalibration get $chId $card $portId ]} {

errorMsg "Error getting status on autoCalibrate for port $chId $card $portId"

set retCode "FAIL"

break

}

 

# Check to make sure that all calibrations succeeded.

foreach param {currentReadbackStatus iClassRangeStatus iLoadRangeStatus\

iPulseRangeStatus voltageReadbackStatus} {

if {[poeAutoCalibration cget -$param] != $::poeAutoCalibrationPass } {

errorMsg "poeAutoCalibration cget $param - [poeAutoCalibration cget -$param] != poeAutoCalibrationPass"

set retCode "FAIL"

}

}

 

if {[poePoweredDevice get $chId $card $portId]} {

errorMsg "Error getting poe config for $chId $card $portId"

set retCode "FAIL"

continue

}

 

if {[poePoweredDevice cget -enableClassSignature]} {

switch [poePoweredDevice cget -classType] {

$::poeClass0 {

logMsg "PoE device config'd as class 0"

}

$::poeClass1 {

logMsg "PoE device config'd as class 1"

}

$::poeClass2 {

logMsg "PoE device config'd as class 2"

}

$::poeClass3 {

logMsg "PoE device config'd as class 3"

}

$::poeClass4 {

logMsg "PoE device config'd as class 4"

}

default {

logMsg "PoE device in an in-between class state"

}}

# change the value if class enabled

poePoweredDevice config -signatureValue 42.0

}

 

poePoweredDevice config -enableDetectionSignature true

poePoweredDevice config -rsig 25

poePoweredDevice config -csig 200.3

poePoweredDevice config -enableCsigAdd10uF false

 

poePoweredDevice config -enableAcMpsSignature true

poePoweredDevice config -rpdRangeControl poeRpdRangeZac1

poePoweredDevice config -rpd 33

poePoweredDevice config -cpd 42

poePoweredDevice config -enableCpdAdd10uF false

 

# config the steady state stuff

poePoweredDevice config -steadyStateLoadControl \

poeLoadControlControlledPower

poePoweredDevice config -controlledCurrent 482.2

poePoweredDevice config -controlledPower 13.8

poePoweredDevice config -idleCurrent 12.0

 

# config the transient load stuff

poePoweredDevice config -enableTransientLoadControl true

poePoweredDevice config -pulseWidth 10

poePoweredDevice config -enablePulseOnStart false

poePoweredDevice config -duty 33.3

poePoweredDevice config -pulsedCurrent 500

poePoweredDevice config -slewRate 20.0

 

# config the voltage threshold stuff

poePoweredDevice config -vOperate 27.5

poePoweredDevice config -vOff 32.8

poePoweredDevice config -vClassify 17.2

poePoweredDevice config -vDetect 7.9

poePoweredDevice config -vNoop 8.2

 

if {[poePoweredDevice set $chId $card $portId]} {

errorMsg "Error setting poe config for \

$chId $card $portId - $::ixErrorInfo"

}

 

# set nomimal examples

if {[poePoweredDevice setNominal $chId $card $portId class0]} {

errorMsg "Error setting nominal class0for \

$chId $card $portId - $::ixErrorInfo"

}

if {[poePoweredDevice setNominal $chId $card $portId rsig]} {

errorMsg "Error setting nominal rsig for \

$chId $card $portId - $::ixErrorInfo"

}

 

ixWritePortsToHardware portList

ixLoadPoePulse portList

 

# signal acquisition

poeSignalAcquisition setDefault

poeSignalAcquisition config -enableTime true

poeSignalAcquisition config -enableAmplitude true

 

poeSignalAcquisition config -startTriggerSource poeTriggerSourceDCVolts

poeSignalAcquisition config -startTriggerSlope poeTriggerSlopePositive

poeSignalAcquisition config -startTriggerValue 0.167

 

poeSignalAcquisition config -stopTriggerSource poeTriggerSourceDCVolts

poeSignalAcquisition config -stopTriggerSlope poeTriggerSlopePositive

poeSignalAcquisition config -stopTriggerValue 2.167

 

poeSignalAcquisition config -amplitudeMeasurementDelay 0.500

 

if [poeSignalAcquisition set $chId $card $portId] {

errorMsg "Error setting poeSignalAcquisition for \

$chId $card $portId $::ixErrorInfo"

}

if [ixArmPoeTrigger portList] {

errorMsg "Error arming the PoE ports in the portList\

$portList $::ixErrorInfo"

}

 

SEE ALSO

poeAutoCalibration, poeSignalAcquisition