Posted 13 Apr 2022 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
Posted 13 Apr 2022 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
Posted 14 Apr 2022 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
Posted 14 Apr 2022 Can you change the PLC program? I would move the data into consecutive locations. Share this post Link to post Share on other sites
Posted 14 Apr 2022 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
Posted 14 Apr 2022 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
Posted 14 Apr 2022 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 1 person likes this Share this post Link to post Share on other sites
Posted 15 Apr 2022 (edited) 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 15 Apr 2022 by Mark- Share this post Link to post Share on other sites
Posted 15 Apr 2022 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
Posted 18 Apr 2022 (edited) 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 18 Apr 2022 by tingxing Share this post Link to post Share on other sites