Anyone successfully gotten the FieldComm FDI RRTE to talk to an AnyBus Profibus DP device?

So far I’m just creating a super simple DD to get started - read the PV. I receive a single message from the PC running the RRTE, connected to the AnyBus 40 module via a PBPro USB Softing adapter. I see in the AnyBus debugging messages a response is sent, and the logger in RRTE is receiving it.:

Mem: Buffer allocated: 0x800322cc

Msg received:
[ MsgBuf:0x800322cc Size:0x0000 SrcId :0x00 DestObj:0xfe
Inst :0x0100 Cmd :0x41 CmdExt0:0x05 CmdExt1:0x00 ]
[ ]

Msg sent:
[ MsgBuf:0x800322cc Size:0x0004 SrcId :0x00 DestObj:0xfe
Inst :0x0100 Cmd :0x01 CmdExt0:0x05 CmdExt1:0x00 ]
[ 0x3f 0x00 0x00 0x00 ]

Mem: Buffer returned: 0x800322cc

Slot 1 / Index 0

Then nothing else.
The RRTE indicates a failure.

Odd, but I see in the RRTE log that it thinks it’s sending a message to slot 0/Index 0, but the AnyBus doesn’t show that it receives it.

(This may be why the RRTE thinks it’s a failure) I’m also asking questions of FieldComm of course.

What I’m hoping for here is smidge of guidance from someone on perhaps something I’ve not configured properly on the AnyBus side? Do I need to return more data in that Slot 1/ 0 read or something? I’ve looked through the Profibus specs and I’m not certain about that.
I’ve turned on all of the DPV1 settings in config to see what that would do.

If I use the Profibus Master tool from AnyBus, comms all work just fine. (Although this is over the AnyBus Profibus adapter)
I can also send a read to Slot 0/Index 0, if I add one against the recommendation:

“– Due to technical reasons, it is generally not recommended to use ADI numbers 1…256,
since this may cause problems when using certain PROFIBUS configuration tools.
Lowest addressable ADI no. would in that case be 257.”

Of course I tried running the RRTE with Slot 0/0 configured and that didn’t work either.

It comes down to having two different things to debug/create and being a little clueless on both!

Anyone out there that’s gotten this working before?? Suggestions? An example??

Cheers,
Ed

Hi Ed. What does RRTE stand for? Does the master have any scan and auto configure option? Does the master provide any error messages or feedback? What are they?

The send and receive messages appear to be correct but look it is requesting instance 256, which contradicts you comment on using ADI 257. However it double checking the user guide it should be valid. I am not sure where you grabbed the quote from but it appears to be off by 1. Perhaps you have an older user guide?

You can double check the slot and index based on the ADI number.

Hi,
‘RRTE’ is the development tool from FieldComm group (the HART/Profibus/Fieldbus people).
It’s purpose is to test out your Device Description file against your device, whether it’s HART, Profibus etc.
They recommend using a “Softing PBPro USB to Profibus adapter” which I have. The setup for that seems pretty straightforward. I see some indicators on it flashing as it’s trying to send messages.
The RRTE application has a logger (the screen cap) that shows the messages. The one transfer looks successful - to Slot 1 Index 0, as there’s a green (send from the RRTE) and a blue (received from the AnyBus module). This is all I can see.
I’ve come to realize that not all the traffic on the Profibus side generates debugging messages in the AnyBus driver, so I can’t really tell if the AnyBus hardware is receiving that Slot 0/ Index 0 message.
I tried a couple of different scenarios to see what worked - using the AnyBus Profibus Master simulator works to 0/0, but the RRTE doesn’t appear to. The reason it doesn’t work though I thought might have something to do with my response to 1/0 - that it’s expecting a different response.
Not to be flip here, but am I the only fellow on the planet that is doing this?
(In all honesty this may just be a problem in that FieldComm tool, and not something in AnyBus stuff, but I was hoping for a nibble out there)
-ed

What are you using for the GSD file? Since you need to create it your self it is not uncommon for there to be mistakes. Though if it is working with the Profibus Master sim. I would lean towards there being an issue in RRTE.

What do you have enabled for debugging? You may want to update abcc_drv_cfg.h to enable all the messages.
image

Hi Deryck,

