Converter/Interface between CAN and MODBUS

Good day everyone, please I'm new here and this is my first post. I'm working on a project, its EV power station for charging an E-Bike.
The power station is to charge the batteries and the batteries have a BMS (Battery Management System) which communicates with the charge stations on a BODBUS protocol, and RS485 signal. The point now is that we have a new battery better than the one that comes with the power station.
But it is on CAN Bus/RS485 protocol. My question is how we can integrate this new battery with the power station, what kind of converter can be used and the necessary steps to be taken to achieve our aim. Thank you.
 
Hey,

I never had a need for Modbus RTU to CAN Bus. After quick search found this converter:

https://www.anybus.com/products/gat...tor/detail/anybus-communicator-can-modbus-rtu

I have used their Modbus TCP to Ethernet/IP converter recently.
Thank you for your response, I got confirmation from the power station supplier that their batteries also communicate with CAN rs485. My question is the other batteries also communicate with rs485, do I need a converter between them, since they are different programmer. And if yes, what kind of converter do I need to use? Thank you
 
hello good afternoon.

Yes, you need a converter between the two networks. For better understanding... In this case, RS485 is only the electrical interface, but the coding of the protocols is very different.

I'm currently making a canbus to Modbus (slave) converter with a microcontroller.

However, in your case you would need a ready-made product, the conversion is not direct, there will always be a processor/Microcontroller interfacing See, I've never used it but I believe you need something like this.

https://www.adfweb.com/Home/products/Can_modbus.asp?frompg=nav1_7

Another alternative would be for you to find a PLC that has both options and internally you would transport values from one to the other.
 
Thank you for your response, I got confirmation from the power station supplier that their batteries also communicate with CAN rs485. My question is the other batteries also communicate with rs485, do I need a converter between them, since they are a different programmer. And if yes, what kind of converter do I need to use? Thank you.
 
If you use a RS-485 connection, you cannot mix protocols on that since its a deterministic network. There can only be 1 master on each RS-485 network and that master communicates with the RS-485 slaves (with the same protocol) on that specific network.
So you need per RS-485 master, a RS-485 network.
The same RS-485 slave(s) cannot be used by 2 different RS-485 masters.
 
@patrickduis Thank you for your response Maybe I am missing something, the charging station communicates Rs458 with the battery that comes with it. But we have another good battery from another manufacturer which communicates on CAN H/L.
Is there a way to convert this and make the station charge both batteries?
 
You cannot say that the protocol running on 1 can bus can be automatically used by the other one.

Most manufacturers use can bus as their protocol, but inside this protocol there are data and parameters that are designed by the company that made that product.

Can bus is only the -way of communication-

You should see it as follows:

The RS-485 is the physical way of communicating: you are the master and your mouth makes the air vibrate. This vibrating air is received by the slave(s) with their ears. Only the slave that you gave a command will respond back with his/her mouth by generating vibrating air that is sent to your ears.
This is the physicial interface, like RS-485

Now comes the CANbus: you speak certain letters with your mouth. That is the type of language you speak. Take for example European language. If you send a letter L with your mouth, the slave also receives this as L.
Now, if another protocol is used on the same RS-485 connection (sending messages with vibrating air) it can be for example Chinese language with completely different symbols. Then the slave does not understand this letter.

See it like: with CANbus you speek European letter types. Like A,B, C, D.
Bus if a Modbus RTU connection uses the same RS-485 connection, it speaks Chinese letters that the CANbus does not understand.

But.....on top of this CANbus is the message protocol implemented by the manufacturer of the equipment. Certain registers of data and parameters. And almost everybody does it in another way. You should look inside the detailed communication manuals for that.

You should see this, not as the letter type (like European/Chinese letters) but as the actual LANGUAGE that they speak.

If you use CANbus and send/receive european type letters..........you still cannot communicate with everybody inside Europe, because there are many countries that use the same letters, but speak another language.

Are you starting getting it?
The CANbus is just a protocol that is running on the RS-485 phyisical interface, to get the correct numbers and letters to/from your slaves (by the master).
But on top of this is often a propriatary extra language (list with registers of data/parameters) that is customer specific and often different.
 
@patrickduis
I appreciate the time and effort you invested in compiling this information. Your breakdown has helped me grasp the key points. However, I'm curious if there's a way to facilitate communication between the data of the charging station and the battery. Is it possible to achieve this through a converter or transceiver, allowing them to interact? Also, I have debugged the data for both devices.

Considering that the new battery manufacturer doesn't produce chargers, leveraging the existing charging station to charge these batteries would be valuable. Your continued support is highly appreciated. Thank you once again.

Best regards, [Your Name]
 
Like I said before. I would use a Pro-face touchpanel (or another PLC or something similar) that can communicate with both interfaces and make the translation.
2 communication ports. 1 RS-485 CAN-bus port that communicates with language 1 to system 1. The 2nd port also RS-485 CAN-bus that communicates with system 2 in language 2.

The PLC/touchpanel translates the language of system 1 to system 2.

You can also add extra logic for controlling the chargers, to make a more intelligent system. And even use it to read out signals for further development/datalogging.

But you first must be able to talk to both systems at the same time. But I'm not a real CAN-bus expert (I like to stay away from in my opinion over-complex protocols like CAN/Profibus) and I'm more into Modbus TCP (ethernet) and Modbus RTU (RS-485). Why? It is cheap and easy.
But you don't have that choice, you need to work with these 2 different can-bus systems........
 
Top