According to your explanation I must run a cable from each of the CMM311 port (in a daisy chain fashion) and connect the last PLC to the PC using the programming port.
Not quite. The HMI PC can communicate through the CMM311. That way the programming port is available on all PLCs.
Will this work? Will I be able to see with VersaPro software all the values inside the variables registers?
Actually, you will be able to connect VersaPro to each of the PLCs through the CMM311 and look at the ladder logic. You can even change timer presets and write data. You just can't edit the ladder logic through the CMM311 port.
The SNP protocol is limited to point-to-point communications. What that means is that VersaPro or the HMI software can only communicate with one PLC at a time. The sequence of events that the HMI software will follow is something like this.
Establish a connection with the first PLC.
Read the required data.
Disconnect from the first PLC.
Establish a connection with the second PLC.
Read the required data.
Disconnect from the second PLC.
Establish a connection with the third PLC.
Read the required data.
Disconnect from the third PLC.
Establish a connection with the fourth PLC.
Read the required data.
Disconnect from the fourth PLC.
Repeat.
How would register %R100 in PLC#1 will be accessed and differentiate from the same variable number in PLC#2?
Your HMI software will have to have the ability to communicate with more than one PLC. In your tag list for the HMI application you will create a tag that is linked to %R0100 in the first PLC, and another tag linked to %R0100 in the second PLC and so on.
Which PLC instructions do you recommend I use?
You shouldn't have to add any ladder logic to be able to communicate. All you will have to do is give each PLC a unique SNP ID. You do that in hardware configuration. One thing you should consider is the range of data registers the HMI needs to look at. For fastest updates, all the data registers in any one PLC should be in consecutive addresses.
For example, if you need to monitor the data in %R0100 and %R0900, that would require the HIM to execute two 'Read' commands. If you add ladder logic to copy the data in %R0100 to %R1001 and the data in %R0900 to %R1002, the HMI can read %R1001 and %R1002 with a single 'Read' command.