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.

Similar Messages

  • Modbus Communication, Adding shared variables, Licenses

    Hello,  I am having trouble communicating with a third party DAQ.  I am receiving data from a thermocouple input module through a modbus library address but I recently purchased a digital I/O module which is giving me trouble.  As soon as I add the shared variables which correspond to the modbus addresses of the digital I/O module channels I am using I get a few different errors.  If I turn off aliasing for one of the thermocouple channels I get Error 1550 "the license for the I/O server type is invalid"....If I turn it back on I get errors for every modbus location saying "invalid value for enable aliasing option"  I am using the student edition and on the opening screen it says the data logging license is expired.  Is that the problem?  I don't think so because I am successfully communicating with the thermocouple module of the same DAQ device.  Is there a simple way to write a new VI that I can try to communicate with just a switch on the digital I/O module and see if it is reading on or off (0 or 1).  Thank you very much for your time

    Hi brade, 
    To clarify where we are at. the behavior you are seeing isn't expected. It is a minor bug that we have seen in R&D but haven't been able to reproduce and fix yet. 
    People have gotten around it by
    1) re-making their projects 
    2) Enabling descriptions, as the engineer in other post.  The problem went away for him on this post: "Aliasing is no longer an error.  (As long as NI Variables (task description) is enabled)."
    We were talking about the aliasing tab you can see on the modbus variables in hte labview project by right-clicking and going to properties; 
    I assume he checked the box on this tab: 
    Can you also post your project? 
    Jesse Dennis
    Design Engineer
    Erdos Miller

  • 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

  • Function module to update vendor communication address

    Hi Experts,
        Can anyone give me an idea,which function module is used to update vendor communication address details.
    **points will be rewarded
    Regards,
    Naresh.

    Hi,
    Try this FM.
    ADDR_COMM_GET
    Thanks,
    Sandeep.

  • Automationdirect P3000 Modbus Communication Lookout 6.5 for +/- 10V Output Module

    Here is an iquiry I sent to Automationdirect tech support last week.
    I have not had a response from them yet so I thought I would throw it up here.
    Hello,
    I am starting a new project with the P3K and I am using Lookout 6.5.
    This is my fourth installation with this combination and I have learned a bit more about the Modbus communication each time.
    I use the Modbus serial object in Lookout to communicate via RS-232.
    With my first project, I learned to set the "Modbus Server Settings" in the P3000 software to map to a single 16 bit Modbus register to get the communications working with Lookout and making sense with the analog registers.
    For a 10V input I would linear scale in the PAC 0 to 65535 = 0 to 10000 then in Lookout I simply divide by 1000 to get the decimal in the right place.
    On the most recent project, I discovered I could map/scale my analog inputs to 32 bit foats, select the "map to two consecutive integers" in the P300 software properties and then in Lookout, I could read the register properly with an "F"
    like "modbus1.F400001".
    Now I have a P3-16DA-2, ±10V output module.
    I can't get the float to work and it crashes the communication repetitively.
    It will communicate properly if I stick to 16 bit Modbus register for the "Analog Output, Integer, 32 bit" on the Modbus server settings.
    However, I have the register swap issue reminiscent of the DL205 bi-polar input. It outputs 0 to 10V from 0 to 32767 and -10 to 0 from 32768 to 65535.
    I remember having to add logic in the DL260 PLC and then in Lookout I would use the numerical IF;
    "(nif(DL3.C102,DL3.V2102*-1,DL3.V2102))*-1"
    What a pain that was.
    Is there an easy solution?
    Thanks in advance.
    John B

    Bipolar setups are a pain, it seems your if() is similar to what we did as well.  Added a rung and set a coil...
    Only have a few and have not used the P3000 myself, 
    Forshock - Consult.Develop.Solve.

  • Modbus communication with a load cell

    Hello..!
    I'm a new user of  LV and I try to communicate with a load cell by RS232 modbus.
    After installed NI Modbus Library I created a master VI with labview 8.6 using these library, and I can obtain a communication with load cell  , these value are added into 1 register U32Bit, and it's  okay, if  I press a load cell I can see the values go on.( from 0 to 65535) . Now I want to show  on front panel  the value in KG , as decimal point,, for a right interpretation of value  for my customer, so I added a block array to unbundle than I convert a value with I32Bit ( -32768 to 32768 ) with an indicator, but I can't see any values..
    I suppose I doing something of  wrong ( conversion ), I read some KB, but I can't see a suitable solution..
    Can someone give me  a link or information to show me an example to convert this value..?
    Thanks  in advance for any helps..
    Configuration of  MAster VI:
     Read holding register
    Starting address 2012 ( query for obtain net value from the load cell)
    quantity 1
    Slave address: 1
    RTU
    9600
    Com 3
    parity none 
    Solved!
    Go to Solution.

    Hello Ravens,
    I tried to use your good advices and  finally I can communicate correctly with my trasducers showing  on front panel the right value ( Kg). Has been a  problem of conversion from output of register ( U16Bit  as 0-65535 )  to I16bit ( -32765 to 32765).
    Thanks  very much for  your help, and I hope to chat again for new challenge...
    Have a nice WE
    Julio
    Attachments:
    Comunicazione Modbus load cell.jpg ‏46 KB

  • 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

  • Modbus communication Error

    Hi All,
    I'm trying to communicate LabView(DSC) with an LG PLC which is modbus supported. The hardware setup is like, a RS232 cable is connected to PLC and the other end of the cable is connected to a RS232 to USB converter (Because the Laptop doesn't have RS232 port) which is connected to Laptop USB port. I tested the communication with Modscan32 and with another SCADA and were successful. But, when I tried connecting to LabView I'm getting an error, " error code: -1967353900. The Modbus I/O server failed to allocate a serial port." . I restarted the laptop and tried, but that error persists.
    Yes, I have gone through the link given,  http://zone.ni.com/reference/en-XX/help/371618D-01/lvdschelp/dsc_modbus_trbsht/ , but wasn't helpful...
    Please let me know the steps to follow to overcome this error.
    Thanks,
    Randheer

    hi..
    as a quick thought.. please exit the modscan32 before you communicate through LV because the port will be blocked by the modscan instance..
    and also please make sure with the serial port settings like the baud rate, parity etc with the PLC and the Addresses match.
    LV 8.0, 8.6, 2011,2012,2013 WinXP

  • Modbus Communication with Cube400

    Hi
    I have problem to communicate with Cube400. It is using modbus protocol and communication is going through rs485. I must connect it to cRIO 9022 serial port so I used converter IC-485SI (converter manual on page: http://www.esis.com.au/Converters/ic485si.pdf ) to change communication from rs485 to rs232.
    I tried to used Modbus I/O Server. When I have one variable binded to modbus register I have proper reading. When I add second variable then I lose readings from first one. This solution is in VI called ModbusIO_rs485.
    After this I tried to communicate with Cube400 by using VISA blocks. I tried to send specific modbus message. On the begging I get proper response several times but right now I am getting timeout error. This program is in VI called VISA_MBP_ForcePush.
    I am attaching project with this VIs
    What is wrong here ?
    Best Regards
    Pawel Dudzik
    Attachments:
    LABVIEW.zip ‏28 KB

    In your program you read 16 bytes immediately after the write.
    You should add some time after the write and you should see how many bytes there are available and read that number of bytes.
    Look at the COM example shipped with LabVIEW.
    And you use the WRONG CRC it should be 0x5679.
    Try communication with the loopback command. Sending  0408 0000 8844 866D  (Hex data) should return the same data
    Kees

  • Modbus Communications 32 bit

    I am programming a LabView 8.5 application and I need to communicate to a Watlow temperature controller via Modbus TCP.
    The controller uses 32 bit floating point.
    I know how to read two consecutive 16 bit registers to get a 32 bit word.
    My problem is that the addressing structure of the Watlow starts at register 400,000 and goes up from there.
    The NI Modbus library (which I have used on previous applications with different Watlow controllers) appears to only support 16 bit addresses.
    I can not enter register values greater than 65,535 for my reads and writes.
    How can I read the "high-address" register values in the Watlow controller?
    Solved!
    Go to Solution.

    Actually, if you needed to enter the 4, it would not just be a problem for LabVIEW, but all Modbus applications, because only 2 bytes are reserved in the message protocol for the address.
    I'm glad it worked.  But please mark my reply #2 as the solution, then.
    Message Edited by Ravens Fan on 04-21-2009 01:43 PM

  • Modbus communication with Modicon premium PLC

    Is it possible to communicate modicon premium plc(P574634M) and Lab view through modbus.
    If possible how?

    First, do a search for Modbus. There are several options available for communicating with Modbus devices from LV.
    Then, if you have a more specific question, you can post it to the LabVIEW board (you posted to the feedback board by accident).
    Try to take over the world!

  • Modbus communication with an automation direct GS2 AC Drive

    Has anyone written any VI's to communicate with an automation direct GS2-41P0 AC Drive using modbus?  I need to ask the unit a few questions while it is running and possibly start and stop it.  I have started searching around and found the NIModbus VI's.  I just have not figured out how to modify them to suit my needs yet (I just started playing with this today).  So far it looks like Modbus might make my head explode, but I am hoping it is easier than it looks at first.
    Bryan

    Hi Bryan,
    I've never tried using modbus to communicate with that particular device, but if you have any specific questions I'll do my best to answer them.
    Also, you may be interested to know that the AutomationDirect GS2 Drive is supported by our NI-OPC Server, which may be a more attractive alternative to modbus.  I highly recommend you take a look at the LabVIEW Datalogging and Supervisory Control (DSC) module (wihch includes NI-OPC Server) to see if it is something your application would benefit from.
    Supported Device & Driver Plug-in List for NI-OPC Server
    Connect to Any PLC
    LabVIEW Datalogging and Supervisory Control
    Eric V
    National Instruments
    Applications Engineer
    Certified LabVIEW Associate Developer
    "I'm a Ramblin' Wreck from Georgia Tech and a helluva (NI Applications) Engineer!"

  • 485 modbus communication with Watlow PM trouble

    I have a Watlow PM that I can see over MAX now and using the EZ zone code can get manufacture info from.  I also am using (for the first time) the add-on Modbus over serial tool from Saphire to try to write or read anything from it and I always get a "time out" error from the slave.  I tried to do a simple VISA read as I found on some posts and I get the same time out error.  It seems if I try anything from Labview I get this error.  I even tried writing Hex to the thing with the same results.  Can someone throw me a bone?
    Solved!
    Go to Solution.

    There are a couple of free libraries.
    http://sine.ni.com/nips/cds/view/p/lang/en/nid/201711
    https://decibel.ni.com/content/docs/DOC-30140

  • Is there a address offset for a AT-MIO-16L-9 available?

    Can i use a AT-MIO-16L-9 with the standart I/O control orders from C++,VB or Basic (inp,outp), can i get a addressoffset in the web ?
    many thanks for every answer
    Hans

    Hans;
    I'm assuming that what you are trying is to program the board throug its registries. National Instruments doesn't support that way of programming, however, you can find good references at www.ni.com.
    To find the documentation available regarding register level programming, you can type +register +level at the search field of NI home page.
    Hope this helps.
    Filipe A.
    Applications Engineer
    National Instruments

  • Process Failure when communicating over MODBUS using LabVIEW 2011 and DSC

    I'm currently trying to read from a PLC's holding registers using MODBUS/TCP. I've confirmed that the PLC is updating the values and responding to MODBUS communication correctly using a third party program called Modbus Poll. However, when I try to poll the PLC using LabVIEW's shared variable engine, I am unable to read any values from the same addresses that I'm viewing with Modbus Poll.
    My setup simply consists of a PC connected directly to the PLC over Ethernet, with no router in between. I am using LabVIEW 2011 SP1 with the DSC module.
    I opened the NI Distributed Systems Manager to view the status of all shared variables in the Modbus library that I created and I've noticed that the CommFail bit is permanently set to "true". All other variables with a "read" access mode report "Process Failure". I've tried restarting the process as well as stopping and starting the local variable engine with no success. I've also restarted my computer several times to see if any services were failing, but this does not seem to have fixed the problem.
    I finally resorted to monitoring communications over the network card that I have the PLC plugged into via Ethernet using Wireshark and I've found that while Modbus Poll is communicating with the PLC, many MODBUS and TCP packets are sent and received. However, when solely using LabVIEW or the NI DSM to communicate with the PLC, there does not appear to be any communication over the network card.
    Something that may be worth noting is that I was able to communicate with the PLC and read values from it with the DSM on just one occasion, when I first figured out which addresses I should be reading from. It all stopped working shortly thereafter. Prior to this, "CommFail" was not usually set to "true" with my current configuration. Thinking that it was my firewall, I have since turned my firewall off, but this seems to have had no effect on the problem either.
    Any help on this matter would be appreciated.
    Solved!
    Go to Solution.

    Just a thought but I think the  register addresses used by LabVIEW are one off of the actual register #.  I was using a CRIO as a modbus IO Server and had to shift the register addresses by 1 to get things to work correctly (can;t recall if it was +1 or -1).  This is documented somewhere on ni.com but can;t seem to find it now.  But here is another  link that may help:
    http://zone.ni.com/reference/en-XX/help/371618E-01/lvmve/dsc_modbus_using/
    Dan

Maybe you are looking for

  • LogicPro 8 "Error while trying to synchronize Audio and MIDI"

    Hello, My rig: Dual 2.5 GHz PowerPC G5 3.5 GB DDR SDRAM. OS X 10.4.11. Logic Pro 8.0.2, Motu 828mkII interface, emagic Unitor 8 midi interface, Makie Control Universal, 7200rpm Firewire 800 Hard drives. I Just launched a Logic Pro 8 session that was

  • Dynamic where clause in select query

    Hi I'm trying for a dynamic query and in the dynamic where clause i'm checking a field for constant.....for instance if i wanna to use WERKS EQ '0478' how to declare it in dync where clause. i tried for the following: SELECT  (TAB_FIELD) INTO TABLE D

  • Adapter engine on a J2EE dialog instance?

    Can you install an adapter engine on a J2EE dialog instance, or by nature if you add DI's to the central adapter engine they already have adapters? Thanks

  • Billing vf03

    hi all, in my vf03 t-code i got 2 billing invoice number both having same cond type. FOR 1st invoice - qty purchased 5 pc inside the item level - if we double click on cond. it will take to cond base value there i can see the Quantity 5 pc For 2nd in

  • Feature Wanted

    Hello, I just wanted to suggest a feature. I'm new and not sure we're to put this but because I'm using a iPhone 5 I decided to put it under iPhone 5. Well the feature I want is to be able to text a person back while I'm playing a app. I don't like l