0% encontró este documento útil (0 votos)
1 vistas25 páginas

3 Scada Notes

Cargado por

JoseDiaz
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
1 vistas25 páginas

3 Scada Notes

Cargado por

JoseDiaz
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Sistemas SCADA.

Arquitectura y Comunicaciones
Julio Ariel Romero

Índice
1. Definición de SCADA 1

2. Elementos del SCADA 2

3. Muestro de señales en el SCADA 4


3.1. Ciclo de Scan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2. Señales sub-muestreadas. ¿Donde hacer cálculos? . . . . . . . . . 7
3.3. Señales de alarmas por mal funcionamiento . . . . . . . . . . . . 9

4. Protocolos de comunicación 10
4.1. Tamaño y estructura de los mensajes . . . . . . . . . . . . . . . . 10
4.2. Protocolo MODBUS . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2.1. Acciones definidas en MODBUS . . . . . . . . . . . . . . 14
4.2.2. Formato de las tramas o mensajes . . . . . . . . . . . . . 14
4.2.3. Sincronización . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2.4. Tipos de variables y códigos de funciones . . . . . . . . . 15

5. Sistemas de seguridad: fuera del SCADA 24

6. Bibliografı́a 25

1. Definición de SCADA
SCADA es el acrónimo de ”Supervisory Control And Data Acquisition”. Un
SCADA engloba las tecnologı́as que hacen posible la interacción centralizada
de uno o varios operadores con las distintas parte de sistemas industrial o no
industriales que se encuentran distribuidos. Las posibilidades de interacción del
SCADA pasan por una adecuada presentación de la información a los operadores
sobre el funcionamiento y comportamiento del sistema para facilitar la toma de
decisiones, ası́ como el envı́o de algunas órdenes que permiten modificar su
estado de forma remota.

1
subsistema 1 subsistema 2 subsistema 3

RTU1 RTU2 RTU3

MTU
terminarl del
operador RTU4

subsistema 4

RTU6
RTU5 RTU7

subsistema 6
subsistema 5 subsistema 7

Figura 1: Esquema general de un SCADA.

2. Elementos del SCADA


Los dos elementos básicos de un SCADA son las Unidades Maestras (MTU
(Master Terminal Unit)) y las Unidades Remotas (RTU (Remote Terminar
Unit)). Normalmente el número de MTU (una es lo más habitual) es mucho
menor que el número de RTU (varias decenas o centenas). Desde un punto de
vista de la distribución espacial, la MTU se encuentra generalmente en la sala
de control más o menos cerca del operador, las RTU sin embargo, se encuentra
cerca de los subsistemas remotos que se quieren monitorizar. La figura 1 muestra
el esquema general de un SCADA.
Normalmente, la MTU es un ordenador con los periféricos necesarios para
facilitar la interacción con el operador (monitor, teclado, ratón). En sistemas de
complejidad alta la interfase con los operadores se implementa en un ordenador
independiente de la MTU, llamado consola o terminal del operador. En los
sistemas más simples la interfase puede consistir en un conjunto de interruptores
e indicadores luminosos, lo cual es cada vez menos común dada las ventajas
que supone el uso de interfaces programable en cuanto a sus posibilidades de

2
hacia la MTU

nivel RTU−MTU
RTU

nivel RTU−campo

sensores y detectores actuadores otros dipositivos


de control
subsistema

Figura 2: Conexiones de las RTUs.

reconfigurabilidad y flexibilidad ası́ como el bajo coste de los dispositivos donde


se implementan las interfaces, como pueden ser las pantallas táctiles o los panel-
PCs.
Las RTUs también se implementan en dispositivos programables como por
ejemplo PLCs (Programable Logic Controllers). Su principal función es hacer
posible la comunicación entre la MTU y los dispositivos de campo como sensores,
actuadores y otros elementos usados para el control de los sistemas. Normalmen-
te las RTUs se encuentran en el nivel de campo y los sensores y actuadores se
encuentran conectados a ellas mediante cables eléctricos. En la actualidad las
comunicaciones inalámbricas se están implantando también en este nivel.
Los dispositivos de campo (controladores, sensores, actuadores,...) se conec-
tan a las RTUs y estas a la MTU, figura 2, distinguiéndose ası́ dos niveles de
comunicaciones: el nivel RTU-campo y el nivel RTU-MTU. El intercambio de
información en el nivel RTU-campo suele ser a mayor frecuencia que en el nivel
RTU-MTU. Esto se debe a que en muchas ocasiones las RTUs hacen un proce-
samiento de la información antes de ser transmitida hacia la MTU, para lo que
necesitan datos suficientes. Un caso tı́pico es el cálculo de valores estadı́stico (me-
dia, varianza, etc) de señales para ser enviados a la MTU. Para ello se necesita un
número de muestras significativas (comunicación campo-RTU) para finalmente
enviar los resultados de dichas operaciones (comunicación RTU-MTU).
Existen básicamente 3 medios de comunicación entre MTU y RTU: cable
eléctrico, cable de fibra óptica o radio. Los dos primeros medios están dentro
de la categorı́a de comunicaciones alámbrica y el radio corresponde con una
comunicación inalámbrica. En el caso de las comunicaciones por cable la infra-
estructura utilizada (canalizaciones, cables, etc.) puede pertenecer a la empresa
o compañı́a propietaria del SCADA o bien puede usarse infraestructura de terce-
ros, como por ejemplo lı́neas de telefonı́a convencional o canales de fibra óptica
disponibles.
El uso de infraestructura propia para la comunicación es el caso más común
en los SCADA usados para la supervisión de plantas de producción, a través
de la cual suele existir una red de comunicaciones para estos fines. El uso de

