I understand the concept of hash, PoW and difficulty, but what I want to know is that in monero, when a block is mined, what is the rule to accept that block as valid and when the difficulty change, what change in the hash of the PoW (to be consider as a valid block)?
A hash is just a number. The hash is valid (in PoW terms) if it meets the current network difficulty. The network difficulty keeps getting adjusted so that the subsequent blocks get found approximately every 2 minutes.
As for determining if a hash meets the current network difficulty:
if B / H >= D then valid
B is the base (max) difficulty,
H is the hash and
D is the current network difficulty.
Of course, the block being submitted also has to be a valid block (i.e. parses to a Monero block structure, has correct coinbase transaction etc etc).