Vector3 is a coordinate in 3d space, in this case you want to MoveTo the position(Vector3) of the Cannon. You can do so by using the position property of the object(the cannon). According to your code, you would add ".Position" after ".Cannon" as seen in example A.
Example A:
game.Workspace.Cannon.Cannon.Position
I am not sure if you made an error here:
game.Workspace.Enemy.Humanoid:MoveTo(game.Workspace.Cannon.Cannon)
If you didn't feel free to skip over example B.
Example B:
game.Workspace.Cannon.Position
However, MoveTo is easier to use, I suggest using PathfindingService and here's why. This service has overall better results when it comes to moving a Character. Don't worry, I'll explain. Let's say there is a brick blocking the path of where the Character is moving to; the character would not reach the destination using MoveTo.
Try out this tutorial for pathfinding: http://wiki.roblox.com/index.php?title=Pathfinding
3 comments
game.workspace.cannon.cannon.Position/game.Workspace.Cannon.Position i think
I think you are meant to move with character e.g .Character:MoveTo(where)
and use game.Workspace.Cannon.Cannon.Position