Designing a driver

Hi everyone

I am trying to make ignition recognize a profinet network module of the BALLUFF brand, I have read the documentation about the ignition SDK but I have some doubts because I don’t know if what I have to design is a module or a driver because the module is designed with the SDK but the OPC UA driver is designed with the Inductive automation API.

Someone who can help me or give advice on what would be the best way to make Ignition recognize this module through OPC UA, I would greatly appreciate it

1 Like

Forget Ignition and OPC UA and drivers for a moment.

Do you have code that can talk to this Balluff profibus network module?

no, I don’t have any code and I’ve been looking for it on the manufacturer’s website but I can’t find anything, the way to configure it is through a PLC

if I have a code I can use it or in another way I can make it communicate with ignition

Thank you very much for answering

Can you provide a link to the device’s specifications/datasheet?

If here is the link where all your information comes from https://www.balluff.com/es-mx/mx/productfinder/product/?key=BNI005H#/

I appreciate your answers and advice

{ The corresponding en-us link is here. }

This isn’t Profibus, it is ProfiNet. A driver for this is theoretically possible for this protocol in Ignition, but is complicated by the fact that ProfiNet uses a proprietary Ethernet frame type. I’ve investigated this myself and determined that it would be a major investment. Java cannot receive or transmit arbitrary ethernet frame types, so a JNI would be required. IIRC, Windows adds further restrictions to the use of these packets, requiring the relevant code be wrapped in a signed network driver. Signed through Microsoft, that is, separate from Ignition driver signing.

In other words, you probably want to look at commercial OPC/UA servers that support ProfiNet I/O. Ignition can then connect to that server.

1 Like

If you need to stay entirely within Ignition, consider another network type in the Balluff family. Specifically, Ethernet/IP, via the otherwise matching device BNI006A. (en-us)

Self-plug here: Ethernet/IP I/O can be scanned directly from Ignition with my module, in the scanner version.

If you aren’t locked into Balluff, there are other brands with similar technologies but with Modbus/TCP, which is also supported directly from Ignition (and cheaper than Ethernet/IP).

1 Like

If you already have these modules installed in your location, another option could be installing a Siemens PLC like the 1200 series, they are in the 300$. price range. This will talk to the Balluff modules in Profinet and also profibus (with the siemens profibus module) and ignition can talk to the PLC. Not the easiest option as you would need to do some programming in the PLC so will need the siemens software.

There is better options like Phil stated above, but this is a option.

I’ve used a lot of these Balluff units and their io link sensors but always in the Profinet flavor as all I use is Siemens PLC’s.

good afternoon pturmel

Thank you very much for the information, I got another module from BALLUFF this if it is Ethernet / IP the model is BNI004A
and I am trying to do the same, but I would like to test your module

Is there any way to test your module for a few days or a test of your module to see that it works for me and so buy it if it works well for me?

All modules, from IA or 3rd party (i believe), comply with the 2-hr trial period, with Phil’s modules being no exception. If you click on his link and click “Buy” it will then link to his website where you can download the modl file from.

1 Like

As Nick said, my module honors Ignition's trial mode. I grabbed the EDS file for the BNI004A. I'll help generate the config details tomorrow.

I already have the EDS file of BNI004A
How do I configure the module with that file?

Manually. ):

Do this with the EDS file:

  1. Find the [Connection Manager] section, and look for the entry that fits your application. Commonly either an input only or an exclusive owner (I/O) setup.

  2. Note the assembly names for the input (T->O) and output (O->T) buffers and their total length in bytes. Find these names in the [Assembly] section. Each assembly description has six meta entries followed by a list of length/content pairs The lengths are in BITS. The content is a parameter name or a nested assembly. Or blank for an alignment spacer.

  3. Look up each parameter name in the [Params] section for its description. For each assembly you plan to use, Construct a matching data type in my module that places each variable at the right bit offset, and then create a tag using this data type.

  4. In an instance of an “Ethernet/IP Class1 Host Device” from my module, open the configuration page and scroll down to the “I/O Modules” section, and create a new one.

  5. Optionally fill out all of the product information in the “Identity” section. It only matters if the “Enforce EKey” setting is checked.

  6. In the new I/O module’s “Connection” section, fix up the IP address of the target in the “CIP Route” parameter. Supply the rest of the “Connection” section’s settings using the instructions in the manual. You will have to decipher the hexadecimal codes in EDS file.

  7. In the new I/O module’s “Config and I/O Data” section, use the hexadecimal “path” bytes from the EDS file’s connection entry as the “Application”. Supply the tags you created for the assemblies as “Input” and “Output”. If the data types don’t exactly match the length of the assemblies in the EDS, supply the true lengths as corresponding size limits. (Logix-style UDTs are always multiples of four bytes.)

Thank you very much for the information
this is configured on the ignition gateway true

Yes. Configuration => OPC/UA Server => Devices

1 Like