Using Modbus RTU in Labview 8.5 for Terminator Field I/O

We have on site Terminator: T1H-EBC100 Field I/O's and are trying to use Labview to control it.  We currently use Labview with our NI Fieldpoint modules and RIO's.  We have been trying to find a way to use LabView to control the Terminator Field I/O and it uses ModBus RTU for its protocol.  Does Labview 8.5 support this and any suggestions on getting the process started in using it.

Our modbus solutions don't work with max. 
Instead you send a message over TCP/IP or serial with a message for a particular node address. Only the node at that address will respond or act on the message. 
Modbus is much different that FP in this respect. The modbus specification doesn't require pre-discovery of every node. 
Additionally, because of this you should be able to send a message to the terminator even though it isn't discovered. You just will be need to configure the address correctly. 
Jesse Dennis
Design Engineer
Erdos Miller

Similar Messages

  • Floating point number using Modbus RTU DSC LV 8.2

    I'm reading temperature from a Modbus conrolled device. I need to convert a temperature value (17053) read as a double type Shared Variable (SV) and convert it to ieee 754 type to show temp of 79 deg F as shown on the control front panel.
    I'm using DSC module LV 8.2. I'm wondering if the conversion is already done in DSC LV 8.5???

    seem to find my own answers after putting the post....
    I use a typecast to single but I had to change the double to 16 bit integer for the type cast to convert correctly.... see attached png
    Attachments:
    ModbusSVFloat.PNG ‏28 KB

  • Polling variables using Modbus IP and labview 8.2.0 shared variables

    I'm using shared variable in order to read/write register on a Watlow PM controller over Modbus IP standard. Once I make a change to FP control, the shared variable polling starts and I no longer get update of any controls or indicators on the FP.
    Just wondering if this is an LV 8.2.0 issue and if any of this is addressed in LV 8.5?
    Thx ahead of time
    richjoh

    Hi richjoh,
    If I understand correctly, there are two issues to address: the status of the UpdateNow shared variable and the fact that your controls and indicators are not updating. 
    When you right-click on UpdateNow in your project and select Properties, what is the data type listed there?  Is it bound to one of the other shared variables that has a value in Variable Manager?
    After changing a control on the front panel, do you continue to see the values changing in Variable Manager even though the controls and indicators do not update on the front panel?  Do you see the same behavior regardless of which control you change? 
    Thanks for the additional information. 
    Jennifer R.
    National Instruments
    Applications Engineer

  • Failure of LabVIEW DSC 8.0.1 to yield values of Modbus RTU holding registers

    So, I know what I'm doing--or used to. Have done this before in LV 6 and 7. Previously used Lookout OPC drivers and the "Tag Engine".
    Recently with 8.0.1, I first set up the Industrial Automation OPC servers (AKA Lookout) to communicate with the holding registers (40,001-49,999) of my modbus rtu Watlow 96 and MLS316 temperature controllers. Subsequently, with the Server Explorer all of my 133 parameters on our 2 rs485 serial ports are communicating bidirectionally.
    So now Duh, why can I not bind a shared variable to register, say 40,334, and eliminate the OPC? The data is always reported as bad. Neither can I link shared variables to these addresses through the OPC I/O server.
    Am I missing something? Are there any examples of code available where individual modbus holding registers are communicated with bidirectionally?

    Well, this may seem rather silly but I viewed the video demo that NI has on binding modbus registers to shared variables before I even made my attempt.
    Now, differing from the demo video, I am using modbus RTU on a serial port.  Also differing from the video, when I create my shared variables, they are not placed in the same lvlib as the modbus server just created--LabVIEW prompts for a new library to be created.
    Could the NI product service staff please test with a serial modbus RTU device (a real living creature and not just a simulation please) the bidirectional communications and prove functionality with the Shared Variable Monitor of your product?  I suggest that you attempt communicating with holding registers 40,001 through 49,837.
    By the way, my com is set up correctly for I can view and or change all of the desired modbus RTU registers using the OPC Lookout Protocol Drivers through the Server Explorer.
    Please do not send me any more links to videos that test with simulations.  A real solution is required.
    Lloyd Ploense

  • Lookout 6.0.2 modbus rtu problem?

    One of our customers has Lookout 6.0.2 communicating with several CMI Scada Packs over wireless modems using Modbus RTU protocol. Suddenly last Friday night he got comm fail alarm pages on all but one site. The  Modbus statistics window revealed that Lookout had stopped polling all sites except the one site that stayed in communications. The only activity was the one site.
    He watched it poll this way for 2 hours, never returning to the normal polling cycle.
    I had him exit and re-launch Lookout and polling returned to normal and has been that way since late Friday night.
    This system has been in service for several years with very near 100% good communications sice we deployed it, up until now.
    It was obviously a Lookout failure, since the only action taken was to exit and re-launch Lookout.
    Isn't there a watchdog timer for this sort of error?
    Is this a failure of the Modbus cbx object? (We are using the plain vanilla Modbus driver)
    Roger Foote
    Foote Control Systems
    Solved!
    Go to Solution.

    Hey Mr Domer
    If it's the one I think it is, I designed and built the RTU system and repeater system after the "Packaged" system became obsolete.
    That was back when 1200 baud was fast! I guess it was compared to the 300 baud limit on the old stuff. Probably been re-built a couple of times since.
    Thanks for the sequencer suggestion. I will have to think on this since we are pushing the limits for polling... Some ScadaPacks in this syatem have to do up to 25 modbus transactions per site... We have serious I/O in this sytem lots of which is in floats. Haven't tried DNP yet but I am getting pressure from some distributors to go Clear SCADA and use DNP to thin out redundant polling. Thing is this system has worked flawlessly for years and now suddenly we have this issue, so I am not ready to throw in the towel yet and I doubt the board would go for the moneys to implement it. We are adding another 8 pump site this October after the canals are off line but before they are drained for winter. This is  so we can test the system before the frost protection season for the almond crop.
    If NI can't fix this I will probably just insist that my clients reboot every week. I am fortunate that these are not unmanned districts. Only problem is that each of them are at least a 2 hour drive from any one point so I need to keep callbacks to a minimum which would be zero callbacks if it weren't for software screwups.
    Best regards
    Roger 

  • Modbus RTU - Reading Holding registers problem - Novus myPCLab

    Hello,
    I'm trying for a few days to read Holding registers in Novus myPCLab (it uses Modbus RTU protocol). I used both DSC module and Modbus library with no success (it appears to connect correctly but cant read).
    I need to read the given current.
    Does anyone have any idea about what am I doing wrong? 
    Here are my vi and the modbus address.
    Via DSC
    I used the PLC address at "HR Inicial" and 1 at "numero de registros"
    Via library
    I used the PLC address in "starting address"
    Solved!
    Go to Solution.

    My problem now is that my VI doesn't stops after I stop the while loop, it is necessary for a flat sequence implementation.
    Or my other best option is to read and write without closing the Modbus connection. Is that possible with a global variable? 
    I guess I do have to execute this "Modbus VI" to get my variables at a Main VI if they are in the same project. So, can I make my "Modbus VI" works in the background while the Main VI (who reads and write the addresses from the global variable) works, and when I finish running it, they stop together?
    ModBUS VI

  • 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.

  • AT NEW command for two fields

    Dear All,
    How to use AT NEW command in internal table for two fields.
    Warm Regards,
    N.Jain

    Hi
      See the following code. It is useful for u.
    DATA: BEGIN OF ty_batest,
            designation TYPE zba_test-designation,
            salary TYPE zba_test-salary,
            empno TYPE zba_test-empno,
            empname TYPE zba_test-empname,
            address TYPE zba_test-address,
          END OF ty_batest,
          it_batest LIKE TABLE OF ty_batest,
          wa_batest LIKE ty_batest.
    SELECT * FROM zba_test INTO CORRESPONDING FIELDS OF TABLE it_batest.
    SORT it_batest BY designation salary.
    LOOP AT it_batest INTO wa_batest.
      AT NEW designation.
        WRITE: / 'Designation  :', wa_batest-designation,
               /(35) sy-uline.
      ENDAT.
      AT NEW salary.
        WRITE: / 'Salary : ', wa_batest-salary,
      ENDAT.
      WRITE: / 'Emp Name    : ', wa_batest-empname,
              / 'Emp Number  : ', wa_batest-empno,
              / 'Designation : ', wa_batest-designation,
              / 'Address     : ', wa_batest-address,
              / 'Salary      : ', wa_batest-salary NO-ZERO .
      SKIP.
    ENDLOOP.
    Regards
    Bhuvana.

  • PCUI 4.0, Search Help Required for New field

    Hi everyone
    I am working in CRM 4.0 Sales Order application
    We created a new field in CRM sales Order in Header level in SAP GUI through EEWB.
    The search help for the new field is working fine in SAP GUI. We want to add the same field with F4 help functionaliity in PCUI as well.
    The field has been added in structure CRMT_BSP_SLS_OD1_General. It also shows domain value for the field however Origin of input field ie empty
    The field has been added in PCUI and is successfully showing data inputted in SAPGUI
    However we need search help functionality for the field
    i tried these two steps
    1) i checked on domain value checkbox and changed the field from input to dropdown. However the dropdown is empty in PCUI. Whenever i check box domain values for some field then all the possible values in SPA GUI are displayed in PCUI, however this is not working here.
    2) I put Value_table in F4 of the field
    This is also throwing up empty values
    Am i missing something in this case
    Please let me know how to go about it
    TIA
    Asad

    Hi Frederic
    Thanks for your response
    I am not sure what is meant by regenerating the field group in this case
    I added the entries for my view in the field group and generated the layout of the field group (If this is what you mean)
    The field is working fine. I am able to save values to the field and able to see values saved in GUI.
    I haven't linked search help of the field in PCUI
    I am not sure how to go about it.
    I used the data element in the structure for the field.
    The data element has Domain entry in <b>Entry Help/Check</b> of the structure
    If i check the Domain Value checkbox in my field group then the domain values should be available in dropdown if the field is dropdown
    However i am not able to see the possible values of the field (It is present in SAP GUI)
    Does something else needs to be done in this case
    TIA
    Asad

  • Need help with read/write to MODBUS RTU registers in Labview 8.0

    I’m trying to write and read the registers in G3800xx016. controlling temperatures and lightning.  Please look at the attached pdf file for this unit..
    I have used Lookout for about three years, and it works fine.. Now I want to expand my system and try to use Labview 8.0
    My temperature register start adress is 100 Hex  (256 dec) I read from Register with Function code 03.
    This register have values from 0-255 witch mean in labview for me as unsigned byte U8
    I read my temperature from the register like this: eks.: 40257 lets say value=5
    Slave    FC       Start Adress     Byte     Value               CRC
    01        03        0100                02        0005                7847   
    This is the status received from the Modbus tester when I use null-modem connection..
    I receive the same value if I use Modscan32
    I have used null-modem cable to read out the values.
    I have also PIR detectors that control movements and light of and on, and I read these starts at 40017.1
    01   03     0010     02    
    The register to switch on and of heating and lights starts at 404097.1  FC16  
    Values mention here is read from Lookout 5.0  
    I have tried examples and read for weeks about this, but everything stops when I try to use Labview 8.0    I can’t read any values from my Master unit, neither write to it, or read any values in Modbus testers when I use null-modem cable.. I have tried different baud rates in my serial connection and it works perfect in Lookout, but Not Labview..
    I have even bought DSC module, but I can’t write to either com ports or Modbus testers..
    Please anybody… is there anybody that can give me help with this??
    Start address for for PIR detectors is 40017.1 (FC03)  and for writing bits for on of to light and heatsystem is 404097.1 (FC16)
    I would be very happy for any idea that can give me some positive results…  Look at the attached pdf file.
    Thanks.. and very best regards from
    Benjii…
    Attachments:
    G3800x016_02-2005_eng.pdf ‏70 KB

    Hi... and thanks for your answer..
    Yes, I have downloaded the NI Modbus drivers.. I have downloaded that one + a lot of other things about Modbus..
    I have also tried communication between lokout and labview true null-modem cable.. and it works..
    I have tried several Modbus examples and I communicate with most of them with null-modem cable.
    I write to the right registers as well, cause I use Modbus scanner to read the information..
    I have used the same settings for serial communication as my Master device use, bust still I can't get any response..
    There was an error message in one of my example from the Modbus INIT module.. Maybe I should try to set up a new connection using VISA ??
    Maybe the problem is to INIT my serial port? I have tried restarting my computer after closing my system..  But still, I have the same problem..
    I hope you can give me any idea...
    Thanks again..  by the way.. is it possible to write and read directly to serial port with the DSC module??  If so.. how?? 
    Very best regards..
    Benjii..

  • Connect plc using modbus with labview

    hi
    i m using Modbus to communicate plc with labview . but it is not working.......?
    can any one give me the example program so that i can understand how to communicate ?

    Hi Nadeemalikpda,
    Are you using the Modbus Library (http://zone.ni.com/devzone/cda/epd/p/id/4756) or the DSC Module for the Modbus communication?  There are examples included for each.
    For the Modbus Library, the examples are in the .llb (MB Serial Example Master.vi, MB Ethernet Example Master.vi).
    For the DSC Module, take a look at the help file here, which also has the locations of the example programs: http://zone.ni.com/reference/en-XX/help/371618F-01/lvmve/dsc_modbus_using/.
    Morgan S
    Applications Engineer
    National Instruments

  • How do we use if statement in labview?moreover can i use if statement inside for loop?

    how do we use if statement in labview?moreover can i use if statement inside for loop?

    The if statement in LabVIEW is the Case structure. You can find that on the Structures palette right next to the For Loop. If you're still on the same subject about terminating a for loop early, then what you do is enclose your functions inside the loop with a case statment and make one of the case's empty except for one or more constants that you might have to wire. Hopefully, the attached picture will explain what I mean. Also, as I mentioned in one of your other posts, I think this technique is not as good as using a while loop. The array in the attached example is the same size no matter what and you may have to handle stripping extra or invalid elements.
    Attachments:
    For_Loop_with_Case.jpg ‏21 KB

  • How do I create Labview VISA ports for *individual* GPIB instruments using Prologix USB GPIB controller?

    Hello,
    I'm trying to use a Prologix USB GPIB controller to control GPIB
    instruments, and I would like to have a virtual serial (VISA) port for
    *each instrument*, as is the case with a normal GPIB controller with a
    standard NI driver. However this is not what the Prologix driver
    provides -- it provides a single VISA virtual serial port for the
    entire controller. To address the instrument with GPIB address 11,
    you first send "++addr 11" to the serial port, and then you're talking
    to instrument 11. However, this means I have to change all old
    Labview programs.
    Is it possible to create a "wrapper" function of some kind that will
    define a virtual serial (VISA) port for each *instrument* on the
    controller? For example, to talk to GPIB instrument 11, call it
    ASRL3::11::INSTR, each time it is written to it would have to write to
    the virtual serial port of the controller, say ASRL3::INSTR, first "+
    +addr 11" and then the command that is sent to it.
    A clearer explanation of the difference (i.e. incompatibility), and of
    my objective:
    1) A normal GPIB controller with NI driver: I go to the NI
    Measurement & Instrumentation Panel, under GPIB, and Scan for
    Instruments; all the live instruments show up; subsequently when I
    want to use Labview programs that use VISA ports, the VISA drop boxes
    allow me to choose a different port for each instrument, e.g.
    "GPIB0::11::INSTR", "GPIB0::12::INSTR" would be instruments at
    addresses GPIB 11 and GPIB 12.
    2) The Prologix GPIB controller that plugs into a USB port: In
    Labview you get a *single* VISA virtual serial port, ASRL3::INSTR, for
    the entire GPIB0 controller. Therefore to address GPIB instrument 11,
    you write "++addr 11" to the virtual serial port ASRL3::INSTR, and
    then you are communicating with device 11, so you can write and read
    ASRL3::INSTR to talk to that device. Then to talk to device GPIB 12,
    you write "++addr 12" to the same VISA port, and then you are talking
    to that device. The problem is that this requires recoding all
    Labview code, whereas I would like to be able to use the same program
    either with a normal or with a Prologix GPIB controller. Therefore, I
    would like to create code that scans the controller for all GPIB
    attached devices and creates VISA ports for all. Such ports, when
    written to, would have to first write "++addr DEVICENUM" to
    ASRL3::INSTR (i.e. the port of the GPIB-USB controller) where
    DEVICENUM is the GPIB address of the instrument corresponding to that
    port, and then would have to do a write or read or whatever function
    is being done on that instrument VISA port.
    I haven't figured out if it is possible to do this easily. Help and
    pointers on where to look for hints would be much appreciated. Many
    thanks!
    Milos

    My first impression is that if you don't want to make any changes at all to existing programs is that the wrapper you need is one around VISA. You would need to intercept all of the calls into the NI VISA driver. If you create your own visa32.dll and in there, change the addressing and then call the real VISA driver, you might (repeat, might) get something to work. If this would even work, you still might find that you have to make significant changes anyway. The serial connection is going to be considerably slower, and interface specific functions such as service request handling, bus triggering of multiple instruments, etc., would be difficult to impossible. This would be a lot of work, imho, to just save a couple of hundred dollars over a real GPIB controller. I've seen this Prologix device before and have even used NI's RS-232->GPIB controller. The Prologix intended use to me seems to me more for a hobbyist or very casual user. Of course, I'm used to having multiple GPIB instruments worth 10s/100s of thousands of dollars and the cost of an fully compliant GPIB controller is just lost in the noise.

  • How to design LabVIEW programmin​g for temperatur​e monitoring using 4 thermocoup​les

    Hi all.
    Sorry if this seems a simple question but I really sorry for the troubles. I'm a new user with LabVIEW and currently using LabVIEW 8.6 for a final year project of mine. I’m trying to monitor the temperature reading in 4 different depth of pavement for every 1 hour interval continuously for 1 month duration. Basically I’ll be using 4 separate thermocouples type J and NI 9219 device. My problems are:
    I’m not sure how to design the LabVIEW programming for my application.
    How to get the temperature reading data in Excel spread sheet.
    How to set the min, max and average daily temperature for each thermocouple.
     Thank You.
    Regards,
    Amanus
    Thermocouples Layout:
    Solved!
    Go to Solution.

    Introduction to LabVIEW
    Follow that link to some getting started tutorials. There should be all you need in there to get you going with both the software and hardware
    - Cheers, Ed

  • We collected data using NI in the Labview environmen​t and created tdms document. Is there a reader for reading the data in Matlab environmen​t?

    We collected data using NI in the Labview environment and created tdms document. Is there a reader for reading the data in Matlab environment?

    A search will often turn up results.
    Reading TDM/TDMS Files with The MathWorks, Inc. MATLAB® Software

Maybe you are looking for