Applies To:
  • CitectSCADA 5.31, 5.40, 5.41, 5.42, 5.50, 6.0, 6.1, 7.0
  • CitectHMI 5.31, 5.40, 5.41, 5.42, 5.50, 6.0, 6.1, 7.0
  • CitectFacilities 5.31, 5.40, 5.41, 5.42, 5.50, 6.0, 6.1, 7.0


I am trying to configure my project to receive Traps from multiple SNMP devices. I have defined the addresses T0-T6 for each of my SNMP devices.
I am unable to get this to work, and I am experiencing crashes. Am I doing something wrong?



This is an invalid/incorrect configuration. The addresses T0 - T6 should only be configured once, regardless of how many SNMP devices you may have. Defining this address range multiple times is an invalid configuration, and will cause undefined behaviour.

The addresses T0-T6 are not normal registers configured inside the SNMP device, rather, they are a set of Queues, that only exist within the SNMPII Driver itself.
When any SNMP trap is sent from an SNMP device, the 'Queues' T0-T6 within the SNMPII driver are populated with information about where the Trap was sent from, and what information it contains.

Since this one set of tags / queues are used for receiving traps from all devices, there should only be one Cicode function configured to process this Queue, using the information inside the Trap to determine which SNMP device it was sent from.

We have seen crashes where the addresses T0-T6 have been configured for each device (technically pointing to the same address), and where multiple Cicode functions have been configured to process these duplicate Tags (essentially all pointing to the same Queue), in concurrent threads.