Prévia do material em texto
1 2 Sistema Numérico ...................................................................... 3 Sistema de número decimal ...................................................... 9 Sistema de número binário ..................................................... 12 Sistema Octal ........................................................................ 14 Sistema de número hexadecimal ............................................. 16 Sistema BCD ......................................................................... 17 Código Gray .......................................................................... 19 Código ASCII ........................................................................ 20 Bibliografia ........................................................................... 26 3 Sistema Numérico Aula 04 Bem-vindos a quarta aula de controladores lógicos programáveis. O tema abordado serão os sistemas de numeração e códigos digitais, que são os mais usados frequentemente em aplicações do controlador lógico programável. Primeiramente você irá aprender a respeito dos quatro sistemas de numeração usados com mais frequência na elaboração de programação de endereço: binário, octal, decimal e hexadecimal. Então serão discutidos o decimal codificado binário (BCD) e os códigos com caracteres de ASCII e diversos formatos do registro no CLP. Este entendimento irá ajudar a compreender como trabalham os CLPs. Afinal o que é linguagem de máquinas o que corre dentro dos sistemas computadorizados? Em que língua essas máquinas trabalham e se comunicam? Resumindo como funciona o sistema binário? Isso pode ser definido como a forma como os computadores pensam. Nesse momento as milhares de informações que estão no seu computador são infinitas combinações de 0 (zero) e 1 (um). Ao escrever um número em binário, ele não será escrito na forma decimal como “24”, será usado apenas zeros e uns. No binário há somente duas opções para representar todos os nossos números, no caso humano estamos acostumados com 0 1 2 3 4 5 6 7 8 e 9; isso para escrever todas as variações numéricas. No sistema binário isso também é possível, porém usando a base binária. No caso de 24, por exemplo, se escreve: 11000. 4 Tabela 1 – Números decimais e binários Decimal Binário 24 11000 25 11001 26 11010 27 11011 28 11100 Você deve ter percebido um padrão na tabela acima, são expressões matemáticas que convertem números decimais em binários e para essas expressões a base é o número 2 (dois) e todos os números escritos a partir de potências do número 2. Pode não fazer tanto sentido toda essa complexidade para escrever as coisas em 0 e 1, mas na década de 40 quando foi criado o primeiro computador, o ENIAC, fazia sentido para esse tipo de programação. Neste computador antigo havia conexões a cabo e cartões perfurados para oferecer informações. O ENIAC possuía apenas dois comandos, ligado e desligado, isso é 0 e 1 e dessa forma que ele entendia e respondia. Os computadores hoje em dia armazenam e processam infinitamente vezes mais conteúdo que o ENIAC, tanto que seus projetistas iriam imaginar o volume e complexidade impressionante observado hoje em dia. Para armazenar tudo isso é preciso pensar no binário em números de bits, 1 bit é igual a unidade binária seja ela zero ou um. Agora vamos ver 1 byte pode ser uma letra, que pode ter um código Binário (Bit) formado por 8 dígitos, um conjunto de 8 Dígitos formado por zeros e uns é chamado de Byte, veja a Figura 1. 5 Figura 1 – Código binário Esse valor redondo para o gigabyte foi convencionado desde os anos 2000, a Apple adota a convenção de 1 giga igual a mil megabytes desde 2009. Enfim, o binário é isso, independente do que esteja na tela do seu smartphone ou computador, toda informação é zero e um para uma máquina. Primeiramente é preciso que você entenda como converter um número decimal para binário. Para isso o número deve ser escrito em decimal, você precisa compreender como o computador entende ele e depois é realizada a conversão para número binário. Para converter um número decimal em binário, qualquer que seja o númeroele deve ser dividido por 2 (dois). Por que dividir por dois? Porque se chama binário e temos apenas 0 e 1, então 10/2 (dez dividido por 2) é 5, 5x2=10 e 10 -10 = 0. 6 É muito importante que você observe o “resto da divisão” este resto sempre deve ser 0(zero) ou 1 (um), se esse resto for diferente disso você deve aumentar o número. A divisão termina somente quando o resultado, dentro do círculo vermelho do exemplo acima, der 0 ou 1. Assim a divisão deve continuar, como o sistema é binário, sempre dividido por 2, então 2 x 2 = 4 e 5 – 4 = 1, ainda não está correto, continuando a divisão 2/2 = 1 e 1 x 2 = 2 e 2-2 = 0. Você pode parar de dividir, conforme visto acima, o número 1 foi alcançado. Agora deve ser montada a sequência de números, para compreender como o computador entende o número 10. Então, 1 0 1 0 é a maneira que o computador entende o número 10. 7 Lembre-se que a unidade de medida para a formação de qualquer caractere necessita de um número de bits, no caso 8 bits correspondem a um byte. O número “1010” possui 4 bits, ou seja, ainda não foi formado nenhum caractere. Nestes casos, para completar os 8 bits e formar um caractere, é necessário acrescentar o restante que falta com o 0 na frente do número, até completar a quantidade de bits necessária. Conforme pode ser visto abaixo. 00001010 Agora sim os 8 bits estão completos, que formam um byte, que representa um caractere e é o número 10. Veja a seguir outro exemplo, agora você deve converter o número 110 para um número binário. Primeiramente é preciso que você faça a divisão deste número por 10, ou seja 110/2= 55, 55 x 2 = 110 e o resto dessa divisão é 0 (zero). Continue dividindo o valor alcançado por 2. 8 Quando você terminar a divisão é possível montar o número binário “1101110”. Neste exemplo o número obtido tem apenas 7 bits, ou seja, ainda falta 1 byte para a formação de um caractere. Assim basta inserir um 0 na frente do número para conseguir o que você deseja. 01101110 Uma familiaridade com os sistemas numéricos é completamente útil ao trabalhar com controladores lógicos programáveis, desde que uma função básica destes dispositivos é representar, armazenar e operar números, mesmo quando executando a mais simples das operações. Geralmente, os controladores lógicos programáveis usam números binários dentro um formulário ou outro para representar vários códigos e quantidades. Embora estas operações numéricas geralmente sejam transparentes, há as ocasiões onde um conhecimento de sistemas de número é extremamente útil. Primeiramente é necessário rever alguns princípios: Cada sistema de número tem uma base ou uma raiz. Cada sistema pode ser usado para representar quantidades ou códigos. Cada sistema tem um jogo de símbolos. A base de um sistema numérico é a quantidade de algarismos utilizados para sua representação. Em nossa atual sociedade a base mais utilizada é a base 10 (decimal) onde pode-se contar com 10 algarismos para representação numérica - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Porém existem outras bases de numeração como a base 12, base 60, 9 base 2 (binária) e base 16 (hexadecimal). Uma base b possuirá b algarismos, variando entre 0 e (b-1). Sistema de número decimal Normalmente é usado o sistema de numeração decimal, onde os agrupamentos são feitos de 10 em 10 unidades. Os símbolos matemáticos utilizados para representar um númerono sistema decimal são chamados de algarismos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, com eles são contadas as unidades, dezenas e centenas. Esses algarismos são chamados de indo-arábicos porque tiveram origem nos trabalhos iniciados pelos hindus e árabes. Come estes algarismos é possível formar os numerais, lembrando que numeral é nome dado para a representação de qualquer número. Salvo em certas culturas, o sistema é comumente utilizado em todo o mundo e em todas as áreas que requerem um sistema de numeração. No entanto, existem certas técnicas, usadas para adaptar esse sistema de numeração para o método binário ou hexadecimal. Existem outros sistemas de numeração, tais como a romana, que é decimal, mas não posicional. A Figura 2 mostra um paralelepípedo com suas principais dimensões em centímetros, elas são apresentadas sob a forma de notação decimal, que corresponde a uma outra forma de representação dos números racionais fracionários. A representação dos números fracionária já era conhecida há quase 3.000 anos, enquanto a forma decimal surgiu no século XVI com o matemático francês François Viète. Figura 2 – Paralelepípedo com dimensões em centímetros 10 O uso dos números decimais é bem superior ao dos números fracionários. Observe que nos computadores e nas máquinas calculadoras é utilizada unicamente a forma decimal. No sistema decimal, um valor de lugar, ou o peso, são atribuídos a cada posição que um número maior de 9 sustentaria, começando da direita para a esquerda (veja a Figura 3). Figura 3 – Posição e valores Na Figura 4, o valor tornado mais pesado de cada posição pode ser expresso como a base (10 neste caso) levantada a n (a posição). Para o sistema decimal, então, os pesos da posição são da direita para a esquerda 1, 10, 100, 1000, etc. Este método para computar o valor de um número é conhecido como “soma de método de pesos”. 11 Figura 4- Valores em base decimais O valor de um número decimal é computado multiplicando cada dígito pelo valor tornado mais pesado de sua posição e então somando os resultados. Por exemplo, o número 9876. Pode ser expresso com “soma de método de pesos”, conforme a Figura 5. Figura 5 – Soma de método de pesos Você verá em outros sistemas de numeração, que o equivalente decimal de todo o número pode ser computado multiplicando cada dígito por sua base levantada ao expoente da posição do dígito. Isto é mostrado na Figura 6. 12 Figura 6 –Configuração de numeração por expoente Consequentemente, a soma de N0 com Nn será o equivalente decimal do número na base B. Sistema de número binário O sistema binário ou de base 2 é um sistema de numeração posicional em que todas as quantidades se representam com base em dois números, ou seja, zero e um (0 e 1). Os computadores digitais trabalham internamente com dois níveis de tensão, pois o seu sistema de numeração natural é o sistema binário. Para dispositivos tais como controladores lógicos programáveis e computadores digitais, o sistema binário é o mais útil. Foi adotado para a conveniência, desde que é mais fácil projetar máquinas que distinguem entre somente duas entidades, ou números (isto é, 0 e 1). A maioria de elementos físicos têm somente dois estados: ligar/desligar, uma válvula está aberta ou fechada, um interruptor é de ligado/desligado, e assim por diante. De fato, você vê este sistema de número cada vez que você usa o seu computador (veja a Figura 7). 13 Os circuitos digitais podem distinguir entre dois níveis de tensão (por exemplo, +5 V e 0 V), que faz o sistema binário muito útil para aplicações digitais. Figura 7 - Os números binários, 1 e 0, na entrada de um CLP Assim, o número binário 10110110 é equivalente ao número 182 no sistema decimal. Cada dígito de um número binário é conhecido como um bit, este número binário particular, 10110110 (decimal 182), tem 8 bits. Um grupo de 4 bits é conhecido como nibble ou nyble; um grupo de 8 bits é um byte; e um grupo de uns ou vários bytes é uma palavra. A Figura 8 apresenta um número binário composto de 16 bits, com menor valor significativo (LSB), o mais baixo bit avaliado na palavra, e o bit o mais significativo (MSB), o bit avaliado como maior na palavra identificada. Figura 8 – Número binário de 16 bits 14 Em ciência da computação, o bit mais significativo (MSB de most significant bit) é a posição de bit em um número binário, com o maior valor. O MSB é por vezes referido como o bit mais à esquerda devido à convenção em notação posicional de se escrever dígitos mais significativos mais à esquerda. O MSB também pode corresponder ao sinal de um número binário em notação de complemento para um ou complemento de dois. "0" significando negativo e "1" significando positivo MSB, em caixa alta, também pode significar "byte mais significativo". O significado é paralelo ao anterior: é o byte (ou octeto), em que a posição de um número multi-bytes, que tem o maior valor potencial. Por exemplo: 0010011111010111 terá como menos significativo o byte 11010111, e como mais significativo o byte 00100111. Por extensão, os bits mais significativos (plural) são os bits dos números mais próximos ao MSB, incluindo o MSB. Sistema Octal O sistema octal é um sistema de numeração de base 8, ou seja, recorre a 8 símbolos (0,1,2,3,4,5,6,7) para a representação de um determinado valor. O sistema octal foi muito utilizado no mundo da computação, como uma alternativa mais compacta do sistema binário na programação em linguagem de máquina. Atualmente, o sistema hexadecimal é um dos mais utilizados como alternativa viável ao sistema binário. Como todos os sistemas de número restantes, cada dígito em um número octal tem um valor decimal tornado mais pesado de acordo com sua posição. Por exemplo, o número octal 1767 é equivalente ao número decimal 1015. 15 Figura 9 – Número octal 1767, número decimal 1015 O sistema octal tem uma base de 8 (23), tornando possível representar todo o número binário em octal agrupando bits binários nos grupos de três. Desse modo, um número binário muito grande pode facilmente ser representado por um número octal com significativamente poucos dígitos. Como o exemplo da Figura 10. Figura 10 – Representando um número binário como um octal Assim, um número binário de 16 bits pode ser representado diretamente por seis dígitos em octal. Você verá mais tarde que muitos controladores programáveis usam o sistema de número octal provendo endereços de entrada/saída e de memória. 16 Sistema de número hexadecimal O sistema de número (hex) hexadecimal usa 16 como sua base. Consiste em 16 números 0 a 9 e as letras A a F dos dígitos (que representam os números 10 a 15, respectivamente). O sistema hexadecimal é usado para a mesma razão que o sistema octal, expressar números binários usando poucos dígitos. O sistema de numeração hexadecimal usa um dígito para representar quatro elementos binários (ou bits), em vez de três como no sistema octal. A Tabela 2 mostra um exemplo hexadecimal da contagem dos números 0 a 15 com seus equivalentes decimais e binários. Tabela 2 - Contagem binária, decimal e hexadecimal Binary Decimal Hexadecimal 0 0 0 1 1 1 10 2 2 11 3 3 100 4 4 101 5 5 110 6 6 111 7 7 1000 8 8 1001 9 9 1010 10 A 1011 11 B 1100 12 C 1101 13 D 1110 14 E 1111 15 F 17 Os números hexadecimais podem ser representados por seus equivalentes decimais usando o método da soma de pesos. Figura 11 –Convertendo números hexadecimais para decimais Como os números octal, os números hexadecimais podem facilmente ser convertidos ao binário sem nenhuma transformação matemática. Para converter um número hexadecimal aobinário, basta simplesmente escrever o equivalente do binário de 4 bits do dígito hex para cada posição. Conforme a Figura 12. Figura 12– Convertendo um número hexadecimal para binário Sistema BCD A codificação binária decimal e/ou codificação binária, também conhecida como BCD (Binary-coded decimal), é um sistema de numeração muito utilizado na informática, assim como na matemática e em sistemas digitais eletrônicos. Trata-se de um sistema de base dois e posicional, ou seja, trocando a ordem dos 18 dígitos no número binário, o seu valor é alterado. Nele, é utilizado apenas dois algarismos: o 0 (zero) e o 1 (um). O BCD codifica o sistema decimal em binário, dos números (decimais) 0 a 9, onde cada número é representado pelo seu equivalente binário. Tabela 3 -Comparação com o código BCD Decimal Binário BCD 0 0000 0000 1 0001 0001 2 0010 0010 3 0011 0011 4 0100 0100 5 0101 0101 6 0110 0110 7 0111 0111 8 1000 1000 9 1001 1001 10 1010 0001 0000 11 1011 0001 0001 12 1100 0001 0010 O sistema de código BCD não representa um número em binário puro, o código binário puro é obtido a partir da conversão do sistema decimal para binário. Quando convertemos o sistema BCD, cada dígito decimal é convertido individualmente em binário. 19 Figura 13 – Sistema de numeração BCD Figura 14–Convertendo numeração BCD utilizando Thumbweel O Thumbwheel converte números decimais em entradas do BCD para o CLP. Código Gray O código Gray é um código elaborado para evitar erros de interpretação em circuitos digitais, ou seja, para evitar que na mudança de números ocorra erros de interpretação. Este código aparentemente simples utiliza-se de uma estratégia interessante, é usada a variação de um único bit do número por vez, ao contrário do código BCD. Observe na Tabela 4 como todo procedimento é feito. Tabela 4 – Código Gray Decimal BCD Gray 0 0000 0000 1 0001 0001 2 0010 0011 3 0011 0010 4 0100 0110 20 5 0101 0111 6 0110 0101 7 0111 0100 8 1000 1100 9 1001 1101 O código Gray tem uma aplicação prática muito interessante, ele é comumente utilizado em codificadores de posição, os famosos encoders. Geralmente acoplados a eixos de peças girantes como o rotor de um motor. Observando a tabela é possível compreender o código Gray, aparentemente ele parece ser complexo, porém com prática vemos sua importante diferença ao código BCD. Figura 15 –Funcionamento de um Encoder Código ASCII O código ASCII foi criado para formar caracteres alfanuméricos, E é muito útil para troca de informações entre equipamentos 21 eletrônicos. O ASCII possui 7 bits com um total de 128 representações codificadas. As 128 representações estão divididas em 95 caracteres gráficos (letras do alfabeto, sinais matemáticos) e 33 sinais de controle. Tabela 5 – Código ASCII Um nibble ou nyble é uma sucessão de quatro cifras binárias (bits)[1]. 1 Nibble = 4 bits, 2 Nibble = 1 Byte = 8 bits, 4 Nibble = 1 Word = 2 Bytes = 16 bits. A sua importância deve-se ao fato que 4 é o número mínimo de algarismos binários necessários para representar uma cifra decimal. Os nibbles são, portanto, a base do sistema de codificação BCD, que representam números decimais como sucessões de nibbles que representam as cifras destes. Por exemplo, tendo a seguinte correspondência entre as dez cifras decimais e suas correspondentes representações binárias. 22 Figura 16 - Composição de um byte Um byte (binary term), ou octeto, é um dos tipos de dados integrais em computação. É usado com frequência para especificar o tamanho ou quantidade da memória ou da capacidade de armazenamento de certo dispositivo, independentemente do tipo de dados. A codificação padronizada de byte foi definida como sendo de 8 bits. O byte de 8 bits é mais comumente chamado de octeto no contexto de redes de computadores e telecomunicações. A uma metade de um byte, dá-se o nome de nibble ou semioctecto. Para os computadores, representar 256 números binários é suficiente. Por isso, os bytes possuem 8 bits, basta fazer os cálculos. Como um bit representa dois valores (1 ou 0) e um byte representa 8 bits, basta fazer 2 (do bit) elevado a 8 (do byte) que é igual a 256, ou seja 28 = 256. Computadores modernos possuem tamanho de palavra de 16, 32 e 64 bits. No passado foram usados outros valores, incluindo 8, 9, 12, 18, 24, 36, 39, 40, 48 e 60 bits. O valor numérico típico manipulado por um computador é geralmente do tamanho da palavra. Tipos inteiros podem estar 23 disponibilizados em diferentes tamanhos, mas pelo menos um deles geralmente é o da palavra. Havendo outras opções, elas geralmente são múltiplas ou frações da palavra. Tamanhos fracionados são usados para utilizar a memória de forma mais eficiente. Porém ao serem carregados no processador, na maioria das vezes ocupam o tamanho da palavra. Em geral, a maioria dos registradores em um computador possui o mesmo comprimento da palavra. A quantidade de dados transferidos entre os processadores e a memória é também geralmente uma palavra. Em sistemas simples, o dado é transferido através de um barramento, geralmente do tamanho da palavra ou meia palavra. O endereço de memória geralmente deve caber numa palavra. O Word (palavra) é a unidade natural utilizada na ciência da informação. Ele é uma sequência de bits de tamanho fixo que é processado em conjunto em uma máquina. O número de bits em uma palavra (o tamanho ou comprimento da palavra) é uma característica importante de uma arquitetura de computador. Ela é refletida em vários aspectos de sua estrutura e sua operação e indica a unidade de transferência entre a CPU e a memória principal. Exercício Descritivo: Controle Selecionador de Caixa. Elabore o Diagrama Ladder do Desenho abaixo e descreva o seu funcionamento. 24 Bit decimal codificado (BCD) Byte Sistema de número decimal Menor bit significativo (LSB) Maior bit significativo (MSB) Word 25 26 Bibliografia CAMPOS, M. C. M. M., TEIXEIRA, H. C. G. Controles Típicos de Equipamentos e Processos Industriais. Editora Edgard Blücher, 2006. FRANCHI, C. M.; CAMARGO, V. L. A. Controladores lógicos programáveis –Sistemas Discretos. Editora Érica, 2008. PRUDENTE, F. Automação Industrial - PLC - Programação e Instalação. Editora LTC, 2010. PRUDENTE, F. Automação industrial: PLC, teoria e aplicações: curso básico. Editora LTC, 2007.