I would base it off either Far Sight or Channel (I would stick to channel as it has the "Follow through time" field).
When cannon is issued the order to cast this ability, check the target point if that area is revealed (dunno if there is function for that, as I had no need for that so far, however you could create a unit group with units within X range and check if any is close enough to the point to see it). If no unit is in there, you order cannon to stop (this will prevent mana from being drained and cooldown from starting).
Then when he does successfuly start the cast (if it should work like that atom bomb or whatever it is in SC2), you periodically check the visibility around target point (like every 0,5 seconds or so).
If all is well you just start the bombardment.