Accurate acquisition and reliable output of analog signals are the foundation of process control in industrial automation and building control systems. The W500 and W600 intelligent analog modules in the Saia PCD4 series provide 8-channel isolated analog input and 8-channel isolated analog output, respectively, and have built-in microcontrollers that can locally execute intelligent functions such as continuous measurement, proportional conversion, user scaling, comparator, wire breakage detection, synchronous updates, etc., significantly reducing the burden on the central CPU. This article will provide a comprehensive and in-depth technical analysis of these two modules from the aspects of hardware architecture, technical specifications, range modules, standard mode, expansion mode (functional blocks and FBox), configuration methods, and programming examples.
PCD4.W500 Intelligent Analog Input Module
PCD4.W500 is an intelligent analog input module with electrical isolation, with a resolution of 12/15 bits and an A/D conversion time of up to 100 µ s per conversion. By inserting different range modules (PCD7. W1xx), it can support 8 voltage channels (0... 10 V, ± 10 V, 0... 1 V, ± 1 V), 8 current channels (0... 20 mA, 4... 20 mA), or 8/4 thermistor channels (Pt/Ni 100/1000, 2-wire or 4-wire) measurement.
1.1 Hardware and Range Module
Substrate PCD4.W500: Includes isolated DC/DC converter, input multiplexer, A/D converter, programmable current source, optocoupler isolation, microcontroller, and I/O bus interface. There are two slots on the board (space A and space B), corresponding to channels 0... 3 and channels 4... 7, respectively. Each slot can accommodate the following range modules:
PCD7. W100:4 channel, 0... 10 V/± 10 V
PCD7. W101:4 channel, 0... 1 V/± 1 V (can also be used for 4-wire Pt/Ni 100/1000)
PCD7. W103:4 channel, 0... 20 mA (including 4... 20 mA)
PCD7. W104:4 channel, 4... 20 mA (for two-wire transmitters with 24V power supply)
PCD7. W110: 4-channel, Pt1000, -50...+150 ° C, 2-wire
PCD7. W111: 4-channel, Ni1000, -50...+150 ° C, 2-wire
PCD7. W120:4 channel, constant current output (for 4-wire Pt/Ni 100/1000, used in conjunction with PCD7. W101)
Input filter time constant of 1 ms. The "Offset" and "Gain" potentiometers on the substrate have been preset by the factory and should not be adjusted by the user.
1.2 Technical specifications (substrate)
Total input: 8 channels (voltage/current or thermistor)
Electrical isolation: 500 VDC (1 minute) between PCD GND and module GND
Measurement principle: differential input
Digital display: Single mode 12 digits (0... 4095), continuous mode optional 12/15 digits
A/D conversion time: single ≤ 100 µ s, continuous ≤ 65 µ s
Accuracy: ± 0.15% (voltage), ± 0.2% (current), ± 0.5 ° C (temperature)
Repetition accuracy: ± 0.05%
Temperature error: ± 0.02%/° C
Immunity: Complies with EN 61000-6-2, etc
Common mode rejection: high
External power supply: 24 VDC (for current output or transmitter)
Current consumption: Take 150 mA from PCD4 bus+5V; maximum 100 mA from external+24V (for current output)
1.3 Working principle and address mapping
The module uses 16 I/O addresses (base address+0...+15). Channel selection is completed by setting C0... C7 (output bits); Start conversion controlled by SET/RES O8; The status register is read through O9. When converting, the "Busy" signal (input bit) is at a high level, and after completion, it becomes low. Data can be read from D0... D14. This module supports two modes of measurement: single measurement and continuous measurement. In continuous mode, the results are periodically updated and stored in the internal memory. When read, the latest value is directly returned without waiting for conversion.
1.4 Intelligent functions
The onboard microcontroller provides rich intelligent functions without CPU intervention:
Single/continuous measurement: Each channel can be configured as single (triggering conversion upon each read) or continuous (automatic cyclic conversion).
Multiple formats: bit format (12/15 bit raw value), scale format (directly corresponding to physical quantities, such as 0... 10000 corresponding to 0... 10 V), user-defined scaling (range+offset).
Temperature linearization: Directly output a value with a resolution of 0.1 ° C (e.g. -500 corresponds to -50.0 ° C).
Comparator: Each channel can be set with two limit values (A and B) and an adjustable hysteresis loop (8-bit, 0... 255). The status register directly indicates whether the input value exceeds the limit value, is within the window, etc. This is equivalent to a hardware level threshold switch, reducing the burden of CPU comparison instructions.
Diagnosis: wire breakage detection (temperature measurement), short circuit detection, scaling errors, internal errors, etc., read through status registers.
1.5 Standard Mode and Extended Mode
Standard mode: When no additional configuration is made to the microcontroller, the W500 behaves similarly to a regular W300 module. Each read triggers a conversion, returning a 12 bit original value. Users need to process the 'Busy' signal (polling or waiting) in the program. The example IL code demonstrates how to read channel 3 and store it in R103.
Important note: If the module was previously configured in continuous mode, this configuration will be saved in EEPROM and will remain in continuous mode after the next power on. If you want to restore single mode, you must reconfigure (configure all channels as' disabled 'or write configuration 0000H). The use of FBox or FB's Config function can easily solve the problem.
Expansion mode: Configure the module through function blocks (FB) or FBox (in Fupla of PG4) to enable continuous measurement, proportional format, user scaling, comparator, etc. All configuration data is stored in the EEPROM of the module and automatically loaded upon power up.
1.6 Function Block (FB) List (IL Programming)
RdValUp: Read unipolar input values (e.g. 0... 10 V → 0... 10000)
RdValBp: Read bipolar input values (such as ± 10 V → -10000...+10000, or temperature -500... 1500)
RdStatus: Read the channel status register (including comparator results, error flags, etc.)
Config: Configure the entire module (requires providing a configuration data block DB, including configuration codes, comparison values, hysteresis, user scaling parameters, etc. for each channel)
WrCData/RdCata: Write/read configuration parameters of a single channel (such as dynamically changing comparison values)
Control: Send commands (such as saving configuration to EEPROM, hot restart, cold restart, self-test, etc.)
RdInfo: Read module information (EEPROM checksum, module identification, hardware/firmware version, production year/week)
All FB readers and writers have a built-in timeout mechanism (about 15 ms), and if the module does not respond, the timeout flag will be set. Configuration FB should be called in XOB 16 (cold start) to avoid frequent calls in COB (time-consuming).
1.7 Example of configuring data blocks
The length of the configuration data block (DB) is 58 bytes, and the structure is as follows:
Byte 0: Reserved for checksum (initially set to 0, Config FB will automatically calculate and store)
Byte 1: Power frequency suppression (1=60 Hz, 2=50 Hz, used for high-resolution continuous mode)
Then each channel has 7 parameters (out of a total of 8 channels):
Configuration code (16 bits): determines mode, range, format, whether to enable comparator, etc. (e.g. 0001H=voltage 10V bit format low resolution, 0009H=voltage 10V proportional format low resolution, 0021H=voltage 10V bit format high resolution, 20EBH=Pt100 4-wire 0... 600 ° C, etc.)
Comparison value A (16 bits)
Hysteresis A (position 8)
Comparison value B (16 bits)
Hysteresis B (8th position)
User zoom range (16 bits)
User zoom offset (16 bits)
The manual provides a complete configuration code table (low resolution/high resolution, voltage/current/temperature, different range modules).
1.8 Programming Examples
The manual provides three complete IL examples:
Voltage input example: Using PCD7.W100, configure channel 0/1 for bit format low resolution, 2/3 for proportional format low resolution, 4/5 for bit format high resolution, and 6/7 for proportional format high resolution. Polling reads the value of each channel in COB and stores it in a register.
Pt100/1000 temperature measurement example: Use PCD7.W101+PCD7.W120 (4-wire), configure channel 0/1 as Pt100 0... 600 ° C, 2/3 as Pt1000-50... 150 ° C, and enable comparator (set A/B limit and hysteresis). Simultaneously read values and status.
Example of a two-wire transmitter: Using PCD7.W104 (4... 20 mA), the user scales to map 4... 20 mA to -100...+800 ° C (K-type thermocouple analog) and sets the comparator.
These examples show how to define the configuration DB in RAM (ensure that the checksum is 0 after the first download to trigger the configuration), call Config FB in XOB 16, and read each channel circularly in COB.
1.9 FBox support (Fupla programming)
For graphical programming (Fupla), PG4 provides dedicated FBox: "PCD4.W500", "PCD4.W5 Temp_3/4 wire", and "PCD4.W5 Channel Status". Users can set the base address, range module type, format of each channel (bit/scale/user zoom/disable), comparison value, hysteresis, user zoom range/offset, etc. in the adjustment window. FBox automatically generates configuration code and reads logic. Please note that all settings, except for the channel state, are in offline mode and must be recompiled after modification.

