Las variables contienen un valor representado por un código numérico o alfanumérico. El sistema de numeración que usamos las personas es un sistema decimal. Esto quiere decir que existen 10 símbolos diferentes los cuales son combinados para construir cualquier número. Estos 10 símbolos son los número del 0 al 9. Por ejemplo para representar el número 121 en decimal se hace la siguiente operación:
1×102+2×101+1×100=100+20+1=121
En el ejemplo se puede observar que para que para obtener el número se toma el símbolo de cada posición (que puede ser cualquiera entre 0 y 9), se multiplica por la base (10 para sistema decimal por sus 10 símbolos) elevada a la posición en que se encuentre el símbolo comenzando desde el número 0. En otras palabras el símbolo en la posición cero se multiplica por 1 (100 =1), el símbolo en la segunda posición se multiplica por 10 (101=10), el símbolo de la tercera posición se multiplica por 100 (102=100) y así sucesivamente.
Sistema de numeración binario
El sistema de numeración binario funciona de forma similar al sistema de numeración decimal, con la diferencia que en el sistema binario la cantidad de símbolos son dos, el 0 y el 1. Por ejemplo para representar el número 121 en binario se hace la siguiente operación:
1×26+1×25+1×24+1×23+0x22+0x21+1×20= 64+32+16+8+0+0+1=121
La representación del número 121 en binario es 1111001b. La “b” al final es para indicar que la representación está en binario y diferenciarlos de un millón ciento once mil uno en decimal. En este punto se pueden estar preguntando cómo se obtuvo el patrón de unos y ceros para la representación del 121 en binario, hay varias formas para hacer esto, una muy sencilla es ir colocando 1’s de izquierda a derecha progresivamente, si al colocar un 1 en determinada posición y el valor supera al valor buscado, entonces esa posición lleva un valor de cero. Para el ejemplo anterior si comenzamos con un 1 en la posición 7 el valor obtenido es 127 el cual es mayor que 121, por esa razón comenzamos con un 1 en la posición 6. La siguiente tabla resume el procedimiento
Posición | Suma acumulada | Valor en la posición |
6 | 2posición=26=64 | 1 |
5 | 64+32=96 | 1 |
4 | 96+16=112 | 1 |
3 | 112+8=120 | 1 |
2 | 120+4=124 > 121 | 0 |
1 | 120+2=122 >121 | 0 |
0 | 120+1=121 | 1 |
Numero de bits
A cada posición (o dígito) de un número binario también se le llama bit, en el caso del ejemplo anterior el número 121 es representado con 7 bits. El número de bit es importante por determina el rango de valores que puede tener un número binario, por ejemplo, un número de 8 bits puede tener un valor que va desde 0 hasta 255 (2n-1), donde n es el número de bits). Desde el punto de vista de la electrónica, el hecho de que cada dígito o bit tenga sólo dos valores es muy importante, esto le da una simplicidad a cada dígito que puede ser representado como un interruptor abierto o cerrado, o con un transistor en corte o saturación, o con un LED prendido o pagado entre otras opciones.
Códigos
La combinaciones de 1’s y 0’s también sirven para representar códigos, como por ejemplo el código ASCII. Por ejemplo el número 01111001b representa el número 121, representa la letra “y” en el código ASCII y representa el número 79 en código BCD entre otros.
Tipos de variables
La importancia de los números binarios en el uso de los PLC radica en el hecho que los microprocesadores con los cual se construyen realizan todos sus operaciones usando como argumentos variables binarias. Estas variables binarias puede ser de diferentes tipos, los más usados son: booleana o bit, enteros, punto flotante y caracteres o cadena de caracteres. Las variables enteras y de punto flotante son llamadas variables analógicas.
Variables Booleanas
También llamadas lógicas o de bit, son representaciones binarias de un solo bit o con un solo dígito, en tal sentido, sólo pueden tener los valores de 0 o 1, que normalmente son interpretados como falso o verdadero respectivamente.
Enteros
Son registros de memoria que pueden almacenar números de n bit, donde n, típicamente, es múltiplo de 2. Así podemos tener variables enteras de 4 bits, 8 bits, 16 bits, 32 bits y 64 bits. El número de bits, como se mencionó antes, determina el rango de los valores que puede tener la variable.
Cuando se representa números binarios, a veces se representas números positivos y el cero, a este código se le denomina binario puro; pero también se pueden representar valores negativos, positivos y el cero, a este código se le denomina binario en complemento a dos. Dependiendo del número de bits se le puede asignar un nombre al entero, por ejemplo un entero de 8 bit es también llamado byte. La siguiente tabla muestra el un resumen de numero de bit y su rango.
Numero de bits | Rango binario | Rango binario complemento a dos |
4 (nibble) | 0 a 15 | -8 a 7 |
8 (byte) | 0 a 255 | -128 a +127 |
16 | 0 a 65.535 | -32,768 a +32,767 |
32 | 0 a 4.294.967.295 | -2,147,483,648 a +2,147,483,647 |
64 | 0 a 18.446.744.073.709.551.615 | -9.223.372.036.854.775.808 a +9.223.372.036.854.775.807 |
Punto flotante
También llamadas reales, pueden contener número con decimales. La representación en punto flotante se hace con estándares como IEEE 754. Con este estándar y precisión simple se pueden representar número desde -1.17549449×10-38 hasta 3.40282346×1038.
Carácter
Un carácter es un símbolo de la tabla ASCII (letras, números, símbolos y caracteres de control) representado con 8 bits, a la concatenación de varios caracteres se le llama cadena de caracteres y se usan para formar palabra o frases.
Hi, just required you to know I he added your site to my Google bookmarks due to your layout. But seriously, I believe your internet site has 1 in the freshest theme I??ve came across. It extremely helps make reading your blog significantly easier.
A powerful share, I just given this onto a colleague who was doing a little bit evaluation on this. And he in truth bought me breakfast as a result of I discovered it for him.. smile. So let me reword that: Thnx for the treat! However yeah Thnkx for spending the time to debate this, I feel strongly about it and love studying more on this topic. If possible, as you grow to be experience, would you mind updating your blog with extra details? It is extremely useful for me. Big thumb up for this blog put up!
Hello there, I found your blog via Google while looking for a related topic, your site came up, it looks good. I have bookmarked it in my google bookmarks.
I conceive this website holds some real superb information for everyone : D.
It’s really a great and useful piece of information. I am glad that you simply shared this helpful information with us. Please stay us informed like this. Thanks for sharing.
I always was interested in this subject and stock still am, thanks for putting up.