tingxing

hostlink HOSTLink read multiple DMs

10 posts in this topic

 

Hello, 

 

I am using Hostlink protocol to read data from PLC units.

for example @00RD22220001..., will return DM2222's value.

But I want to know, if I could read multiple DM values at the same time.

for example: DM2222, DM3000, DM4000, reading these DMs with one communication.

Please note that these are not continuous DM areas. I know a sequence of DMs can be read by specifying starting address and count.

 

Many thanks in advance.

 

Ting

 

 

 

 

 

 

 

Share this post


Link to post
Share on other sites
7 hours ago, tingxing said:

 

Hello, 

 

I am using Hostlink protocol to read data from PLC units.

for example @00RD22220001..., will return DM2222's value.

But I want to know, if I could read multiple DM values at the same time.

for example: DM2222, DM3000, DM4000, reading these DMs with one communication.

Please note that these are not continuous DM areas. I know a sequence of DMs can be read by specifying starting address and count.

 

Many thanks in advance.

 

Ting

 

 

 

 

 

 

 

The protocol doesn't allow for this type of situation no.

Share this post


Link to post
Share on other sites
18 hours ago, photovoltaic said:

The protocol doesn't allow for this type of situation no.

Thank you for your suggestion.

After reading parts of the manual, I also began to realize this.

Probably,  FINS command should be used (?).

 

Ting

Share this post


Link to post
Share on other sites

Can you change the PLC program?

I would move the data into consecutive locations.

Share this post


Link to post
Share on other sites
8 hours ago, tingxing said:

Thank you for your suggestion.

After reading parts of the manual, I also began to realize this.

Probably,  FINS command should be used (?).

 

Ting

FINS protocol doesn't support any sort of read from specific, spaced out registers in a single message. Now that I think about it I'm not aware of any protocol that does. Like IO_Rack said your best bet is to group them programmatically. This is common practice to cut down network traffic and speed up HMI polling

Share this post


Link to post
Share on other sites
12 hours ago, IO_Rack said:

Can you change the PLC program?

I would move the data into consecutive locations.

I purposefully avoid changing PLC.

-> we use personal computer to communicate with PLC to sample some of the DM, CIO etc device's status.

    Changing PLC is a good way to do it efficiently, but this incurs extra work and possibility of mistake. and further more, you need to be on the site to do the change, while updating a PC's program need not.

Share this post


Link to post
Share on other sites
10 hours ago, photovoltaic said:

FINS protocol doesn't support any sort of read from specific, spaced out registers in a single message. Now that I think about it I'm not aware of any protocol that does. Like IO_Rack said your best bet is to group them programmatically. This is common practice to cut down network traffic and speed up HMI polling

 

I read in a manual (W227E12_FINS_Commands_Reference_Manual.pdf) that there seems to be a command capable of doing such task.

Trying to use such kind of command is based on expectation of performance improvement:

           for example, communication time of three times of reading: DM200, CIO3600, CIO 4000  

                      50ms + 50ms + 50ms -> 150 ms

           but reading once, might be only: 100ms

       -> this is not expectation, but I guess there is really such performance merit, and would like to measure if possible.

 

Ting

 

 

20220415-1.png

1 person likes this

Share this post


Link to post
Share on other sites
1 hour ago, tingxing said:

I read in a manual (W227E12_FINS_Commands_Reference_Manual.pdf) that there seems to be a command capable of doing such task.

I read the manual portion (MULTIPLE MEMORY AREA READ) and yes that does what you want if your PLC supports "C" series commands. Nice find.

Edited by Mark-

Share this post


Link to post
Share on other sites

I have Omron experience for over 30 years. I've never seen this Host Link command. I am surprised that it exists. I'll have to try it out.

Share this post


Link to post
Share on other sites

 

Basically it does not matter if doing send/receive multiple times or once in a single command.

But, I found at my computer, reading a DM takes about 50ms, with baudrate of 38400bps.

     for 50ms, it should have been processing:  50/1000*38400= 1920bits ~192bytes  ~ 40words

So, it is reasonable to expect to be able to access much more DMs (or other words).

So I am trying hard to be able to send them in a single send/receive to speed up performance.

 

Hope this helpful for others and welcome much more advice too.

 

Ting

 

 

Edited by tingxing

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now