AB7007-B serial commands to Roboclaw motor controller

Hello,
Anybus.cfg (16.0 KB)
First time user here when it comes to a Anybus Product. I have the AB7072 Ethernet/IP which I am trying to communicate to a Roboclaw Brushed DC Motor Controller (see link to user manual below). My question is in regards to the checksum calculation. Page 59 of the Roboclaw manual describes how the CRC calculation needs to function. I’ve attached the config file to this post as a reference.

Thanks,
-Jon

It looks like you have the checksum configured properly for the transaction, although I’m not exactly sure what their checksum code is doing. If it is doing anything other than a standard CRC, ones complement, or twos complement, then you may have to manually calculate the checksum for the transaction and include it in the frame.

Have you tried it yet and if so does it work or do you get an error? If you get an error, what is the error?

If you are getting an error and can’t determine why, you will probably need to contact the OEM and ask them for the calculation they are using, unless you know how to interpret the code they included in the manual.

Here are the Anybus options:

Thank you for the response. I reached out to the manufacturer for the CRC checksum calculation and they told me the following
“It is the same CRC16 used by the Xmodem protocol. They should be able to find examples that are appropriate for whatever language they are using”
As I am a first time user I am unable to confirm that this is the same calculation as what you mentioned.

Any help would be great!

Thanks!
-Jon

In that case you shouldn’t have to do anything special to accommodate for the checksum. Are you getting an error of some kind?

Kyle, I know it’s been a year but I’m just getting back to this project and I’m wondering if there’s a way to get a custom CRC Polynomial with 0x1021 configuration in the anybus gateway.

Just an FYI I had to get a new username as I moved companies

Thanks,
-Jon

Hi Jon,

Welcome back!

The Anybus Communicator uses CRC-16 with a 0xA001 polynomial, the Modbus RTU standard. I can check with the product engineers, but I don’t believe there is any way to change this. Most likely, a custom firmware would need to be written, so it’s probably easier to do the calculation in a PLC and then insert it into the transaction.

For reference, the Checksum Object is described in Section 14.7 of the User Manual. The four options are CRC, LRC, XOR, and ADD with options for 1, 2, or no complement and binary or ASCII representation.

Kyle