Distributed Control & Automation Framework (DCAF)

cancel
Showing results for 
Search instead for 
Did you mean: 

Ethernet/IP Module: Boolean elements sized as bytes?

I know that LabVIEW treats Booleans as bytes in some cases, but it looks like the Ethernet/IP implementation treats them as bytes in some cases and bits in others.

 

Example:  In "initialize assembly lists.vi" there are two subVIs that seem to conflict.

 

1. element to byte index.vi - Contains a case structure selected by "data type" that makes the exception for Boolean so that you have a byte index and then a subindex (bit).

 

2. check data size.vi - Contains a case structure also selected by "data type", but here we declare Boolean to be 1 byte in size (rather than 1 bit or 0.125 bytes).

 

As a result, we have a situation where we have defined up to 96 bits in a robot controller interface, but the E/IP assembly gets sized to 96 bytes. On the robot side of things, we end up with 96 * 8 = 768 bits.

 

For us this is not terribly bad, but it confused our robot programmers to have all those unused bits reserved.

 

We are making great progress with DCAF and its learning curve. I've got a custom module that successfully executes a startup/recovery sequence on the robot controller through E/IP from cRIO.

 

 

0 Kudos
Message 1 of 2
(3,581 Views)

Hi Photon_Dan,

     Yes these appears to be a bug, I created a new issue to look into it. https://github.com/LabVIEW-DCAF/EIPModule/issues/27   .

    Its great to here DCAF is working for your application. Are you using any other modules besides the custom module and the EIP one?

Best Regards

Benjamin C
Principal Systems Engineer // CLA // CLED
Message 2 of 2
(3,566 Views)