I’ve turned on all the debugging messages – but I think the AnyBus device deals with those messages internally without generating debug messages – otherwise there would be tons of messages generated on an operating connection. At least I think that’s the case – when I have the GSD connection up and running with the Profibus Master I don’t see lots of debug messages, but I do see the Master Sim showing data updates and a good connection.

The FieldComm developers now have the ball, and looks like I must wait on them to address a possible problem in the RRTE. Thing is, I want to understand the interface fully before I define everything and then possibly have to change things.

Thanks,

Ed

With all the logging enabled it will be printing a lot of debug messages. I would expect to see a message when a master connects.

Deryck

Hi Deryck,

I’ve attached two videos that show what I see when the Profibus Master Sim connects and also when the RRTE connects.

I do get a couple of messages, but that’s it, and both are different between the two connections.

The connection that does not work appears to be receiving a ‘ABP_CMD_GET_ATTR’ and the one that does work is receiving ‘ABP_CMD_SET_ATTR’.

At this level it may indicate something about the initialization of the Profibus connection itself not being setup properly.

I don’t expect you to know much about the RRTE application, but I thought this might show that once the connection is up there aren’t any more debug messages.

Are there other debug defines I should turn on besides these?:

#ifndef ABCC_CFG_ERR_REPORTING_ENABLED

#define ABCC_CFG_ERR_REPORTING_ENABLED ( TRUE )

#endif

#ifndef ABCC_CFG_DEBUG_EVENT_ENABLED

#define ABCC_CFG_DEBUG_EVENT_ENABLED ( TRUE )

#endif

#ifndef ABCC_CFG_DEBUG_ERR_ENABLED

#define ABCC_CFG_DEBUG_ERR_ENABLED ( TRUE )

#endif

#ifndef ABCC_CFG_DEBUG_MESSAGING

#define ABCC_CFG_DEBUG_MESSAGING ( TRUE )

#endif

#ifndef ABCC_CFG_DEBUG_CMD_SEQ_ENABLED

#define ABCC_CFG_DEBUG_CMD_SEQ_ENABLED ( TRUE )

#endif

Thanks,

ed

IMG_2714.mov (19.4 MB)

IMG_2716.mov (14.7 MB)

One thing I wanted to note was the Instance numbers in the two connection attempts.
The one that works, the Instance is 0x0001, the one that does not is 0x0100. That causes the code to go through a very different path. I’m not sure where this instance comes from as I think this is lower level - the master is asking for IA information I think.
-ed

Are you using an EDS file to connect or discovering with the RRTE device. It kinda looks like it is creating a different connection the the Anybus master. Does the anybus make any different connections when using its automatic connection option?

It’s interesting that the RRTE does not use a GSD file. There’s also not a single search hit on the FieldComm site in support….

The only settings I see are address and baud rate. The USB adapter has no settings either.

If I use the auto-connect dialog in the Master, I receive very similar debug messages as connecting with the RRTE (slot1/index0):

Mem: Buffer allocated: 0x8003258c

Msg received:

[ MsgBuf:0x8003258c Size:0x0000 SrcId :0x00 DestObj:0xfe

Inst :0x0100 Cmd :0x41 CmdExt0:0x05 CmdExt1:0x00 ]

[ ]

Msg sent:

[ MsgBuf:0x8003258c Size:0x0004 SrcId :0x00 DestObj:0xfe

Inst :0x0100 Cmd :0x01 CmdExt0:0x05 CmdExt1:0x00 ]

[ 0x41 0x72 0xb3 0xa8 ]

Mem: Buffer returned: 0x8003258c

There’s no connection indicated from the anybus state (ABP_ANB_STATE_PROCESS_ACTIVE) same as RRTE.

So I’m assuming that what I see RRTE is sending is just the slot1/index 0 request.

Now the 0/0 request is what’s not responding – and that’s the instance that makes the connection, and returns the DPV1 info.

Do we know what those connection exchanges are called? I can ask FieldComm about those. The RRTE may not be doing them.

-ed

Are you sure the RRTE device is making the same connection to the module as the Anybus master? Is it making an MS0, MS1, or MS2 connection? The Anybus device is making a MS0 or Master to Slave Cyclic connection.

Hi Deryck,

I’ll forward that question to FieldComm – I’m not sure.

Enjoy the holiday weekend!

-ed

Hi Deryck,

