Programmable Logic Controllers: Hardware and Programming by Max Rabiee