This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

Beckhoff BK9050 as a Modbus TCP remote IO
#1
Hi guys,

i think the subject covers most of the question.

The BK9050 is an ethernet bus coupler with modbus TCP on board, i would like to use it to control my heating. i got a ni1000 AI and a 0-10v AO connected for heating control but i need the temperature controller inside my LogicMachine Ambient. Only connection i got is my Ethernet.

Anyone has some examples or tips ?

I've read the manual on modbus tcp but i stranded already on the modbus profile ? Do i have to get this from Beckhoff ? Invent this myself ?

thx in advance for any help.
Reply
#2
You have to create the profile manually, but this is quite easy if you know which registers / coils to use. It does not matter if TCP or RTU is used, profile will stay the same.

You can use this profile as an example: http://openrb.com/wp-content/uploads/2015/06/UIO20.json
Here's profile field reference: http://openrb.com/docs/modbus.htm
Reply
#3
Hi,

since i got my ambient mounted and all fired up ... the next big thing is to get it to communicate with my beckhoff modbus TCP.

I've read the ambient datasheet which states that i need to install the modbus master package.
Where can i find these packages ?

thx
Reply
#4
Which firmware version are you running?
Reply
#5
Hi,

i can't really find any firmware version.


afterwards it all seems pretty st*pid.
version is 20151102

couple of things i don't know:
- where to get the upgrades voor LM Wall
- where to download the add-on packages.
Reply
#6
Hi,

this is becoming a pretty steep learning curve Smile

at this point i got the modbus tcp working on my beckhoff.
now i need to get the ambient wall to connect.


1) where do i download packages !?
2) when i look in the manuals/forum it seems there has to be a 'modbus' tab, havent found this.
3) what is the modbus profile ? just settings like ip and port or do i need other stuff ?

probably lots of noob questions but gotta start somewhere...

thx for any help
Reply
#7
Latest firmware: http://forum.logicmachine.net/showthread.php?tid=343
Modbus package: https://dl.openrb.com/lm-16.07-rc/pkg/ge...27_mxs.ipk

It comes wil built-in profile for our UIO20 device which you can use a template. Profile specifies which coils/registers can be read/written and how to map them to objects. IP/port is set per each device that you create.

You can use Modbus tools to figure out which registers to read and how before creating a profile: http://www.modbustools.com/download.html
Reply
#8
i got everything working.

visual modbus mapper working fine.
When i change a modbus value with a modbustool, i see the register change in my PLC and on my LM wall.
but when i change the value in the LM Wall, the value is not written to the modbus?

Some setting i missed ?
Reply
#9
Have you set "writable": true in your profile for each register/coil that should be writable?
Reply
#10
no i did not Smile

changed and tested but does not work.
this is the profile

{
"manufacturer": "Beckhoff",
"description": "CX5020",
"mapping": [
{ "name": "Living_Wand", "bus_datatype": "int16", "type": "register", "address": 32768, "writable": 1 }
]
}
Reply
#11
Just for others who wonder, the above code does work, only (for me) it only accepted the changed profile file after a reboot of the LM Wall.
Reply
#12
Hi,

modbus coils and discreteinputs are working fine, now i'm trying to write to my holding registers.

i do this with the following command in the json file.

{ "name": "DIM", "bus_datatype": "float16", "type": "register", "datatype": "int16", "address": 32768, "writable": 1, "bus_address": "1/1/2"}

but i don't see anything in my plc. when i use a modbustool and write a 1 to 32768 on the holding i can see this in my plc.

what's wrong ?
Reply


Forum Jump: