adccommunitymod (AutomationDirect) asked a question.

Using MODBUS over TCP to communicate with HMI

Created Date: March 01,2011

Created By: mrnohitter

**** This post has been imported from our legacy forum. Information in this post may be outdated and links contained in the post may no longer work.****

I am trying to use the Cmore HMI panel as a factory status display at various locations throughout the factory, as well as be able to send emergency events from the panel to the API for the factory command and control station. There is no processing done within the panel, it is merely a status display to inform factory workers and allow workers to instantiate an emergency situation. I have read the posts regarding how to update variable values using FTP and storing a .csv file within the CF card, but unfortunately we are not allowed to have CF cards (or other removable data storage) in our factory. I have contacted tech support, and they claim that FTP requires external storage to hold incoming/outgoing .csv files. The primary option I have been looking into at the moment is to use MODBUS over TCP as a means to communicate variable values between the external API and the panel. Does anyone have an idea on how to use the data communicated over MODBUS to update a variable value within the panel? Can I send and receive different variable types (strings, ints, doubles) or just discretes? I have not been able to find anything useful in the help or other forum posts. Are there any other methods I should explore besides using MODBUS methods? Thank you in advance for your help.


  • adccommunitymod (AutomationDirect)

    Created Date: March 01,2011

    Created by: ebalarde

    Are you planning on having your C-More panels send data requests/commands to your API (Client "mode ") or receive data commands/requests from your API (Server "mode ")? Except for Ethernet/IP, the C-More is limited to acting as a Client. It is design to request from and/or send information to controllers such as PLCs, etc.... and strings, ints, doubles, bits are all fine. It can also send e-mails as well as FTP files (which you said you can't do).

    Concerning how Modbus works, you would have to be able to setup your API as a Modbus server for the C-More to be able to communicate to it.

    Expand Post
  • adccommunitymod (AutomationDirect)

    Created Date: March 01,2011

    Created by: mrnohitter

    Thank you for the quick response.

    I am primarily interested in having the panel receive data from the API, which would be server mode for the panel. These are the doubles, strings, etc that will be displayed on the panel. I will also need to be able to send events or data representing an event to the API, this information will only be used to update the API to the current factory emergency condition.

    I was definitely going to use ethernet/IP due to these requirements of sending information both ways, and it sounds like the panel needs to be the client. I have found a decent modbus emulator API online, and this should be possible.

    Within the panel, how does it handle incoming data? Does it automatically try to match a variable value with the proper stored internal variable?

    I found the method within events to fire an FTP or email, how would sending data over modbus be prompted? Is it always sending data or do I need to schedule it using an event or recipe?

    Expand Post
  • adccommunitymod (AutomationDirect)

    Created Date: March 03,2011

    Created by: ebalarde

    Thank you for the quick response.

    I am primarily interested in having the panel receive data from the API, which would be server mode for the panel. These are the doubles, strings, etc that will be displayed on the panel. I will also need to be able to send events or data representing an event to the API, this information will only be used to update the API to the current factory emergency condition.

    I was definitely going to use ethernet/IP due to these requirements of sending information both ways, and it sounds like the panel needs to be the client. I have found a decent modbus emulator API online, and this should be possible.

    Understanding that you can only use your HMI as a Modbus TCP/IP client, you would configure your API emulator as a new Modicon Modbus TCP/IP Ethernet device under the HMI's panel manager. Then under the Tag Name Database, you create tags that are mapped to specific addresses in your API emulator.

    Within the panel, how does it handle incoming data? Does it automatically try to match a variable value with the proper stored internal variable?

    I found the method within events to fire an FTP or email, how would sending data over modbus be prompted? Is it always sending data or do I need to schedule it using an event or recipe? As a client, the HMI requests and/or sends the data from/to the server (i.e. API emulator). When you create an event based on the status of a tag (which is mapped to a register in your server), then the HMI automatically polls the server for that tag value at the interval specified when you setup your server under the panel manager. Also, if you setup an event to update a value in your server, then when that event happens, the HMI will automatically communicate that value change to the server.

    Expand Post
  • adccommunitymod (AutomationDirect)

    Created Date: March 01,2011

    Created by: mrnohitter

    I am trying to use the Cmore HMI panel as a factory status display at various locations throughout the factory, as well as be able to send emergency events from the panel to the API for the factory command and control station. There is no processing done within the panel, it is merely a status display to inform factory workers and allow workers to instantiate an emergency situation.

    I have read the posts regarding how to update variable values using FTP and storing a .csv file within the CF card, but unfortunately we are not allowed to have CF cards (or other removable data storage) in our factory. I have contacted tech support, and they claim that FTP requires external storage to hold incoming/outgoing .csv files.

    The primary option I have been looking into at the moment is to use MODBUS over TCP as a means to communicate variable values between the external API and the panel.

    Does anyone have an idea on how to use the data communicated over MODBUS to update a variable value within the panel? Can I send and receive different variable types (strings, ints, doubles) or just discretes? I have not been able to find anything useful in the help or other forum posts.

    Are there any other methods I should explore besides using MODBUS methods?

    Thank you in advance for your help.

    Expand Post