I am currently working on a customer project where we are using the integrated web server on PLC. The web server reads data from the PLC using the PV_Access.js file along with HTML.
Our requirement is to read a larger amount of data in less time. At the moment, reading 100 data points from an array in the PLC takes more than 15 seconds, which is too slow for our application. We have observed that reducing the data length decreases the response time, indicating that the data volume significantly impacts performance.
I guess there is not that much you can tweak here. Does it make a difference when you put all the data into one array and then only read this one array like buffer?
Just out of curiosity, there are many ways to get data out of the PLC. Why did you choose the web server?
I checked th PV_Access.js demo and saw that it uses the goform/ReadWrite asp webservice.
This webservice supports up to 10 variables per call, so could try to read more then one value per webservice request.
To use more then one, you have to use the name and value tags in your request with increasing numbers when building your webservice request. For reading the first 10 array elements of “myVar” with one call, for example the request for reading could be build like this (only an example. not the whole HTML GET/POST request):
A second possiblity could be wrting a own backend webservice using AsHTTP library. But then you aren’t using goform/ReadWrite anymore but have to build your webservice response on your own inside a task. It’s no “rocket science”, but some work to do of course
I personally prefer using own webservices, to keep the data that is accessible via webservice under my own control.