With some recent update, this code that hasn’t changed in a while has started failing, with the drive giving a status of 3.
You guys recently changed some SDO behavior. Is it possible that any of these changes could affect the process of sending adjustment commands and retrieving the status? I’m thinking of timing or other quirky issues with Yaskawa.
I send the command as a string.
I wait 5ms and check the status (repeating until the status is 0 or 3)
I get the response data, which might contain an error. In my case, the error is 0.
I don’t see any recent changes to the ServiceChannel thread other than the as yet released EoE feature. Are you reading 16 bytes of data on SubIndex 3? It looks like the Reply is only 16 bytes of data the first two of which don’t contain response data indicated by the Status of 3. It sounds like the SDO Read for Subindex 2 is working as intended. (3 being a valid response)
Do you ever see a failure case where you can read useful information in the reply? When you do the process manually, are you seeing a status of 0 or 1?
Don’t hear me suggesting that the SDO call itself is failing somehow. It’s not. The “action” I’m trying to perform is failing (reported back by the drive), but I haven’t changed this code (directly) in well over a year.
I’m hunting for ideas of what might have changed that could result in the Yaskawa drive (a very finicky customer) to complain about what (or probably, how) I’m doing.
Thanks for the follow-up. I also wanted to note that if you’re reading string data from an SDO, be sure to copy the data before making more SDO calls as we are just returning you a pointer to the data that’s backed in the NetworkNode object and will be overwritten on the next ServiceChannelReadString(…).