I’ve gotten a different application running in an attempt to get more info on why the connection is not coming up - Siemens PDM. The debug messages are the same as the other tool (RRTE) when connecting…
It looks like it’s unable to retrieve the Physical Block info from the AnyBus device. Can you find out how I define that in my firmware? My guess is that this information is supposed to be at specific slots/indexes or something, but I don’t know. I don’t see any mention of that in docs.

-ed

Below are the error messages I’m receiving in PDM.

1;“2021-07-06T10:25:11-04:00”;“Error”;“SONAR2 : phys_BLOCK_OBJECT_Reserved”;“Global PA directory in target device is damaged or cannot be read!”;
2;“2021-07-06T10:25:11-04:00”;“Error”;“SONAR2 : phys_BLOCK_OBJECT_Block_Object”;“Global PA directory in target device is damaged or cannot be read!”;
3;“2021-07-06T10:25:11-04:00”;“Error”;“SONAR2 : phys_BLOCK_OBJECT_Parent_Class”;“Global PA directory in target device is damaged or cannot be read!”;
4;“2021-07-06T10:25:11-04:00”;“Error”;“SONAR2 : phys_BLOCK_OBJECT_Class”;“Global PA directory in target device is damaged or cannot be read!”;
5;“2021-07-06T10:25:11-04:00”;“Error”;“SONAR2 : phys_BLOCK_OBJECT_Dev_Rev”;“Global PA directory in target device is damaged or cannot be read!”;
6;“2021-07-06T10:25:11-04:00”;“Error”;“SONAR2 : phys_BLOCK_OBJECT_Dev_Rev_Comp”;“Global PA directory in target device is damaged or cannot be read!”;
7;“2021-07-06T10:25:11-04:00”;“Error”;“SONAR2 : phys_BLOCK_OBJECT_DD_Revision”;“Global PA directory in target device is damaged or cannot be read!”;
8;“2021-07-06T10:25:11-04:00”;“Error”;“SONAR2 : phys_BLOCK_OBJECT_Profile”;“Global PA directory in target device is damaged or cannot be read!”;
9;“2021-07-06T10:25:11-04:00”;“Error”;“SONAR2 : phys_BLOCK_OBJECT_Profile_Revision”;“Global PA directory in target device is damaged or cannot be read!”;
10;“2021-07-06T10:25:11-04:00”;“Error”;“SONAR2 : phys_BLOCK_OBJECT_Execution_Time”;“Global PA directory in target device is damaged or cannot be read!”;
11;“2021-07-06T10:25:11-04:00”;“Error”;“SONAR2 : phys_BLOCK_OBJECT_Number_of_Parameters”;“Global PA directory in target device is damaged or cannot be read!”;
12;“2021-07-06T10:25:11-04:00”;“Error”;“SONAR2 : phys_BLOCK_OBJECT_Address_of_VIEW_1_Slot”;“Global PA directory in target device is damaged or cannot be read!”;
13;“2021-07-06T10:25:11-04:00”;“Error”;“SONAR2 : phys_BLOCK_OBJECT_Address_of_VIEW_1_Index”;“Global PA directory in target device is damaged or cannot be read!”;
14;“2021-07-06T10:25:11-04:00”;“Error”;“SONAR2 : phys_BLOCK_OBJECT_Number_of_Views”;“Global PA directory in target device is damaged or cannot be read!”;

I think we are running into an XY issue here. Maybe we are asking the wrong questions. I am not sure exactly what the errors are caused by. Is the setup asking for the slot and index? Can you connect using the GSD file?

The slot and index’s are not necessarily programmed into the firmware but are set based off of the ADI number used. Take a look at section 4.4 of the user guide this should help you identify the slot and index you need.

hms-hmsi-27-210.pdf (hms-networks.com)

HI,

I’ve just gone through the initialization sequence to get more familiar with it.

I don’t see anything specifically about setting up a slot 0, so I now think I must do that as an ADI. So I tried that.

If I do an Acyclic read using the Master Sim I can read Slot0/Index0 no problem, with the size I need for the Physical Block (20). (See debug msgs below)

I’m trying Slot0/Index0 because I can see in the Logger I have that the FieldComm development tool (RRTE) is sending a message to Slot0/Index0 and not getting a response, but it gets a response from Slot1/Index0:

(Most recent msg is at the top, the color just alternates which is confusing. AnyBus is responding to the 1/0 with data)

