Modbus TCP/IP configuration steps

Hi everybody.
I have an application where I have to connect a robot with a NI CVS1455. Both, robot controller and NI CVS support Modbus TCP/IP communication protocol, so, I want to configure robot like “Modbus master” node and compact vision system like “Modbus slave” node.
I have downloaded the NI Modbus library (I’m using LabView 8.2) and I’m trying to understand how Modbus communication works with NI products using my computer (instead the robot controller) and CVS. To do that:
- First, I have configured in “VI Server:configuration” the right TCP/IP address and, then, the port as 502
- I have enabled the access for both, computer and CVS, in “VI Server:access list”
- I have deployed the Modbus slave program (VI) in CVS
At the moment when I start the Modbus master program (VI) in my computer I receive first “error 66” and then “error 62” .
I have already tryied to use “TCP Communicator Active and Passive Vis” and the communication is ok.
I think, I’m making some mistake in Modbus configuration. I didn’t find NI Manuals that explain step by step how to configure the different panels for Modbus TCP/IP communication, moreover, the Modbus functions don’t have the context help.
So, my questions are: 
a) Can someone, experienced in Modbus, give some advice about my problem?
b) There is a manual or an “application note” about the “configuration steps”?
c) Can I use “shared variables” in a “NI Modbus slave” device even if the “Modbus master” isn’t a NI device?
Thank you in advance.
Michele
AUROS-Ing.Michele Rossi
Software e Tecnologie per Automazione

Modbus is used to read and write registers in slave devices. The master in your simulation should be the device reading and writing the registers, so if the CVS is supposed to read data from the robot, you need to reverse what you're doing.
In general, Modbus has nothing to do with the VI server. You can change the VI server settings back to their original values (port 3363).
The NI Modbus library has two example VIs - one for the slave device and one for the master. If you want to simulate this, you need to run those examples in their respective locations and give the master example the IP address of the slave.
Of course, in any case you need to know which registers you're going to read and write, but those are device specific.
Try to take over the world!