3
infraestructura de terceros tiene la ventaja que normalmente este tipo de in-
fraestructuras están muy desarrolladas y abarcan amplios territorios (ciudades,
paı́ses), su uso por tanto se justifica en aquellas aplicaciones que abarcan gran-
des extensiones como por ejemplo los sistemas de distribución eléctrica y de
agua en ciudades.
Las comunicaciones inalámbricas se han utilizado tradicionalmente en aque-
llas aplicaciones en las que no se contaba con infraestructuras de terceros y
además la implantación de las comunicaciones por cable resultaba costosa o
técnicamente inviables. Ejemplo de estas aplicaciones son los sistemas con ele-
mentos móviles como vehı́culos auto-guiados.

3. Muestro de señales en el SCADA


Antes de abordar los requerimientos temporales que debe cumplir el funcio-
namiento de un SCADA en lo que se refiere a la actualización del estado de las
señales de campo en la MTU, debemos tener en cuenta que su objetivo no es
el control en tiempo real de las variables del sistema. Esta tarea es desarrollada
por los controladores de campo como PLCs, PID industriales u otros equipo que
forman parte del los lazos de control. El intercambio de información entre los
sensores, actuadores y equipos de control se hace a una velocidad y frecuencia
que viene definida por la respuesta dinámica de los sistemas y por las especifi-
caciones de control deseadas, por ejemplo tiempo de establecimiento, ancho de
banda, etc.
Entre los objetivos fundamentales de un SCADA está facilitar la toma de
decisiones por el operario respecto del funcionamiento global del sistema. Para
conseguir este objetivo, una de las cuestiones más importante a resolver es la
cantidad y forma en que la información se presenta al operador. Afortunada-
mente, existen variables que brindan más información que otras sobre el com-
portamiento global de un sistema ası́ como de las distintas situaciones crı́ticas y
peligrosas que se pueden presentar. Dichas variables son las más susceptibles de
ser enviadas hacia la MTU para su monitorización. Otra cuestión importante
en la elección de la frecuencia de actualización de las variables en la MTU pa-
ra que estén disponibles para el operador. Sólo con un conocimiento detallado
del funcionamiento del sistema monitorizado y teniendo claro los objetivos de
dicha monitorización serı́amos capaces de elegir adecuadamente las variables y
sus frecuencias de actualización.

3.1. Ciclo de Scan


Una de las cuestiones que mayor importancia tiene en el funcionamiento
de un SCADA son las comunicaciones entre la MTU y las RTU que consiste
en un intercambio de mensajes entre ambos tipos de unidades. A través de
esos mensajes las RTUs envı́an información del sistema monitorizado a la MTU
(valores de variables, etc.) y esta a su vez envı́a información sobre la operación
deseada del sistema y órdenes a las RTUs (parámetros de operación, etc.). La

4
RTU1 RTU2 RTU3 RTU1 RTU2 RTU3 RTU1

tiempo
ciclo de scan

Figura 3: Ciclo de scan.

forma en que la MTU distribuye su tiempo para comunicarse con todas las RTUs
a través del medio (cable o radio) se conoce en la terminologı́a de las redes de
comunicaciones digitales como método de control de acceso al medio o método
de arbitraje.
En la mayorı́a de los casos esas comunicaciones se hacen siguiendo un método
de arbitraje Maestro-Esclavo. En este método sólo el elemento maestro puede
dar inicio a una secuencia de intercambio de datos con alguno de los esclavos.
La MTU es el elemento maestro, mientras que las RTUs son los esclavos. O sea,
será la MTU la encargada de iniciar la comunicación con cada una de las MUTs.
Sólo cuando la comunicación con una de las MTUs ha finalizado se comienza la
comunicación con otra MTU. Cuando se ha completado intercambio de datos
con todas las MTUs se comienza nuevamente por la primera, formado ası́ una
ciclo de comunicaciones conocido como ciclo de scan. Veamos un ejemplo:

Consideremos un SCADA formado por una MTU y 3 RTUs (RTU1, RTU2


y RTU2). La MTU inicia las comunicaciones con la RTU1. Cuando finaliza
esta comunicación pasa a la RTU2 y después a la RTU3. Una vez finaliza
el intercambio de datos con la RTU3 comienza nuevamente con la RTU1,
como se muestra en la figura 3. Este ciclo se repite indefinidamente.

Queda claro en el ejemplo anterior que la frecuencia máxima de actualización


de las variables entre una RTU en la MTU es igual al inverso del tiempo de scan.
Decimos frecuencia máxima porque no es necesario que en todos los ciclos se
actualicen todas las variables, o sea, pueden haber variables que se actualicen
cada dos tiempo de ciclo o más. Volviendo con el ejemplo anterior, en la figura
4, se puede ver como las variables v1 y v2 se actualizan en todos los ciclos pero
la variable v3 casa dos ciclos. De esta forma la frecuencia de actualización de
V3 es la mitad que para v1 y v2.
El tiempo de ciclo depende de los siguientes factores:

Número de RTUs con las que la MTU tiene que comunicarse.


