How can I send an actual byte array (not a null-terminated char array) via SDO in RapidSetup?

How can I send a “string” with bytes that are 0x00 via SDO in RapidSetup?

What formats does the app support?

Also, does the SDO read operation correctly handle results with null bytes?

If you have specific bytes of an SDO that you need to write to you can use Windows programming calculator to determine the integer equivalent.

You can change the write type using the drop down option here and simply put the string in the Value field.

It can take raw strings and ints see the linked documentation for exact types. Hex/integer conversion by prepending 0x should be fine.
ServiceChannelWrite(int32_t index, int32_t subIndex, int32_t byteCount, const char *const stringValue )
ServiceChannelWrite(int32_t index, int32_t subIndex, int32_t byteCount, int32_t sdoValue)

For the SDO Read, there is no special checking for null-terminated data. It just does a very simple and literal read of the data specified location.

Could you tell us more about what specifically you are trying to do?
What node are you using? Which SDO are you trying to read/write to?
This way we can look into better supporting this.

I’m trying to send a 16-byte hex string.

00 00 00 04 03 e0 00 00 00 00 00 00 00 00 00 00

Yaskawa Sigma-7

0x2710/1

As of right now, that is not possible in Rapid Setup. It should be possible to add in the future.
Without having tested it, it should be possible in RapidCode API using the const char* overloaded function linked above.

1 Like

I have gotten it to work that way. I was attempting to come up with a method to double-check the results I was seeing.
Thanks.

1 Like