Negative values from PCD3.T760 are not interpreted correctly on the PCD
When measuring e.g. the temperature of a Pt1000 sensor with a W-module mounted on a PCD3.T760, the sensor type can be configured in the SBC Network Configurator. If this is done this way, negative temeratures are not interpreted correctly on the PCD. Instead of negative values, very high values around 65000 are shown.
The temperature values read from the PCD3.T760 aren't negative but very high (around 65000). Positive values read are interpreted correctly. All modules that do offer the possibility of reading temperature values are affected (PCD3.W220, PCD3.W340, PCD3.W350, PCD3.W360, PCD3.W745).
The reason for this phenomenon is the fact that the values transmitted over Profibus DP or Profi-S-I/O are signed 16-bit values. These values are copied directly into the signed 32-bit registers of the PCD. Due to the lack of a transfer function that converts the negative values (and copies the sign bit from the 16th to the 32th bit), the negative 16-bit values aren't correctly interpreted when copied into a 32-bit register.
|An according transfer function has been implemented in the firmware of recent PCD systems.
For configuring this transfer function, select the checkbox "Signed" in the Profi-S-I/O (or Profibus DP) Network Configurator as in the screenshot shown.
The minimal PG5 version to use this functionality is PG5 1.4.120.
The first pilot firmware version supporting the discussed transfer function is $27 for PCD3 and $29 for PCD2.M480.
Firmware versions supporting the transfer function (systems not listed in this table do not support the transfer function mentioned):
|minmal Firmware version
On other systems than the ones listed above the following workarounds are possible:
- Reading the raw values from the W-modules (1:1) and then converting these values e.g. in Fupla by using the FBox "20-point-conversion". A table for this conversion accroding to the applied module and senser type can be requested from firstname.lastname@example.org
- Converting the read temperature values at the very beginning of the COB 0. Because the read values are copied to the PCD registers always right before the start of the execution of the COB 0, this will convert the values always just after the writing into registers. All following COBs created by the user will have the correct values read from the PCD3.T760. An example code for this method is attached to this FAQ. This file also contains guide how to introduce this function into an existing project.
PCD3 / Wxxx
PG5 2.0 / Profibus DP
Local FAQ Deutschland / Network configurator
PCD3 / T760
PG5 2.0 / Profi-S-I/O
Last update: 28.05.2015 16:28
First release: 26.10.2005 07:48