---
title: 4. Linguaggio ladder
description: Il linguaggio Ladder è ampiamente utilizzato in automazione industriale perché permette di creare programmi con rapidità ed efficienza.
url: "https://teachgranny.it/materie/4-linguaggio-ladder/"
updated: "2023-05-14"
category: Sistemi automatici / Programmazione PLC
---

# 4. Linguaggio ladder

Il linguaggio di programmazione **Ladder** è utilizzato per creare programmi per i controllori logici programmabili (PLC) utilizzati in automazione industriale.

Prende il nome dalla sua somiglianza con una **scala a pioli**, dove ogni "**rung**" o "**piolo**" rappresenta una **singola istruzione** o **condizione logica**.

Il **Ladder** è costituito da **simboli grafici**, come **interruttori**, **relè** e **contatti**, che vengono disposti su una linea orizzontale. Questa rappresenta l'uscita di una condizione, mentre le linee verticali rappresentano le condizioni di ingresso.

Le **istruzioni Ladder** vengono scritte come **diagrammi a blocchi**, rendendo il linguaggio **facile da leggere** e **capire** per gli operatori di fabbrica.

Il linguaggio Ladder è ampiamente utilizzato in automazione industriale perché permette di **creare** **programmi con rapidità ed efficienz**a, di monitorare lo stato dei dispositivi e di **controllare** i **processi** di produzione in **modo preciso**e **affidabile**.

## Struttura del linguaggio ladder

