I have established a Modbus I/O server and bound shared variables to device registers to communicate over Ethernet. I have developed two code routines to either poll the data via the shared variable, or a value change notification/event case vi.
I have installed WIRESHARK (network traffic analyzer) to assist with network traffic analysis of the modbus/TCP traffic timing and statistices. Being at an associate level for programing in LV, I don't know an efficient manner to monitor network traffic performance, thus WIRESHARK.
The problem that I am having is clearly defining the Request(Server)/Responce(Client) polling rate. If I let the LV code execute under default settings with the SVs in a while loop; then I recieve read errors due to over requesting the end device registry and buffering capabilities. This case has no real meaning to me, because the polling rate is so much faster then the end device design capability.
I have since independantly manipulated both the I/O server "Refresh Rate; defined as the rate at which the end device is refreshed." (What ever that means?), and inserted a loop timing delay at a rate that would confine the data comms to a rate close to the system design requirement. I have then independantly increased the server rate and l loop delay to up to 10 seconds, which is greatly higher that the communication requirement. All the while, I have capture data in WIRESHARK that I have analyzed and have a consist network frame transmision rate timing. This has been observed for server rates from 0.01-10 seconds and loop delays of 0.003-10 secconds.
The second approach was to establish a time stamp upon execution of a value change notification. By observation, the time stamp updates at about three times a second, which is supported by the WIRESHARK data captures.
Utilizing the Variable Monitor also supports the observed update rate.
The questions I can not answer are the following:
1. Utilizing the I/O server,SVs, and while loop timing; why can I not manipulate the data trasmission rate captured by the nework analyzer? Is the poll rate not directly influenced by the code?
2. When utilizing the value change notification, how often does the system poll the device? This is modbus and if I understand correctly, the sequence of events is request(server)/respond(client). The code executes at approximately three times a second, but how often does the system ask the end device if the "value changed" before executing the event code?
I need some feed back to bridge the gap between the LabVIEW environment and what data is actually being transmitted across the network. Specifically, what mechanism is driving the data communication request/responce rate in this evironment.
The hardware configuation is LV machine connected to layer 2 swich (100mbs link) to modbus device.
I tried to provide enough information with out being to long winded, so I you have additional l questions or need clarification, please let me know.