FuaZe

Hey!

I think your project is pretty neat, however, I think the hardware design could've been a little better.

You're currently using RS485, which is half-duplex. You could've gone with RS485 (4-wire), so you have full duplex communication.
I'm also curious why you didn't use SPI or I2C for communications. With SPI, you won't need a microcontroller on the other board, and you can run SPI over RS485 as well.

Plus, I think you don't really need the backpane, if you make it possible for modules to be put in a row, you could make it even more expandable, while not needing a back-pane.

Like this:

Naamloos.png 

I also think that a RTC (Real Time Clock) would be a very neat option.

Some other features that you might include (you've got enough I/O left, for sure).

- RS485 connection (to modules outside of the boards/plc cabinet).

- Real Time Clock Calender

- SD card slot

- Display

- RS232?

- Maybe even some low level 5V outputs

Quote 0 0
thiagoralves
FuaZe wrote:
You're currently using RS485, which is half-duplex. You could've gone with RS485 (4-wire), so you have full duplex communication.

For the way the communication protocol was planned, there is no need for a full duplex communication. The slave boards are always responding to the master requests.

FuaZe wrote:
I'm also curious why you didn't use SPI or I2C for communications. With SPI, you won't need a microcontroller on the other board, and you can run SPI over RS485 as well.

SPI requires too many wires (one SS for each slave device) which kinda limits the amount of boards you can connect to the bus. I2C is too slow. Nevertheless, nowadays microcontrollers are so cheap that it's not worth making a design without them anymore. I wanted some intelligence embedded in the slave boards anyway, because I wanted them to be software reconfigurable.

FuaZe wrote:
Plus, I think you don't really need the backpane, if you make it possible for modules to be put in a row, you could make it even more expandable, while not needing a back-pane.

This is a very good idea. Actually, I wanted to make it exactly that way in the beginning (that's why I wanted some hardware protocol that could support an indefinite number of slave devices), but couldn't find a good case+connector, then I gave up.

FuaZe wrote:
I also think that a RTC (Real Time Clock) would be a very neat option.
Some other features that you might include (you've got enough I/O left, for sure).
- RS485 connection (to modules outside of the boards/plc cabinet).
- Real Time Clock Calender
- SD card slot
- Display
- RS232?
- Maybe even some low level 5V outputs

These are all great ideas. Maybe in the future I might implement some of them. However, this hardware is, as stated on the website, just a concept. It is for people to look at and base their own design on. The biggest focus is currently in the software. The OpenPLC was conceived to be a multiplatform software solution. Currently it can run on arduino boards, raspberry pi and unipi, not to mention Windows and Linux (running as a softPLC). What I'm planning for the future is to convert the concept design into shields for these popular boards in order to transform a cheap arduino into an electrically safe “PLC” with the lowest cost possible.

Quote 0 0
FuaZe

Good points!

Hmm, yeah the half-duplex may actually work, if you poll the other devices, you're atleast sure they're still alive, and you can let them respond with an code to indicate they need attention.

For the addressing of an SPI bus, you could actually use shift registers, but I agree it may not be worthwile. RS485 is actually pretty neat since it's also usefull for longer connections.

In theory you could make the modules have double "RJ-45" connectors, so that you can make a bus out of them.

With RJ-45 plugs, one can use simple "Ethernet cables" or "shielded twisted pair". Since you combine RS485 with a (shielded) twisted pair, you can easily extend it to even devices outside the cabinet.

Naamloos.png 

But indeed, you should focus on what you find most interesting, me or another Embedded/Electrical engineer may come up with some well designed hardware for it.

I really think it's a very interesting project and it's a good start into making PLC's more open (these things are so awfully closed source by definition).

 

I'm thinking that an ATMega2560 (Arduino Mega equivalent) would be nice to have as a master, with ATmega328P's (Uno equivalent) as slaves.

(Though, yes, it would be nice if the ATMega can be interchanged with an Raspberry Pi/ PC etc).

 

Quote 0 0
tomdertech

Hi,

I read with interest your wish for a new modular system. I am planning to launch a set of products/modules in October to address exactly this. Everything from I/O, temperature sensors, motor controllers etc etc ... I want to start getting some interested parties onboard for feedback and suggestions. Let me know if you would be interested.

Regards,

Tom

Quote 0 0