Cantidad de información en cada comunicación MTU-RTU.
Velocidad de comunicación entre la MTU y las RTUs.
Eficiencia de la comunicación.

5
RTU1 RTU2 RTU3 RTU1 RTU2 RTU3 RTU1

v1,v2 v1,v2 v1,v2


v3 v3

tiempo
ciclo de scan

Figura 4: Ciclo de scan con variables.

Tanto el número de RTUs como la cantidad de información que estas inter-


cambian con la MTU dependen de la aplicación concreta: de la complejidad del
sistema que se quiere monitorizar y de las funcionalidades y prestaciones que
se definan para el SCADA. Cuanto mayor y más complejo sea el sistema y más
información se quiera disponer sobre su comportamiento mediante el SCADA,
mayor será el número de RTUs y más cantidad de información tendrán que in-
tercambiar estas con la MTU. La cantidad de información depende de los tipos
de variables con que cuenta del sistema. Para poder hacer un cálculo aproxima-
do de la cantidad de información en función del número de variables podemos
hacer las siguientes consideraciones:

La información de variables digitales o alarmas se transmite usando so-


lamente un bit de datos en la mayorı́a de los casos. En algunos casos se
utilizan dos bits si queremos codificar, además del estado, los cambios en
la variable: flanco de subida o bajada.
El número de bits usados para transmitir datos de variables analógicas
puede variar entre dispositivos y fabricantes pero como un valor standar
podemos considerar 16 bits.

La velocidad y eficiencia de la comunicación dependen en mayor medida de


las caracterı́sticas del sistema de comunicaciones que se utiliza en el SCADA y
no de las caracterı́sticas del sistema monitorizado. La velocidad se refiere a la
cantidad de bits que pueden ser enviados por unidad de tiempo. En las redes de
comunicaciones digitales actuales puede ir desde varios millares (Kbit/s) hasta
millones de bit por segundo (Mbits/s), dependiendo de la tecnologı́a utilizada.
Por otra parte, la eficiencia de las comunicaciones es la relación que existe entre
el número de bits que realmente forman parte de la información transmitida
y el total de bits enviados. Debemos recordar que en las comunicaciones digi-
tales, además de los bits de información, se transmiten bits auxiliares que son
necesarios para tener una comunicación segura y sin errores. Ejemplo de estos
bits auxiliares son los bits usados en las comunicaciones series bajo el estándar
RS-232: bit de inicio, de paridad, y de parada, cuya función se describe más
adelante en la sección ??. En otros estándares de comunicaciones se introducen
otros bits, entre ellos los usados para el chequeo de errores, etc.

6
Teniendo en cuenta todos elementos anteriores es posible calcular de for-
ma aproximada el tiempo del ciclo de scan de un SCADA. Para ello debemos,
además, tener en cuenta las siguientes consideraciones:

Las comunicaciones MTU-RTUs son bi-direccioneles, o sea, las RTUs envı́an


a la MTU valores de variables del sistema y las MTU envı́a a la RTU in-
formación para el funcionamiento del sistema, por ejemplo variables digi-
tales para activar o desactivar motores, bombas y otros equipos, variables
analógicas para especificar valores de parámetros del proceso, por ejemplo
temperatura de un horno o velocidad de un motor.
Para hacer un cálculo exacto del ciclo de scan debemos sumar el tiempo
necesario para enviar y recibir datos de cada RTU. Para simplificar los
cálculos consideraremos sólo aquella RTU que envı́a mayor cantidad de
datos (mayor número de bits) a la MTU. Además, teniendo en cuenta
que las comunicaciones son bidirecciones, consideraremos también aquella
RTU que mayor cantidad de datos recibe de la MTU. El tiempo de ciclo
real siempre será menor que el resultado obtenido mediante este cálculo.

Veamos como se aplican todas estas ideas al cálculo de tiempo de ciclo me-
diante un ejemplo.

Considerar un SCADA con 15 RTUs. La RTU que mayor número de datos


envı́a a la MTU es la RTU2, con 100 variables digitales y 50 analógicas
mientras que la RTU que mayor número de datos recibe desde la MTU
es la RTU14 con 30 variables digitales y 40 analógicas. La velocidad de
comunicación es 1200 bit/s y la eficiencia es del 80 %. Con estos datos
obtenemos los siguiente resultado:

- Número total de bits por RTU (peor caso) = 100+30+16*(50+40)


= 1570
- Número total de bits durante el ciclo de scan (peor caso) = 15*1570
=23550

El tiempo para transmitir el número total de bits considerando una efi-


ciencia del 100 % es 23550/1200=19.625 seg. Sin embargo, como la efi-
ciencia de las comunicaciones es del 80 %, el tiempo se incrementa hasta
19.6/0.8=24.5 seg.

3.2. Señales sub-muestreadas. ¿Donde hacer cálculos?


Decimos que una señal es sub-muestreada cuando el periodo con que se
muestrea es muy alto en comparación con las variaciones de la señal y por
tanto se pierde información de la misma. Por ejemplo, consideremos un depósito
para abastecimiento de agua que cuenta con sistema de control on/off para
mantener su nivel entre los valores Nmin y Nmax: cuando el nivel llega a Nmin
se abre una válvula de alimentación para añadir agua hasta que el nivel llega

