If you travel from Puno to Cusco and vice verse there is available the Andean Explorer train:

• Departure: Wanchaq station (Cusco)
• Travel time: 10 Hours.
• Arrival: Puno Station
Departures:

• From April to October: Monday, Wednesday, Friday and Saturday.
• From November to March: Monday, Wenesday and Saturday.
Includes :

Travel by train between Cuzco and Lake Titicaca (or vice versa), lunch (Inbox, main course and dessert). It also offers a breakfast menu, various sandwiches and continuous service restaurant and bar at additional cost.

There are two classes of train from Cusco to Machu Picchu, here the schedule:

Cusco (Poroy) – Machu Picchu

• Departure:  Poroy Station (20 min from Cusco city).
• Travel Time: 4 hours.
• Arrival: Machu Picchu Station.
Urubamba (Ollantaytambo) – Machu Picchu

• Departure: Urubamba Station.
• Travel time: 3 hours.
• Arrival: Machu Picchu Station
Valle Sagrado (Ollantaytambo) – Machu Picchu

• Departure: Ollantaytambo Station.
• Travel time: 2 hours..
• Arrival : Machu Picchu Pueblo Station

More information :

Cusco Tours