Question
How can I speed up the data throughput of my DS Data application?
Answer
1. If using serial communication, then use fastest possible baud (bps).
2. Use an ECOM instead of serial connection . . . much faster.
3. Creating Subtopics in DS Data will allow you to assign different update intervals, thus enabling you to prioritize, thus increasing throughput on higher priority Items.
4. Win95, Win98, WinME operating systems are terribly slow; therefore use WinNT, Win2K or WinXP, these are sometimes 10x faster.
5. If using ECOM, give it an isolated network if possible, as network traffic can effect data through-put.
6. Use fastest PC possible.
7. Use asynchronous reads as opposed to synchronous reads in your application code.
8. Each write is handled individually, therefore if writing to individual bits it is better to group them together and write once to the imaged V-memory of the PLC instead of each bit having its own write. For example, if using DL260 CPU, instead of writing to C0, C1, C2 individually, set these bits in a word and write the single word to V40600 where C0, C1 and C2 are imaged. (See user manual for the mapping for each DL CPU).
9. Each read is grouped automatically by DS Data whenever it can. Therefore, if possible when doing reads, group your data in contiguous blocks.
10. Creating Items manually in DS Data cuts down on execution code in DS Data because the Item only gets created once (manually by you) as opposed to being created every time per request when memory references are used. Therefore, Creating Items (e.g. "Fred") and using them in the DDE/OPC reference instead of using memory references (e.g. "V2000") will speed up data throughput.
11. ECOMs do at least 1 comm cycle of approximately 128 bytes per PLC scan, but in faster CPUs it can do as many as 3. So using a faster PLC CPU (e.g. 260 instead of a 240) will help.
12. Since the ECOM comm cycle is PLC scan dependent, then anything you can do to make the PLC scan faster will help.
13. Make sure no other applications or devices are talking to the same PLC via the same ECOM or serial port (e.g. like having DS Programming doing status while DS Data is running, or PLC doing/responding to RX/WX from other PLC). There is only so much bandwidth between the serial port/ECOM and the CPU itself.
Measuring the speed:
· In DS Launch if you click on the link that is being used in DS Data you can see the Comm Rate in comms per second. This shows the communication rate between DS Data and the PLC.
· In DS Data there is an Item that is called _XferRate. This Item shows the same information as the DS Launch Comm Rate display.
· In DS Data go to View --> Link Info... and this will pull up a window that shows the transfer rate as well as other useful data (e.g. error log).
· In DS Data if you click on the box beside a particular Item you are using in your client, an "L" (for Log) will be put in the box and DS Data will ask if you want to start the DBWin32 logger application. If you start this application, then it will print lines in the DBWin32 logger window that are time stamped. You can then measure the time between requests for that Item from the client using DS Data. This shows the communication rate between the client and DS Data.
FAQ Subcategory: None
This item was last updated on 2003-08-28
Document ID: 962
The information provided in the AutomationDirect
knowledge base is provided "as is" without warranty of any
kind. AutomationDirect disclaims all warranties, either
express or implied, including the warranties of
merchantability and fitness for a particular purpose. In no
event shall AutomationDirect or its suppliers be liable
for any damages whatsoever including direct, indirect,
incidental, consequential, loss of business profits or
special damages, even if AutomationDirect or its
suppliers have been advised of the possibility of such
damages. Some states do not allow the exclusion of
limitation of liability for consequential or incidental
damages so the foregoing limitation may not apply.