General Power Operation parameters
The following parameters are common to all Power Operation devices.
watchtime
Controls how often the product will interrogate the driver to determine whether it is still online. This parameter can only be configured for an entire driver, and hence will have the driver dll name as its section name. Where another setting may be [PM870], to set this setting it must be [PLOGIC], as PLOGIC is the name of the dll. This is the only parameter whose section name is defined in this fashion.
Parameter type: secondsDefault Value: 2
Example: [SEPAM] watchtime = 5
kernelStatisticUpdateRate
Controls how frequently the statistics displayed in the driver kernel window are updated. This time period can be increased in order to decrease CPU load. This parameter can only be configured for the entire protocol (as with the watchtime parameter); it will have the driver dll name as its section name.
Parameter type: milliseconds
Default value: 5000
Examples:
[SEPAM40]
kernelStatisticUpdateRate = 20000
[SEPAM80]
kernelStatisticUpdateRate = 10000
UseWriteMultiRegistersOnly
Controls PWRMODBUS driver behavior when a single register is to be written. This parameter is set to 1 by default, enabling all writes to be made using "write multiple registers" MODBUS function. Setting this parameter to 0 allows driver to perform write using "write single register" function if (and only if) one MODBUS register is about to be written in current operation.
Parameter type: integer
Default value: 1
Examples:
[PWRMODBUS]
UseWriteMultiRegistersOnly = 1
[PWRMODBUS.MYCLUSTER.PORT_1.BCM1]
UseWriteMultiRegistersOnly = 0
timeout
Controls how long the driver waits for a response from a device before setting that device as offline. This value should be greater than the device/gateway timeout period. A timed out request will not be retried. The reason for this is that TCP is a guaranteed transport mechanism, and the lack of a response indicates that the device is offline or communication has been lost with that device. A device connected via a gateway should use the gateway's retry mechanism.
Parameter type: milliseconds
Default value: 5000
Examples:
[SEPAM40]
Timeout = 2000
[SEPAM40.MYCLUSTER.PORT_1.SLOW_SEPAM]
Timeout = 15000
retry
Defines the number of retry attempts for specific MODBUS requests. Retries may occur either when the request is timed out or certain MODBUS exception reply messages are received. The exact behavior is controlled by the RetryTimeout and RetryException parameters.
Parameter type: number of attempts
Default value: 3
Examples:
[SEPAM40]
retry = 1
[SEPAM40.MYCLUSTER.PORT_1.SEPAM_DEVICE]
retry = 5
RetryTimeout
When enabled (by default), the driver will re-try a timed-out MODBUS request.
Parameter type: long (Boolean)
Default value: 1
Examples:
[SEPAM40]
RetryTimeout = 1
[SEPAM40.MYCLUSTER.PORT_2.SEPAM_DEVICE]
RetryTimeout = 0
RetryException
When enabled (disabled by default), the driver will re-try a MODBUS request that has received MODBUS Exception messages. The number of retries is defined by the Retry parameter.
When Retry Exception is enabled, retry occurs when any of the following MODBUS exception messages is received:
- SLAVE_DEVICE_FAILURE_EXCEPTION = 0x5
- GATEWAY_PATH_UNAVAILABLE_EXCEPTION = 0xA
- GATEWAY_TARGET_DEVICE_FAILED_TO_RESPOND_EXCEPTION = 0xB
- SLAVE_DEVICE_BUSY_EXCEPTION = 0x6
- MEMORY_PARITY_ERROR_EXCEPTION = 0x8
- NEGATIVE_ACKNOWLEDGE_EXCPETION = 0x7
Parameter type: long (Boolean)
Default value: 0
Examples:
[SEPAM40]RetryTimeout = 1
RetryTimeout = 0
standbyRefreshRate
Controls how often a standby IO server attempts to poll a device to update its cache. This time period determines the maximum age that values may be when switching from a primary IO server to a standby. Decreasing this value degrades communications to the device.
Parameter type: seconds
Default value: 60
Examples:
[SEPAM40]
standbyRefreshRate = 30
[SEPAM40.MYCLUSTER.PORT_1.SLOW_SEPAM]
standbyRefreshRate = 120
standbyCheckTime
Controls how often the driver will inquire of Power Operation as to whether it is in standby or primary mode. This value can be increased to reduce CPU load.
Parameter type: milliseconds
Default value: 500
Examples:
[SEPAM40]
standbyCheckTime = 500
[SEPAM40.MYCLUSTER.PORT_1.SLOW_SEPAM]
standbyCheckTime = 1000
statusUnitCheckTime
This parameter defines how frequently the driver will try to re-establish the connection with a device that has gone offline on a port that is not disconnected. It sets the maximum rate at which the driver enquires of the device, to determine if it is still operational. If the "watchtime" parameter is set to a longer time, that value will be used instead.
If a network gateway has multiple devices connected to it, and one device is disconnected, the driver takes it offline and does not try to reconnect it according to this parameter's schedule. If the port is taken offline and then is reconnected, the driver will reconnect the devices immediately.
Parameter type: seconds
Default value: 5 (20 for MicroLogic)
Examples:
[SEPAM40]
statusUnitCheckTime = 5
[SEPAM40.MYCLUSTER.PORT_1.SLOW_SEPAM]
standbyCheckTime = 10
initUnitCheckTime
Controls how long the driver waits before attempting to bring a device online after it has gone offline. This value can be decreased to bring offline devices back into service in a shorter period of time. In a multi-drop scenario, this time should be relatively long, to prevent init unit requests from stalling communications to the rest of the devices on that port.
Parameter type: seconds
Default value: 120
Examples:
[SEPAM40]
initUnitCheckTime = 5
[SEPAM40.MYCLUSTER.PORT_1]
initUnitCheckTime = 120
initCacheTimeout
Controls how long the driver will spend attempting to populate the cache before bringing a device online. When a tag has been incorrectly configured, the device will come online after this period of time.
Parameter type: seconds
Default value: 60
Examples:
[SEPAM40]
initCacheTimeout = 60
[SEPAM40.MYCLUSTER.PORT_1.SLOW_SEPAM]
initCacheTimeout = 30
cacheRefreshTime
Controls the maximum rate at which the driver will attempt to repopulate its cache. If the driver cannot refresh its cache within the time period specified, it will collect data as fast as the network allows.
Parameter type: milliseconds
Default value: 500
Examples:
[SEPAM40]
cacheRefreshTime = 1000
[SEPAM40.MYCLUSTER.PORT_1.FAST_SEPAM]
cacheRefreshTime = 200
[SEPAM40.MYCLUSTER.PORT_1.UNIMPORTANT_DEVICE]
cacheRefreshTime = 5000
TimeSync
Enables/disables time synchronization for the PM5000S driver. On startup and on a 15-minute schedule, the driver reads each device clock. If a device clock is not within the specified 10-second drift, the driver sets the time on that device to the current system time.
Parameter type: Boolean
Default value: 0 (PM5000S) or 1 (PM5000S1)
This is a driver-level parameter, not a protocol-level parameter. All entries must be under the PM5000S section of the .ini file. By default, the PM5000S1 protocol enables time sync. For the PM5000S, it is disabled by default because most devices will have battery backup and GPS time sync availability.
Example:
[PM5000S] TimeSync = 1
StatusRegister
Defines a holding register that the driver reads to determine whether a device is responding to communication requests. The result of this read is not important, however it must be a valid register address within the device.
Parameter type: register address
Default value: 1100 (2 for Sepam) (PM1200 requires that this value be set to 3911)
Examples:
[PWRMODBUS]
statusRegister = 1000
[PWRMODBUS.MYCLUSTER.PORT_DEVICE_PM1200]
statusRegister = 3911
StatusRegistersCount
Defines the number of registers that the driver reads to determine whether a device is responding to communication requests. The result of this read is not important, however it must be a valid register address within the device.
Parameter type: number of registers
Default value: 1 (PM1200 requires that this value be set to 2)
Examples:
[PWRMODBUS]
statusRegistersCount = 2
[PWRMODBUS.MYCLUSTER.PORT_DEVICE_PM1200]
statusRegistersCount = 2
StatusRegisterType
Used together with StatusRegister; defines the type of the status register. Can only be configured for the PWRMODBUS driver. This parameter can have one of the following values:
- 0 - HOLDING register (default)
- 1 - INPUT register
- 2 - COIL register
- 3 - DIGITAL input (input coil) register
Any other value equals the default.
Parameter type: register type
Default value: 0
Example:
[PWRMODBUS]
statusRegister = 1000
[PWRMODBUS.MYCLUSTER.PORT_1.DEVICE_A]
statusRegister = 16000
statusRegisterType = 2
ModbusBase
Defines the base address for a device. Some MODBUS device registers are defined using a base address of 1. in this case, reading register 100 would actually require reading register 99. In other devices (such as the Sepam) the base address is 0. This parameter allows the base address to be configured according to the device.
Parameter type: integer
Default value: 0 for Sepam; 1 for all other drivers
Examples:
[PWRMODBUS]
ModbusBase = 1
[PWRMODBUS.MYCLUSTER.PORT_1.DEVICE_A]
ModbusBase = 0
RegMode
Specifies the order of bytes in a device register. It can only bet set for PWRMODBUS driver, and is supposed to be unit-specific. Value values are:
RegMode |
Order of bytes |
|
---|---|---|
Big endian (default) |
0 |
1 0 |
Little endian |
1 |
0 1 |
Any other value reverts to big endian.
Parameter type: integer
Default value: 0
Examples:
[PWRMODBUS]
RrMode = 0 # Default
[PWRMODBUS.MYCLUSTER.PORT_1.DEVICE_A]
RegMode = 1 # This device has little endian registers
timeZone
Time zone names are taken directly from the Windows registry database (case-insensitive), and will otherwise default to using the I/O server's local time zone. The Windows time zone database is located in the Windows registry in:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\.
The examples of time zone names are:
- AUS Central Standard Time
- China Standard Time
- Pacific Standard Time (Mexico)
Use the general section [POWERLOGICCORE] to specify the time zone for all devices. For example:
[POWERLOGICCORE]
Timezone = Mountain Standard Time
This sets the default time zone for all devices (Sepam, PLogic, Micrologic, PWRMODBUS). Otherwise the time zone can be specified for each device with precedence taken as described in the start of this section.
Examples:
[PLOGIC870.Cluster1.Singapore_Port]
Timezone = Singapore Standard Time
[PLOGIC870.Aus_Cluster]
Timezone = Aus Central Standard Time
Not having a time zone specification means that the device is in the same time zone as the machine where the I/O Server is running. No time conversion will be done.