ABB TotalFlow Modbus to ML1100 help!

Thinkster

Member
Join Date
Jun 2014
Location
Los Angeles
Posts
8
So I have an ABB TotalFlow uFlo G4 unit and have configured it's COMM port as Modbus Slave. I have also mapped internal 32Bit Float Registers to 7001 - 7009 locations using ABB's PCCU software. Also my Register Format is 32-Bit TotalFlow (which is the only format that works when I use my Simply Modbus Master test software on a PC).
With this configuration on the TotalFlow, I can succesfully read those 700x registers over radio to my PC running Modbus Master software (see image). However, I can't figure out how to read this 32Bit Float properly in an AB Micrologix 1100 PLC. It does send the query to the TotalFlow and gets a response but the Data is wrong. For Example, if I read register 7007 I should get 42FA 0000 (125 Decimal)but when looking at my N7 or F8 tables, I don't see anything close to that.
Am I not able to read a 32bit value? Do I need to read the first 16bit and store that, then read the next 16bits and store it and then move & combine the data to reconstruct it? If So, is there any examples on doing this as I'm somewhat new to doing message blocks.

ABB_TF_Modbus_Data.jpg
 
I dont think the micrologix is capable of reading 32 bit totalflow. you need to setup the totalflow comm port for 16 bit modicon. when you build your register map in the totalflow, keep in mind that a modicon float will take up 2 16 bit register spots. so if you are starting with say "battery voltage" register 7.3.2 as your first item in the list, it will use 7001 and 7002. then your next item in the list would use 7002 and 7003, etc. keep in mind that you will also have to configure the modbus master software for standard modbus floats, not 32 bit floats. Im not familiar with simply modbus, I usually use one called modbus poll, so I cant help you there.
 
Last edited:
So I tinkered with the TotalFlow settings on the COMM port I designated for Modbus and I set the output type to 16Bit Word swapped. I then setup my 1st MSG to Read 7001 16Bit, 2 elements. Did same for next MSG (7003). I stored the message data in the N7 Registers/Tables so I could examine it. I viewed in HEX and found that my Battery Voltage register floating point value was stored in N7:0 and N7:1 (16 Bits in each location, totaling 32), However the two parts were swapped so I did a MOV N7:0 -> N7:6 and a MOV N7:1 -> N7:5. I then did a CPW source N7:5, 2 elements to F8:0 This worked and I was able to see my battery voltage correctly in the F8 Data table. However I have 9 Floating point registers to pull over from the TotalFlow and I need a more efficient way of doing this preferably pulling those (7001 - 7009) registers over with one MSG and then getting them into F8 registers on the PLC. I currently have (9) MSG commands, (18) MOV commands and (9) CPW commands to accomplish this and eventually I will need to pull Modbus data over radio from 30 something TotalFlow's!
 
you should be able to pull all of your totalflow points with one msg command. just build your register list in the totalflow with only the points you are going to poll. then in the msg cmd tell it to pull however many points you setup in the totalflow register list x 2.
 
Got it. Was able to change settings on Total Flow to output the data in the correct order. Used one MSG command to pull the first 5 registers (7001 - 7010) and another MSG command for the next 3 registers (7011 - 7019). Since they are 32 Bit floats, each value takes up two 16-bit locations so Battery Voltage for example takes up 7001 + 7002. Then I just needed to CPW from N7 to F8 data tables.

Now to do this for 28 more slave devices!
 
Got it. Was able to change settings on Total Flow to output the data in the correct order. Used one MSG command to pull the first 5 registers (7001 - 7010) and another MSG command for the next 3 registers (7011 - 7019). Since they are 32 Bit floats, each value takes up two 16-bit locations so Battery Voltage for example takes up 7001 + 7002. Then I just needed to CPW from N7 to F8 data tables.

Now to do this for 28 more slave devices!

If they are identical, can change the message node address on the fly, and write some indirection front and back to keep the data separate..
 
If they are identical, can change the message node address on the fly, and write some indirection front and back to keep the data separate..

Really? This sounds like something I'd like to do. Each of the devices is the same model and will have the same registers (7001 - 7009) but obviously will have different Modbus slave addresses. So if there's a way to increment modbus slave number and do the same pull of data but store in a different location (say N8 for the 16bit data and F9 for the Modbus Slave 2 and so on) that would be awesome. How would I accomplish this?
 
The node address for the message can be modified in ladder. In the project I was working on, I had a few identical VSD's on modbus. I used the node address to generate file pointers, and copied to/from them before and after the read / write messages... Just cycled through the nodes as required...
 
Could you take a photo to your code? only for understand what you say in post #3. I am trying to read/write data to a TotalFlow from a Micrologix 1400. Regards.
 
Got it. Was able to change settings on Total Flow to output the data in the correct order. Used one MSG command to pull the first 5 registers (7001 - 7010) and another MSG command for the next 3 registers (7011 - 7019). Since they are 32 Bit floats, each value takes up two 16-bit locations so Battery Voltage for example takes up 7001 + 7002. Then I just needed to CPW from N7 to F8 data tables.

Now to do this for 28 more slave devices!


What does this look like in PCCU when setting up/mapping the registers? Does it actually show 7001 and 7002 used for the 32 bit float?
 

Similar Topics

Hello, I am working on setting up a totalflow G5 and I would like to use the Alarm application. I have most everything setup, but I was wondering...
Replies
0
Views
284
I'm trying to look at some G5 and XIO configs offline with PCCU and I understand that I need a simulator for that purpose. I haven't contacted my...
Replies
6
Views
640
I recently installed Isagraf ver. 6.1 on a Windows 7 machine. I am also running PCCU Ver. 7.40.1. I cannot two programs I developed for an ABB...
Replies
4
Views
4,311
I am not new to the forums, but decided to finally make a profile and join! But now down to business. Software: ABB's PCCU32 Version: 7.40 (Build...
Replies
0
Views
2,410
Greetings, first post ever. I'm new to PLC's, long history of electronics maintenance (Radars), and two years of Instrumentation experience. I...
Replies
2
Views
2,051
Back
Top Bottom