PCD4.W600 Intelligent Analog Output Module
PCD4.W600 is an intelligent analog output module with electrical isolation, 12 bit resolution, and 8 output channels (divided into 4 groups of 2 channels each). By inserting different range modules (PCD7. W30x), it is possible to output 0... 10 V, ± 10 V, 0... 20 mA, or 4... 20 mA signals.
2.1 Hardware and Range Module
Substrate PCD4.W600: Includes isolated DC/DC converter, microcontroller, and I/O bus interface. Can insert 4 range modules (2 channels per module):
PCD7.W300:2 channel, 0... 10 V
PCD7.W302:2 channel, ± 10 V
PCD7-W304:2 channel, 0... 20 mA
PCD7.W305:2 channel, 4... 20 mA
The module has a "plug and play" recognition function: the software can automatically read the type of range module installed in each slot.
2.2 Technical specifications (substrate)
Total output: 8 channels (voltage/current), short circuit protection
Electrical isolation: 500 VDC (1 minute)
Resolution: 12 bits (0... 4095)
Conversion time: Voltage 0.1 ms (resistive load), 0.8 ms (capacitive load); Current 0.3 ms
Load impedance: voltage ≥ 3 k Ω, current 0... 500 Ω (capacitance<1 µ F, inductance<1 mH)
Accuracy: Voltage ± 0.15% ± 5 mV; Current ± 0.2% ± 20 µ A (± 20 µ A at 4 mA)
Temperature error: ± 0.02%/° C
Linearity: Voltage ± 0.05%, Current ± 0.1%
Repetition accuracy: ± 0.05%
Current consumption: Take 200 mA from PCD4 bus+5V; take 100 mA from external+24V+output 20 mA per current channel
2.3 Working mode and intelligent functions
Single mode (default): Every time an output value is written, the D/A conversion is immediately initiated and output. The output value can be in 12 bit raw format (0... 4095), proportional format (e.g. 0... 10000 corresponds to 0... 10 V, -10000... 10000 corresponds to ± 10 V, 4000... 20000 corresponds to 4... 20 mA), or user scaling format (custom range+offset). The module automatically recognizes the range module and applies the correct conversion relationship.
Synchronous update mode: This is an important intelligent feature of W600. Each output channel can be preloaded with a value (preset value, stored in EEPROM), and then all channels simultaneously output their preset values by executing the "Sync all channels now" command (Control code 0) once. The total delay of updating 8 channels is only about 75 µ s and does not consume CPU time. Especially suitable for applications that require multi-channel synchronous output (such as controlling multiple proportional valves or servo drives).
Power on behavior: In synchronous update mode, after power on or hot restart, the module will output the preset value stored in the EEPROM (instead of 0 or random value) to ensure safe system startup.
2.4 Address Mapping and Status Register
Similar to W500, W600 uses 16 I/O addresses. When writing, first select channels (C0... C7), then write data (D0... D14), and then start the conversion through SET/RES O8. The status register (read through O9) contains flags such as scaling error, range module not installed, channel error, internal error, etc.
2.5 Function Block (FB) List
WrVal: Immediately output a value (directly output in single or synchronous mode, but not synchronized)
WrPreVal: Write preset value (for synchronous update mode)
RdStatus: Read channel status (including error flags)
Config: Configure the entire module (providing a configuration DB, including configuration codes, preset values, user scaling parameters, etc. for each channel)
WrCData/RdCata: Read and write configuration parameters for a single channel
Control: Send commands (0=synchronize all channels, 2=clear status, 3=save configuration to EEPROM, 4=initialize new configuration, 5=stop conversion, 6=run conversion, 7=hot restart, 8=cold restart, 9=self-test)
RdInfo: Read module information (including range module identification code, can read the type of module installed in each slot)
2.6 Configuring Data Blocks and Examples
The configuration DB length is 33 bytes: the first byte is the checksum, and then each channel has 4 parameters (configuration code, preset value, user scaling range, user scaling offset). Meaning of configuration code:
0000H: Single mode 12 bit original format
0008H: Single mode proportional format
0018H: Single mode user zoom
0001H: Synchronous update mode 12 bit original format
0009H: Synchronous update mode proportional format
0019H: Synchronized update mode user zoom
The programming example shows how to configure channel 0... 3 as a single proportional output, channel 4... 7 as a synchronous update user scaling output, and call Config in XOB 16. Users can use WrVal or WrPreVal to update output values in COB, and call Control code 0 when synchronization is required.
2.7 FBox support
Fupla provides FBox "PCD4. W600", which allows users to set the base address, range module type for each output group, format (bit/scale/user zoom/disable) for each channel, and user zoom parameters in an offline window. Additionally, it can monitor internal errors and channel errors.
Common considerations and best practices
Base address: Do not use 240 and 496 as they conflict with the watchdog address.
EEPROM configuration: The module will save the configuration in EEPROM and automatically restore it after powering on again. To change the configuration, Config FB must be called in XOB 16, and the checksum in the configuration DB must be 0 (the first time) or different from the EEPROM to trigger reconfiguration.
Unused channel: must be configured as' disabled '(for W500 configuration code 0000H, for W600 configuration code 0000H and format disabled), otherwise it may cause unnecessary conversions or errors.
Thermal resistance connection: When measuring with a 2-wire system, unused inputs must be short circuited; When measuring with a 4-wire system, unused current outputs must be short circuited.
Isolation test: If a 500 VDC withstand voltage test is to be conducted on the system, the shielding component on PCD4.C2 must be removed to avoid damaging the module.
Programming language: As analog reading and writing are sequential processes, it is recommended to use GRAFTEC (Sequential Function Diagram) to avoid using wait loops (such as JR H-1) that consume CPU.
Timeout handling: All FBs have a timeout flag, which should be checked in the program to prevent module failures from causing the program to hang.
Typical application scenarios
W500: Multi channel temperature acquisition (Pt100/Ni1000), process variable monitoring (pressure, flow transmitter 4... 20 mA), high-speed voltage/current signal recording (continuous mode, 15 bit resolution), threshold alarm with comparator (no CPU involvement required).
W600: Proportional valve control (synchronously updating multiple valves), analog set value output (such as frequency converter speed given), user scaling adaptation to non-standard sensors, power on safety output preset value.
