Modbus micologix 1400

Try this. I don't have RSLogix on this computer, so I can't open it, but I think it reads a couple values from eight process controllers using Modbus messaging. Unzip
 
Hey guys

New info. I diddent manage to get RTU to work. But in the mean time, I have found out, that the Janitza runs modbus TCP. I have installed Modbus Poll on my laptop and get 225 volt in from channel 19000:)
I have set up my ML1400 for modbus TCP, but still nothing)-:

Mpoll.JPG
 

Attachments

  • MODBUSTCP.zip
    19.4 KB · Views: 7
Hi,

Change the Unit Identifier from 255 to 1 in the MSG setup.

Most Modbus TCP Devices only uses the IP address as identifier.
However, you can use more Servers on the same IP address and would then use the Unit Identifier. The same if you use a transparent Modbus TPC to Modbus RTU gateway, then it would use the Unit Identifier as the Node Id for the RTU side.

Best Regards,
Kristoffer
HMS Technical Support
 
I am now getting second, hour etc.... :) That is integer
But I need voltage. It is adress 19000 an that is floating point. But when I try to read any adess that are floting point am only getting 0. I have tryed on my laptop with my modbis poll program and it reads 17251. How do I read floats. Thanks
 
Last edited:
You will have to read two integers and then use the CPW instruction to copy them into a single float. You will want to include a math overflow trap in your logic in case the data that you copy into the float is not valid due to an addressing error or communication hiccup . Also be aware that it's not uncommon for the addressing to be off by 1.
 
Hi,

OkiePC gave you the solution.

Modbus is according to the standards 16-bit, but quite many have implemented support for 32 bit.

To clarify regarding the offset (which is correct).

There are several ways you list Modbus Registers (disregarding of the Function Code).

First you have Address where Address 0 equals to Register #1.

But you can also list as 40001 which means Read Holding Register (fn 0x03) 1 .
Note that you almost never enter 40001 as the register #, you omit the 4 as that is the indicator of the Register Type i.e. (4)0001.

The same goes for Read Input Registers 30001 (fn 0x04) = Register 1.

For Modbus you have the Hi Byte, Lo Byte order, the same would be for 32-bit, that you have the Hi Word, Lo Word, I would guess. So if you only get a value of 0, you may add 1 to the register number if you read it as a 16-bit word. But As OkiePC said, you need to put it together yourself (Modbus Poll does this for you).

As you are working with Modbus TCP, I recommend that you use Wireshark together with Modbus Poll, as that allows you to analyze the Modbus Protocol, as Modbus Devices should send an exception code if you ask for an invalid address etc.

Best Regards,
Kristoffer
 

Similar Topics

Hello, I need to access the bits from the fire system control panel through RS-485. So, I used Read Var block to read from the panel...
Replies
0
Views
33
I am having a problem communicating my PLC with Drive via Modbus connection. I start by opening the port and there is no problem, but then when I...
Replies
5
Views
50
Does anyone have an example project of the cm ptp ET200 SP HA with 410-5H DCS (PCs7 9.1 SP1) for MODBUS MASTER/SLAVE communication ?
Replies
2
Views
68
Hi, Do you have any trick to make a software working when the 30 days demo version is expired? I've tried to uninstall/clean the registers etc...
Replies
6
Views
242
Hello, I am new to Codesys, and am trying to learn about it for a project we're developing. I've got a couple questions, but first a little...
Replies
1
Views
72
Back
Top Bottom