Mega and Scada?

The Modbus sketches for Arduino really aren't adequate for a full-on SCADA implementation. Mostly what's needed is the "coils" and "discretes" functions (single bit values for controlling digital pins), as well as a distinction between "inputs" (read-only values -- things like analog inputs) and "holding registers" (read/write values, such as PWM for digital pins).

The Arduino Modbus sketches are limited to holding registers. The sketch you referenced only implements function 3, 6 and 16 (various read and write holding registers), plus 43 (Read Modbus Encapsulated Information) function for identifying the device as an Arduino. There's no support for changing the unit number and saving that to EEPROM, which means you'd have to change the sketch for each device you wanted on the bus.

I forget what functions we provide with our Modbus-enabled Arduino UNO products, but it's most of the applicable functions, including support for coils and discretes, as well as Modbus/TCP support. We'll have a Arduino Mini daughter board (the Mini doesn't support shields ...) that will support full control over an Arduino Mini with RS-232 (both TTL level and normal RS-232 bipolar level) and RS-485 (open collector, multi-drop bus). Depending on the rest of our product development schedule, we should have support for the Arduino Mega -- mostly it's a question of figuring out how many pins we want to expose to our customers.

For your application, my suggestion would be to ditch Modbus and go with a private protocol. If you're able to use the "Modbus-ish" sketch you referenced, you'd do much better rolling your own protocol and using that. Modbus has a fair bit of overhead you don't need and can't use, and you'll still need to modify that sketch to support however many pins you've decided to support.