Profinet Acyclic Write Causes Error

Hello,

I have been working with the Anybus CompactCom B40 Profinet IRT Brick and have had good success testing our implementation: I am able to load GSD files, set station name and IP, cyclically read/write, and even acyclically read data. However, when testing the acyclic write, I seem to have run into a problem.

Instead of receiving back a response of the data that is stored in the ADI I am trying to access, I am receiving an error. When I try to do an acyclic write, I get the error 0xDF814006. I viewed the exchange on Wireshark and found that it is a “State Conflict” error.
image

I saw a post that was similar to my issue (Profinet non-cyclic communication with Anybus module - #15 by Merlin) but the solutions did not work for me. I confirmed that I was sending the write to the proper location (Slot 0, Subslot 1, Index 513) to write to to ADI #513. Additionally, I tried to set one of my ADIs to have access APPL_NOT_MAP_WRITE_ACCESS_DESC and see if the write command would work, but I was unsuccessful, same as the linked post. For my implementation, I have all of the ADIs as mappable.

For reference, I am using PROFINET Device Monitor v1.07 which is a free Profinet simulator software.

Is there an additional setting or something that I need to change in the firmware such that I can successfully write acyclic data? Or is there alternate software that I can use to test the acyclic write?

Please let me know if I can provide additional information or screenshots. Thank you in advance.

Can you share your ADI mapping for me to take a look at?
Is there any change if you map the data? APPL_WRITE_MAP_READ_ACCESS_DESC

Deryck

Deryck,

Thank you for your reply. I should probably clarify that my data is all mapped, as I have attached below:

GetAdiValueCbf and SetAdiValueCbf are callback functions that are called when these ADIs are accessed and are already confirmed to work.

Is there anything that should change with the access of the ADIs or how they are mapped? Or anything I should test?

Hello @pdesai ,

I was able to perform a Read using the tool you are using but could not perform a write getting the same error you are seeing. To try and rule out this issue with this simulator I am looking into another simulator to see if the issue is reproducible.

Deryck

Deryck,

Thank you so much for verifying with the software that I used. I suspect it could be a simulator issue as well, but I have been unable to find another software to use to test out Profinet communications.

Have you had any luck with any other simulators for acyclic writing, given my configuration? Or are there other macros/configurations that I might be missing that would cause this behavior?

Thank you in advance for your reply!

Hi @pdesai,

Thanks for your patience, I was just able to get my colleague with a license to the Profinet Saster simulator plus we offer, that can do read and write record data. With this tool we were able to read and write without errors.

Comparing a capture between the two the only difference I am seeing that I am thinking would be causing issues is the ArgsMaximum is set to 1000 in the Port tool while the other sim has it set to match the actualcount. I can only guess the reason here and wonder if this is is not a valid range for the ABCC. Perhaps it is a memory limit.

Here is a set of captures comparing the two tools.
FreePortSimComparison.zip (6.8 KB) SimulatorComparison.zip (9.8 KB)

Regards,
Deryck

Deryck,

Thank you so much for your reply! You went above and beyond to answer my question.

I will personally look into why ArgsMaximum is causing an issue or if there is something else, but it seems to me that the setup I have works, but the simulator does not support it. I will look into the HMS Profinet Master in the future.

Thank you again for your time!

Glad to help! I was interested as to why it was not working. If you find a way to adjust the argsMaxumum in the future let me know!

Also thanks to @jonc_hms, he was able to grab the captures for me.

Deryck

Deryck,

I was trying to do some additional testing for acyclic communication. I was unable to find out if there is a way to change ArgsMaximum from the software I used.

I then tried to use TwinCAT 3 software to test out Profinet, and was able to cyclically read/write, but was not able to acyclic read/write. Do you know of anyone testing with this software for Profinet?

We offer the following simulator, the plus version has acyclic read/write.
PROFINET Master Simulator (anybus.com)