iMessages are free is you follow the imessage guidelines. They are free between imessage users on wifi.
When not on wifi, you can choose to send them through cellular and they will consume "data"
When you are sending to non-imessage users then they go as SMS texts, not as data.
Just re-read the iMessage support into