The tests I have carried out so far is with an Arduino Ethernet card
arduino.cc/en/Main/ArduinoBoardEthernet
I have (today) extended the functionality of the "Mudbus" project to include Modbus Functions 15 and 16 (write to multiple coil and multiple registers).So far it is not tested properly and I have had no reviewer looking at it yet... I think I put the Git repo URL somewhere in my last post so have a look...
My plan is to include function code 2 (read discrete inputs) and then we will see... Dee Wykoff, who has written the Mudbus lib has been very positive so far. We'll see if my dirty hacks will reach his QA levels in the future... His code is quite neat...
I will try to focus on price reduction later on when I at least have a card that works. The ethernet chip is of course one of the candidates but I haven't though much about it. I'm willing to help though.
SGS Tomssons old VNQ810-E is probably still a good 24V high side driver although there are newer replacements but VNQ810-E is quite cheap... I have only checked prices in couple of places so far though...
I will use Muratas NFM61R filter on basically every input and output. I have used them in the old days when I made my first designs compatible with the CE mark... They are double inductor and cap in between and they can handle 2A... so you can use them on almost everything in a PLC. Maybe there are more compact ones today, I have to check. the NFM60R is smaller but rated 25VDC which is not enough... be careful when you use filter components and read everything you can find on the subject...
I used to always do 4 layer PCB designs with separate layers for gnd and the 5V... for my first prototype I think I will use two layers only...
For 24V signal inputs I use murata filter and then a voltage divider and a Zener + cap and then a Schmit trigger 74HC14 or something...and then into the shift register that I shift in to the Arduino...
My thought is that I will use an enclosure that is DIN rail mounted, but skip the modularity the Wago and Beckhoff way. They spend a lot of money on the connectors and modular plastic enclosures. My thought is make a series of boxes from 8/8 up to to 32/32 but without any possibility to expand a box. After all, you can just buy one more if you need more signals.
.
The 6 analog inputs of the Arduino can be used with proper buffering and signal conditioning but they are only 10bit... enough for some measurements but not for any high accuracy stuff...
For more demanding tasks I'm convinced that a dedicated AD/DA converter should be used in a separate box without any digital signals.
PWM outputs can be nice but not on the same board as any high resolution ad converters...
Oops it' late....