Counter Device DDT
Original instructions
Introduction
This topic describes the device DDT for the Modicon X80 counter module, the instance default naming is described in Device DDT Instance Naming Rule.
Regarding the device DDT, its name contains the following information:
Example: For a Modicon X80 counter module with 2 standard inputs: T_M_CPT_STD_IN_2
Adjustment Parameter limitation
Adjustment parameters cannot be changed from the PLC application during operation (no support of READ_PARAM, WRITE_PARAM, SAVE_PARAM, RESTORE_PARAM) for:
Modifying the adjustment parameters of a channel from Control Expert during a CCOTF operation causes the channel to be re-initialized.
The concerned parameters are:
List of Implicit Device DDT
The following table shows the list of device DDT and their X80 modules:
Device DDT
Modicon X80 modules
T_M_CPT_STD_IN_2
BMX EHC 0200
T_M_CPT_STD_IN_8
BMX EHC 0800
Implicit Device DDT Description
The following table shows the T_M_CPT_STD_IN_x status word bits:
Standard Symbol
Type
Meaning
Access
MOD_HEALTH
BOOL
0 = the module has a detected error
read
1 = the module is operating correctly
MOD_FLT
BYTE
read
CPT_CH_IN
ARRAY [0..x-1] of T_M_CPT_STD_CH_IN
Array of structure
The following table shows the T_M_CPT_STD_CH_IN_x[0..x-1] status word bits:
Standard Symbol
Type
Bit
Meaning
Access
FCT_TYPE
WORD
1 = Frequency
read
2 = EvtCounting
3 = PeriodMeasuring
4 = Ratio1
5 = Ratio2
6 = OneShotCounter
7 = ModuleLoopCounter
8 = FreeLargeCounter
9 = PulseWidthModulation
10 = UpDownCounting
11 = DualPhaseCounting
CH_HEALTH
BOOL
0 = the channel has a detected error
read
1 = the channel is operating correctly
ST_OUTPUT_0_ECHO
EBOOL
logical state of output 0
read
ST_OUTPUT_1_ECHO
EBOOL
logical state of output 1
read
ST_OUTPUT_BLOCK_0
EBOOL
status of physical counting output block 0
read
ST_OUTPUT_BLOCK_1
EBOOL
status of physical counting output block 1
read
ST_INPUT_A
EBOOL
status of physical counting input A
read
ST_INPUT_B
EBOOL
status of physical counting input B
read
ST_INPUT_SYNC
EBOOL
physical state of the IN_SYNC input (or IN_AUX)
read
ST_INPUT_EN
EBOOL
physical state of IN_EN input (enable)
read
ST_INPUT_REF
EBOOL
physical state of the IN_REF input (preset)
read
ST_INPUT_CAPT
EBOOL
physical state of IN_CAP input (capture)
read
COUNTER_STATUS [INT]
RUN
BOOL
0
the counter operates in counting mode only
read
MODULO_FLAG
BOOL
1
flag set to 1 by a modulo switch event
read
SYNC_REF_FLAG
BOOL
2
flag set to 1 by a preset or synchronization event
read
VALIDITY
BOOL
3
the current numerical value is valid
read
HIGH_LIMIT
BOOL
4
the current numerical value is locked at the upper threshold value
read
LOW_LIMIT
BOOL
5
the current numerical value is locked at the lower threshold value
read
COMPARE_STATUS [INT]
COUNTER_LOW
BOOL
0
current counter value less than lower threshold (LOWER_TH_VALUE)
read
COUNTER_WIN
BOOL
1
current counter value is between lower threshold (LOWER_TH_VALUE) and upper threshold (UPPER_TH_VALUE)
read
COUNTER_HIGH
BOOL
2
current counter value greater than upper threshold (UPPER_TH_VALUE)
read
CAPT_0_LOW
BOOL
3
Value captured in register 0 is less than lower threshold (LOWER_TH_VALUE)
read
CAPT_0_WIN
BOOL
4
Value captured in register 0 is between lower threshold (LOWER_TH_VALUE) and upper threshold (UPPER_TH_VALUE)
read
CAPT_0_HIGH
BOOL
5
Value captured in register 0 is greater than upper threshold (UPPER_TH_VALUE)
read
CAPT_1_LOW
BOOL
6
Value captured in register 1 is less than lower threshold (LOWER_TH_VALUE)
read
CAPT_1_WIN
BOOL
7
Value captured in register 1 is between lower threshold (LOWER_TH_VALUE) and upper threshold (UPPER_TH_VALUE)
read
CAPT_1_HIGH
BOOL
8
Value captured in register 1 is greater than upper threshold (UPPER_TH_VALUE)
read
COUNTER_CURRENT_VALUE_S(1)
DINT
Current counter value during event
read
CAPT_0_VALUE_S(1)
DINT
Value captured in register 0
read
CAPT_1_VALUE_S(1)
DINT
Value captured in register 1
read
COUNTER_CURRENT_VALUE_US(2)
UDINT
Current counter value during event
read
CAPT_0_VALUE_US(2)
UDINT
Value captured in register 0
read
CAPT_1_VALUE_US(2)
UDINT
Value captured in register 1
read
OUTPUT_0
EBOOL
forces OUTPUT_0 to level 1
read / write
OUTPUT_1
EBOOL
forces OUTPUT_1 to level 1
read / write
OUTPUT_BLOCK_0_ENABLE
EBOOL
implementation of output 0 function block
read / write
OUTPUT_BLOCK_1_ENABLE
EBOOL
implementation of output 1 function block
read / write
FORCE_SYNC
EBOOL
counting function synchronization and start
read / write
FORCE_REF
EBOOL
set to preset counter value
read / write
FORCE_ENABLE
EBOOL
implementation of counter
read / write
FORCE_RESET
EBOOL
reset counter
read / write
SYNC_RESET
EBOOL
reset SYNC_REF_FLAG
read / write
MODULO_RESET
EBOOL
reset MODULO_FLAG
read / write
FUNCTIONS_ENABLING [INT]
VALID_SYNC
BOOL
0
synchronization and start authorization for the counting function via the IN_SYNC input
read / write
VALID_REF
BOOL
1
operation authorization for the internal preset function
read / write
VALID_ENABLE
BOOL
2
authorization of the counter enable via the IN_EN input
read / write
VALID_CAPT_0
BOOL
3
capture authorization in the capture 0 register
read / write
VALID_CAPT_1
BOOL
4
capture authorization in the capture 1 register
read / write
COMPARE_ENABLE
BOOL
5
comparators operation authorization
read / write
COMPARE_SUSPEND
BOOL
6
comparator frozen at its last value
read / write
LOWER_TH_VALUE_S(1)
DINT
lower threshold value
read / write
UPPER_TH_VALUE_S(1)
DINT
upper threshold value
read / write
PWM_FREQUENCY_S(1)
DINT
output frequency value (unit = 0.1 Hz)
read / write
LOWER_TH_VALUE_US(2)
UDINT
lower threshold value
read / write
UPPER_TH_VALUE_US(2)
UDINT
upper threshold value
read / write
PWM_FREQUENCY_US(2)
UDINT
output frequency value (unit = 0.1 Hz)
read / write
PWM_DUTY
INT
duty cycle value of the output frequency (unit = 5%)
read / write
(1) 
Signed application specific function (ASF) must be used
(2) 
Unsigned application specific function (ASF) must be used
Here below is all the signed ASF that must be used with a counter BMX EHC 0200:
Here below is all the unsigned ASF that must be used with a counter BMX EHC 0200:
Here below is all the signed ASF that must be used with a counter BMX EHC 0800:
Here below is all the unsigned ASF that must be used with a counter BMX EHC 0800:
Use and Description of DDT for Explicit Exchange
The following table shows the Derived Data Type (DDT) used for the variables connected to dedicated EFB parameter to perform an explicit exchange:
DDT
Description
T_M_CPT_STD_CH_STS
Structure to read the channel status of a counting module.
Depending on the module location, the DDT can be connected to the STS output parameter of the EFB:
  • READ_STS_QX when the module is located in Quantum EIO.
  • READ_STS_MX when the module is located in a M580 local rack or in M580 RIO drops.
