B40-EDS File Generation to include $Help string


I have a question about how where in the Compact B40 Embedded code I have to add my string parameters in order to get the listed string for each parameter to show on EDS file: “$Help String”. The EDS file is currently being generated by the HMS EDS tool for an Ethernet/IP Implementation based on the HMS B40 module ( AB6674) .

Background: I am using the CompactCom B40 Ethernet/IP module in a product that has successfully passed ODVA conformance testing. I have been added into the project by manager to complete this task but have no solid knowledge when it comes to Ethernet/IP or the uses of B40 module and its interference. I currently have a fair standing of Embedded firmware/hardware as I have been working at this company for 1-2 years as an intern.

Currently the EDS Parameters look something like this:
[Device Classification]
Class1 = EtherNetIP;

Param1 =
0, $ Reserved (always 0)
0, $ Link path size
“”, $ Link path
0x0010, $ Descriptor
0xC7, $ Data type (Unsigned 16–bit integer value)
2, $ Data size
" Version", $ Parameter name
“”, $ Units string
“”, $ Help string
0, $ Minimum value
65535, $ Maximum value
0, $ default value
, $ Scaling multiplier (not used)
, $ Scaling divider (not used)
, $ Scaling base (not used)
, $ Scaling offset (not used)
, $ Multiplier link (not used)
, $ Divisor link (not used)
, $ Base link (not used)
, $ Offset link (not used)
; $ Decimal precision (not used)

My goal is two include a value for the $ Help String inside my firmware so that when regenerate the EDS file using the generation tool it can show up in my parameter struct.

Thank you for your time.

Hello @WillyGoodman,

The EDS Generator is reading the CIP objects from the CompactCom and Generating an EDS. From what I can tell the help looks to be part of the parameter object. This would need to be enabled and configured in your host application.


Thank you for your reply. I am currently looking at the any bus host application implementation guide for the 40s Series. Link: https://www.anybus.com/docs/librariesprovider7/default-document-library/solution-sheets/hms-hmsi-168-106.pdf?sfvrsn=c4f2a9d6_6

Looking to the Compact Sorce API, I went to my $(ROOT)/acc_app/appl_adimp_main.c

I noticed that the setup for the iMinMaxDefault is typically using the type-defined struct of AD_UINT16Typem, which would use AD_ENUMType instead to help me call and use the help string in my parameter object. To be enabled and configured in my host application? I am currently not using any struct data types in my AD_adiEntries.


Hi Willy,

Sorry for the delay, I am still looking into this it is not a feature I have worked with much I am trying to see if we have any example.

I believe the min/max/default is for the parameter value. I don’t think this would set the “help” string used in the ADI Parameter obj. An Enum type is for ADI’s that you want to show a string for, such as On/Off rather then 1/0.

Discussing this with a colleague he pointed out that we do not have anything in the AD object that can be propagated to that CIP-side inst.attr., so it will be hard-coded to an empty string.

The one possibility to implement this would be to use the CIP forwarding feature to implement your own implementation of the parameter object. This is not a trivial task.

Even then I am not sure if this would auto populate in the EDS file when our tool generates it.

I see; where can I find documentation about this CIP forwarding feature to attempt to implement my own, and would the EDS file still work if I just hard-cord the values inside those $Help String after using the EDS generation tool? I just wanted to ask before attempting such a thing. Thank you again!

Hi @WillyGoodman,

From what I can see in a wireshark capture of the EDS generator tool i do not see it requesting the help attribute 9. I would guess this field is filled in automatically by the tool.

The network guide has details on enabling CIP forwarding. The process would involve disabling the CIP parameter object and enabling the CIP forwarding, then implementing the parameter object on yourself.

Thank you Deryck, I will be attempting this forwarding feature and let you know how it goes or what I came up with.