What's the relationship between 炮 and 砲? 炮 and 砲 both mean "cannon", but it seems the former is much more common, and the latter only really seen in Xiangqi.


Is there a difference in meaning? For example, on wikipedia it is said that 砲 means "catapult", due to the stone radical.
Was 砲 a made-up variant used for Xiangqi? I know that for Xiangqi, different characters were chosen, which sometimes lead to arbitrary choices (e.g. 傌 which has nothing to do with horses)
Or were there deeper historical reasons? For instance, it's hard to believe that 炮 existed before gunpowder, so it's plausible that 砲 was used earlier, to mean "catapult".
Usually, people use 炮.

According to the dictionary [http://dict.revised.moe.edu.tw/] : 砲


  
  同「炮」。 (砲 is the same with 炮)
  


We can say 砲火連天/炮火連天, 砲響/炮響, 馬後砲/馬後炮, 弩砲/弩炮, 開砲/開炮. Boths are acceptable and interchangeable.



炮's meaning involves fire but 砲's meaning involves stone.

The early cannonballs (sling) were made by stone, so people use 砲 to describe it.
With the time past, fire was much counted so 炮 was derived from 砲 to describe gunpowder and the bullets. Therefore, 炮 appears and become more commonly used. 
You can find some relevant sentences in the ancient chinese books:

【集韻】【韻會】【正韻】披敎切，拋去聲。俗作"砲"(name as 砲)。機石也(are just the stones of a slinging machine)。
 About the slinging machine : 
【前漢·甘延壽傳】投石(sling)拔距絕於等倫。
【張晏曰】《范蠡兵法》:飛石(flying stone)重十二斤，爲機發(from a machine)，行二百步，礮蓋出此。
【後漢·袁紹傳】曹操(Cao cao)發石車(slinging machine)擊袁紹，軍中呼霹靂車。【註】卽今拋車。
【魏略曰】諸葛亮(Zhuge Liang)起衝車，郝昭以繩連石磨壓之，衝車折，卽礮事。
【唐書·李密傳】以機發石(sling a stone by a machine)，爲攻城械(is a machine for attacking)，號「將軍礮」。又通作「拋」(commonly used as "throw")。




明朝方以智《通雅》: 「象棋始於唐，周武之《象經》，非今之象戲也。」
.................: Xiangqi is from Tang Dynasty...............
From Wikipedia : 象棋 (chinese chess / Xiangqi)


Gunpowder is also from that time but slinging machines were still used in military aspect. Therefore, 砲 was used in Xiangqi until now.



In fact, not every Chinese can tell the difference between them. Nowadays, people are more familiar with 炮. So if you write 砲, some people may think it's not so proper.