Forum Migration Notice
We're transitioning to a more modern community platform by the end of this year. Learn about the upcoming changes and what to expect.

How can I set an IO signal with RWS2 on an Omnicore controller?

I am using the following CURL command which I got from ABB RWS2 instructons page to try and set a signal value from 0 to 1:

"Default User":robotics -H "Content-Type: application/x-www-form-urlencoded;v=2.0" -d "lvalue=1" -X POST "https://localhost:80/rw/iosystem/signals/DI_signal/set-value"

But I get: 
rws_resource_iosystem.cpp[3141] Invalid data parameter code:-1073445879 icode:-1
Which from the list of errors is: An argument specified by the client is not valid for this type of operation.
This signal has no device nor network, but I have confirmed this url works to get the signal information, state etc, and the signal access-level is set to All.
The localhost must be on port 80 otherwise connection is refused, but I have confirmed this port works for RWS.
I can do all other tasks with RWS, I can POST a RAPID start/stop, and get signals.

Given this I am not sure what I am doing wrong

Answers

  • Hi Gonçalo,

    I tried to recreate the error scenario you described, but I was able to update the IO signal value successfully.

    Here is what I did:

    • RobotStudio 2025.3

    • OmniCore Virtual Controller with RW 7.19.3

    • Postman used for testing

    Steps:

    1. Created a DI signal (TestDI) in I/O System, not assigned to any device, with Access level = All.

    2. Verified the VC connection in Postman using:
      GET https://127.0.0.1/rw

    3. Confirmed the signal was accessible via:
      https://localhost/rw/iosystem/signals/TestDI/
      The returned XML shows:
      access-level = All and
      write-access = Rapid | LocalManual | LocalAuto | RemoteManual

    4. Updated the IO signal value using:
      https://127.0.0.1/rw/iosystem/signals/TestDI/set-value

    5. The signal value change was correctly reflected in RobotStudio.

    Could you please check if there was anything different in your setup or test steps? It may also help to explicitly request mastership in Manual mode (RMMP via RWS2) before updating the signal.

    Additionally, the VC should be accessible without specifying the port number. It might be worth checking whether port 80 is being used by another application.

    Regards,
    Dhanya Prabhakaran
    PC Software Support Engineer
    ABB Robotics Sweden AB

    -

    Dhanya Prabhakaran

    PC Software Support Engineer

    ABB Robotics Sweden AB

  • Hi, thank you for the answer.

    Meanwhile I managed to set the signal by using the same CURL command on windows command prompt and with a script as well, apparently just Bruno and Postman were not working not sure why.