The pre-defined symbol __PCD_UID__ (unique program identifier)

FAQ #100332

In order to figure out wheter the PCD contains the same user program version as present on the PC, PG5 relays on the "unique program identifiers". This FAQ contains a description of the used identifiers.

__PCD_CURRENT_BUILD_KEY__
was a DB generated by the old PG4 Fupla which it used to check the PCD file and program in the PCD were the same

before going online. It is not used anymore because it changed after every build, and caused the old 'program in PCD is not the same' warnings (but the program was the same - it was only the __PCD_CURRENT_BUILD_KEY__ which is changed!).

It was replaced by these symbols:

__PCD_UID__
Data block (unique program identifier) which identifies the program. Used by 'download changed blocks' to prevent downloading changed blocks to the wrong PCD.
In order to verify the __PCD_UID__ manually:

  • open the data block view of the PCD, and open the filter window from the context menu.
  • enter as symbol name the __PCD_UID__ and select "Internal symbols" in the Section "scope"
    image
  • Disassemble your *.pcd file and look for the DB definition (usually DB 3500)
  • Go online with the Online Debugger and check whether your DB content is identical to the one in your PG5 project

The __PCD_UID__ consists of a number defined at the time the device in the PG5 project is created (based on the PC MAC address and the milli-second counter of the PC). This "original part" of the UID is combined with the modification dates of the files belonging to this CPU in order to generate the UID.

__SAIASystemBuildTime__ 

32-bit value used to determine if the user program has been changed. (We kept the old name for compatibility reasons).

From S-Asm 1.2.060 (PG5 1.2.120) onwards:
The value is derived from the date/times of all source, include and library files which were used for building the user program. This will change only if the a source, include or library module is changed.
Before S-Asm 1.2.060 (PG5 1.2.120):
The value was the date/time read from the PC when the build was done. This changed the PCD file's checksum whenever a build was done, even if the program has not changed. This caused invalid "program is not the same" errors when trying to go online.

Related Files:

Categories

PG5 1.x

PG5 2.0

Last update: 31.05.2015 15:42

First release: 04.03.2005 10:35

Views: 8105

The requested software / document is no longer marketed by Saia-Burgess Controls AG and without technical support. It is an older software version which can be operated only on certain now no longer commercially available products.

Download