O diagrama de contatos (Ladder) consiste em um desenho formado por duas linhas verticais, que representam os polos positivo e negativo de fonte de alimentação genérica. Entre essas duas linhas verticais são desenhados ramais horizontais onde estão dispostos os contatos. Esses contatos são organizados entre as duas linhas verticais, segundo a lógica desejada, interligando-as.
Podem ser utilizados, nessa interligação, contatos N.A. e/ou N.F., bobinas de contatos externos e boninas auxiliares, e blocos funcionais (contatores, timers, etc.), conforme a lógica desejada, para representar os estados das variáveis de entrada do programa.
O nome Ladder, que significa escada em inglês, se deve ao fato de a aparência dos diagramas lembrarem uma escada, cujos trilhos laterais são as linhas de alimentação e cada linha de lógica associada a uma bobina (saída) são os degraus.
Uma linha é composta de um conjunto de condições de entrada (representado por contatos NA e NF), por elementos internos do CLP (contadores, temporizadores e etc) e por uma instrução de saída (bobina), no final da linha.
O conjunto dos contatos que compõem uma mesma linha é chamado de condição de entrada ou lógica de controle. As instruções de saída, tais como bobinas e blocos funcionais (contadores, temporizadores e outros com funções especiais), devem ser os últimos elementos à direita.
O acionamento de uma saída ocorre quando todos os contatos presentem em uma linha, ou degrau, permitem o “fluxo virtual de energia” da linha vertical da esquerda até a linha vertical da direita. Neste caso dizemos que o resultado desta lógica é verdadeiro.