If I set a breakpoint in the AnyBus receive message code, or log the debug msgs, it only receives the 1/0, not the 0/0. So I don’t know where that 0/0 message is going.

This is really the problem I think. I can’t actually tell if this 0/0 message is being received by the AnyBus module. Or even transmitted by the USB adapter!

Would the AnyBus module always trigger an event if it receives anything? (This seems like a silly question)

The GSD in the Master Sim works fine. Thing is, this connection is through the AnyBus adapter, and the connection I’m trying to get going is via a USB to Profibus adapter, not from AnyBus, so there might be a problem with it. (But the 1/0 gets across!). I need to get the USB adapter going as the other tools don’t work with the AnyBus adapter.

I’ve defined the ADI entry for slot0/index0 as:

{ 1, “PhyBlkInd”, ABP_UINT8, 20, APPL_READ_MAP_WRITE_ACCESS_DESC, { { &g_nPhyBlk ,NULL } }, GetAdiValue, NULL },

I tried putting this in both Cyclic and Acyclic and neither worked with the USB adapter.

When using the Master Sim to do a DPV1 read, the debug msgs look just fine:

Mem: Buffer allocated: 0x8003258c

Msg received:

[ MsgBuf:0x8003258c Size:0x0000 SrcId :0x00 DestObj:0xfe

Inst :0x0001 Cmd :0x41 CmdExt0:0x05 CmdExt1:0x00 ]

[ ]

Profibus DP: GET: PhyBlkInd = 0

Msg sent:

[ MsgBuf:0x8003258c Size:0x0014 SrcId :0x00 DestObj:0xfe

Inst :0x0001 Cmd :0x01 CmdExt0:0x05 CmdExt1:0x00 ]

[ 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

0x00 0x00 0x00 0x00 0x00 ]

Mem: Buffer returned: 0x8003258c

My plan next is to connect the USB adapter to our old Profibus meter to see if that works.

(My test guys killed the test meter, so I have to fix it first! It never ends!)

Thanks,

Ed

What type of connections are you making from these other Master devices/simulators? Are you specify what slot and index

What are your ADI’s configured for? Can you share your complete ADI configuration you are using or is that PhyBlkInd your only ADI?

You should be using ADI’s starting at 256 as the user guide mentions there are issues with 1-255. This will put ADI 256 in slot 1 index 0. As described in the previous screen shot of the user guide showing the mapping from the ADI number to the slot and index.

Try
{ 256, “PhyBlkInd”, ABP_UINT8, 20, APPL_READ_MAP_WRITE_ACCESS_DESC, { { &g_nPhyBlk ,NULL } }, GetAdiValue, NULL },

HI,

I’ve got a lot of variables here. I’m working on writing the DD for the Profibus too.

What that’s doing under the hood I’m not 100% sure. I’m using the PDM software, and the FieldComm software which use that DD to connect to the AnyBus using the USB adapter.

Exactly how it’s doing it I’m figuring I’m not understanding fully. I’m interpreting the logger messages as the only communications going between them. Perhaps that’s not the case.

The only reason I tried adding an ADI of 1 was to see if slot0/index0 would respond. I have a set of ADIs defined. (I’ve attached my code)

I’m trying whatever I can think of here.

Thanks for your patience on this,

-ed

appl_adimap_cidra.c (25.7 KB)

appl_adimap_cidra.h (18.9 KB)

I forgot to mention I have the question out there to the FieldComm developers about the connection type. No response yet.

-ed

Hi Deryck,

Just got a response:

RRTE uses MS1 communication relation only, thus no cyclic communication is established.

Would the Slot0/Index0 read be Cyclic? I don’t see why that would be. And I can get 0/0 using an Acyclic read using the Master Sim.

I don’t know if there are other differences between M0 and M1.

-ed

Hi Ed,

I think we need to sort out exactly what issue we are trying to resolve here. Can you try clearly explaining what you are trying to understand or get working.

I also want to be clear you should not use ADI’s below 256 and slot 0 as indicated in the user manual there are technical issues using this. You will need to start your ADI’s at 256.

A MS0 is a Cyclic connection while a MS1 is Acyclic a single request. A MS0 connection is going to change the state of the compactcom to Process active an MS1 will not. See B.2 in the network guide. This should explain the different messages and behavior of the ABCC that you are seeing the the two masters.

Deryck