Unable to locate/write analog output registers

Hi all–apologies if this is in the wrong category.

I have a remote I/O system with a 750-315 coupler. It is the old version that uses serial/Modbus RTU communication.

I am attempting to write a value to my first analog output card using my PC. I was initially working in Ignition SCADA but will switch over to CAS Modbus Scanner for simplicity in this example.

Per WAGO tech support, the analog outputs start on 512 in the holding registers (40,512); however, I am unable to read/write any values here. I get “bad data” returned. For this example, I am using function code 03 to attempt to read the value.

image

I am able to write values to other addresses, such as 40,020–my programs say they are able to write to the address successfully; however, the value reverts back to 0 instantly when I read the value back.

I have turned off the watchdog function in the coupler. I also tried passing the value though on a 1 ms timer but it still reads as 0.

Hi Jessp,

  1. Confirm accurate communication settings for the WAGO 750-315 coupler, including baud rate, parity, stop bits, and Modbus mode, detailed on page 51 of the manual.
  • Baud Rate: Ranges from 150 baud to 115.2 kBaud. (Factory default: 9600 baud)
  • Parity: Options include No Parity, Even Parity, or Odd Parity (Factory default: No Parity).
  • Stop Bits: Configurable as 1 or 2 stop bits (Factory default: 1 stop bit).
  • Modbus Mode: RTU or ASCII (Factory default: RTU) .
  1. Write Access: You can write to output data starting from MODBUS address 0x0000. This means when sending write commands (like using function code 16), you start at address 0x0000.
    Read Access: When reading output data (using function code 03), the device requires you to add an offset of 200hex (or 0x0200) to the starting address. So, if you want to read the same data that you wrote to 0x0000, you need to read from 0x0200.

  2. Inputs are mapped 1st:
    Analog Inputs (AI) then Digital Inputs (DI)
    Outputs are mapped 2nd:
    Analog Outputs (AO) then Digital Outputs (DO)

    This is the process image order regardless of the individual module positions.

    Read from 0x0000, to access input data (AI and DI). Write to 0x0000, to set output data (AO and DO). To read back the output data you wrote, use address 0x0200.

  3. There is no mention of address 40,020 (0x0014) in the manual. The register reverting to zero, indicates that the address is likely reserved or read-only.

Here is the manual for reference:
m07500315-03000000-0en.pdf (4.7 MB)

For information, does your modbus software address start at 0 or 1 ?
if it start at 0, the output address will be 512.
If it start at 1, the output address will be 513.
All depend if you use modbus address or PLC address.

1 Like