M Series Serial Card Polling - RS485

I am looking for some information on what determines\influences how an M series serial card queries Modbus slaves when operating in RS485 half duplex mode.

Does it just work through the devices and data sets sequentially with values being updated as it works through the devices?
For example, if I have slaves that vary in their response time but none that exceed the timeout, I could easily take several seconds to work through all the data sets.
With quick responses, I could work through quite a few devices in less than a second.

Does the control module scan rate influence the scan order or interval of the devices?  

For example, if I reference a dataset register in a module that is executing at 500ms, will the serial card poll the slave every 500ms? 
If I also have a module, executing at 2S, referencing a different device, will the serial card schedule those queries every 2 seconds?

We are working to integrate some legacy networks and it would help to better understand how Modbus queries are scheduled.

Thanks!

  

3 Replies

  • I had similar questions about VIM's. since VIM mimics serial cards i think its safe to assume that behavior is similar.
    Vim Scans datasets in sequential order and tries to do it as fast as it can, so scan time affected by timeouts and retries.
    This also makes me believe that card scan time is not affected by module scan times.
  • In reply to alex:

    The VIM scanning of the Modbus devices is independent of the module execution. Only Outputs (Writes) are influenced by the module scan rate as the Serial Card Output registers are only sent on a change.

    From the Vim's perspective, it performs Modbus functions to transfer data without flagged outputs (Single register or Entire set) sent and Readback/Inputs polled on an independent schedule. Note that there is also the IO polling schedule between the Controller and the Serial cards. So the VIM reads data and places it in the Emulated card Datasets, the control scans the IO cards in a round robin fashion to bring data into the controller IO map, and modules read this on their scan times.

    I'm not sure how the VIM handles the Modbus TCP polling for the datasets assigned to different Emulated seral card ports. In the RTU world, each port is an independent schedule, so a failed device experiencing time out would be affecting only devices on that port. The VIM has one port, but in reality establishes TCP connections to each device. It is a very good question. Will it make a difference if you distribute Device Datasets across more Serial Card Ports? Or does Modbus TCP handle the timeout of a device differently given the dedicated connections to each device? I'm thinking the datasets to the same device are polled sequentially with Timeout affecting only that device's data. Each device gets its own schedule. Maybe more like RS232 with a single device per Port on the card. Hmm. I'd have to wireshark it to see how packets are handled/timed.

    Andre Dicaire

  • In reply to Andre Dicaire:

    Found a document on line from Mynah that talks about optimizing Modbus TCP communications with the VIM. search for "VIM polling mynah"

    This shows the VIM view of the configuration in diagnostics, with Devices configured under ports of the four emulated cards.  Each Device has TCP level diagnostics indicating message retries and no responses.  The document discusses optional configuration parameters to manage the communications and these are either set in the DeltaV configuration dialogs, or in some cases at the Dataset.  You should be able to find this with a google search.

    Andre Dicaire