The objective of the thesis is to study the dynamics of the hoist system so that a suitable control system can be designed to regulate the hoisting speed. One of the primary objectives of the controller is to reduce the load slip. This occurs when a crane operator attempts to lift a load near the maximum operating capacity of the crane. This phenomenon is investigated, and a suitable control algorithm is developed. The control algorithm is a finite-state-machine based PI controller. In the process of control system design, the hoist dynamics was identified through experiments. The purpose of system identification is twofold. First, the results of the system identification are used to develop a mathematical model for control design. Second, the model facilitates the verification of the controller design through simulations. The simulator is developed in Simulink as well as realized on FPGA using LabVIEW. The simulator is designed to verify control algorithms written in C and executed on an embedded system identical to the one used on a crane.