Jump to content

Explicit Message Ethernet/IP Message to Set IO-Link Paramters


Cam

Recommended Posts

Has any one ever set up a UniStream to communicate with an Ethernet/IP IO-Link Master block? or accomplish what is described below.

I can communicate with the block and configure the block itself, however I am unable to set parameters in IO-Link devices connected to the block using an explicit message.

I need to send a message with the following:

image.png.177d68cc8e2697d77923d526d524833c.png

CIP Service: 0x32

CIP Class ID: 0x96

CIP Instance ID: 1

Attribute 0x03 (read)   0x02(write)

Service Data 0x41  (Index I want to read/Write) followed by the data I want to write if I'm doing that operation

Rockwell has a message composer that allows you to set all this up, I don't see it available in the UniStream nor have I found a way to do it as the Get Single and Get All are 0x0E and 0x01 service codes, which looks like:

image.png.ab469187d53c4ab6b7ed55f1e1b8797b.png

Soure Elemenets are data I'm sending (Index to be read or write+data to write)   Destination is where the data I'm reading gets put.

Here are the messages using an ODVA tool

Read

image.thumb.png.5a8b9f50f27ef930295435eab4c99b59.png

Write

image.png.828b215d78cf25e68751f6b92e4ec783.png

Links to Balluff documentation and their technotes(which are all AB related and all their tech support could provide)

Balluff Ethernet/IP Master Block  BNI006A

https://htmsensors-my.sharepoint.com/:b:/p/cameronm/EVAORRXz3UFIop2JuGVA_IEBmGORnCL_G8tLOIrm60Tp7w?e=VRd0vH

Balluff IO Link Module BNI007R

https://htmsensors-my.sharepoint.com/:b:/p/cameronm/EYJtc4q22K1Ai4TSbhiR2qwB_EWZ6cms43TnJ0y_e0eiMw?e=OcrPz4

Balluff Technote

https://htmsensors-my.sharepoint.com/:b:/p/cameronm/EYhgfHdOL1hIk3Z1r8poKDoBLp1NROuyrQZbASe--i5ESw?e=QhVkIh

Edited by Cam
Added ODVA tool screen shots
Link to comment
Share on other sites

Update to this

I apparently missed the explicit general message function block when looking at this.  I’ve got it configured However when it runs I get a -1 in the status message every time.  I shut off the implicit messaging and just set it up for explicit that didn’t work either.   Screen shot attached.31507136-1B81-4641-A44A-AAAFA83F7F8D.png.d34dc875aeb546e22971c5b67582d0c6.png 

My next step is to wire shark it in the morning and see if the PLC is actually transmitting, or somehow is stepping on itself and not.

anyone else have a suggestion as to what to check or try?

Link to comment
Share on other sites

Hi Cam,

you haven't tried through the EIP: General Explicit Message ?

Bytes to copy is 3.  It is OK?

but be careful, hex numbers need to be entered  for example #H32  for Service code.  (decadic 50).

    #H96  for Class. (decadic 150).

Notes
 You must create an Ethernet/IP Scanner node in order to enable Explicit messaging; you do not need to define any assemblies or I/Os, only the node is required.

If you are implementing Explicit messaging alone, when the Scanner Initialization Status = 2, the connection is ready. However, if you are implementing both Implicit and Explicit types, Status = 4 allows both types to flow through the connection.

 

ExplicitCommand.JPG

Link to comment
Share on other sites

Hi Pista,

See the update post above yours I believe they got approved at the same time so you probally couldn’t see it.

yes the scanner initialisation is 4 when I try to communicate as there is implicit meesaging going on as well.  
 

I believe three bytes is correct as all I need to send as data is 0x41 0x00 0x00.  Or am I mistaken and I need to send 12 as the service code,class,instance,attribute which consist of 9 bytes need to be included in the bytes to copy?  The help file is a little light on this function @Cara Bereck Levy

Link to comment
Share on other sites

Hi,

my comand is 3 x 32 bit, so bytes on copy = 12.


Try service, class and instance  enter in decad. values.
I do not know what is being transferred correctly from the tag.

Last zero is not a terminator?
try sending 2 bytes.
Attention- Rockwell can use the byte as 16-bit

EIP.PNG

Link to comment
Share on other sites

Well this is partially solved.  I can use explicit messaging and get data from the block if

1)No implicit messaging is active

2)I’m not in online mode with my PC

If implicit is active there are two extra bytes inserted in to the explicit communication which the block then interprets as the class is 0xFF96 instead of the 0x96 which is declared.  With the PC connected in online mode the status is always -1. Disconnect the PC and and disable implicit messaging and everything works.

Support has everything including the wire shark files showing what is being transmitted including the extra bytes.  I’ll update this once they provide a solution.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

This site uses cookies. By clicking I accept, you agree to their use.