LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with Modbus IO Server via Ethernet under Labview 2012 with DSC

Dear Madam, Dear Sir,

 

while reading the memory of a measurement device via the Modbus IO Server

under Labview 2012 together with the DSC module via Ethernet I only get the reading value(s)

zero and the timestamp of the data is also not updated which can be seen

via the tools DSM and NIMAX with the later if data logging is activated.

The problem exists also if only 16bit (1 register = 3 bytes) interger values are read.

 

On the other side with a software tool belonging to this measurement device I can

read the data via Ethernet without any problems.

 

From a different measurement device I can however read the data also without any problems

with the Modbus IO server under Labview 2012 and with the DSC module.

 

It's really strange and a hint about this problem would really help me.

 

Greetings in advance

JKitzbichler

0 Kudos
Message 1 of 8
(3,012 Views)

Having a hard time understanding what exactly you are trying to say.

 

(1) 16 bit integer = 2 bytes (you had stated 3 bytes).

 

In any case the Modbus I/O server, while easy to implement, is less flexible than the Modbus function block palette. Which is my first suggestion, implement the comms using the modbus function palette, and turn off the Modbus I/O server.

 

1) What modbus function code are you executing to talk to your measurement device?

2) Does the measurement device issue a modbus exception code? (I do not know how you might see the exception using the modbus I/O server, it is easy to see using the function blocks).

 

0 Kudos
Message 2 of 8
(3,003 Views)

Dear Kudos,

 

thank you for your reply.

 

To your question:

To 1), of course 1 register = 2 bytes - it was a literar error

 

To your second 1), I try to read an unsigned integer with the following project variable setting: "Mein Computer\TestBiblio.lvlib\Modbus1\319000"

To 2), The IO-Server sends no error (code), on the contrary the status, quality replied is okay. I have attached a screenshot of the NI-DSM output (s. enclosure).

I have also marked the pogress of the zero values in the graphic.

Also I have enclosed the settings for the environment variable to be read.

 

By the way would you have a simple example with a function block solution for the modbus server with reading of one or more values

of type unsigned integer or single with address codes like 319000 or D319004 or F319008?

 

Thank you in advance and greetings

JKitzbichler

Download All
0 Kudos
Message 3 of 8
(2,993 Views)

Have you tried the opc quick client to see what values it shows? This will be independent of labview code to interpret the data and will show if the communication is working properly.

0 Kudos
Message 4 of 8
(2,975 Views)

Another option is to download modbuspoll, or modscan32 and see if you get non-zero data for the addres 319000. This should be an input register.

 

0 Kudos
Message 5 of 8
(2,967 Views)

Dear Kudos,

 

as mentioned in my first message tag (s. above) I have two Modbus clients with which I can

read the memmory of the measurement device (= Modbus server) at the specified address.

I have enclosed you a screenshot about the respective results (s. enclosure).

So I think the Modbus IO server from National Instruments has anyhow, anywhere a problem

and I'm not sure whether the function block IO server will solve this problem.

 

Greetings

JKitzbichler

 

0 Kudos
Message 6 of 8
(2,945 Views)

Now I am confused.

Your first post had an attachement that showed the variable bieng linked to modbus address 319000. These modbus registers corespond to input registers,

This last attachement shows a modbus quiery setup for function code 3 (read holding registers). The corresponding address would be 419000. Have you tried to set the Modbus I/O server to address 419000 or 419060 as in your last attachement.

.

 

 

0 Kudos
Message 7 of 8
(2,929 Views)

Dear Kudos,

 

sorry for my belated answer, but I was for two days out of the office.

 

The problem depends not on any address. I have tried to read data from 319000 and 419000

as 16bit unsigned integer and with F319000 and F419000 as 32bit values of type single (float).

 

The answer is always the same, a progressing trend line can be seen with value zero but with "frozen" time stamp value

and if I activate the data logging I can not see any acceptable data even not the expected zero values in the database.

 

For completeness I have still added two screenshots about the modbus IO server configuration and one

binding variable configuration.

 

Greetings

JKitzbichler

0 Kudos
Message 8 of 8
(2,892 Views)