7
Lmax
O O O
O O O
O O O O O O
O O O O O
O O O O
O O O
O O O O O O
Lmin O O O
O O O O

Lmax
O O O
O O O

O O O
Lmin

Lmax
O
O O
O
Lmin O

Figura 5: Ejemplos de muestreo de señales.

a Nmax y entonces se cierra la válvula, volviendo a bajar el nivel hasta Nmin,


conectándose nuevamente la válvula. Este proceso se repite indefinidamente
mientras el sistema está en funcionamiento.
Consideremos que el nivel tarda 10 minutos en ir de Nmin a Nmax cuando
la válvula está abierta y 20 minutos en ir de Nmax a Nmin cuando la válvula
está cerrada. En la figura 5 se muestra tres casos de muestreo de la señal del
nivel del tanque. En el primer caso el muestreo de la señal es cada 2.5 minuto,
en el segundo caso el muestreo es cada 10 minutos y en el tercer caso cada 20
min. Con los datos obtenidos con los muestreos de 10 y 20 minutos no es posible
reconstruir la señal del nivel del depósito. Como se aprecia en la figura, la señal
conseguida con esos datos difiere considerablemente de la señal real, por lo que
podemos decir que la señal está sub-muestreda.
En una RTU existen dos niveles de muestreo de una señal. Un muestreo se
realiza en el nivel RTU-campo y otro muestreo se realiza en el nivel RTU-MTU.
Estos niveles han sido representados en la figura 2. En el nivel RTU-campo, en
general, la adquisición de las señales se realiza a una frecuencia que garantiza un
muestreo adecuado, o sea, no sub-muestreo. Dicha información se puede usar
para hacer cálculos estadı́sticos o de valores totales, algo que es muy común
en los sistemas SCADA. Si estos cálculos se quieren hacer en la MTU en vez
de en la RTU, entonces serı́a necesario que el perı́odo de muestreo en el nivel
RTU-MTU, que viene determinado por el ciclo de scan, también garantice que
la señal no sea sub-muestreada. Esto supondrı́a poner una restricción al ciclo de
scan en cuanto a su duración.
Si la señal en cuestión no es una señal crı́tica, entonces podemos realizar
los cálculos en la RTU y enviar los resultados a la MTU cuando esta lo soli-
cite. De esta forma no imponemos restricciones innecesarias al ciclo de scan.
Como se vio en secciones anteriores, el ciclo de scan depende de la velocidad de
comunicación, del número de RTUs y de la cantidad de información que estas
intercambian con la MTU. Si consideramos que el número de RTUs y la can-
tidad de información vienen determinadas por la aplicación concreta, entonces

8
conseguir un ciclo de scan pequeño implicarı́a aumentar la velocidad de comu-
nicaciones. La cuestión en este punto es si serı́a posible conseguir la velocidad
de comunicaciones necesaria para obtener el ciclo de scan deseado.

3.3. Señales de alarmas por mal funcionamiento


Teniendo en cuenta que uno de los objetivos del SCADA es facilitar la toma
de decisiones para corregir situaciones anómalas de funcionamiento, es posible
establecer ciertos criterios generales, que se cumplen para el caso de las variables
que alertan al operador de tales situaciones. Podemos asumir que la actualiza-
ción de la información debe hacerse con una frecuencia tal que permita el retorno
a las condiciones de funcionamiento normal en un tiempo razonable durante el
cual el impacto por mal funcionamiento del sistema sea asumible. En este sen-
tido una cuestión importante a tener en cuenta es la duración de la posibles
acciones correctivas de la situación anómala: no tiene sentido monitorizar una
variable cada segundo si las acciones de corrección pueden durar horas. A partir
de la duración aproximada de las acciones correctivas podemos obtener un valor
del perı́odo máximo de actualización de variables en la MTU. Un criterio puede
ser considerar un perı́odo máximo igual al 10 % del valor mı́nimo de duración
de la posibles acciones correctivas. Veamos un ejemplo:

En una planta de tratamiento de aguas residuales uno de los principales


objetivos es mantener el nivel de amonio en el efluente de salida por deba-
jo de cierto nivel establecido por ley. Existe un sistema de control que se
encarga de mantener esa variable en los niveles adecuados. Dicho sistema
está formado por un sensor de amonio, un PLC donde se ejecuta el pro-
grama de control y unos sopladores accionados por motores eléctricos que
añaden aire (oxı́geno) para favorecer la eliminación de amonio en un pro-
ceso de digestión aerobia en el que intervienen bacterias y que tiene lugar
en el biorreactor de la planta. En este sistema tiene sentido monitorizar la
concentración de amonio en el SCADA que supervisa el funcionamiento
de la instalación y advertir al operador cuando se supere el valor permi-
tido mediante una señal de alarma. La frecuencia de actualización de la
concentración de amonio en la MTU debe ser tal que permita tener un
registro histórico detallado de la misma dada su importancia. Un elemen-
to importante para el funcionamiento correcto del sistema de control de
concentración de amonio es el estado de los motores de los sopladores. Es
importante detectar si están averiados para proceder a su mantenimien-
to o sustitución. Para ello se monitoriza desde el SCADA la corriente que
consumen. La detección de valores de corriente fuera de rango de funciona-
miento normal debe hacerse con un tiempo razonable en comparación con
la duración de las posibles acciones correctivas de la situación anómala.
Supongamos que el mantenimiento del contactor de puesta en marcha de
los motores sea la mas corta de las acciones correctivas con una duración
de 60 minutos. Entonces el perı́odo máximo de actualización recomenda-
ble serı́a de 6 minutos. Si queremos hacer un seguimiento más detallado