![Struttura linguaggio Ladder](https://i0.wp.com/teachgranny.it/wp-content/uploads/2023/05/image-31.png?resize=640%2C315&ssl=1)
*Struttura linguaggio Ladder*

Il linguaggio ladder è composto da:

- **Linee verticali di potenza (montanti)** a sinistra corrisponde all'alimentazione, a destra alla massa.
- **Linee orizzontali (pioli)**dove si collegano gli ingressi (istruzioni logiche) e le uscite.

Lo schema del linguaggio è diviso in due zone:

- **Zona ingressi** dove si trovano gli ingressi (istruzioni logiche)
- **Zona uscite** dove si trovano le uscite

Il **concetto** su cui si basa il **linguaggio ladder** è molto semplice: per **attivare un'uscita** bisogna fare in modo che il **percorso** tra la linea di **alimentazione** e quello di **massa** si **chiuda**, ovvero che i **contatti** **facciano scorrere la corrente** fino all'uscita **chiudendo il circuito tra alimentazione e massa**.

Esempio: guardando l'immagine sopra della *"Struttura linguaggio ladder"* nella terza linea si ha un unico contatto chiuso, quindi l'uscita è attiva.

## Simbologia linguaggio ladder

Il **linguaggio ladder** si **riconduce direttamente** ai contatti presenti negli **schemi funzionali** dei circuiti.

La simbologia è molto semplice e la **traduzione** da uno **schema funzionale** in [logica cablata](https://teachgranny.it/materie/logica-cablata/) ad uno **schema ladder** è **immediata**.

![Simbologia principale linguaggio ladder](https://i0.wp.com/teachgranny.it/wp-content/uploads/2023/05/image-35.png?resize=455%2C340&ssl=1)
*Simbologia principale linguaggio ladder*

La **simbologia principale** del linguaggio ladder si limita a **pochi semplici simboli**:

### Ingressi

Gli **ingressi (contatti)**vengono identificati dal simbolo **[ ]** e ne esistono due tipologie principali:

- **Ingressi NO [ ]**normalmente aperti, si attivano quando viene attivato l'ingresso associato (es: premendo un pulsante). Viceversa sono disattivati.
- **Ingressi NC [/]**normalmente chiusi, si disattivano quando viene attivato l'ingresso associato (es: premendo un pulsante). Viceversa sono attivi.

### Uscite

Le **uscite (bobine)**vengono identificate dal simbolo **( )** e ne esistono quattro tipologie principali:

- **Uscite NO** **( )** normalmente aperte, si attivano quando gli ingressi che la precedono si attivano chiudendo il circuito tra alimentazione e massa. Viceversa sono disattivate.
- **Uscite NC** **(/)** normalmente chiuse, si disattivano quando gli ingressi che la precedono si attivano chiudendo il circuito tra alimentazione e massa. Viceversa sono attive.
- **Uscite bit a "1" (S)** quando gli ingressi che la precedono si attivano chiudendo il circuito tra alimentazione e massa mettono il valore del bit associato in memoria a "1" (**operazione di SET**).
- **Uscite bit a "0" (R)**quando gli ingressi che la precedono si attivano chiudendo il circuito tra alimentazione e massa mettono il valore del bit associato in memoria a "0" (**operazione di RESET**).

## Tabella dei simboli

La tabella dei simboli nel linguaggio Ladder è una lista di tutti i simboli utilizzati nel programma, che vengono definiti dal programmatore per rappresentare variabili, ingressi, uscite, temporizzatori, contatori, funzioni e altre entità utilizzate in un programma Ladder.

Oltre che per comodità è utilizzata per associare gli ingressi (contatti) e le uscite (bobina) ai relativi ingressi e uscite del PLC.

Viene anche utilizzata per definire lo spazio che i dati occuperanno nella memoria del PLC.

| **SIMBOLO** | **INDIRIZZO** | **COMMENTO** |
| --- | --- | --- |
| SB0 | I0.0 | Pulsante di inizializzazione |
| SB1 | I0.1 | Pulsante di accensione |
| M0 | M0.0 | Variabile di Stato 0 |
| HL1 | Q0.0 | Lampada in uscita |

*Esempio tabella dei simboli*

I simboli si rifanno ai [codici alfanumerici della logica cablata](https://teachgranny.it/materie/logica-cablata/#2-toc-title). Nei commenti si può scrivere una breve descrizione di quello che fa il relativo simbolo. Infine, gli indirizzi del PLC vengono identificati come segue:

- **Ix.x** codice identificativo degli indirizzi degli **ingressi**
- **Qx.x**codice identificativo degli indirizzi delle **uscite**
- **Mx.x**codice identificativo degli indirizzi delle **variabili in memoria** (**MERKER**)

## Come tradurre un programma in ladder

Esistono due tecniche principali per tradurre in linguaggio in ladder:

- **Metodo diretto**partendo da uno schema funzionale lo si può tradurre direttamente in codice ladder andando a tradurre i contatti in ingressi e le bobina in uscite. Questo metodo è più semplice, ma presuppone che si abbia a disposizione lo schema funzionale del sistema che vogliamo realizzare.
- **Tecnica Batch** questo metodo è meno diretto ma più facile da progettare: si parte dalla stesura di un [diagramma grafcet](https://teachgranny.it/materie/5-diagramma-grafcet/) e a livello logico lo si traduce in linguaggio ladder seguendo uno schema definito dal [metodo batch](https://teachgranny.it/materie/6-metodo-batch/).

## Esempio: Traduzione autoritenuta (metodo diretto)

![Schema dell’autoritenuta](https://i0.wp.com/teachgranny.it/wp-content/uploads/2023/05/image-22.png?resize=307%2C429&ssl=1)
*Schema dell’autoritenuta*

Rifacendosi allo schema dell'[autoritenuta in logica cablata](https://teachgranny.it/materie/autoritenuta/), la prima cosa da fare è identificare gli ingressi e le uscite costruendo la tabella dei simboli:

| **SIMBOLO** | **INDIRIZZO** | **COMMENTO** |
| --- | --- | --- |
| SB1 | I0.0 | Pulsante di stop |
| SB2 | I0.1 | Pulsante di start |
| KA1 | Q0.0 | Bobina autoritenuta |

*Tabella dei simboli*

In questo caso abbiamo due ingressi (pulsante SB1 e SB2) ed un'unica uscita (KA1). Il contatto ausiliario di fianco al pulsante di START non lo indicheremo nella tabella dei simboli perché è già definito come uscita.

Lo inseriremo nel programma anche come ingresso ma il suo stato (la commutazione da NO e NC) dipenderà dallo stato dell'uscita.

Lo schema ladder si traduce così:

![Schema ladder autoritenuta](https://i0.wp.com/teachgranny.it/wp-content/uploads/2023/05/image-36.png?resize=441%2C197&ssl=1)
*Schema ladder autoritenuta*

Il funzionamento è esattamente quello dell'autoritenuta in logica cablata: **premendo** il **pulsante di start SB2**scorre **corrente** fino alla **bobina (KA1)** che si **eccita** ed a sua volta **chiude il contatto KA1**.

Il circuito risulta così alimentato perché chiudendosi il contatto KA1 la corrente continua a circolare fino all'uscita.

Premendo il pulsate di stop SB1 il circuito si apre (perché SB1 è NO), la bobina non è più alimentata e quindi il contatto KA1 si apre tornando al suo stato iniziale.

![Funzionamento autoritenuta in linguaggio ladder](https://i0.wp.com/teachgranny.it/wp-content/uploads/2023/05/image-38.png?resize=533%2C357&ssl=1)
*Funzionamento autoritenuta in linguaggio ladder*
