Bought a AB9900 gateway to get data MODBUS RTU from a PLC over BACnet. 10 consecutive register 40001, 40003, 40005 etc… are sending their values example -10.3 degC, 105.2 PSI, 253.1 psi etc… but once in a while the value of register 40001 will affect 40003, specially when decimal points are used, after this none of the values match whats’ being send from the PLC to the gateway. any ideas? Thank you
It sounds like there may be an overflow happening in that first register. This could be due to a data type or conversion or something else. Can you please share your project so we can take a look at it?
Which version of Anybus Config Manager MAPS are you currently running?
I’ll send you the confirmation file on Monday
Thanks for the follow up
Here is the latest configuration I used on this project
Final SV738302.abmaps (53.9 KB)
Thank you. We will evaluate the configuration file.
In the meantime, if you have any other info, like examples, screenshots, etc. that you can add, please send those as well.
Attached to this email you will find a PDF file with screen shots for my set up.
Anybus Configuration Manager (Maps) – 126.96.36.199
Automation Direct PLC P2-550 CPU
For some reason registers are shifted by 1, e.g 40003 (PLC) goes to 40001 (anybus) etc…
Registers do not match the values sent by the PLC.
Sample PLC 40003 (-62.2) à Anybus 1st register -62 no decimal point
3000’s coils, only the first 8 coils work properly and after that 3009 affects coils 3017 etc.. 3001 à 3001 3002 à 3002 3003 à 3003 3004 à 3004 3005 à 3005 3006 à 3006 3007 à 3007 3008 à 3008 3009 à 3009, 3017 3010 à 3010, 3018 3011 à 3011, 3019 3012 à 3012, 3020 3013 à 3013, 3021, 3025 3014 à 3014, 3022, 3026 3015 à 3015, 3023, 3027 3016 à 3016, 3024, 3028
Do you get the same if you Disable the “Modbus Poll Records”? As Mobus per the specifications are 16-bit registers, the Modbus Poll Records use the standard 16 bit registers (and normally you don’t need to enable such features, the quantity to this is set to 30 registers. But if you look at the Signals list, there it is defines 30 32-bit registers (not sure this causes any conflict in reality) while polling 30 16-bit registers. Can you try disabling?
I’ve tried disabling the Modbus Poll Records, same issue still on going
One thing I have noticed is that you are polling 16-bit registers, but you have the data size set to 32.
Your PLC Modbus server settings are set to ‘Map value to two consecutive 16 Mobus registers’.
You are going to have to either change that to 16 registers or change your register address mappings.
I’ve tried changing to a 16 bit format, but still I’m getting the wrong values.
I have tried changing it in both places (PLC and AB9900) either combination still not working ok
I’m going to need an updated project file as well as the Modbus PLC User manual and/or memory mapping in order to help with this. There must be a mistake/mismatch somewhere in the mapping that we need to find.
Let me know what’s the next step.
I need from you:
- Updated project file
- PLC (Modbus) User manual and memory mapping
Attached to this email you will find the current project file and the PLC communication’s chapter 6
Our CPU is P2-550 from Automation Direct
In your latest config I am still seeing you putting 32-bit values into two 8-bit registers, so you are overflowing the registers and throwing everything off. If you want to store these 32-bit values, you will need to space out the register addresses, like 1, 5, 9, 13, …
Attached to this email you will find configuration file, register addresses have been changed to 1, 5, 9, 13 etc…
Same problem still there
I’ve tried connecting with Modbus TCP, same issues
Would it be possible to have a tech support phone call?
Let me know
Final MA737689-RTU.abmaps (54.3 KB)
Yes, of course. You can reach us by phone at 1-312-893-5636 between 08:00 and 17:00 EST Mon - Fri.
I looked at the file and everything seems to be in order now. Can you let me know what you are getting for a result? Is there data which is just the wrong data or an error message, for example. Have you tried the Reading Input Registers command, swapping the byte order, etc.?