Ken Roach
Lifetime Supporting Member + Moderator
I hope somebody might be able to help me who has done some IO-Link messaging using an S7-1500 (TIA Portal 17) and the CMx8 IOLink module for the ordinary S7-1500 platform (6ES7 547-1JF00-0AB0).
My goal is to send a series of three asynchronous messages to verify that a particular device has been configured correct. It's a Baumer DAB10-AL load cell signal conditioner.
All the ordinary IOLink functions work. The Process Variable happily comes through in the Input image and I scale it and it's fine.
But when I try to use the IOLink messaging library, the data payload always comes back as all zeroes.
I've tried numerous index and sub-index values. If I try a port that isn't occupied, or an index/subindex that doesn't exist, I properly get an error.
But when I try the correct index and subindex, I get a Done bit and a 0 = No Errors result code and... all zeroes in the target array.
Am I just handling the target array wrong ? The function block only allows the target to be a local temporary tag of type Array of Byte[0-231].
Is the MOVE_BLK the wrong instruction to use ? I've tried both an ordinary XIC, as well as a positive edge detection instruction.
I have looked at the Siemens example code for this function but they only invoke it as part of a much more complex example. And of course, theirs would work fine.
I admit I'm a Siemens novice on this, so if I'm mis-using the Temp memory or the array DB I'd be happy for suggestions.
My goal is to send a series of three asynchronous messages to verify that a particular device has been configured correct. It's a Baumer DAB10-AL load cell signal conditioner.
All the ordinary IOLink functions work. The Process Variable happily comes through in the Input image and I scale it and it's fine.
But when I try to use the IOLink messaging library, the data payload always comes back as all zeroes.
I've tried numerous index and sub-index values. If I try a port that isn't occupied, or an index/subindex that doesn't exist, I properly get an error.
But when I try the correct index and subindex, I get a Done bit and a 0 = No Errors result code and... all zeroes in the target array.
Am I just handling the target array wrong ? The function block only allows the target to be a local temporary tag of type Array of Byte[0-231].
Is the MOVE_BLK the wrong instruction to use ? I've tried both an ordinary XIC, as well as a positive edge detection instruction.
I have looked at the Siemens example code for this function but they only invoke it as part of a much more complex example. And of course, theirs would work fine.
I admit I'm a Siemens novice on this, so if I'm mis-using the Temp memory or the array DB I'd be happy for suggestions.