What communication method should we use?

We are a robotics competition that builds a field for robots to play a game on every year.
This year, the field has many actuators that each contain a couple of sensors (limit switches, light sensors, IR beam break sensors). Each actuator would be considered a node and would have an Arduino board.

There is a master CONTROLLINO board that runs the game logic as well as relays that turn on lights and such.

The nodes need to be able to report the sensor data to the master CONTROLLINO board. We have looked into CANBus however, certain parts of the game require logic that needs to know the exact state of the sensors and compares it with others at a given moment. CANBus reads its data with a priority of ID and not data arrival order hence our problem with it. Is there a way for CanBus to read in order of packet arrival?

Most actuators are 10-20 meters away from the master.
The master needs to either call the slaves and ask for data in a very fast manner, or the slaves report data when a state of an actuator changes, automatically.

The ideal scenario is to have every sensor connected directly to the Master. Makes checking and comparing inputs quite easy, however, running tens of wires to multiple nodes is a no-go. A twisted pair bus or an ethernet cable is much easier to route and organize.

What communication protocol do you guys recommend?

You shouldn't depend on the communications media or protocol to adjudicate timing. Instead, maintain accurate times on all devices and communicate time stamps along with any time sensitive messages.

It will make your life easier. You could then use RS-422 which is simple and doesn't need a lot of fancy wiring. Depending on the size of the field, you might even be able to go wireless.

Perhaps you need to put some numbers on "very fast manner".

I would think that you are looking for a wired bus that allows you to daisychain each of your slaves. I don't know enough about Modbus to know if it would be suitable in this scenario.

I just looked up CONTROLLINO and can see that there are several variants. Which one are you using?

Controllino Mega.

Very fast manner would mean: If one of the sensors is triggered, "Activating" one of the nodes, the state of another node needs to be checked to be compared to. Instant is logically the answer but as fast as possible is the realistic answer.

The reasonable distance comms interfaces on that unit look to be either ethernet (10/100Mbps) or RS485. With ethernet you need hubs and cables as well as an ethernet shield. RS485 doesn't use hubs so is simpler to install. The datasheet says it supports up to 32 devices.

A real number may be useful....

With quite a few nodes to handle, I would think you need to figure out if you are going to implement a command-response bus that polls each node in turn, or an ad-hoc bus where each device "speaks" when it has something to say (with built in collision detection of course).

Either way, I suspect that you want to use a fairly lightweight protocol if you've got a lot of nodes and a 16Mhz (I assume) MEGA2560 to control it all.