9
de la variable tenemos que reducir dicho perı́odo.

4. Protocolos de comunicación
Un protocolo de comunicación define un conjunto de reglas para coordinar el
flujo de información entre varios elementos, ası́ como para garantizar que este se
realice correctamente. Para ello las funciones básicas que debe realizar cualquier
protocolo de comunicación son las siguientes:

Establecimiento del enlace (punto de destino y origen).


Transmisión de la información.
Detección de fallos en la comunicación.

Corrección de errores.

4.1. Tamaño y estructura de los mensajes


Los mensajes definidos en un protocolo se dividen en campos que tiene di-
ferentes significados. Los campos que normalmente aparecen en la mayorı́a de
protocolos son los siguientes:

Inicio del mensaje.

Dirección del destinatario.


Dirección del remitente.
Código de la operación.

Datos necesarios para realizar la operación.


Código para detección/corrección de errores.
Fin del mensaje.

Los campos están formados por un número determinados de bits o bytes.


Por ejemplo podrı́a indicar que en primer lugar hay un bit de inicio, después
hay 5 bits que definen la dirección del que envı́a el mensaje, después otros 5
bits que definen la dirección del destinatario del mensaje, después 8 bits que
definen el código de la operación, después 16 bits que definen el dato que se
transmite, después 5 bits para detección de errores, y por último un bit de stop.
Ası́ mismo en otro protocolo se puede indicar que el primer byte indica en inicio
del mensaje, 2 bytes para la dirección del destino, 2 byte para el código de la
operación, 8 bytes de datos, 1 byte de código de errores y 1 byte de fin del
mensaje.
El tamaño de los mensajes que se definen para un protocolo es el número de
bits o bytes que contienen los mensajes que se transmiten entre dispositivos que

10
forman la red. A modo de ejemplo acontinuación se describe de forma breve el
protocolo Host Link, desarrollado por Omron.
Dado que es un protocolo con método de arbitraje maestro-esclavo, es nor-
malmente el ordenador (maestro) quien tiene el primer derecho de transmisión
e inicia las comunicaciones, PLC (esclavo) envı́a luego automáticamente una
respuesta, como se muestra en la figura 4.1.

Figura 6: Secuencia de mensajes del protocolo Host Link.

Las estructuras de las tramas de los comando y las respuestas se muestran


en las figuras 4.1 y ??.

Figura 7: Estructura de la tramas de comandos del protocolo Host Link.

Figura 8: Estructura de las tramas de respuestas del protocolo Host Link.

Formato de COMANDOS:

@: Se debe colocar un sı́mbolo @ al principio.

No. de nodo: Identifica el PLC que está comunicando con el ordenador.


Especificar el número de nodo seleccionado en la configuración del PLC
(DM 6648, DM 6653).

11
Código de cabecera: Selecciona el código de comando de 2 caracteres.

Texto: Selecciona los parámetros de comando.

FCS: Selecciona un código de 2 caracteres de secuencia de chequeo de


trama.

Terminación: Seleccionar dos caracteres, * y retorno de carro para indicar


el fin del comando.

Formato de RESPUESTA:

@, No. de nodo, Código de cabecera: Se devuelven los contenidos idénticos


a los del comando.

Código de operación: Devuelve el estado de finalización del comando (es


decir, si se ha producido o no un error).

Texto: Se devuelve texto sólo cuando hay el comando que dió origen a la
respuesta es de lectura.

FCS: Selecciona un código de 2 caracteres de secuencia de chequeo de


trama.

Terminación: Seleccionar dos caracteres, * y retorno de carro para indicar


el fin del comando.

4.2. Protocolo MODBUS


El protocolo MODBUS fue desarrollado por la empresa Gould Modicom,
que actualmente pertenece Schneide-Electric. Es un protocolo orientado a las
aplicaciones de control de procesos y actualmente se considera un estándar en
las comunicaciones industriales. Muchos dispositivos de diversos fabricantes son
compatibles con MODBUS.
Este es un protocolo concebido para arbitraje Maestro/Esclavo, con un maes-
treo y hasta 247 esclavos. Las comunicaciones entre el esclavo y los maestros
pueden ser de dos tipos:

Pregunta/respuesta: En este caso el maestro envı́a un mensaje a uno de


los esclavos y este le responde.
Emisión (broadcast) sin respuesta: El maestro envı́a un mensaje común
a todos los esclavos, los cuales al recibir el mensaje no generan ninguna
respuesta.

MODBUS tienes algunas caracterı́sticas que son fijadas por el protocolo.


Estas son:

Formato de las tramas.

12
Figura 9: Estructura general de tramas ASCII y RTU de MODBUS.

Secuencia de las tramas.


Manipulación de los errores de comunicación.
Funciones que se pueden realizar.

Otras caracterı́sticas pueden ser seleccionadas al no ser fijadas por el proto-


colo:

Medio de transmisión.
Modo de transmisión: RTU o ASCII.

