Vistas de página en total

viernes, 15 de noviembre de 2013

Protocolo DH+ Network

    Debido a mi formación trabajo con  automática y a la necesidad de comunicar con autómatas concretos, el protocolo que implementé inicialmente para mis comunicaciones fue del DH+ de Allen- Bradley. Como este fue el primero que implementé, fue el que luego utilicé para mis desarrollos y el que ahora pongo.

    Es por esto, que cuando tuve que hacer cualquier comunicación entre robots y autómatas, robots y ordenadores, o ordenadores y placas con  procesadores, siempre usé este.
  
    Como no se trata de un protocolo x-modem literal, pongo un enlace en el que se explica este protocolo.
    En las librerías incorporo hasta el nivel de enlace al nivel de transporte. El resto de niveles, aunque se explican en el enlace para Allen-Bradeley, no los implementaré, pues se trata de ordenes específicas. Cada uno podrá usar los comandos que desee comunicar con sus tarjetas o equipos.




Comenzaré por lo tanto por colocar como siempre la cabecera para la llamada a las funciones.


DH.MAC
; Copyright (C) 2013  José Ángel Moneo Fernández

;    This program is free software: you can redistribute it and/or modify
;    it under the terms of the GNU General Public License as published by
;    the Free Software Foundation, either version 3 of the License, or
;   (at your option) any later version.

;    This program is distributed in the hope that it will be useful,
;    but WITHOUT ANY WARRANTY; without even the implied warranty of
;    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;    GNU General Public License for more details.

;    You should have received a copy of the GNU General Public License
;    along with this program.  If not, see <http://www.gnu.org/licenses/>.

 ; CABECERA PROTOCOLO  Data Highway II (DH+) network

include rs232.mac

;caracteres de comunicacion
SOH EQU 1      ;ENCABEZAMIENTO
STX EQU 2      ;COMIENZO TEXTO
ETB EQU 17H    ;FINAL BLOQUE (QUEDAN MAS)
ETX EQU 3      ;FINAL DE MENSAJE
ACK EQU 6      ;RECONOCIMEINTO
NACK EQU 15H   ;NO RECONOCIDO
DLE EQU 10H    ;CONTROL
ENQ EQU 5      ;SOLICITUD DE RESPUESTA
EOT EQU 4      ;FIN TRANSMISION
SYN EQU 16H    ;ESPERA SINCRONICA
CAN EQU 1BH    ;CANCELAR, ESC

; envía una cadena de datos por puerto serie mediante
; protocolo DH+
Send_DH macro nodo,datos,longitud
ifndef _Send_DH
    extrn _Send_DH:near
endif
        mov ax,nodo
        push ax
        lea ax,datos
        push ax
        mov ax,longitud
        push ax
        call _Send_DH
       
 endm

; recibe una cadena de datos por puerto serie mediante
; protocolo DH+
; devuelve en el mensaje en el buffer  datos
; dh= logitud del mensaje
; dl= nodo;   el nodo que lo envía en dl   0-255
; al=estado   Si al=0ffh error, al=0 ok
Recive_DH macro datos
ifndef _Recive_DH
    extrn _Recive_DH:near
endif
        lea ax,datos
        push ax
        call _Recive_DH
   
 endm
 

No hay comentarios:

Publicar un comentario

Si tienes algún comentario, duda o sugerencia, o si quieres aportar algún código creado a partir de las librerías expuestas aquí, por favor, indícamelo.