Lookout's Modbus Slave Address

Hi,
It appears that the Modbus Slave (Ethernet) Object in Lookout (6.0.1) doesn't work with an Address (or "Identifier") greater than 127. 
I tried a simple test with the Modbus Object in one process with an address of 128.  And a ModbusSlave Object in another process with its address as 128.  There's no communication.  However, when I make the addresses 127 (or lower), they yak like nobody's business! 
I haven't tested the Serial version though. 
Est-ce un bug?
-Khalid

Hi Khalid,
I think I was overlooking the Lookout 6.01 version that you mentioned earlier in your post  ! I was able to recreate the issue that you are facing if I create a modbus slave object in Lookout 6.01 version. Thats a bug! And version 6.02 has a fix for it!
Have a great day!
Regards,
Prashanth

Similar Messages

  • CRIO and ni 9234 modules not working or communicating through fpga with accelerometers, fpga connected to real time application which is also connected to shared variables linked to modbus slave

    Hi,
    I have a compact rio which has a 4 way chassis attached to that chassis is three ni9234 modules they are linked using fpga to a real time application then using shared variables in the low speed loop that are linked to a modbus slave to communicate with dcs, the ni 9234's have accelerometers connected to them with iepe ac coupled option on the c modules, my problem is the real time application seems to be running okay even when power loss occurs it restarts with no problem and the fpga writes to the portable hard drive bin files fine but without a accelerometer connected I get low noise readings as soon as I connect a accelerometer to any one of the 10 outputs it just goes to a fixed number (0.03125) as soon as disconnect it again it reverts back to reading noise, I have run a scan on the modules and only get a spike when I connect or disconnect the accelerometer, I have tested the voltage at the pins of the module and I get 22 volts dc which makes it more likely that the hardware is not the problem but a software is maybe causing this to hang-up, I attach project and files for your perusal. I also carried out a new project which in scan mode directly linked the module input to shared variable and the same scenerio again. Help would be much appretiated. 
    Many thanks
    Jason
    Solved!
    Go to Solution.
    Attachments:
    logger 2plusmodbus2.zip ‏679 KB

    Whren using waveform acquisition with the 9234s we recommend the following FPGA and RT template.
    http://sine.ni.com/nips/cds/view/p/lang/en/nid/209114
    it can be extended as a data logger with:
    http://zone.ni.com/devzone/cda/epd/p/id/6388
    or using shared variables combined with scan engine
    http://zone.ni.com/devzone/cda/tut/p/id/9851
    The FPGA in all of these, as well as the RT framework have been used successfully by 1000s of users.  I would recommend giving these a try. 
    Preston Johnson
    Principal Sales Engineer
    Condition Monitoring Systems
    Vibration Analyst III - www.vibinst.org, www.mobiusinstitute.com
    National Instruments
    [email protected]
    www.ni.com/mcm
    www.ni.com/soundandvibration
    www.ni.com/biganalogdata
    512-683-5444

  • Problems writing to network published shared variable hosted on rt (set as modbus slave for crio)

    Hello Ni Forums
    This is my first post on this forum and I have been using labview for about 8 months now
    I have a problem regarding writing data to modbus registers through an i/o server set as a modbus slave for my 9074 hardware.After I have completed building project and deploying the variables and following instructions from here , it yields no result but a line zeros. I have the Ni DSM open and modbus master setup to see whether the data is actually being read/written from the respective sides which both yield the same line of zeros as well.  What I am actually trying to write to is an array of single precision floating data. The registers are structured from ranges F40000-F46534 for 10 elements or have them for range AF40001L1-AF46534L1 of item AF40001L10 where it is an array of length 10. (Referenced ranges here)
    I know 1 thing for sure, the modbus connection works and is ready for data requests, I tested this through NI DSM and manually set data for and my master received them . 
    System and Project specifications
    Windows 7 OS
    Labview Full Development System 2011
    No Labview DSC module but I am using the real time module as referenced by one of the documents
    This project is a real time application with fpga mode (not scan interface mode)
    The master and slave are the same subnet and network
    Modbus Connection Type: TCP
    9074 compact rio 8 slots
    9234 module x3 
    9221 module x1
    9472 module x1
    Shared Variable Engine service running on windows os and rtos system 
    Used this  guide to learn about the modbus protocol as I searched all over the internet to learn about modbus 
    I already having Modbus IO Server software installed on the crio through ni max version 1.8 for NI RIO 4.0
    attached file(s)
    Image of Crio software specifications
    Image of the Data being written into variable in rt block diagram
    Short Version of the problem: Why is the io variable not being written into with properly converted data?

    The data can have zeros but not all of them will be zeros and I have another program (on local computer for database storage)that is recieving the same data through TCP and they are not zeros. 
    If a machine is running and is active then the data that will be collected should not be zero , it should infact  be some analog value > 0.
    I will look into the function you described
    How do you view the errors in the IO server subfolders ?
    Is it the modbus register called error status that returns an error code if so that value is currently 0 
    Regards mzamstl
     

  • DF Profi II Set Slave Address.

    What is the content of the telegram the DF PROFI II board sends when it is a master and the Set Slave Address is Sent from the configurator II software?  I am designing a slave with a settable address and can't get this function to work.  All I get a is "fault" in the Status. I've tried numerous combinations and am now leaning towards the DF Profi II isn't sending the correct telegram to SAP 55. I don't have a bus analyzer so I was hoping someone here might know.
    Any Help with this would be appreciated.
    Regards
    John

    Hi Dirk
    Thank you for your response.
    The Set Slave address dialog is available in configurator II under the online menu selection. It is only available if the gsd has Set_Slave_Add_supp=1. I was hopoing someone has a bus analyzer and can tell me what the content of the telegram is that they see. It should be minimum of 4 bytes
    byte 0  New Slave address
    byte 1  Ident HI
    byte 2  Ident Lo
    byte 3  future change address not allowed.
    If anyone has a bus analyzer and can tell me what they recieve on SAP 55 when they hit they try to set slave address it would help me out.
    Regards.

  • How can I edit the database in Lookout OPC Modbus driver OPC sever with the address that has a write attribute?

    When I use Lookout Modbus driver OPC to communicate with my instrumnets, I edited the database number such as 41202 that has a Write attribute in my instrumnet manual, the OPC explorer got bad data, and the OPC server gave the illegal address alarm, when I input the address such as 41203 that has R/W attribute, it worked very well. Is there a way to fix this problem. When I used other OPC server, there was no this kind of problem. Thanks!

    Thanks for your suggestion. I checked the Modbus manual of my instrument, the register is 16 bit. I tried to edit the data according to the Modbus data member in lookout modbus drivere server for several different member, but the OPC still gave me the illegal address. I think the problem may be produced by their attribute, for the address 1201 and 1202, they have the write attribute, for other addresses, they have W/R attribute, and they can be read or write through Lookout OPC server perfectly. when I used the demo OPC server from other company, it can work well, but it is not convinient for me to use Labview when I use that software. I prefer NI Lookout OPc server. I am using the Lookout 4.5. I am wondering whether the Lookout has some shortcoming when I
    use the Modbus driver. Please give me any suggestion, is there any newest version of Lookout OPC sever? Thanks!

  • Error when running ethernet modbus slave demon in an executable - reoccurence

    Thought I'd solved this with the help of the mass compile function. However, it seems to have come back. Maybe it never went away.
    Brief summary  - I'm trying to create an exe of the MB Ethernet Slave example.vi in LV 2013. I can create the exe OK but when I run it I get an error 1003 at invoke node. "This VI is broken or contains a sub VI that LabView can't locate. Verify that you can run the VI. VI path C:\Modbus\Source code\Slave demon.vi."
    Well I can run the slave demon VI with no problems. I can also run the MB Ethernet Slave example VI with no problem.
    In the MB Ethernet slave example VI there is an invoke node that calls the slave demon vi. I've used the slave demon VI path constant as an input to the invoke node so that the exe shouldn't have a problem locating it.
    I've also checked out the sub VIs of the slave demon and they all seem to be present in my project. I've also tried a few different build settings - all to no avail. All VIs have been mass compiled under LV 2013.
    Maybe the exe is struggling to locate the TCP functions.
    Any help would be much appreciated.
    Attachments:
    MB Ethernet Example Slave.vi ‏47 KB

    I have checked the path and double checked by dragging the VI into an empty path constant. I also created a version that uses the file dialog express VI so that I can select the slave demon VI when the program runs. I've also set the slave demon to be always included in the project build. The error message still appears.
    By disabling sections of the slave demon vi I found that a VI called Internecine Avoider was linked to the appearance of the invoke node error message. By disabling this VI I could get the invoke node error message to disappear, although the slave demon then didn't work as intended. This VI is included in my project under the vi.lib so it should be found.

  • Modbus Slave Demon - Executable cannot find VI.

    I have included in my application Modbus Ethernet Example Slave, which I've altered a bit ( only the inside of While Loop ). Everything is working fine until I've come to using an executable built from my project.
    When I start it I got: Error 7 occurred at Open VI Reference in Modbus Init.vi->Main_v0.3.5.vi
    Possible reason: LabVIEW:  File not found. The file might have been moved or deleted, or the file path might be incorrectly formatted for the operating system.
    In my project library I have Modbus Ethernet Example Slave in directory where the .lvproj file is, and the so the "Open VI Refference.vi"  gets it from there (path is built using "Application Directrory Constant" + Name of VI).
    I've also set "Always include" for MB Eth Example Slave in build properties but I still get the error of not founding the VI.
    Do You have any idea why is it happening?

    For your example, your exe has to reside in the same folder as the project as well. 
    Kudos and Accepted as Solution are welcome!

  • Has anyone tried to use LabVIEW as a modbus slave with a PLC master?

    Hello.  I use modbus extensively with PLCs as slaves.  I am finding that it might be benificial to make the PLCs be the master in my next application.  I have tried this with the MB Ethernet Example Slave.vi without any luck.  Can anyone help?
    I am running LabVIEW 8.6 on Windows XP with AutomationDirect PLCs using ethernet communication.
    Thank you in advance for your help.
    Ron Deavers, CLD

    Hi
    There are two options to connect to a Modbus device. Either the Modbus IO Servers (found in the NI LabVIEW Datalogging and Supervisory Control Module) or the free Modbus Library.
    FLAsh
    National Instruments
    Applications Engineer

  • Modbus Slave

    Hi all,
    I have to write a modbus client in LabView. My pc is a slave and has to
    communicate with a SPS-station via RS232. Is there a vi available with a
    smart interface for read/write ?
    Thanks

    Rene,
    sorry, no.
    but you might use a few of the VIs to write your own slave and then send me a
    copy ;-)
    Urs
    Mareike schrieb:
    > Hi urs.
    >
    > Great, the Modbus master works fine.
    > But I'm looking for a slave-implementation. Do you have a solution?
    >
    > Rene
    >
    > "urs" wrote in message news:[email protected]..
    > > Mareike schrieb:
    > >
    > > > Hi all,
    > > >
    > > > I have to write a modbus client in LabView. My pc is a slave and has to
    > > > communicate with a SPS-station via RS232. Is there a vi available with a
    > > > smart interface for read/write ?
    > > >
    > > > Thanks
    > >
    > > Mareike,
    > >
    > > try the dutch companie AIR's free modbus library - I think it's a modBus
    > > Master only, but might be a good base to start with.
    > >
    > > http://www.air.nl/home.htm
    > >
    > > Best Regards
    > > Urs
    > >
    > >

  • Modbus Communications address offset

    Is there an option available in the Modicon Object to enable an address shift during communication with Modicon Devices.  When communicating with a Modicon Quantum PLC 400010 will return the value from the device in reg 400010 but when communication with a Modicon M340, Premium and others 400010 will return the value in 400009.

    Nothing a little data member export and import cant fix...
    On the standard Koyo (automationdirect) PLCs we have to convert from Octal to decimal, then add 1.  
    For example:
    PLC: V1200
    Decimal: 640
    MODBUS: 40641
    Forshock - Consult.Develop.Solve.

  • Getting wrong values from modbus slave

    Hi,
    I'm trying to get data out of a lumel na5 digital meter. The device is connected via its RS485, through a RS232->RS485 converter to the RS232 port of the PC.
    I've donwloaded the NI modbug library, and was able after some work to communicate with the device.
    The problem is that the data I get out of it is wrong. I monitored the request and response data that the VI send, and it looks ok but the data is not correct.
    Anybody has some similar experience?
    Thanks in advance,
    Eyal.

    Hi,
    I do not have any experience with your device but, if you get data (even if it is wrong) from your device with a ModBus protocol you have your communication working !!
    The wrong ModBus data is often caused by simply using the wrong register number(s). Start at 0 or 1, hexa and decimal mixup, invalid register numbers in the range, things like that.

  • Could VBAI be use as Slave in ModBus communication ?

    hello,
    I'm working with VBAI 2010, in ModBus comunication I need to use VBAI as Slave.
    I saw on help file that it is not possible but in menu "Tools\Communication device\" I can see "Vision Builder AI ModBus Adress :"
    What does it mean ?
    Is there any solution to use VBAI as slave in ModBus communication ?
    Fabrice

    Yes, Vision Builder AI can actually only be used as a Modbus slave for now (users can implement the master functionality using a Run LabVIEW step).
    To configure Vision Builder AI as a Modbus Slave device, select Tools>>Communication Device Manager.
    Click New Device, to create the Modbus Master Device you want Vision Builder AI to communicate with.
    Give it a name, then select either the Modbus Serial or Modbus TCP as the communication protocol depending on the physical layer used to connect to your device. For serial, you will need to specify the port and Modbus Mode (the most widely implemented is RTU).
    Click OK.
    Click the Start Server button, next to the Modbus Server, to start the background task that will listen for incoming Modbus messages. Note that the Modbus registers will be updated asynchronously from your inspection, whenever a Modbus frame is received.
    The Vision Builder AI Modbus Slave Address is only used to identify the device, when the protocol is Serial, and you use the RS-485 protocol to connect together more than 2 Modbus devices in a multi-device configuration. Ignore this control if you are using Modbus TCP.
    We know this dialog is a little confusing and are working towards improving it in future releases.
    Once the server is running, use the Modbus Slave step to read and write the Modbus registers (that are located on the machine running VBAI, since you configured VBAI as a slave device).
    Make sure that you specify the correct address in your Modbus Master device configuration software for the register you want to access in Vision Builder AI. In most Modbus device configuration software, you must enter a name for the register you want to use. Per Modbus convention, the register address of the slave device is calculated by subtracting 1 from the register name that you specify in the master device configuration software. Vision Builder AI expects register addresses, not register names, so you may have to subtract 1 from the address you defined in the Modbus device configuration software. For example, a register name defined as 2 in your Modbus configuration device translates to register address 1 in the Vision Builder AI Holding Registers table.
    Modbus Device
    Holding Register Name = 2
    Vision Builder AI
    Holding Register Address = 1
    The Modbus data model is based on a series of four tables: Discrete Inputs, Coils, Input Registers, and Holding Registers. These tables do not overlap in Vision Builder AI. Some Modbus devices use the following start addresses for these tables.
    0x00000 for the Coils
    0x10000 for the Discrete Inputs
    0x30000 for the Input Registers
    0x40000 for the Holding Registers
    Because the tables do not overlap in Vision Builder AI, ignore the first digit of the start addresses when entering the addresses in Vision Builder AI. For example, a register name defined as 0x40000 in a Modbus configuration device translates to register address 0 in the Vision Builder AI Holding Registers table.
    Modbus Device
    Holding Register Name = 0x40000
    Vision Builder AI
    Holding Register Address = 0
    Sometimes you need to subtract 1 from the register name that you specify in the master device configuration software and ignore the first digit of the start address to ensure proper register addressing. For example, a register name defined as 0x40008 in a Modbus configuration device translates to register address 7 in the Vision Builder AI Holding Registers table.
    Modbus Device
    Holding Register Name = 0x40008
    Vision Builder AI
    Holding Register Address = 7
    The Modbus Local Registers Terminal accessible from the Tools menu is a useful tool to figure out where you're writing data.
    Hope this will help you configure the communication between VBAI and your device easily.
    Best regards,
    -Christophe

  • How to implement Modbus Ethernet communicat​ion in Lookout, if we want to simulate the PC as PLC ?

    Problem Description :
    Dear Sir,
    We are doing a project where we are using Lookout with
    Front end Modicon PLC. The communication is by
    Ethernet, using Modbus.
    Since the installation is at a distant place, we wanted
    to use another PC (running Lookout) to simulate the
    PLC. For this, we tried to communicate
    a: the server Lookout PC running Modbus Ethernet mode of
    Modbus object as Master
    b: with another PC (for simulating the PLC) running
    Modbus Slave
    We did not get any communication. (we have given the
    details of what we have done, at the end of this email)
    We also tried connecting the above 2 PC's as
    a: the server Lookout PC running Modbus Serial mode of
    Modbus object as Master
    b: with another PC (for simulating the PLC) running
    Modbus Slave object
    Again we did not get any communication.
    If instead of PC (b) we connect the Modbus simulator to
    PC (a), there is no problem in communicating
    Please let us know how to go about establishing the
    communication between 2 PC's using Modbus serial,
    and Modbus Ethernet. A detailed step by step procedure
    would help us a lot.
    Thanking you
    Warm Regards
    Raja Mahbubani
    Procedure of our trial with ethernet.
    This is what we have done in detail.
    On PC A:
    We created an object (Pot) and connected it to
    the modbus data member of the modbus object say 40001. In the
    properties of the modbus object we selected modbus ethernet mode
    of communication and in the IP address field we wrote the IP
    address of the machine B to which we are trying to communicate
    i.e. 152.63.50.2.
    On PC B: we tried the following two methods
    Trial 1 : We created a modbus slave object and
    inserted an expression for the same data memeber to which the
    object was connected hoping to get the value of the pot of machine
    A on machine B.
    Trial 2 : We created a modbus object on machine B and we wrote
    the IP address of machine A and inserted an expression for the
    same datamemeber to which the object was connected hoping to get
    the value of the pot of machine A on machine B.
    NI Software : Lookout
    Version : 4.0.1 or 4.5
    OS : Windows 98
    NI Hardware : N/A
    Drivers : N/A
    Other Hardware/Instruments : N/A
    CPU : Pentium
    RAM : 64
    Vendor : S-Tech
    Customer Information :
    Raja Mahbubani
    Theta Controls
    IN
    [email protected]
    Ph: (+91) 20 4222556/7

    The ModbusSlave which comes with Lookout currently supports only Serial communication. So, you cannot use Ethernet between your two PCs. At least not with Modbus Master-Slave setup (if you must speak Ethernet between the two PCs, IPASCII object lets you do that, but then you'll need to implement your own protocol).
    Since all you want to do is simulate a Modbus PLC on a PC, you can use the Serial mode of communication for now. And later on just modify the Object in your Server Lookout to use the Ethernet mode.
    For setting up a Serial Modbus Slave, use a null-modem cable between the two PCs (lines 2 and 3 are swapped). On your PC 'B,' create the Modbus Slave object with the right COM port for that PC. And on your PC 'A' create the regular Modbus Object as if you w
    ere connecting to the Modbus Simulator box. The only difference here is the cable. The simulator box uses a straight-through cable whereas the Slave needs a null-modem cable.
    Hope this helps.
    Rgds,
    Khalid

  • Read/Write a bit in a Modbus Address

    Greetings,
    I'm working on a project for a customer of mine. I'm working off of his I/O mapping list. We are using MODBUS to communicate to a Motorola MOSCAD FIU. According to the I/O Map, I need to read a bit from address 307682:01 which normal I would translate into 307682.1 but Lookout is not excepting this address as a valid Data Member. So I did some troubleshooting of my own and found that Modbus Data member (307682) is only used as "a 6-digit addresses of 16 bit input registers encoded as unsigned binary integers ranging from 0 - 65535." I guess an analog value.
    Is my thought process correct on this? Does my customer need to change his I/O mapping. Am I overlooking something?
    Attached is a copy of the I/
    O map.
    Oliver Scheurer
    Aegis Solutions, Inc.
    2660-T Yonkers Road
    Raleigh, NC 27604
    Phone: (919) 861-0103 Ext. 231
    Fax: (919) 861-0104
    www.aegis-solutions.com
    Attachments:
    IO_Map_for_lookout.xls ‏69 KB

    WOW!!.. I get to answer my own question. You all are slow... J/K...
    Anyway, the fine people at NI Tech Support Helped me out with this one. Seems that it is a problem related to Lookout and Modbus. After discussing this problem with a few engineers, I decided to call the customer and let him know of his mistake. Well, he proceeded to tell me that "Wonderware can do it with out a problem". So I called NI Support again, and they told me that further research showed that it is something that was not put into Lookout. The Support engineer started a "CARD?". But he also gave me a work around.
    1. create an expression
    2, enter getbit(3,1)
    This expression will return a ON status since the number 3 in binary is 1 1 and looking at the first bit is 1.
    So for my
    application I would use
    getbit(modbus1.307682,1)
    I hope this makes sense.
    Oliver Scheurer
    Aegis Solutions, Inc.
    2660-T Yonkers Road
    Raleigh, NC 27604
    Phone: (919) 861-0103 Ext. 231
    Fax: (919) 861-0104
    www.aegis-solutions.com

  • Modbus (DSC Module) - Illegal Data Address

    Hi
    I need to implement a Modbus Slave in an application on a cRIO system. I set up a "I/O server" (DSC Module) and created shared variables for all the registers I need. The Slave has been tested and works fine, I'm using about 20 holding registers and I'm able to both read from and write to them.
    The issue is that when the Modbus Master reads a holding register that I have not implemented the slave replies with the value "0x00 0x00" (LabVIEW default for integer) and not with exception response code 02 (a holding register inquiry for a nonexistent address should reply with function 0x83 and code 0x02 - Illegal Data Address).
    Is it possible to change a setting or something, in order to force the DSC Module to send an exception response code, in stead of simply a default value, for registers that are not specifically configured?
    Hope someone can help me - I would really like not to write all the necessary code for a modbus slave myself.

    Hi Lenvno
    Thanks for your reply.
    I think you misunderstood me.
    I have an application running on a cRIO. On this cRIO I need to implement a Modbus Slave in which specific holding registers should be used. Through a serial connection a different device, acting as a Modbus Master, obtains information from this slave.
    On the cRIO, in my LabVIEW application, I have created an I/O server - Modbus Slave. Using shared variables I write values to specific holding registers on the Modbus Slave.
    The Modbus Master obtains the values from these registers using function code 0x03, read holding register - this works correctly. However, when the Modbus master query registers that I have not defined, the I/O server on the cRIO replies with a register value of 0, instead of Illegal Data Address. It seems like when using this I/O server, all possible Modbus registers is filled with the LabVIEW default value and the slave therefore always will reply with a value even if the register is not used.
    My question is therefore, how can i change this? If the Master query a register that I am not writing to (and is therefore unused), I would like the slave to reply with "Exception Response" code 0x02 - "Illegal Data Address", and not just the value of 0. 
    /Simon

Maybe you are looking for

  • Formatting New External Hard Drive from NTFS to MS-DOS Problem

    Hi I'm new to the mac family and I just got a Seagate FreeAgent external hard drive and hooked it up - it mounted fine but it comes formatted NTFS so its in a read only state at the moment. I want to reformat it to MS-DOS so I can use it for both my

  • Premiere Pro CC - Double Click and Source Moniter

    Double clicking files (in this case .mov files) in my Project Tab in the lower left hand, won't open them in the source monitor for some reason. They will only open if I right click them and scroll down to import to source monitor. How is this fixed?

  • 8500 officejet prints blank sheet but copies fine

    HP OFFICEJET PRO 8500 AIO PRINTER       I am able to copy documents fine in Black and Color; however, when printing either with wired or wireless the document feeds thru without any text being displayed. I tried in Word or Excel with same negative re

  • How to return or rollback the transport object in PRD?

    Hi Experts, I transported a revised program to PRD. But I decided to return it to my previous code. How would I do that in PRD? I'm not a real basis. PLease guide me. Points for the helpful ideas. Thanks!

  • Star Wars Battlefront

      New trailer right here Star Wars Battlefront will launch Friday 20th November 2015 Details The game will run in 60fps, resolution hasnt been confirmed yet. There wont be a campaign mode, but you can play smaller objective based missions single play