Hi all,

I just had a little technical discussion with Sebastian and I thought it would 
be worth to include you guys.

We were discussing how we handle datatypes and optimized access to fields.

Sebastian is currently working on the Modbus integration. Here digital inputs 
can be accessed via so-called coils which are nothing else than Boolean values.

The main point of the discussion was, that I initially had the position, that 
if I want to read multiple consequent bits, that I should be able to for 
example read one or more bytes.
As I know that for Siemens this is exactly how reading the Boolean values is 
used quite often. My argument was that I would like PLC4X to allow the same 
optimizations no matter what protocol we are using.

But in this discussion, Sebastian managed to convince me that it is indeed 
better to not do this.
During this discussion I realized that I was doing some sort of optimization I 
knew the driver could support for one protocol and forcing the other drivers to 
allow the same.
If I want to read multiple consequent bits, for example, I should implement my 
application to do exactly that.
Optimizing the access path to group multiple bits to one byte request should be 
handled by the driver.
This would be the only true driver-independent way to implement the application.

I know that the way Siemens memory is setup, I could not prevent someone from 
reading all digital inputs in one byte, but the request going over the wire 
should be exactly the same if I request one byte or I request 8 subsequent bits 
because ideally the driver should perform the optimization for me. We will have 
to implement this sort of optimization anyway as if I read bytes 2,3,4,6 it is 
always better to simply read one array containing bytes 2-6 and simply ignore 
byte 5.

Do you agree on this?

Chris

Reply via email to