El modo ASCII se utiliza para realizar pruebas y puesta a punto de las co-
municaciones mientras que el modo RTU se utiliza para funcionamiento normal.
Las siguiente figura muestra las tramas RTU y ASCII. Se puede ver estas di-
fieren sólo en la existencia de caracteres de inicio y fin en el caso de la trama
ASCII.
En general las tramas definidas por el protocolo que envı́a el maestro a uno
de los esclavos en el esquema pregunta/respuesta, tienen la siguiente estructura:

Dirección del destinatario del mensaje.


Acción que debe hacer el destinatario.
Datos necesarios para realizar la función.
Datos para el chequeo de errores.

Cuando el esclavo destinatario recibe el mensaje o trama, desarrolla la acción


indicada y responde al maestro con la siguiente estructura:

Dirección del esclavo que envı́a en mensaje.


Acción desarrollada.

13
Figura 10: Estructura general de una trama o mensaje MODBUS.

Resultado de la acción.
Datos para el chequeo de errores.

Cuando el maestro recibe la respuesta enviada por el esclavo entonces puede


enviar un nuevo mensaje, al mismo esclavo u a otro.
Es importante destacar que el protocolo MODBUS utiliza una codificación
big-endian, o sea que para los números con tamaño mayor que un byte se envı́a
primero el byte más significativo y finalmente el byte menos significativo. Por
ejemplo, si se quiere enviar un registro de dos bytes con valore 0x1234, primero
se envı́a 0x12 y después 0x34.

4.2.1. Acciones definidas en MODBUS


Todas las acciones o funciones que se pueden hacer mediante MODBUS
tienen asignadas un código numérico. Las funciones son las siguientes:

Lectura o escritura (activación/desactivación) de entradas o salidas digi-


tales.

Lectura de entradas o grupo de entradas.


Lectura o escritura de registros (localizaciones de memoria).
Pruebas de diagnóstico.

Funciones de programa.
Control de polling.
Reset.

4.2.2. Formato de las tramas o mensajes


Cada una de las tramas consiste en un grupo de bytes agrupados en cuatro
campos como se muestra en la siguiente la figura 10.
El primer campo es la dirección y está formado sólo por un byte. En el
mensaje que envı́a el maestro esté byte indica la dirección del esclavo al cual va

14
dirigido el mensaje, o sea el destinatario. En la respuesta enviada por el esclavo,
el campo indica al maestro la dirección del remitente del mensaje.
El segundo campo, también formado por un único byte, es el código de la
acción o función que el esclavo debe realizar. Si el esclavo es capaz de realizar
la acción indicada en el mensaje del maestro, entonces en la respuesta que el
esclavo envı́a al maestro se repite este byte, si no, entonces el byte se envı́a al
maestro con el bit más significativo en 1, indicando ası́ al maestro que la acción
no se ha podido realizar.
El tercer campo contiene datos necesarios para realizar la acción o función
indicada en el segundo campo. El número de bytes de este campo puede variar
en función de la acción concreta que se indica. En la respuesta del esclavo este
campo contiene información requerida por el maestro, por ejemplo contenido de
determinadas localizaciones de memoria.
Los últimos dos bytes forman el campo de chequeo de errores. Su valor se
calcula en función del resto del mensaje. Se usa para detectar si algunos de los
bytes del mensaje es modificado durante la transmisión. En ese caso el receptor
ignora el mensaje.

4.2.3. Sincronización
Cuando un dispositivo comienza a transmitir un mensaje, los dispositivos
receptores debe estar listos para recibirlo. La transmisión y la recepción de
un mensaje debe estar sincronizadas. En el protocolo MODBUS-RTU eso se
consigue limitando el tiempo entre los bytes que forman todo el mensaje. Si el
tiempo entre dos bytes sobrepasa el tiempo necesario para transmitir 3 bytes,
entonces el mensaje se ignora y se considera que el siguiente byte será el byte
de inicio (dirección) de un nuevo mensaje.

4.2.4. Tipos de variables y códigos de funciones


Los mensajes MODBUS permiten el acceso a varios tipos de datos: salidas
digitales (coils), entradas digitales, registros de entrada y registros internos. Las
entradas y salidas digitales se representan con un byte, mientras que los registros
de entrada y los registros internos se representan con dos bytes.
Cada acción o función en MODBUS está definida para un único tipo de
datos. A cada tipo de dato se le asigna un rango de direcciones fijos. Esto
permite especificar en los mensajes las direcciones de las variables en forma
de offset respecto de la dirección más baja del bloque asignado a cada tipo de
variables. La table 1 los códigos de funciones para cada tipo de variable.
Evidentemente cada uno de los datos a los que se accede mediante el proto-
colo MODBUS tiene una dirección en la memoria del dispositivo. La asignación
de la memoria a cada tipo de datos depende del dispositivo en cuestión y pueden
tenerse diferentes tipos de asignaciones. En las figuras 11 y 12 se muestran dos
de ellas. En la primera, se asignan rangos de memoria diferentes a cada tipo de
dato, o sea que la dirección base de cada rango es diferente. Por el contrario, en

15
Cuadro 1: Tipos de datos con su respectivos códigos de funciones
Data type Relative addr. Func. Code Description
Coils 0000-FFFF 01 Read Coil
Coils 0000-FFFF 05 Force Single Coil
Coils 0000-FFFF 15 Force multiple Coils
Discret inputs 0000-FFFF 02 Read Input Status
Input registers 0000-FFFF 04 Read Input Register
Holding registers 0000-FFFF 03 Read Holding Register
Holding registers 0000-FFFF 06 Present Single Register
Holding registers 0000-FFFF 16 Present Multiple Registers
- - 07 Read Exception Status
- - 07 Loopback Diagnostic Test