Similar Messages

  • Write values to PLC addresses via MODBUS/TCP

    I am trying to write values to some addresses on a PLC connected to my computer with MODBUS/TCP. I've mapped the addresses that I would like to write to on my project's MODBUS library as shared variables. However, I seem to neither be able to read from nor write to them these addresses. I've tried viewing the variables in LabVIEW's Distributed Systems Manager and the variables, when configured as read-only or read/write, report an unknown value, and when configured as write only, they do not display a value.
    I've verified that the PLC is connected properly, and I am able to read from other addresses on the PLC that I do not wish to write to. There also does not appear to be a communication error either. I have also successfully read from and written to the addresses using a third-party application, but for some reason, Labview will not do the same.
    Any suggestions on what might be wrong?
    Thanks!

    Hello Griffon,
    How did you set up your Modbus I/O Server? Did you follow the steps in this document?
    Connect LabVIEW to Any PLC With Modbus
    Make sure when setting up your server that you put in the IP address of your PLC (not localhost, or 127.0.0.1). 
    Also make sure that you're adding variables using the "create bound variables" dialog.
    If you did set everything up in that way, and it still not working, can you clarify what you mean with this sentence?
    "I've verified that the PLC is connected properly, and I am able to read from other addresses on the PLC that I do not wish to write to"
    Does this mean that you can read values out of the PLC using modbus, just not the values you want?
    Colden

  • Modbus TCP server/slave implementation

    Does anybody have experience to implement a modbus server or slave application? My computer needs to communicate with a PLC. The configuration is: computer is TCP server or slave, PLC is TCP client or master. Computer to write input registers for PLC to read. Computer read holding registers from PLC. Cannot find any labwindows examples.
    Thanks a lot.

    Thank you all for the replies. Most the links are for modbus tcp client (master) instead of modbus server (slave).
    Now I am trying to use a modbus slave activeX control (trial version) from Automated Solutions Inc: http://www.automatedsolutions.com/products/modbusslave.asp.
    I created an instrument driver using Create ActiveX Controller wizard. I can get a correct object (modbusHandle) with the first line below (status = 0). But the second function (set a property) gives negative status return (status = -2147418113).
    status = ASMBSLVLib_New_DASMBSLV (NULL, 1, LOCALE_NEUTRAL, 0, &modbusHandle);
    status = ASMBSLVLib__DASMBSLVSetDataMode (modbusHandle, NULL, ASMBSLVLibConst_DATA_MODE_MB_TCP);
    Did I create the activeX control correctly? Automated Solutions told me that the ActiveX control is a windowless control. It's a runtime control. Is it a problem?
    Thanks in advance.
    jzhu0000.

  • MODBUS/TCP very slow execution

    Dear all
    We are new user to Labview and to LabVIEW forum.
    We are designing a LabVIEW application that interacts with PLCs.
    We are trying to exchange information between a PC/labview and a PLC. Both support the MODBUS/TCP protocole. We have designed the 2 programs easily, the PC/LabVIEW one being easily made with VI Library.
    We first the PC/LabVIEW as a cleint and the PLC as server and it works perfect. It is quite fast as it takes less than 1 second.
    We test the reverse configuration ie PLC as client and PC/LabVIEW as server. Of course we use different programs there and monitor the MODBUS/TCP frames with WireShark.
    It works also but the execution on the PC/LabVIEW is very long (in the debug mode) : it takes 5 secondes to execute the Write Multiple Register function ( 2 data to write) to prepare the response frame and to send it back. It is very nice to see the animation on the diagram but why is it so long ? This long time frame is a very big problem for our application.
    We re not sure to know where to dig in !
    Thank you in advance for your help.
    Regards
    Thierry

    It sounds like you need to learn more about the LabVIEW development environment if you were confused about the slow speed of highlight execution.
    I would recommend looking at the online LabVIEW tutorials
    LabVIEW Introduction Course - Three Hours
    LabVIEW Introduction Course - Six Hours

  • Access to Cisco Switch Modbus Register Map? via Modbus TCP or Modbus RTU

    Hello Folks, I have been trying to find out how to access the Modbus Register Map(s) of Cisco switches, of particular interest is that of an IE 3000 as it is din rail mountable (but for models 2960s, 3560s are also of interest).  A google search for: Cisco Switch Modbus TCP results in (if I may) how to configure a Cisco 2520 to do what I am trying to do.  I would be very grateful for any hints anybody might have.  Thanks

    Though I am not familiar with the specific drives in question, I have used Modbus/TCP in LabVIEW a few times recently.
    As the previous posters pointed out, there are a couple of VI libraries available.  LabVIEW 2014 added Modbus VI's with the DSC and LabVIEW Real-Time.  The others you would have to get and add in yourself.
    Another option is to use LabVIEW I/O Servers; as long as you have DSC or Real-Time, you can create Modbus I/O Servers as library items and deploy to a target.  You don't get as much direct control in this way (and may run into difficulties if you need them to be field-configurable and do not have DSC) and use bound network shared variables, but they are very fast and easy to setup and I have yet to have any issues with using them in my applications.
    A tutorial on setting up a Modbus I/O Server: http://www.ni.com/tutorial/13911/en/
    A tidbit on deciding between Modbus VI's and a Modbus I/O Server: http://zone.ni.com/reference/en-XX/help/370622M-01/lvmve/choose_modbus_ioserver_vi/
    As for using an Ethernet switch to connect multiple devices, I have used this approach many times to simultaneously connect and control numerous PC's, real-time controllers, and drives without issue.  I would not expect there to be any problems unless you have extenuating circumstances.  In fact, if you only have one network interface on your device at the moment, I would recommend against adding a second, as this would mean that you / your controller would have to be extra aware of which interface everything is assigned to go through.

  • How to comminucate with multiple PLCs with Modbus TCP/IP using dynamic multithreads?

    I have an application in which I communicate with several PLCs using MODBUS TCP/IP toolkit. There is an array of IP addresses that the user can configure. Using for loops allows to work with this however if one PLC is out, the program waits for the timeout before polling the next PLC. I would like to use a multithreading type in order that all PLCs are polled at once and is not dependent of each other. In other words, I would like to dynamically simulate several while loops happening at the same time. Is this possible?
    Thanks
    arikb

    arikb wrote:
    Thanks A_Patel,
    I thought of doing that but do I need to run this as a VI server in that case? How would I pass inputs and outputs of the subvi?
    Appreciate the help,
    arikb
    Take a look at my Nugget on dynamically creating occurences found here.
    Just ignore the Occurence stuff and the rest of the code and verbage should help you. The example code creates a bunch of background processes and passes a unique parameter to each.
    Have fun,
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Proxy configuration steps

    hai all,
    if anyone have the proxy configuration steps please explain step by step.
    Thanks
    Sam

    Hi,
    R3 side
    SLDCHECK
      Use this transaction to access the SLD of R3.
    If SLDCHECK runs into error check following RFC destinations in SM59
      To connect to the SLD you need 2 types of TCP/IP connections.
      1)LCRSAPRFC:-
          In this you require the gateway host(ip address) and gatewayservice(sapgw[system no.])
          You also need to give Program ID.
          Entry of corresponding Program ID must be maintained in SMGW.
          IN SMGW Click GoTo->logged on Clients.
          If entry is not there for corresponding XI.
          Create a communication channel in XI, pointing to R3 and give a Program ID
          in the channel. Once the channel is activated, corresponding Program ID will
          appear in SMGW.
      2)SAPSLDAPI:-
       In this case follow the same porcedure as for LCRSAPRFC.
       As far as the Program ID is concerned te procedure mentioned above is for
       Customized RFC's
       The RFC destinations mentioned here are both standard RFC's
       Hence for these two RFC's no need to Create Program ID's. you just need to
       change the System ID of the Program ID.
       Both these RFC's are maintained in the J2ee server of XI.
    SLDAPICUST
      Create an entry for respective XI server
      requires hostname, port username and ip.
      Can have multiple enteries for different servers.
      But you can check only one entry.
      based on the entry that is checked, respective SLD API will be triggered from
      SLDCHECK.
    SPROXY.
       In this transcation you can check the Proxies.
       If the proxies are not activated (i.e. if the message interfaces are not active)
       then you need to maintain one G type RFC destination pointing the resepctive XI server.
       In the G tpye RFC destination give the Ip adress of the XI server in the target
       host and set the path prefix as /rep.
       Goto SPROXY->Goto->connection test-> click on the table SPROXSET.
       In this table maintain enteries for ADDRESS_ONLY_FROM_SPROXSET and IFR_HTTP_DEST
       The values corresponding to these enteries will be the G tpye RFC destination.
    In order to connect R3 to the Integaration server you need to maintain H type
    The default RFC is XI_INTEGRATIONSERVER. In you need to give the Target host entry as the
    Ip address and Path Prefic as.../sap/XI/engine/?type=entry (this you can get from SXMB_ADM of XI)
    You can also create the H type RFc of your own.
    goto SXMB_ADM(r3) and open Integration engine configuration.
    Goto edit->change global configuration and give the RFC dest name like this:-
    Corresponding Integration server:- dest://{h-type rfc destination}
    If you do not want to create RFC destination you can directly give
    the Integration server address(that you can obtain from SXMB_ADM of XI) in the
    Corresponding Integration server field.
    Regards,
    Sami.

  • TCP Client Configuration

    Hi all,
    For Non Blocking Client Server TCP Communication i am using
    SocketChannel class. but i am not able to configure the client port .
    So if anybody is aware about it please give the necessery steps to do.
    Thanks in Advance
    Sanu

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Lee Kheng ([email protected]):
    On my client PC I have a TCP/IP configuration to connect to Internet and also TCP/IP configuration to connect to Oracle Database on NT server.
    Whenever I try to connect to the ORacle Database on the NT server, my dial-up connection to Internet also gets display which I always need to close in order for me to continue with the Oracle connection.
    Please assist on this matter.
    Many thanks !!
    Lee Yoke Kheng
    MSUK Sdn Bhd<HR></BLOCKQUOTE>
    null

  • Using Modbus TCP I/O Server with new DSC Shared Variables in LabVIEW 8.6

    Hello,
    I'm using LabVIEW 8.6 and want to communicate with a Beckhoff BK9000 Ethernet TCP/IP Bus Coupler via Modbus TCP. Instead of using the NI Modbus Library, I've tried the new LabVIEW 8.6 feature "DSC Shared Variables" as described at the bottom of this page: Latest NI LabVIEW DSC Module Features and Demos. Reading of analog input bus terminals works fine. However, I haven't figured out yet how to write on an anolog output bus terminal with these shared variables.
    It's about a 16 bit analog output and I need to write to the registers 0x1121 and 0x0801. It works with the NI Modbus Library (just using function code 6 and choosing the registers), but on the other hand I don't know which shared variables I have to choose for these registers. I've tried several data items (e.g. 400001 upwards as well as 402049 for 0x0801) but none of them worked. I would be glad for a short explanation - thanks in advance for your support!
    Regards
    utechle

    The Beckhoff documentation says, that holding registers start with 0x0800. I've checked this by using the NI Modbus Library. I used the "MB Ethernet Master Query.vi" togehter with the function code 6 for "Write Single Registers", changed the settings of the starting address to hexadecimal view and entered 801 (since it starts with a control byte in 0x0800 and the data out word follows in 0x0801). Furthermore, I had to address register 0x1121 in the same way for resetting the watchdog. As I've mentioned in my first post, this method works fine. However, I haven't found out yet which shared variables i have to use for accessing these registers.
    On the other hand, it's no problem to read data from analog input bus terminals using shared variables. They start with 0x0000 (status byte) and 0x0001 (data in word) and I can read data with the shared variable and data item 300001, respectively.
    Message Edited by utechle on 01-27-2009 11:12 PM

  • OBIEE 11g installation failed multiple times at Distributing Repository Configuration Step

    Hi,
    I am getting the following error during the Distributing Repository Configuration step in the OBIEE 11g 11.1.1.7 enterprise installation in Windows 8 system.
    Severe: Element Type:Domain
    Element id: null
    Operation result: failed to obtain domain file lock
    Detail Message: java.util.concurrent.timeoutException.Timeout;
    waiting for lock: Domain config lock;
    c:\OBIEE\MIDDLE~1\USER_p~1\domains\EAM_DO~1\config\FMWCON~1\biee-config.lock;[121 secs]
    Step Distributing Repository failed
    Configuration Action 'Distributing Repository' has failed. Please check logs for details.
    Step Distributing repository failed
    I checked another blog for this https://forums.oracle.com/thread/2565716 and even there the explanation doesn't convince me.
    I tried to look at the Locale of my system where I am installing and I could see it is using Eng-Us by default. One way suggested to check the Unicode format from the web browser and I could check that too to be UTF-8 as suggested by someone on some other blog.
    I checked in the logs too as suggested by the Installation dialogue box but it didn't seem much conclusive too.
    Here is the snapshot of the log file which I could found.
    INFO: Current Inventory:
      Oracle Home: OraDb11g_home1
      This Oracle Home has not been changed in this session.
      Oracle Home: OH1858390736
      This Oracle Home has not been changed in this session.
      Oracle Home: OH440082373
      This Oracle Home has not been changed in this session.
      Oracle Home: OH440082374
      This Oracle Home has not been changed in this session.
      Oracle Home: OH1597391518
      This Oracle Home has not been changed in this session.
      Oracle Home: OH1285215443
      This Oracle Home has not been changed in this session.
    INFO: Ending the inventory Session
    INFO: Using an existing InstallAreaControl for this Inventory Session with existing access level 1
    INFO: Using an existing InstallAreaControl for this Inventory Session with existing access level 1
    INFO: Using an existing InstallAreaControl for this Inventory Session with existing access level 1
    INFO: The ORACLE_CONFIG_HOME env var is set to
    INFO: The ORACLE_CONFIG_HOME env var is set to
    INFO: The ORACLE_CONFIG_HOME env var is set to
    INFO: The ORACLE_CONFIG_HOME env var is set to
    INFO: The ORACLE_CONFIG_HOME env var is set to
    INFO: The ORACLE_CONFIG_HOME env var is set to
    INFO: The ORACLE_CONFIG_HOME env var is set to
    INFO: The ORACLE_CONFIG_HOME env var is set to
    INFO: The ORACLE_CONFIG_HOME env var is set to
    INFO: The ORACLE_CONFIG_HOME env var is set to
    INFO: The ORACLE_CONFIG_HOME env var is set to
    INFO: The ORACLE_CONFIG_HOME env var is set to
    INFO: The ORACLE_CONFIG_HOME env var is set to
    INFO: The ORACLE_CONFIG_HOME env var is set to
    INFO: The ORACLE_CONFIG_HOME env var is set to
    INFO: The ORACLE_CONFIG_HOME env var is set to
    Can someone please help me with this since I am stuck with for quite some time now.
    Is there any way to check in command prompt to check the locale as required by the system.
    What could be the issue here?
    Thanks,
    Nitin

    Hi all,
    We are able to resolve the above issue with the below solution.
    Root cause of the issue:
    You may have a temp directory in the path C:\Documents and Settings\user_name\Local Settings\Temp. You got the above mentioned exception because of the temp directory path having spaces_+ in it.
    Solution:
    1. Create a new directory called TEMP in a different location for ex: C:\TEMP
    2. Now, Right click on My computer --> Properties --> Advanced --> click on Environment Variables.
    3. You should be having TEMP and TMP as variables under user variables section pointing to the C:\Documents and Settings\user_name\Local Settings\Temp path.
    4. Edit the TEMP and TMP variables and mention C:\TEMP in the variable value.
    5. Deinstall and re-install OBIEE 11g.
    Happy OBIEE 11g installation!!
    Thanks,
    Rajesh Gurram

  • Product costing by sales order configuration steps

    hi
    plz send me product costing by sales order configuration steps.
    sir, i know manufacturing order configuration step but i do not sales order configuration.
    in the sales order also is same as manufacturing order like first we have to make planning cost , the planning cost should be updated to material master and next configure the actual cost.
    for first step- costing variant -okkn
    next -costing variant -opl1
    for sales order also same we need to update planning price first- what is costing variant
    for actual cost - what is costing variant
    plz tell me detail
    regards,
    sowmya
    Moderator: Please, read forum rules before posting

    Hi Sashikanth,
       Please send me the Configuration document for make to sales order.We are at Blue print stage need some docment for make to sales order.Plese send me the document it will will be very help full for me.
    My id is [email protected]
    Thanks in advance
    Regards,
    Nagaraju
    Edited by: nagaraju sami on Mar 9, 2008 11:58 AM

  • Which driver to use in the BPM Configuration Steps?

    Hi,
    I´m in the BPM configuration steps and we will use BPM on a Weblogic Server, I´m in the step when you need to create to JDBC Data Sources for the Enterprise and Directory Databases, do you know which driver shoul I use? should it be XA o Non-XA?
    Thanx in Advanced!
    Kind Regards,
    Gerardo J

    Since there are no drivers, you can create your own, request one, use the Instrument I/O Assistant, or hope someone has one and posts it here. For help on creating one or requesting one, see the main Instrument Driver Network page. As long as you are familiar with the instrument and have the manual, creating a driver is not that hard.

  • TCP/IP Configuration on Nokia 5800 ExpressMusic

    Hi All,
    I got some problem accessing WiFi connection. I connect via DHCP server everything great, but when i went back to my office with TCP/IP configuration, i couldn't fine any TCP/IP configuration on my phone. Is there anyway to solve my problem. I really need help on this matter coz i dont have any 3g connection yet to sync my exchange mail efficiently.
    Thanks.

    Hi!
    I think I have the same problem... I can't access WiFi connection in open WLANs, I just can connect to WLAN via DHCP... But this problem appeared after first attempt to connect via DHCP. Before there were no problems to connect to open WLANs... I really don't want hard reset of my phone...
    Any suggestions? 
    Thanks!

  • Configuration steps for Extended Classic Scenario

    Hi All,
    Could you please let me know what are the configuration steps required for extended classic scenario.
    Thanks in advance

    Hi,
    Important Settings that Determine the Extended Classic Scenario
    The following settings are required for the extended classic scenario:
    u2022 At least one backend materials management system and accounting system is connected to the SAP SRM system and defined in the configuration setting Define Backend Systems.
    u2022 Product categories from the backend procurement system are replicated and used in the SAP SRM system.
    u2022 The target system for each product category is the backend system in the configuration setting Define Backend Systems for Product Category. Optionally, BADI BBP_DETERMINE_LOGSYS is implemented to determine the backend system.
    u2022 The extended classic scenario is activated in the configuration setting Activate Extended Classic Scenario. Alternatively, BAdI BBP_EXTLOCALPO_BADI is implemented to control the extended classic scenario based on customer defined rules.
    u2022 If the backend system is an SAP R/3 version lower than 4.6B, you must define local purchasing organizations and purchasing groups.
    u2022 If the backend system is an SAP R/3 version 4.6B or higher, you need to map the purchasing group used in the purchase order to the backend purchase group in one of the following ways:
    u2022 Use a backend purchasing organization and purchasing group in the shopping cart and purchase order.
    u2022 Use BAdI BBP_PGRP_FIND to determine a backend purchasing group in the shopping cart.
    u2022 If a local (created in SAP SRM without reference to a backend system) purchasing group and purchasing organization are used, then a valid backend purchasing group is assigned to the RFC user that created the backend purchase order. This assignment is made in the backend system using user parameter EKG in Transaction code SU01.
    u2022 Implement the user exit of the BAPIs BAPI_PO_CREATE1 (EXIT_SAPL2012_001 and EXIT_SAPL2012_003), and BAPI_PO_CHANGE (EXIT_SAPL2012_002 and EXIT_SAPL2012_004) to determine the purchasing group with a customer- specific logic.
    This is for your additional information.
    Hope this helps.
    Regards,
    Vikas

  • Configuration steps to create New Special GL

    HI,
    Can any one please send me configuration steps to create New Special GL. My client required to create new special GL for Rent Advance.
    NOTE: hear I am not asking how configuration steps for assigning GL accounts for existing Special GL. I want new Special GL to be Create for rent advance.
    It’s very urgent
    My mail id "[email protected]"
    Thank you
    mahesh

    Hi,
    go to transaction code fbzp where you assign GL account to the spl GL indicator.
    Go and create a new spl GL indicator there by clicking create new.
    Bye

Maybe you are looking for