A BCX PE program does not read / mirror value from its child 3rd party MSTP device (ALC IO6126). The exact same PE program in workstation reads / mirrors value from the same 3rd party MSTP device correctly.
When the PE uses just ReadProperty(BACnetDevices\BNet_2778\Dev100\Supply_temp), controller error log file shows message of " 0x8000001e - BACnet request timeout " & " 0xfffd001f - BACnet error ".
BACnet (BCX4040) , 3rd party MSTP device ( ALC IO 6126 / IO6126 / Viconics )
Case#1) The BCX's Foreign Device configuration page ( Foreign Device table ) was set up to have an IP address of a BBMD BCX on the same IP subnet by mistake.
Case#2) The MSTP devices are consuming MSTP network resource by trying to send the token to non-existing MSTP device all the way up to ID127 as the BACMaxMaster attribute is set to 127.
Case#1) BCX's Foreign Device Configuration / Table should be set up to have the IP address of the BBMD on the different IP subnet ( not the BBMD on the same IP subnet ). Remove and zero out the Foreign Device Table of the problematic BBMD.
Case#2) Change the BACMaxMaster from the default value of 127 to the MacAddress of the last MSTP device on the network.