la figura 12 la dirección base para todos los tipos de datos es la misma, de ma-
nera que las direcciones de todos los bloques de datos se solapan. Esto permite
acceder a la misma localización de memoria del dispositivo usando diferentes
códigos de funciones (operaciones) de MODBUS.

Leer el estado de salidas digitales. Código 01. En la figura se muestra


ejemplos de mensajes de pregunta y respuesta para la lectura de salidas digitales.
En este caso en mensaje se envı́a al esclavo 01 con el código de función 01. El
tercer campo (2 bytes) especifica la dirección relativa de la primera salida que
deseamos conocer y el cuarto campo (2 bytes) especifica la cantidad de salidas
que se quieren leer.
En el mensaje de respuesta que envı́a en esclavo, el tercer campo (1 bytes)
indica la cantidad de bytes con que constará el campo cuarto, el cual contendrá
los bytes con el estado de las salidas solicitadas por el maestro.
Hay que tener en cuenta que para representar el estado de cada salida digital
se usa sólo un bit. El número total de bytes enviados por el esclavo será igual
al número de salidas solicitadas dividido por 8. Si el número de salidas no es un
múltiplo entero de 8, entonces al último byte enviado se le completan sus bits
con ceros.

Leer el estado de entradas digitales. Código 02. Las estructura del los
mensajes es similar al de lectura de salidas digitales, pero en este caso para
entradas. La figura 14 muestra un ejemplo.

Leer el estado de registros de memoria. Código 03. Esta función per-


mite al maestro obtener datos de la memoria de los esclavos. En el mensaje
de pregunta el tercer campo (2 bytes) contiene la dirección relativa del primer
registro que se quiere conocer. El cuarto campo (2 bytes) contiene la cantidad
de registros que se desean conocer a partir del primero.
En el mensaje de respuesta que envı́a el esclavo, el tercer campo indica la
cantidad de byte que contienen la información de los registros de memoria que

16
Figura 11: Asignación de bloques de memoria independientes para tipos de datos
de MODBUS.

Figura 12: Asignación de bloques de memoria solapados para tipos de datos de


MODBUS

17
Figura 13: Estructura de un mensaje para la lectura de salidas digitales.

Figura 14: Estructura de mensajes para la lectura de entradas digitales.

18
Figura 15: Estructura de mensajes para la lectura de registros de memoria.

Figura 16: Estructura de mensajes para la lectura de registros de entrada.

serán transmitidos, los cuales están contenidos en el cuarto campo. En la figura


15 se muestran ejemplos de mensaje para le lectura de registros de memoria.

Leer el estado de registros de entrada. Código 04. Las estructura del los
mensajes y el funcionamiento es similar al de lectura de registros de memoria.
La figura 16 muestra un ejemplo.

Forzar una salida digital: Código 05. Esta función permite al maestro
enviar órdenes a un esclavo de activar/desactivar una de sus salidas digitales. El
tercer campo es la dirección relativa de la salida que se desea activar, mientras
que el cuarto campo especifica el estado en que se quiere poner la salida: 0000H
indica desactivar y FF00H indica activar. El resto de valores no son reconocidos
y la salida permanecerá en su estado.

19
Figura 17: Estructura de mensajes para forzar una salida digital.

Si el esclavo es capaz de llevar a cavo la orden de forma satisfactoria, entonce


el mensaje de respuesta que envı́a será idéntico al que recibió del esclavo. En
otro caso se produce una respuesta que indica un error, cuyas caracterı́sticas
veremos más adelante.
Es posible enviar el mensaje con esta función en modo emisión (broadcast)
para activar la misma salida digital en todos los esclavos conectados al maestro.
Para ello basta con poner en la dirección el valor 00. En este caso los esclavos
no enviarı́a mensaje de respuesta. En la figura 17 se muestra un ejemplo de
mensaje para la desactivación de una salida digital.

Modificar el contenido de registro de memoria: Código 06. Esta fun-


ción permite al maestro modificar datos en la memoria de los esclavos. El tercer
campo (2 bytes) es la dirección relativa del registro que se quiere modificar,
mientras que el cuarto campo (2 bytes) especifica el nuevo valor que se quiere
almacenar en el registro. La figura 18 muestra un ejemplo.
Si en el campo de dirección se especifica 00 (modo bradcast o emisión), enton-
ces todos los esclavos obedecerán la orden del maestro y el registro especificado
tomará en mismo valor en todos ellos.

Leer estado del esclavo: Código 07. Se trata de un mensaje corto que
permite al maestro la lectura de 8 bits que reflejan es estado de un dispositivo
esclavo. Los 8 bits tienen una dirección predefinida y por eso no es necesario
enviarla en el mensaje. Estos bits pueden contener información tales como el es-
tado de la baterı́a, protección de escritura en memoria, etc. La figura 19 muestra
un ejemplo de este tipo de mensaje.

Prueba de comunicaciones: Código 08. El objetivo de esta función es


comprobar el estado del canal de comunicaciones. Para ello se envı́a un mensaje

20
Figura 18: Estructura de mensajes para la escritura de un registro de memoria.

Figura 19: Estructura de mensajes para la lectura del estado del esclavo.

