Академический Документы
Профессиональный Документы
Культура Документы
Capa de Enlace
Formato de una trama DNP – nivel de enlace
Bits: 3-0
Address Use
All-call, Application Layer BroadCast
Definidas como direcciones broadcast o
Todas las estaciones deben aceptar estas tramas.
Confirmation to clear IIN 1.0 is El tratamiento está definido en el nivel de aplicación.
0xFFFF optional
All-call, Application Layer
Confirmation to clear IIN 1.0 is
0xFFFF mandatory
All-call, Application Layer
Confirmation must not be
0xFFFF required to clear IIN 1.0
Su propósito es descubrir la dirección de un dispositivo.
0xFFFC Self-address Self-Address
Esta dirección se utiliza en el “Destination-Address”
0xFFF0 Si un dispositivo esta en modo: “Self-Address enabled” debe contestar estas
tramas como si tuvieran su propia dirección destino.
to Al contestar el dispositivo pondrá su propia dirección en Source-Address. ¡De
esta forma descubrimos cual es su dirección!
0xFFFB Reserved
Ojo: Solo debemos habilitar “Self-Address” en un dispositivo a la vez, para
0x0000 evitar múltiples respuestas.
Variable Descripción
Variable Descripción
Clave Descripción
noFCV El bit FCV no esta activado cuando así lo requiere el código de funcipon
utilizado.
Caso 27: Función Link_Status recibida ó
NACK con DFC=0 recibida Función Link_status no recibida,
SecStIsReset = false UNCONFIRMED No responde, no reintentos
RESET_LINK_STATES _USER_DATA 3 18,19 y
20 Retry: Request_Link
Startup SecUnRese RetryCount ++
REQUEST_LINK
tIdle 4
_STATUS 21
RetryCount
Función ACK no recibida ó =0 UR-
No responde, no reintentos LinkStatus
SecondaryStationIsReset = 1 15 y 16 Wait
false RESET_LINK No ACK ó No
23 y 24 2
_STATES responde
11 y 12 RESET
No ACK ó No responde No responde,
LINK
SecStIsReset = false 34 no reintentos
ResetLink ResetLink
NACK con DFC=1 SecondaryStat
Wait-1 Wait-2
recibida ó 28,29 y ionIsReset =
No responde, 27 17 false
13 30
SecStIsReset = F
Retry: Reset_Link Retry: Reset_Link
RetryCount ++ RESET_LINK RetryCount ++
5 _STATES 14
CfmdData
ACK recibida 35
Wait
10 NFCB = 1
Test 31 R-LinkStatus
ACK recibida SecStIsReset = True
Wait Wait
NFCB = 1 Retry: Confirmed_user CONFIRMED_USER
26 Retry:
SecStIsReset = True RetryCount ++
25 ACK recibida REQUEST_LINK Request_Link
7
CONFIRMED_ Cambiar Estado _STATUS RetryCount ++
Retry: Test_Link Test_Link_States
RetryCount ++ USER_DATA (NFCB) 9
6 32 y33
SecReset
Idle Función Link_Status recibida ó
22
ACK recibida RetryCount Función Link_status no recibida
Cambiar Estado =0
(NFCB) UNCONFIRMED
8 _USER_DATA
Comisión Federal de Electricidad
División de Distribución Centro Sur.
Capa de Transporte
Funciones:
1.- Transmisión , partir un fragmento de la capa de aplicación en segmentos de tamaño máximo de 249 bytes y agregar cabecera
hacia la capa de enlace. Construyéndose segmentos de 250 bytes.
2.- Recepción, ensamblar segmentos para generar un fragmento hacia la capa de aplicación.
Transmisión de datos
Cabecera → bit # 7 6 5 4 3 2 1 0
Campo FIN: Indica que es el último segmento del fragmento de la capa de aplicación.
FIN= 0, Indica que vienen mas segmentos.
FIN =1, Indica que es el último segmento de transporte de una serie de segmentos.
Campo SEQUENCE: Se utiliza para verificar el orden de los segmentos recibidos, para detectar segmentos duplicados o perdida de
segmentos.
- Rango de 0 a 63.
- Se incrementa de uno en uno.
- Después del valor 63, el siguiente segmento su secuencia es 0.
Ejemplos:
FIN=1, FIR=1, SEC=0 : Se recibe solamente un segmento para la capa de aplicación.
FIN=0, FIR=1, SEC=0 : Es el primer segmento de una serie de segmentos y se registra la secuencia para su próxima verificación.
FIN=0, FIR=0, SEC=1 : Es el segundo segmento de una serie de segmentos y se verifica secuencia consecutiva.
FIN=0, FIR=0, SEC=X : Es el segundo o n-1 segmento de una serie de segmentos y se verifica secuencia consecutiva.
FIN=1, FIR=0, SEC=X : Es el último segmento de una serie de segmentos y se verifica secuencia consecutiva.
FIR=0,
Descartar FIN=X,
segmento SEQ=X
Idle
State
FIR=1,
FIN=1,
FIR=1, SEQ=X
FIN=0,
SEQ=X
Limpiar
buffer
Pasar buffer a Limpiar
capa de aplicación buffer
Descartar
segmento Agregar segmento
al buffer
Agregar segmento Agregar segmento
FIR=0, al buffer al buffer
FIN=1, FIR=1,
FIR=0, SEQ=SAME Pasar buffer a
FIN=0, FIR=0, FIN=0, capa de aplicación
SEQ=+M,1<M<64 FIN=1, SEQ=X FIR=1,
SEQ=+1 FIN=1,
SEQ=X
Assembly
State
Capa de Aplicación
La capa de aplicación es la capa superior del modelo OSI. Es la interface con el software del usuario. Tamaño máximo de transmisión es de 2048
bytes y mínimo 2 bytes.
Definiciones
Objeto DNP: Es una representación codificada de los datos desde
Punto: (Point) Es una entidad única identificable de manera física un punto o una estructura, que tiene un formato en base al grupo
o lógica. El termino punto aplica para entradas de tipo analógico, y la variación proveniente de un mensaje.
digital y contadores, así como también salidas digitales y Un mensaje contiene 1 o mas objetos.
analógicas.
Conceptos asociados a un punto: Static: El termino static se refiere al valor actual de un punto
• Es identificado por un índice. medido. Para un binario es “on” o “off”. Para un analógico es ej.
• Tiene valor actual. 259.
• Puede generar eventos.
Events: (evento) Evento esta asociado a un suceso de un punto,
Tipo de punto: Es una forma de clasificar los puntos relacionados ya sea cambio de estado o medición fuera de los límites de rango.
con características, funcionalidad similar o relacionado a un Ejemplo de la información estructurada almacenada:
equipo físico o lógico. • Tipo de evento(entrada binaria, entrada analógica, etc.)
• Valor (on, off, 342, etc. )
Índices: Son valores numéricos para identificar un punto de un • Índice del punto.
tipo de punto. • Tiempo cuando ocurrió el evento.
El valor mínimo es 0. • Clase asignada.
Grupo: Es una forma de clasificar los tipos de datos.
Ej. Grupo 30 – Valores actuales de entradas analógicas.
Classes: (clases) El uso de este concepto es organizar eventos y
Variaciones: Ofrece una selección de formatos de codificación valores actuales en varias categorías.
para muchos de los tipos de datos. Clase 0: Se utiliza para valores medidos.
Ej. 1 – Valor entero de 32 bits con bandera. Clase 1,2 y 3: Una estrategia es asignar eventos de alta prioridad
2 – Valor entero de 16 bits con bandera. en la clase 1 y de baja prioridad clase 3.
3 – Valor entero de 32 bits sin bandera. • Otra estrategia es asignar eventos de un tipo por clase, ej.
4 – Valor entero de 16 bits sin bandera. eventos binarios en clase 1, eventos analógicos clase 2.
5 – Valor de punto flotante de 32 bits con bandera. • U otra estrategia apropiada a la necesidades de la aplicación.
6 – Valor de punto flotante de 64 bits con bandera.
← 2 bytes → ← 4 bytes →
Campo CON (1 bit), Indica que el receptor debe de confirmar la recepción del
Application control mensaje para verificar la recepción del fragmento antes de enviar cualquier
mensaje de solicitud de otra índole.
CON = 0, Mensaje sin confirmación.
bit # 7 6 5 4 3 2 1 0
CON = 1, Mensaje con confirmación.
Campos FIN FIR CON UNS SEQUENCE ¿Cuando se usa?:
• La estación remota debe de poner el bit en 1 cuando el mensaje contiene
datos de eventos, para confirmar la recepción y poder eliminar del buffer los
Campo FIR (1 bit)
eventos enviados.
FIN = 0, No es el primer fragmento.
• Cuando el mensaje de respuesta es multi-fragmentos para una transmisión
FIN = 1, Primer fragmento.
segura. El último fragmento es con el bit en 0.
Campo FIN (1 bit) • La estación remota transmite mensaje de respuesta no solicitada.
FIN = 0, No es el ultimo fragmento. Nota: EL Maestro nunca pedirá confirmación en los mensajes de solicitud.
FIN = 1, Último fragmento. Práctica obsoleta.
Campo SEQ (4 bits), Se usa para Campo UNS (1 bit), Indica respuesta no solicitada o confirmación de
verificar la recepción ordenada respuesta no solicitada.
de los mensajes. UNS = 0, Mensaje asociado a una solicitud del maestro.
Rango: 0 - 15. UNS = 1, Mensaje de respuesta no solicitada.
Tabla de códigos de solicitud
Function code
Código Nombre Descripción
0(0x00) CONFIRM Maestra envía confirmación de recepción de
Se utiliza para identificar el propósito del mensaje.
fragmento.
•Para mensajes de solicitud del maestro utiliza un rango de 1 a
128. 1(0x01) READ La estación remota deberá responder datos específicos
solicitados.
•Para mensajes de respuesta de la estación remota utiliza un
rango de 129 a 255. 2(0x02) WRITE La estación remota (E.R.) deberá registrar los datos
específicos solicitados.
3(0x03) SELECT La E.R. deberá seleccionar los puntos de salida
solicitados para preparación del comando OPERATE.
bit # 7 6 5 4 3 2 1 0
4(0x04) OPERATE La E.R. activa el punto de salida anteriormente
Campos Códigos de función seleccionado.
5(0x05) DIRECT_OPERATE La E.R. activa el punto de salida solicitado. No requiere
seleccionarse.
Tabla de códigos de respuesta 6(0x06) DIRECT_OPERATE La E.R. activa el punto de salida solicitado sin confirmar
_NR a la maestra.
Código Nombre Descripción 7(0x07) IMMED_FREEZE La E.R. deberá copiar el valor actual del punto indicado
(Analog o Count) y almacenar en memoria local.
129(0x81) RESPONSE La maestra deberá que 8(0x08) IMMED_FREEZE_ Lo mismo que el punto anterior pero la E.R. no envía
el fragmento recibido es NR confirmación.
por solicitud de la misma.
9(0x09) CLEAR_FREEZE Hace lo mismo que el código 7, solo que al copiar los
130(0x82) UNSOLICITED_RESPONSE La maestra deberá valores deja los puntos actuales en valor 0.
interpretar que es un
mensaje no solicitado. 10(0X0A) CLEAR_FREEZE_N Hace lo mismo que el punto anterior, solo que sin
R confirmación.
11(0X0B) FREEZE_AT_TIME La E.R. deberá copiar la estampa de tiempo y
almacenar en memoria.
12(0X0C) FREEZE_AT_TIME Hace lo mismo que el código 11, pero sin confirmar.
_NR
20(0x14) ENABLE_UNSOLICI Habilita a la E.R. transmitir mensajes no solicitados de
TED puntos especificos
21(0x15) DISABLE_UNSOLIC La E.R. deshabilita la transmisión de mensajes no
ITED solicitados.
22(0x16) ASSIGN_CLASS La E.R. deberá asignar los eventos generados de los
puntos especificados en una clase.
Indicaciones Internas
•El campo indicaciones internas aparece en
los mensajes de respuesta . Son 2 bytes. First Octet Second Octet
•Sirve para indicar el estados y condiciones (1 byte) (1 byte)
de error de la estación remota.
Indicaciones del primer octeto
Se utiliza una referencia para indicar un bit de las indicaciones internas.
Donde: IIN – Indicaciones internas. Bit Nombre Descripción
X – Numero de octecto.
b - Numero de bit. IIN1.0 ALL_STATIONS Maestra envía mensaje a todas
Ej. IIN1.0 – Indicación interna del primer octeto del bit 0. las estaciones remotas con
IIN2.6 – Indicación interna del segundo octeto del bit 6. direcciones 0xFFFF, 0xFFFE,
0xFFFD. BroadCast.
IIN1.1 CLASS_1_EVENTS Indica que existen eventos en la
Indicaciones del segundo octeto clase 1. Para que la maestra los
Bit Nombre Descripción solicite.
IIN2.0 NO_FUNC_CODE La E.R. activa el bit cuando no soporta IIN1.2 CLASS_2_EVENTS Indica que existen eventos en la
_SUPPORT un código de función solicitado por la clase 2. Para que la maestra los
maestra. solicite.
IIN1.3 CLASS_3_EVENTS Indica que existen eventos en la
IIN2.1 OBJECT_UNKNOWN Se activa cuando no se maneja dicho clase 3. Para que la maestra los
objeto de ese nivel de DNP. solicite.
IIN2.2 PARAMETER_ERROR Se activa cuando se solicitan puntos IIN1.4 NEED_TIME La E.R. requiere sincronización
fuera de rango, incluso cuando existen de estampa de tiempo de la
puntos disponibles. O no se puede maestra.
analizar el fragmento
IIN1.5 LOCAL_CONTROL La E.R. indica falla de ejecución
IIN2.3 EVENT_BUFFER Se activa cuando no existe mas espacio de comando solicitado con este
_OVERFLOW en buffer de los eventos y se estén bit ya que esta en modo local.
perdiendo.
IIN1.6 DEVICE_TROUBLE La E.R. indica que se encuentra
en condiciones anormales.
IIN2.4 ALREADY_EXECUTING Existe un comando en ejecución
IIN1.7 DEVICE_RESTART La E.R. indica reinicio del
IIN2.5 CONFIG_CORRUPT Si la solicitud de configuración no es
sistema por cualquier razón.
válida.
Para poner el bit en 0, la
IIN2.6 RESERVED_2 maestra debe de enviar un
mensaje g80v1 e índice 7.
IIN2.7 RESERVED_1
Solicitud enviada Fragmento
sin esperar recibido no
respuesta esperado
Idle
Solicitud enviada
Fragmento recibido Esperando respuesta
FIR =1,FIN =1, SEQ=n Tiempo de espera de
O respuesta vencido
FIR =1,FIN =x, SEQ!=n Fragmento
recibido FIR =0
Fragmento recibido
FIR =1,FIN =0, SEQ=n
-Fragmento recibido
-- Todas las demás
Fragmento recibido
condiciones que no
FIR =0,FIN =0, SEQ=n+1
son del estado
O
Assembly “Assembly”
FIR ,FIN,SEQ igual al
fragmento anterior
FIR=0,
FIN=0,
SEQ=+1
StartUp
Poleo Integral
FirstUR
Primer Fragmento No
solicitado recibido
Idle
Fragmento No
solicitado recibido
Objetos nivel 3
GRUPO VARIACION CODIGO DE FUNCION QUALIFIER RESPUESTA RESPUESTA
(CALIDAD) VARIACIÓN QUALIFIER
1 – BI 0, 1, 2 READ, 00, 01, 06 1, 2 00, 01
ASSIGN_CLASS(Var 0)
2 - BI eventos 0, 1, 2, 3 READ 06, 07, 08 1,2,3 07, 08
10 - BO 0, 1, 2 READ, 00, 01, 06 1, 2 00, 01
ASSIGN_CLASS(Var 0)
12 – CMD BI 0, 1 SELECT, OPERATE, DIRECT_OP, 17, 28 1 -
DIRECT_OP_NoACK,
ASSIGN_CLASS(Var 0)
20 - Contador 0, 1, 2, 5, 6 READ, IMMEZED_FREEZE, 00, 01, 06 1, 2, 5, 6 00, 01
IMMEZED_FREEZE_NR,
FREEEZE CLEAR, FREEEZE
CLEAR_NR
21 –Contadores 0, 1, 2, 9, 10 READ, 00, 01, 06 1, 2, 9, 10 00, 01
congelados ASSIGN_CLASS(Var 0)
22 – Contadores 0, 1, 2 READ 06, 07, 08 1,2 07, 08
eventos
23 – Contadores 0, 1, 2 READ 06, 07, 08 1,2 07, 08
congelador chan.
30 - AI 0, 1, 2, 3, 4 READ, 00, 01, 06 1, 2, 3, 4 00, 01
ASSIGN_CLASS(Var 0)
32 –AI eventos 0, 1, 2 READ 06, 07, 08 1, 2 17, 28
7 6 5 4 3 2 1 0
Prefijo del
Res Rango
objeto
Calificador
SOL_CONFIRM_TIMEOUT
BROADCAST_FRAG_RCVD Idle
RESTART
FIRST_FRAG_RCVD UNSOL_TRIGGER
NEW_FRAG_RCVD
REPEAT_FRAG_RCVD (compare = no)
DEFERRED_READ_EXISTS
UNSOL_CONFIRM_
TIMEOUT_DEFER
No No Resp or Si
txCON = 0
No Resp or Si
No
txCON = 0
Si
Si
Response ECSN = NE
NEW_FRAG_RCVD transmitted
REPEAT_FRAG_RCVD
Wait
with txCON No
(compare = no) =0 Unsolicited
MATCHING_UNSOL_
CFM_RCVD
Confirm
MATCHING_SOL_ UNSOL_CONFIRM_TI
CFM_RCVD No MOUT_NO_DEFER
Wait
MATCHING_SOL_CFM_RCVD
Solicited NON-MATCHING_SOL_CFM_RCVD NON-
Confirm MATCHING_UNSOL_CFM_RCVD
MATCHING_SOL_CFM_RCVD BROADCAST_FRAG_RCVD
READ_REQ_RCVD NON_RD_REQ_RCVD
NON-MATCHING_SOL_CFM_RCVD REPEAT_NON_RD_RCVD
UNSOL_CFM_RCVDR SOL_CONFIRM_TIMEOUT
EPEAT_FRAG_RCVD (compare = yes) UNSOL_CONFIRM_TIMOUT_NO_DEFER