IOLink - DataSensing sensor

Hello all,
I am trying to use a “DataSensing” S3N-W03 IOLink sensor with a X20DS438A B&R IOLink module.

I have already an other “brand” of iolink sensor (Leuze) without any difficulties but with this I have an error when I try to connect from automation studion.

In as, in the pysical view when I click right on the sensor and chose “Additional Functions” then Connect, I have an warning " Warning 22/07/2024 10:25:13,1714 An error occurred within DTM device ‘X20DS438A’ (Wrong modem mode.)."
And in the Configuration window of the sensor I see the status “Disturbed” in the connection status

Of course the communication does not works well.

On the PLC configuration the DTM Server is activ :

Thanks for your help.

Hello,

I have only seen the error “Wrong modem mode” once. In this case the wiring was wrong

Regards
Sephan

There is some troubleshooting information in a previous thread that you may also find useful: IO Link V_Pd_OutrunMode - Ask Questions - B&R Community (br-automation.com)

Thanks for your help.
Now the communication seems working. With AS I can connect the sensor and read/write from the configuration page of the sensor.
The sensor provide a digital output in addition to the IOLink and the problem occurs when I connect this output to an input of the PLC. For now I have disconnected this output (I will see this problem later).

When I try to write a code in a specific index of the sensor by using ioLinkWrite block from the AsIOLink library I get an error code 37967 : Internal error in the IO-Link Driver.
Have you an idea about this error?

I’m glad you were able to get it communicating!

Unfortunately, I haven’t seen that specific error before. I’d recommend checking the Logger to see if there are any additional error messages there. The ioLinkWrite function block also has an errorCode output in addition to the Status output. Are you getting any additional error information there?

Unless someone else sees this and has some ideas, I recommend reaching out to your local B&R office for support. They can help you find out what this error is referring to via a Support ticket.

Hi Marcus,
Thanks for your help.
Have you an example of code to write a value in a specific index?

My code works with a Leuze sensor but not with a sensor from DataSensing.
In my code, after set to TRUE the enable input of the ioLinkWrite fb, I wait one PLC cycle, then I check if the status (output of the fb) change to the value ERR_FUB_BUSY end then I waite the status ERR_OK (or an error).
This is only after this that I switch to FALSE the enable input.

This is the right method for you?

The sensor behaves as if I sent it the same writing twice but with my code I don’t see how this is possible.
Is it possible to “trace” what is sent on the IOLink?

Christian

Hi Christian,

Happy to help, and sorry I didn’t see this reply until now!

I unfortunately do not have an example for using ioLinkWrite, but your process sounds correct to me as that is how most B&R function blocks are designed to work. It’s interesting that the sensor is seeing the same value written twice. Perhaps double check that you’re calling the function block only once per cycle and verify that the “Enable = False” gets registered right away (make sure the function block isn’t called an extra time with Enable being set true).

There are some diagnostics built into the Device Configuration window from the screenshot in your initial post (specifically, the Events and Connection Info sections). I also see that if you right-click on the IO-Link master in the Physical View, you can turn on Additional Functions->Communication Logging. I’m looking for some additional documentation on those functions now, but you could try them and see if they give you the information you’re looking for.

Thank for your help
At the end we discover a “bug” in the sensor firmware.
The B&R IOLink module start the communication immedately after the power supply is activ and that create a problem on the sensor.

I’m waiting an update of the sensor but I activate the IOLink comm by the PLC code that works fine.

Thanks again

1 Like