21
Figura 20: Estructura de mensajes para la prueba de comunicaciones.

Figura 21: Estructura de mensajes para forzar múltiples salidas digitales.

al esclavo y este responderá con el mismo mensaje. Si el maestro recibe el mismo


mensaje que envió , entonce la comunicación es correcta. En la figura 20 se
muestra un ejemplo de mensaje de prueba de comunicaciones.

Forzar múltiples salidas digitales: Código 15. Permite la modificación


simultanea de varios bits de salidas digitales en el esclavo. Actúa sobre la zona de
memoria de las salida digitales. El mensaje se pasan la dirección inicial (dirección
del primer bit o mando a modificar ) y la cantidad y estado de cada uno de los
sucesivos mandos ( bits ) a modificar.
Aunque el estado de las salidas digitales se especifica bit a bit, las tramas se
componen de bytes, y esto obliga a enviar los estados en grupos de 8. El esclavo
no deberı́a hacer caso a los bits sobrantes, es decir, no deberı́a considerar los
que queden por encima del último bit indicado en el campo cantidad de mandos
a modificar. La figura 21 muestra un ejemplo de este mensaje.

Forzar múltiples registro de memoria: Código 16. Es un mensaje similar


al anterior pero en este caso se trata de registros (bytes) de memoria del esclavo
lo que se modifica. La figura 22 muestra un ejemplo de este mensaje.

22
Figura 22: Estructura de mensajes para forzar múltiples registros de memoria.

Figura 23: Tabla de códigos de errores.

Manejo de errores Cuando un esclavo recibe un mensaje con un error intro-


ducido por el canal de comunicaciones, no envı́a ningún mensaje de respuesta al
maestro. Los errores introducidos por el canal ce comunicaciones consisten en
la modificación de uno o varios bits del mensaje durante su transmisión. Este
tipo de errores se puede deber por ejemplo a ruidos electromagnéticos y son
detectados mediante los mecanismos de detección de errores tales como el bit
de paridad o el CRC o suma de chequeo.
Otro tipo de errores que puede tener un mensaje recibido por un escla-
vo pueden ser la especificación de datos incorrectos, por ejemplo direcciones
inexistentes en el dispositivo. En estos casos el esclavo si genera un mensaje
de respuesta que se envı́a al maestro. Los cuatro campos que contiene dicho
mensaje son los siguientes:
Dirección del esclavo.
Código de la función solicitada por el mensaje del maestro, con el bit más
significativo en 1.
Código del error. En la figura 23 se muestran una tabla con los códigos de
error más importante.
CRC
En la figura 24 se muestra un ejemplo de mensaje para la información de
errores al esclavo.

23
Figura 24: Ejemplo de mensaje de informe de errores.

5. Sistemas de seguridad: fuera del SCADA


En general los procesos de producción industrial disponen de sistemas de se-
guridad que son capaces de tomar decisiones sobre el funcionamiento del proceso
para evitar daños a las personas, a las instalaciones o al medio ambiente. Los
sistemas de seguridad actúan de forma automática cuando se dan determinadas
condiciones que suponen un riesgo, y sus ordenes son las más prioritarias de
todas las que puede recibir el proceso.
El sistema de seguridad debe ser independiente del sistema de control. Este
último se encarga del control del proceso en condiciones normales y su función
es garantizar el cumplimiento de los requisitos de producción: calidad, eficien-
cia, productividad, etc. Cuando el funcionamiento del proceso deriva en una
situación anormal entonces el sistema de seguridad deben tomar el mando sobre
el proceso para gestionar dicha situación de forma conveniente: mediante una
parada u otro procedimiento. Mientras el sistema de seguridad está actuado, las
órdenes del sistema de control no deben tener efecto sobre el proceso.
La caracterı́stica principal de todo sistema de seguridad debe ser su fiabili-
dad, que está vinculada irremediablemente con la sencillez. Cuanto más simple
es un sistema, menos posibilidades de fallo existen, por el contrario, en los siste-
mas formados por numerosos elementos complejos que interactúan se incrementa
considerablemente la posibilidad de mal funcionamiento. De esta forma los sis-
temas de seguridad para procesos industriales deben ser tan simple como sea
posible, garantizando que puedan cumplir con su función.
Teniendo en cuenta esto, es evidente que diseñar un sistema de seguridad
cuyo funcionamiento dependa de un SCADA es asumir un riesgo muy alto.
Los SCADA son de una complejidad elevada porque en ellos intervienen varios
elementos y tecnologı́as diferentes: dispositivos programables, redes de comuni-
caciones digitales, programas informáticos con centenares de lı́neas de código,
en algunas aplicaciones además comunicaciones por radio. Todo esto hace que
la probabilidad de fallo de un SCADA sea mucho mayor que la de un sistema
compuesto simplemente por elementos con la certificación de seguridad corres-
pondiente: detectores, indicadores, dispositivos de mando (seta de emergencia,
etc.), unidades lógicas, y demás.

24
6. Bibliografı́a
Boyer A. Stuart, SCADA. Supervisory control and data acquisition. 2004.
3ra Edición. ISA The Instrumentation , Systems, and Automation Society.
Clarke, G., Reynders D., Wright E., Modern SCADA protocols. 2004.
Elsevier.
Bailey D., Wright E., Practical SCADA for Industry. 2003. Elsevier.

25

También podría gustarte