Names given to the Spanish language
Formally speaking, the national language of Spain, the official Spanish language, is the Castilian language (as opposed to regional Spanish languages like Galician, Catalan, Asturleonese and Basque). As such both names, "español" and "castellano", have distinct and independent meanings that may be required for clarity in some specific contexts.
Generally speaking, though, both terms can be used to refer to the (national) Spanish language as a whole, with a preference for one over the other that depends on the context or the speaker's origin. "Castellano" (as well as "Castilian" in English) has another, more restricted, meaning, relating either to the old Romance language spoken in the Kingdom of Castile in the Middle Ages, predecessor of the modern Spanish language, or to the variety of Spanish nowadays spoken in the historical region of Castile, in central Spain.
Languages of Catalonia
The main cause of Spanish and Catalan social bilingualism in modern Catalonia was large-scale migration from the rest of Spain during the 20th century, as Catalonia started a significant industrialization which demanded an increased workforce from elsewhere. Spanish has historically been spoken among a minority of civil servants born in other regions in Spain and among segments of the wealthiest bourgeoisie. Spanish has also been spoken as a second language by most Catalans, as it has been the only official language over long periods since the eighteenth century.