Technical FAQs

Ask a Question

Can I create a custom quantity in System Manager Software (SMS) that has a scale factor or multiplier other than a factor of 10?

System Manager Software (SMS) will only scale by factors of 10, but there is a way around this by using a virtual circuit node and if necessary a meter with available utility registers. PM800s, CM3000s, and CM4000s all have a block of 200 utility registers starting at register 15,800. These are empty read/write registers that a user can use to store values.
Example Scenario:

User has a third party device such as Caterpillar EMCP (Electronic Modular Control Panel) which uses non-standard scaling calculations
User has a PowerLogic meter which has available utility registers

For example, assume the desired value requires a scale factor of 0.026 and a offset of -200:

y = 0.026x – 200

Where ‘y’ is the desired value to be logged or displayed in SMS and ‘x’ is the raw register value in the EMCP
The scale or slope is 0.026 and the offset is -200
When creating a custom quantity within SMS, you can only apply a scale or multiplier that is a factor of 10: unity, tens, tenths, thousands, thousandths, etc. This simply moves the decimal point to the left or the right which is not what we want to accomplish.


1. Within SMS, create a new custom quantity. For this example, use the name ‘CQ’. Make it writable and loggable. Leave the format code set to ‘No Format’
2. Assign ‘CQ’ to the device type that holds the raw register value 'x'. Point it to the specific register number of 'x'
3. Assign ‘CQ’ to a CM4000, CM3000, or PM800 that is available in the system. Point it to one specific register within the block of 15800 to 15999 ( 12000-12199 in PM800 series)
4. Assign ‘CQ’ to the device type Virtual Circuit Node
5. Write the value of the offset to the utility register. For example, you would write the value of 200 to register 15800 in a CM4000
6. Create a Virtual Circuit Node
a. First, add the device that holds the raw register value 'x' to the virtual circuit node. For the multiplier use the value of the scale or slope, in this example use the value of 0.026
b. Second, add the device which you are using the utility register from, in this example a CM4000. For the multiplier, use a value of -1. This will effectively apply -200 (the offset)

The virtual circuit node puts together the equation that governs the value that you want to log or display in SMS.

Logging and alarming of this custom quantity can then be configured for the virtual circuit node. This custom quantity can also be used for the virtual circuit node in GFX screens.

Note : This virtual circuit node is specific to this one quantity. The process of steps 1 – 6 will have to be repeated for any other quantity that is stored in a similar manner in the device.
Note : If only the "scale" is required, a utility register is not required and steps 3, 5, and 6b can be skipped.
Was this helpful?
What can we do to improve the information ?