T_M_SIGN_CPT_STD_CH_PRM
Structure for adjustment parameters of a channel of a counting module (signed application specific function) in a M580 local rack.
The DDT can be connected to the PARAM output parameter of the EFB:
T_M_UNSIGN_CPT_STD_CH_PRM
Structure for adjustment parameters of a channel of a counting module (unsigned application specific function) in a M580 local rack.
NOTE: Targeted channel address (ADDR) can be managed with ADDMX EF (connect the output parameter OUT to the input parameter ADDR of the communication functions).
The following table shows the structure of the T_M_CPT_STD_CH_STS DDT:
Standard Symbol
Type
Bit
Meaning
Access
CH_FLT [INT]
EXTERNAL_FLT_INPUTS
BOOL
0
external detected error at inputs
read
EXTERNAL_FLT_OUTPUTS
BOOL
1
external detected error at outputs
read
INTERNAL_FLT
BOOL
4
internal detected error: channel inoperative
read
CONF_FLT
BOOL
5
hardware or software configuration detected error
read
COM_FLT
BOOL
6
bus communication detected error
read
APPLI_FLT
BOOL
7
application detected error
read
COM_EVT_FLT
BOOL
8
communication event detected fault
read
OVR_EVT_CPU
BOOL
9
CPU overflow event
read
OVR_CPT_CH
BOOL
10
counter channel overflow
read
CH_FLT_2 [INT]
SENSOR_SUPPLY
BOOL
2
low input power supply for the sensors
read
ACTUATOR_SUPPLY_FLT
BOOL
3
output power supply loss
read
SHORT_CIRCUIT_OUT_0
BOOL
4
short circuit on output 0
read
SHORT_CIRCUIT_OUT_1
BOOL
5
short circuit on output 1
read
The following table shows the structure of the T_M_SIGN_CPT_STD_CH_PRM DDT:
Standard Symbol
Type
Bit
Meaning
Access
MODULO_VALUE
DINT
Modulo value
read/write
PRESET_VALUE
DINT
Preset value
read/write
CALIBRATION_FACTOR
INT
Adjust the value from – 10 % to + 10 %, unit = 0.1 %
read/write
SLACK_VAL
INT
Hysteresis
read/write
The following table shows the structure of the T_M_UNSIGN_CPT_STD_CH_PRM DDT:
Standard Symbol
Type
Bit
Meaning
Access
MODULO_VALUE
UINT
Modulo value
read/write
PRESET_VALUE
UINT
Preset value
read/write
CALIBRATION_FACTOR
INT
Adjust the value from – 10 % to + 10 %, unit = 0.1 %
read/write
SLACK_VAL
INT
Hysteresis
read/write