ES2222194T3 - Controlador logico programable con capacidad de deteccion de impulsos de corta duracion. - Google Patents
Controlador logico programable con capacidad de deteccion de impulsos de corta duracion.Info
- Publication number
- ES2222194T3 ES2222194T3 ES00917965T ES00917965T ES2222194T3 ES 2222194 T3 ES2222194 T3 ES 2222194T3 ES 00917965 T ES00917965 T ES 00917965T ES 00917965 T ES00917965 T ES 00917965T ES 2222194 T3 ES2222194 T3 ES 2222194T3
- Authority
- ES
- Spain
- Prior art keywords
- plc
- controller
- circuit
- state
- plc controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/04—Program control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Program control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/04—Program control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/054—Input/output
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
- Electrotherapy Devices (AREA)
- Credit Cards Or The Like (AREA)
Abstract
Aparato para un controlador (100; 200) lógico programable (PLC) que incluye un circuito (508; 900; 904) de captación de impulsos para capturar un cambio en el estado de una señal de entrada hasta que dicho controlador (100; 200) PLC haya detectado dicho cambio de estado, incluso cuando un cambio en dicha señal de entrada tenga lugar entre ciclos de barrido de dicho controlador (100; 200) PLC, comprendiendo dicho circuito (508; 900; 904) de captación de impulsos: una entrada (418) para recibir dicha señal de entrada; y un circuito (508; 900; 904) que ajusta un indicador que indica que dicha señal de entrada ha cambiado de estado; en el que dicho circuito (508; 900; 904) de captación de impulsos ignora cualquier cambio que ocurra en dicha señal de entrada mientras dicho indicador esté en su estado ajustado, reteniendo un estado de señal de entrada capturado hasta que el controlador PLC haya detectado dicho cambio de estado, incluso si un cambio en dicha señal de entrada tiene lugar entre ciclos de barrido de dicho controlador (100; 200) PLC, y caracterizado porque comprende además un circuito (510) de interrupción de borde que interrumpe dicho controlador (100; 200) PLC, suspendiendo con ello la ejecución normal del programa de dicho controlador (100; 200) PLC.
Description
Controlador lógico programable con capacidad de
detección de impulsos de corta duración.
La presente invención se refiere a un controlador
lógico programable (PLC).
Los controladores lógicos programables (PLC) son
un desarrollo relativamente reciente en la tecnología de control
del proceso. Como una parte del control del proceso, un controlador
PLC se utiliza para controlar señales de entrada procedentes de una
variedad de puntos de entrada (sensores de entrada) que comunican
eventos y condiciones que tienen lugar en un proceso controlado.
Por ejemplo, un PLC puede controlar condiciones de entrada tales
como la velocidad del motor, la temperatura, la presión, el flujo
volumétrico y similares. En una memoria dentro del controlador PLC
se almacena un programa de control para indicarle al controlador
PLC qué acciones tomar al encontrar determinadas señales de entrada
o condiciones. Como respuesta a estas señales de entrada
proporcionadas por sensores de entrada, el controlador PLC deduce y
genera señales de salida que se transmiten, a través de puntos de
salida del controlador PLC, a varios dispositivos de salida, tales
como accionadores y relés, para controlar el proceso. Por ejemplo,
el controlador PLC emite señales de salida para aumentar o reducir
la velocidad de una cinta transportadora, girar el brazo de un
robot, abrir o cerrar un relé, aumentar o reducir la temperatura,
así como otras muchas funciones de control posibles demasiado
numerosas para enumerarlas.
Los puntos de entrada y salida a los que se ha
hecho referencia anteriormente están asociados normalmente con
módulos de entrada y módulos de salida, respectivamente. En este
documento, a los módulos de entrada y módulos de salida se hace
referencia en conjunto como a los módulos E/S (entrada - salida). De
forma alternativa, los expertos en la técnica se refieren a este
tipo de módulos E/S como tarjetas E/S o placas E/S. Estos módulos
E/S pueden conectarse normalmente en ranuras correspondientes
dispuestas en una placa posterior de conexiones del controlador
PLC. Las ranuras están acopladas juntas mediante un bus principal,
que acopla cualquier módulo E/S conectado en las ranuras con una
unidad central de procesamiento (CPU). La propia CPU puede estar
situada sobre una tarjeta que puede conectarse en una ranura de uso
exclusivo en la placa posterior de conexiones del controlador
PLC.
La figura 36 muestra un sistema típico de
controlador lógico programable convencional como sistema 3610. El
sistema 10 incluye un controlador 3615 lógico programable anfitrión
acoplado mediante un bus 3620 de campo a una unidad 3625 de
interfaz del bus. La unidad 3625 de interfaz del bus acopla e
interconecta el bus 3620 de campo a un bus 3630 local que incluye
una pluralidad de bloques 3635 con terminales E/S. Los bloques 3635
con terminales E/S están acoplados a módulos 3640 E/S
correspondientes, tal como se muestra en la figura 1.
En el sistema 3610, se lleva a cabo el
procesamiento informático por medio del controlador 3615 lógico
programable anfitrión. Expresado de otra manera, se detectan las
condiciones en los módulos 3640 E/S y se derivan de las mismas los
datos de entrada. Los datos de entrada se transfieren a través de la
unidad 3625 de interfaz del bus y el bus 3620 de campo al
controlador 3615 lógico programable anfitrión. El controlador 3615
lógico programable anfitrión actúa sobre los datos de entrada de
acuerdo con un programa de control almacenado en el controlador PLC
3615 anfitrión. El controlador 3615 lógico programable anfitrión
procesa los datos de entrada y produce datos de salida como
respuesta a los mismos. Los datos de salida se transfieren a través
del bus 3620 de campo, la unidad 3625 de interfaz del bus y el bus
3630 local a uno o varios módulos 3640 E/S. Como respuesta a los
datos de salida, el módulo E/S que recibe los datos de salida
controla un dispositivo de salida acoplado al módulo E/S. Los
bloques con terminales E/S se proporcionan para acoplar los módulos
3640 E/S a la unidad 3625 de interfaz del bus.
El controlador PLC puede estar dispuesto en una
red maestro / esclavo, tal como la que se muestra en la figura 37a.
En la figura, el sistema de control maestro / esclavo incluye un
controlador (M) PLC maestro y una pluralidad de unidades
(R1-Rn) RSU esclavas remotas. Tal como se muestra en
el presente documento, el controlador (M) PLC maestro, que incluye
un controlador PLC maestro, un enlace de datos, y un módulo E/S,
controla sus propios puntos de conexión E/S empleando un programa y
un parámetro de comunicación que están ajustados por un usuario, y
también controla los puntos de conexión E/S correspondientes para
las unidades R1-Rn esclavas remotas. Cada una de la
pluralidad de unidades (R1-Rn) RSU tiene al menos un
módulo E/S, y lleva a cabo la comunicación de datos con el
controlador (M) PLC maestro a través de un cable de comunicaciones
y, de forma correspondiente, controla su propio módulo E/S. Las
unidades RSU pueden ser controladores PLC que actúan como
esclavos.
Haciendo referencia a la figura 37b, el
controlador PLC y cada una de las unidades RSU incluye: un módem
3710 para establecer una comunicación entre el controlador (M) PLC
maestro y las unidades RSU a través de un cable de comunicaciones;
un módulo 3711 de recepción / transmisión para intercambiar datos
con el controlador (M) PLC maestro de acuerdo con un protocolo
predeterminado; una memoria 3712 intermedia de transmisión /
recepción para almacenar temporalmente en ella los datos para el
intercambio; una unidad 3713 de almacenamiento de datos de salida
para almacenar en ella los datos que van a transmitirse desde el
controlador (M) PLC maestro a un módulo 3716 de entrada / salida;
una unidad 3714 de almacenamiento de datos de entrada para almacenar
en ella los datos que van a transmitirse desde el módulo 3716 de
entrada / salida al controlador (M) PLC maestro; y un módulo 3715
de control de entrada / salida para controlar una transmisión de
datos entre las unidades 3713, 3714 de almacenamiento de datos y el
módulo 3716 de entrada / salida.
Durante el funcionamiento, el enlace de datos en
el controlador (M) PLC maestro es un dispositivo para vincular
datos acoplado al controlador (M) PLC maestro que pone en
funcionamiento una unidad maestra en la red vinculada, y que
obtiene una iniciativa de la comunicación de datos. El enlace de
datos es capaz de ajustar un número N máximo de unidades RSU. La
unidad RSU ajusta cada número de sí misma y del controlador (M) PLC
maestro y recibe una comunicación directamente del controlador (M)
PLC maestro para llevar a cabo con ello una transmisión de datos.
El enlace de datos en el controlador (M) PLC maestro selecciona de
forma secuencial las unidades (R1-Rn) RSU y lleva a
cabo una operación de recepción / transmisión de datos. Por
ejemplo, cuando los datos emitidos desde el controlador (M) PLC
maestro se aplican a través del cable de comunicaciones y el módem
3710, a la unidad (R1) RSU, los datos aplicados pasan a través de la
memoria 3712 intermedia de recepción / transmisión y el módulo 3711
de recepción / transmisión, y se almacenan en la unidad 3713 de
almacenamiento de datos de salida. Los datos almacenados en la
unidad 3713 de almacenamiento de datos de salida se emiten al
módulo 3716 de entrada / salida de acuerdo con el control del
módulo 3715 de control de entrada / salida. Los datos objetivo del
control externo, leídos del módulo 3716 de entrada / salida de la
unidad R1 remota esclava, se almacenan en la unidad 3714 de
almacenamiento de datos de entrada de acuerdo con el control del
módulo 3715 de control de entrada / salida. Los datos almacenados
en la unidad 3714 de almacenamiento de datos de entrada se
transmiten, a través de la memoria 3712 intermedia de recepción /
transmisión y el módulo 3711 de recepción / transmisión, al
controlador (M) PLC maestro.
El documento US 4750150 describe un controlador
lógico programable (PLC) en el que está dispuesto un circuito de
captación de impulsos para capturar un cambio en el estado de un
impulso de entrada hasta que el controlador PCL detecte un cambio
de estado. El circuito de captación de impulsos incluye un indicador
que se contempla de tal manera que, si el indicador está ajustado en
un estado, el circuito de captación de impulsos ignora cualquier
cambio. Por tanto, este tipo de controlador PLC es bastante
inflexible.
La presente invención proporciona nuevas
características que mejoran y amplían la capacidad del controlador
PLC convencional.
Un objeto de la presente invención es mejorar y
ampliar la capacidad del controlador PCL.
Según la invención, en un primer aspecto se
proporciona un aparato expuesto en la reivindicación independiente
de aparato.
Según un segundo aspecto de la invención, se
proporciona un método tal como se expone en la reivindicación
independiente de método.
La figura 1 es una vista en perspectiva del
controlador PLC de la presente invención;
la figura 2 es un diagrama de bloques del
controlador PLC;
la figura 3 es un diagrama esquemático del
controlador PLC;
la figura 4 es un diagrama de bloques del
circuito ASIC;
la figura 5 es un diagrama de bloques del bloque
de entrada;
la figura 6a es un diagrama de bloques del
circuito de filtrado de entrada;
la figura 6b es una tabla de verdad del circuito
de filtrado de entrada;
las figuras 6c y d son diagramas de bloques del
circuito de filtrado de entrada;
la figura 7 es una tabla de tiempos de
retraso;
la figura 8 es una tabla de temporización del
ciclo de barrido;
la figura 9 es un diagrama de bloques del
circuito de captación de impulsos;
la figura 10 es una tabla de temporización del
ciclo de barrido;
la figura 11 es un diagrama de temporización del
ciclo de barrido;
la figura 12a es una tabla de verdad para el
circuito de captación de impulsos;
la figura 12b es una tabla para el registro de
habilitación del circuito de captación de impulsos;
la figura 12c es una tabla para los registros
reservados del circuito de captación de impulsos;
la figura 12d es una tabla para el registro del
estado de los puntos de entrada del circuito de captación de
impulsos;
la figura 12e es un diagrama de bloques para el
circuito de captación de impulsos;
la figura 12f es un diagrama de bloques para el
circuito de captación de impulsos;
la figura 13 es un diagrama de bloques del bloque
de salida;
la figura 14a es un diagrama de bloques del
bloque de salida de impulsos;
la figura 14b es una tabla de registros del
bloque de salida de impulsos;
la figura 15 es un diagrama de estados del bloque
de salida de impulsos;
la figura 16 es un listado de códigos de
software;
la figura 17 es un diagrama de estados del bloque
de salida de impulsos;
la figura 18 es un listado de códigos de
software;
la figura 19 es una tabla para operaciones a alta
velocidad;
la figura 20 es un diagrama de bloques de la
ranura E/S de expansión;
la figura 21 es una tabla para la ranura E/S de
expansión;
la figura 22 es un diagrama de bloques del módulo
E/S de expansión;
la figura 23 es una tabla de componentes;
la figura 24 es una tabla de niveles;
la figura 25 es un diagrama de temporización del
ciclo de lectura;
la figura 26 es un diagrama de temporización del
ciclo de escritura;
la figura 27 es una tabla de bits de paridad;
la figura 28 es una tabla de tipos de CPU;
la figura 29 es una tabla de interrupciones;
la figura 30a es una diagrama de flujos del
puerto libre;
las figuras 30b, c y d son tablas de definiciones
de bits SM;
la figura 30e es una tabla de definiciones de
puertos;
la figura 31 es un diagrama de flujos del
protocolo del módem;
la figura 32a es una tabla de funciones de
control;
la figura 32b es un diagrama de flujos de la
instrucción oculta;
la figura 33a es una tabla de funciones de
control;
la figura 33b es un diagrama de flujos de la
llamada de función del sistema;
la figura 34a es una tabla de instrucciones del
STL;
la figura 34b es un diagrama del sistema de la
función del STL;
la figura 34c es un diagrama de flujos de la
función del STL;
la figura 34d es una tabla de expresiones
booleanas;
la figura 35a es una tabla de parámetros del
controlador PLC;
la figura 35b es una vista en perspectiva del
controlador PLC y el módulo E/S de expansión;
la figura 36 es un diagrama de bloques de un
controlador PLC;
la figura 37a es un diagrama de bloques de un
sistema maestro / esclavo; y
la figura 37b es un diagrama de bloques de las
comunicaciones en el maestro / esclavo.
El controlador 100 lógico programable (PLC)
ejemplar de la presente invención se muestra en la figura 1.
La figura ilustra las capacidades de entrada /
salida (E/S) del controlador 100 PLC. El usuario controla el
controlador 100 PLC mediante el funcionamiento del potenciómetro de
conmutación marcha / parada y el conector 104 de expansión E/S. Los
diodos 106 emisores de luz (LED) de estado indican el estado del
controlador 100 PLC. Se proporciona un puerto 108 de cartuchos para
recibir un cartucho para ampliar la función del controlador 100 PLC
que incluye, por ejemplo, ampliar la memoria. Se proporcionan
diodos 110 LED E/S para indicar el estado de las clavijas de
entrada / salida del controlador 100 PLC. Un puerto 112 de
comunicaciones acopla el controlador 100 PLC a componentes
externos, que incluyen, por ejemplo, otros controladores PLC. El
puerto de comunicaciones puede utilizarse para conectar el
controlador 100 PLC a otros controladores PLC en una relación
maestro - esclavo. El puerto 112 de comunicaciones también puede
utilizarse para la conexión, por ejemplo, a un ordenador (tal como
un ordenador de red o un ordenador personal). El controlador 100
PLC también puede conectarse a Internet a través del puerto 112 de
comunicaciones, por medio de un módem o un dispositivo de protocolo
de comunicaciones equivalente. El conector 114 de hilos del usuario
le permite al usuario conectar externamente el controlador 100 PLC
a dispositivos tales como motores y otros dispositivos
periféricos.
En la figura, el controlador 100 PLC se muestra
adyacente a una expansión E/S que amplía las capacidades de entrada
/ salida del controlador 100 PLC. El módulo de expansión, así como
el controlador 100 PLC, incluye enclavamiento(s) 116 de
montaje en carril DIN y una ubicación 118 de montaje en el panel
para fijar el controlador 100 PLC y la expansión 102 E/S a un
accesorio de montaje adecuado.
Se apreciará que el controlador 100 PCL de la
presente invención puede incluir múltiples disposiciones y
configuraciones de controladores PLC, varios módulos E/S de
expansión, y accesorios que incluyen cartuchos de memoria,
cartuchos de reloj, cables de cartuchos de batería o ensamblajes de
interruptor del simulador E/S. Está invención tratará una parte de
las posibles configuraciones relevantes para los detalles de los
distintos aspectos descritos en el presente documento y los
profesionales reconocerán al instante estas configuraciones
entendiendo la invención descrita en el presente documento.
El controlador PLC de la presente invención se
clasifica como un controlador PLC Micro dado su pequeño tamaño
físico. A pesar de que el controlador PLC es de un tamaño
físicamente pequeño, incluye muchas características que lo hacen
tan potente como (si no más potente que) controladores PLC
físicamente más grandes. La figura 1 muestra un dibujo del
controlador PLC y un módulo E/S con posibles dimensiones. El diseño
del controlador 100 PLC se describe haciendo referencia a las
figuras 39a y b.
La figura 2 muestra un diagrama de bloques 200
del controlador PLC de la presente invención. El diagrama de
bloques mostrado es para un controlador PLC con una alimentación
202 de potencia CA integrada para proporcionar potencia. Una unidad
210 central de procesamiento es el núcleo del controlador 200 (100)
PLC e incluye un circuito ASIC, una memoria ROM y una memoria RAM.
Se proporciona una interfaz 212 de entrada digital para introducir
señales procedentes del cable 114 de usuario (figura 1). Una
interfaz 204 de salida digital acopla el controlador 200 PLC al
cable 114 de usuario (figura 1). Una interfaz 206 de comunicaciones
acopla el controlador 100 PLC a dispositivos externos a través de,
por ejemplo, una comunicación por bus RS-485 o token
- bus. Una interfaz 208 E/S de expansión conecta el controlador 200
PLC a una interfaz(ces) E/S de expansión a través de, por
ejemplo, un bus multiplexado de alta velocidad.
Durante el funcionamiento, la alimentación 202 de
potencia CA puede proporcionar un borde de aislamiento entre la
línea CA y las salidas, tales como las salidas 24VDC y 5VDC. El
controlador PLC también puede ofrecerse con una alimentación de
potencia 24VDC. Los modelos de alimentación de potencia 24VDC no
proporcionarían este aislamiento desde 24VDC a 5 VDC. La interfaz
212 de entrada digital aísla de forma óptica el cable de usuario de
la Unidad 210 Central de Procesamiento (CPU), que incluye todas las
señales del nivel lógico. La interfaz de salida digital proporciona
un borde de aislamiento similar entre el cable de usuario y la CPU.
Este borde de aislamiento se proporciona en forma de aislamiento
óptico o a través de relés, en los que la bobina del relé está
aislada del contacto del relé. En la figura, no se muestra ningún
aislamiento entre la CPU y la interfaz de comunicaciones o la
interfaz E/S de expansión, pero puede proporcionarse. Todos los
módulos E/S de expansión proporcionan un borde de aislamiento
óptico entre el cable del usuario y las señales lógicas 5DVC. La
CPU 210 está compuesta del circuito ASIC (Circuito Integrado de
Aplicaciones Específicas), que incluye el microprocesador, la
memoria RAM y la memoria ROM. La memoria ROM contiene el sistema
operativo para el controlador 200 PLC y puede ser una memoria EPROM
o una memoria FLASH EPROM, dependiendo del modelo del controlador
PLC. La memoria RAM se utiliza para el almacenamiento de datos del
sistema operativo y para el almacenamiento temporal, así como para
almacenar el programa del usuario que se ha compilado en código
ejecutable.
En la figura 3 se muestra un diagrama de bloques
de la Unidad 300 H/W Central de Procesamiento (CPU). Las conexiones
de la CPU mostrada no se describen de forma detallada en el
presente documento. Las conexiones particulares de interés en este
caso son los circuitos de entrada en la placa 302 E/S, el bus 304
E/S de expansión y el circuito de salida en las conexiones de la
placa 306 E/S. En cualquier caso, la figura 3 ilustra estos detalles
con una claridad esquemática suficiente de modo que el profesional
no tendrá ningún problema en entender los detalles a partir de una
revisión de la figura. Ha de entenderse que la figura 3 únicamente
ilustra una disposición y que los expertos en la técnica
comprenderán rápidamente cómo implementar otras disposiciones
equivalentes, concretamente a partir de la presente memoria.
La CPU 300 y las conexiones están dispuestas como
un circuito ASIC mostrado de forma esquemática en la figura 4. Tal
como se muestra, el circuito ASIC incluye un microprocesador 406
(denominado "núcleo"), unidad 402 de decodificación de
direcciones y un circuito lógico de conversión. Se proporcionan dos
transmisores - receptores 424, 426 UART (Universal Asynchronous
Receiver Transmitter, Transmisor Receptor Universal Asíncrono) que
realizan el circuito electrónico que conforma el puerto serial. Los
transmisores - receptores UART convierten bytes paralelos
procedentes de la CPU en bits serie para la transmisión, y
viceversa. Sin embargo, son posibles otras disposiciones para la
comunicación. Existen circuitos 418 de acondicionamiento de entrada
digital, contadores 410 de alta velocidad, conjuntos de circuitos
420 de salida de trenes de impulsos, conjuntos de circuitos 414 del
potenciómetro, conjuntos de circuitos 430 de vigilancia y conjuntos
de circuitos 428 de reajuste. Se proporciona una interfaz 404 de
bus. La unidad E/S de expansión se indica con 422. Se proporciona
una interfaz de comprobación para comprobar el controlador 100 PLC.
El circuito de distribución de la potencia se muestra como el
circuito 432. La memoria se muestra como memoria 408 RAM interna.
Una unidad 412 de control de las interrupciones trata las
interrupciones para la CPU 406.
El controlador 100 PLC proporciona un medio para
que los usuarios creen programas específicos para controlar
aplicaciones que, al ser ejecutados por el controlador PLC, dirigen
el funcionamiento de las máquinas y / o procesos empleados en la
fabricación de una amplia variedad de productos. De esta manera, los
controladores PLC son similares a otros controladores PLC y el
profesional entenderá inmediatamente los aspectos más mundanos de
la invención con este tipo de comprensión básica de los
controladores PLC. A pesar de la similitud de uso y funcionamiento
de los controladores PLC, existen muchas características y
funciones únicas que se combinan en el controlador 100 PLC de la
presente invención que amplían y mejoran esta utilidad para el
usuario, tal como se describirá en el presente documento.
Se describirá la unidad 418 de puntos de entrada
digital. Tras la conversión de todas las señales (I0.0 a I1.5)
digitales de entrada a una señal compatible, por ejemplo, una señal
+5V, y aislamiento del cable del usuario, ésta se alimenta a la
unidad 418 de puntos de entrada digital del circuito ASIC. En la
figura 5 se muestra un diagrama de bloques para los puntos
IB0[2:0] de entrada que ilustra el conjunto de funciones
proporcionadas por la unidad 500 (418, figura 4) de puntos de
entrada digital.
Esta unidad 500 lleva a cabo un número de
funciones en los puntos de entrada digital conectados desde la
aplicación del usuario a la CPU. Esta unidad filtra los puntos de
entrada y proporciona acceso al estado filtrado de estos puntos. En
cada punto de entrada se proporciona una función de captación de
impulsos para permitir opcionalmente la captura de impulsos de corta
duración. Se proporciona una función de interrupción del borde para
generar interrupciones cuando se presenten transiciones de flanco
ascendente y descendente en determinados puntos de entrada. Se
utilizan contadores de alta velocidad para contar eventos que
tienen lugar de forma demasiado rápida para la velocidad de barrido
de la CPU.
Tal como se muestra en la figura 5, un
filtro(s) 506_{1-n} de entrada digital
proporciona un filtro configurable por software. Es decir, el
controlador PLC ajusta los parámetros del filtro que controlan la
función de filtrado de acuerdo con el software ejecutado por el
controlador PLC. En al menos una disposición, pueden configurarse
por medio del software hasta al menos 8 valores de filtro, desde
0,2 mseg hasta 12,8 mseg, por ejemplo. La implementación del filtro
es posible, por ejemplo, con un contador ascendente / descendente
de 4 bits en cada punto de entrada. Un circuito(s)
508_{1-n} de captación de impulsos permite la
captura de una transición de flanco ascendente o descendente de la
entrada filtrada hasta que el software tenga una oportunidad de
leer el valor. Se proporciona habilitación / deshabilitación
independiente de la función de captación de impulsos para cada punto
de entrada. Un circuito(s) 510_{1-n} de
interrupción del flanco, cuando está habilitada esta función,
genera una interrupción al producirse una transición de flanco
ascendente y / o de flanco descendente en, por ejemplo, hasta cuatro
puntos de entrada. Se soporta(n)
\hbox{contador(es)} 514 (516) de alta velocidad,
en este caso seis contadores de alta velocidad (HSC), incluyendo
cada uno, por ejemplo, un contador ascendente / descendente de 32
bits y un registro de comparación de 32 bits. El registro de 32 bits
captura el valor del contador de manera que pueda ser leído por el
software. Cada uno de los contadores y registros de comparación
pueden ser cargados por el software. Cuatro de los contadores HSC,
por ejemplo, pueden tratar la sincronización en dos fases. Los
otros dos contadores HSC únicamente admiten la sincronización en una
fase. Cada uno de los contadores HSC puede generar interrupciones
al darse una igualdad entre contadores y registros de comparación,
al producirse una condición de cambio de dirección y al afirmarse
la entrada de reajuste externa del HSC.
La implementación de los filtros de entrada en
los conjuntos de circuitos ASIC anteriores consume demasiadas
compuertas. En el circuito ASIC de la presente invención, existe
una necesidad de proporcionar funcionalidad compatible sin consumir
demasiadas compuertas. La siguiente es una descripción, en relación
con las figuras 6a a 6d y 7, que implementa filtros de entrada con
considerablemente menos lógica en el circuito ASIC presente al
emplear la tabla de verdad de la figura 6b.
El circuito ASIC proporciona un filtrado de
entrada digital para, por ejemplo, catorce puntos de entrada
digital, tal como se muestra en las figuras 6a y 6b. En la figura
6a, el circuito 600 (506, figura 5) de filtrado de entrada digital
incluye la entrada 602, el circuito 604 de filtrado de entrada,
tiempo 606 de retraso seleccionado y la salida 608. Los tiempos de
retraso de filtrado ajustados por el tiempo 606 de retraso
seleccionado pueden configurarse mediante software para, por
ejemplo, uno de siete valores diferentes. Los tiempos de retraso de
filtrado se seleccionan a través de registros ajustables internos al
circuito ASIC. La siguiente tabla de la figura 7 describe la
posible relación entre el valor escrito al registro y el tiempo de
retraso correspondiente seleccionado. Por supuesto, también son
posibles otras relaciones.
Cada filtro de entrada digital imita el
funcionamiento de un capacitor que está siendo accionado por una
fuente de corriente constante cuya tensión de entrada es detectada
por un comparador con una gran cantidad de histéresis. La
equivalencia digital de este circuito analógico se implementa como
un contador ascendente / descendente de 4 bits cuya dirección de
cómputo es controlada por el estado del punto de entrada. La
frecuencia a la que se sincroniza el contador se determina a partir
de los valores de selección escritos en los registros internos al
circuito ASIC mediante software. El Reloj Maestro de 1 MHz se
utiliza como la base de tiempos para cada filtro, de tal manera que
su funcionamiento es independiente de la frecuencia del reloj del
sistema. El tiempo de retraso se calcula a partir de la
fórmula:
tiempo de retraso de filtrado
digital = 12 * (periodo del reloj de entrada
seleccionado
del contador ascendente /
descendente)
La tabla de verdad de la figura 6b define el
funcionamiento del circuito equivalente digital en el que el
resultado proporcionado por el filtro es el valor 608 (FIB_{y.x})
de salida. Un experto en la técnica comprenderá inmediatamente que
los detalles del conjunto de circuitos pueden implementarse a
partir de la tabla de la figura 6b, utilizando la ampliamente
conocida lógica booleana. En la figura 6 se muestra el conjunto de
circuitos de ejemplo.
Para cada grupo de, por ejemplo, cuatro entradas,
un multiplexor 610 emite uno de ocho relojes que se utiliza para
ajustar el tiempo de retraso del filtrado de entrada. El reloj
seleccionado por el multiplexor 610 pone en funcionamiento un
contador 612 ascendente / descendente de cuatro bits (uno para cada
una de las entradas en cada grupo de cuatro entradas). La entrada
física controla la dirección (ascendente / descendente) del
contador de cuatro bits. Si la entrada está ACTIVA ("1"
lógico), el contador cuenta de forma ascendente. Si la entrada está
DESACTIVADA ("0" lógico), el contador cuenta de forma
descendente. La secuencia de cómputo ascendente del contador es la
siguiente:
0, 1, 2, ..., 13, 14, 15, 15, 15, ... 15
La secuencia de cómputo descendente del contador
es la siguiente:
15, 14, 13, ... 2, 1, 0,0,0, ... 0
Tal como se indica mediante la secuencia de
cómputo, el contador no dará la vuelta al contar hacia arriba o al
contar hacia abajo.
El retraso 614 de filtrado está diseñado para
imitar el funcionamiento de una fuente de corriente constante que
pone en funcionamiento un capacitor cuya tensión es detectada por
un comparador con una gran cantidad de histéresis. En este caso,
para detectar una transición de entrada de desactivado a activado,
el contador debe alcanzar un cómputo de 12. Una vez que se ha
alcanzado este cómputo, se activará la salida y permanecerá activa
hasta que se alcance el valor umbral para una transición de entrada
de activada a desactivada en el cómputo de 3. El circuito lógico
620 de compuerta nand mostrado en la figura implementa estos
valores umbral.
Los valores umbrales son simétricos en el hecho
de que se requiere 12 cómputos ascendentes o 12 cómputos
descendentes desde una condición de entrada baja o alta de estado
constante. La tabla de la figura 6d muestra un listado de los
tiempos de retado para 12 relojes en cada una de las frecuencias
suministradas al multiplexor. Por supuesto, también son posibles
otros tiempos de retraso. Capas adicionales, incluyendo cada capa
un contador 616, circuito 622 lógico de compuerta nand y un retraso
618 pueden proporcionarse para cada entrada que funcione de una
manera correspondiente a la de la capa anteriormente descrita
A continuación del circuito de filtrado de
entrada digital está un circuito de captura de impulsos (508,
figura 5). El objetivo de este circuito es capturar o bien un
cambio en el estado de entrada de alto a bajo o de bajo a alto y
mantenerlo hasta que el software del sistema operativo del
controlador PLC haya reconocido el cambio de estado. El controlador
PLC lee el estado de las entradas de un modo cíclico tanto en modo
de MARCHA como de PARADA. (La principal diferencia entre los modos
MARCHA y PARADA en el controlador PLC es que en el modo PARADA no
se ejecuta el programa de usuario, mientras que en el modo MARCHA se
ejecuta el programa del usuario). La figura 8 muestra el ciclo de
barrido del contador PLC (el ciclo se denomina normalmente el ciclo
de barrido del contado PLC o barrido simple). Tal como se muestra
en la figura 8, el ciclo de barrido del contador PLC en el modo
MARCHA lee la entrada una vez por ciclo. El mismo ciclo de barrido
sigue en el modo PARADA, pero el programa del usuario no se ejecuta
en el modo PARADA.
Dado que las entradas sólo se leen una vez por
ciclo, es posible que las entradas cambien de estado sin que el
controlador PLC detecte el cambio. Este tipo de cambios de estado
que tienen lugar demasiado rápido para que el controlador PLC los
detecte se denominan impulsos. Para evitar que el controlador PLC
deje pasar un impulso corto en una entrada, el usuario puede
habilitar una interrupción de entrada, lo que hará que se suspenda
la ejecución normal del programa mientras el controlador PLC se
ocupa de la interrupción. Este método es muy efectivo pero requiere
soporte adicional desde la CPU y emplea un tiempo de ejecución
considerable para procesar la rutina de interrupción. Por esta
razón, sólo se permite un pequeño número de interrupciones de
entrada.
El otro método es proporcionar circuitos de
captura de impulsos en cada una de las entradas integradas al
controlador PLC. Este método permite que sean capturados impulsos
poco frecuentes pero de corta duración (que avanzan rápido o lento)
y se mantengan hasta que el controlador PLC detecte el cambio en el
punto adecuado en el ciclo de barrido.
Ahora, de forma más detallada, la figura 9
ilustra el circuito 900 (508, figura 5) de captura de impulsos en
el que la entrada 902 está acoplada al circuito 904 de captura de
impulsos, se capturan de acuerdo con la señal 906 habilitada, y se
emiten 908. De esta manera, el circuito de captura de impulsos es
capaz de capturar y mantener impulsos de punto de entrada cuya
duración es mayor que el tiempo de filtrado seleccionado, pero que
es menor que el tiempo de barrido. La figura 10 muestra el problema
en el que se pierde el impulso porque el impulso tuvo lugar entre
las actualizaciones de entrada.
El software de la CPU está diseñado para leer el
estado de todos los puntos de entrada una vez por barrido de la CPU
y esta operación se denomina actualización de entrada. Tal como se
mencionó anteriormente, un impulso puede perderse si se produce
entre las actualizaciones de entrada de barridos consecutivos de la
CPU (véase el ejemplo de la figura 10). El circuito 904 de captura
de impulsos captura y mantiene este tipo de evento. En una
disposición posible, existen catorce circuitos de captura de
impulsos, uno para cada punto de entrada.
Cuando un circuito de captura de impulsos está
habilitado, se captura un cambio en el estado (bajo
\rightarrowalto o
alto \rightarrow bajo) de una entrada. Además, los cambios de la entrada se ignoran hasta que el valor capturado ha sido leído por el software durante el siguiente barrido de la CPU. Una vez que se ha leído el valor capturado, entonces el circuito es capaz de detectar nuevos cambios del estado de entrada.
alto \rightarrow bajo) de una entrada. Además, los cambios de la entrada se ignoran hasta que el valor capturado ha sido leído por el software durante el siguiente barrido de la CPU. Una vez que se ha leído el valor capturado, entonces el circuito es capaz de detectar nuevos cambios del estado de entrada.
El funcionamiento del circuito de captura de
impulsos puede describirse de forma más precisa con la tabla de
verdad para una máquina de estado asíncrono mostrada en la figura
12a. Los símbolos utilizados en esta tabla se definen
posteriormente:
PCE - Bit de activación del circuito de captura
de impulsos
I - Señal de entrada sincronizada al reloj del
sistema por el circuito de filtrado de entrada (FIBy.x)
CV - El valor de entrada capturado tras el cambio
de estado de la entrada y tras una actualización de la entrada
(sincronizada con el reloj del sistema)
F - indicador del cambio de estado (sincronizado
con el reloj del sistema)
RP -Impulso leído (uno para cada byte de estado
de entrada) generado por una lectura del byte de estado de entrada
(sincronizado con el reloj del sistema de tal manera que está
activo para un ciclo del reloj y marcha inactivo en el borde de
reloj que transfirió el estado de la entrada)
PS - Estado actual
NS - Estado siguiente
Durante el funcionamiento, y en relación con la
figura 12a, cuando el circuito detecta un cambio de estado en la
entrada, se captura el nuevo valor de la entrada y se ajusta un
indicador del cambio de estado. Mientras se ajusta el indicador del
cambio de estado, el valor de entrada almacenado se mantiene y no
puede actualizarse. Por tanto, se ignora cualquier cambio de entrada
que se produzca mientras se ajusta el indicador de cambio de
estado. Después de que el software haya leído el valor almacenado,
se reajusta el indicador de cambio de estado, se captura el estado
actual de la entrada, y se reactiva la detección de los cambios de
estado de entrada. Esta secuencia de acciones se denomina
re-iniciación del circuito de captura de impulsos.
El resultado es que el impulso de entrada se captura incluso si la
actualización tiene lugar entre ciclos de barrido, tal como se
muestra en la figura 11. Véase, por ejemplo, CIB1.6 que muestra que
la salida 908 del circuito de captura de impulsos captura el
impulso 902 de entrada incluso si el impulso tiene lugar entre
barridos, es decir, barrido n y barrido n+1.
Dos registros de 8 bit, por ejemplo, se
proporcionan en este bloque para activar y desactivar de forma
individual la función de captura de impulsos en cada uno de los
dieciséis puntos de entrada. Estos registros activos se definen en
la tabla mostrada en la figura 12b. Los registros de estado de
entrada se proporcionan para dar acceso al software de la CPU a los
estados condicionados de punto de entrada, CIB0[7:0] y
CIB1[5:0], que se emiten desde el conjunto de circuitos de
captura de impulsos. Estos se muestran en la figura 12c. El formato
de los registros de estado de entrada se muestran en la figura
12d.
Los elementos de circuito del circuito de captura
de impulsos, tal como se apreciará por los expertos en la técnica,
serán reconocidos rápidamente a partir de la tabla de verdad
mostrada en la figura 12a. Se apreciará adicionalmente que el
circuito de captura de impulsos, por tanto, puede tener una
pluralidad de configuraciones que cumplen la tabla de verdad.
El circuito de captura de impulsos a modo de
ejemplo que funciona de acuerdo con la descripción precedente se
muestra en las figuras 12e y 12f. Un impulso de reloj del sistema
pone en marcha conmutaciones 1202, 1208. La señal de entrada se
acopla a la primera conmutación 1202, cuya salida Q está acoplada
al circuito 1206 lógico de compuerta nand. Las señales PCE, RP y F
se retardan y se acoplan a compuertas nand correspondientes en el
circuito 1206 lógico de entrada nand, tal como se muestra. Además,
la salida de la segunda conmutación 1208 se alimenta nuevamente al
circuito 1206 lógico de compuerta nand. La salida del circuito
lógico de compuerta nand se acopla a la segunda conmutación 1208 y,
al engancharse con ella, se sincroniza a la salida. La señal F se
genera en la figura 12f, en la que el reloj del sistema acciona la
conmutación 1210 y 1216. La primera conmutación engancha la entrada
y la segunda conmutación engancha la salida del circuito 1214
lógico de compuerta nand. El circuito 1214 lógico de compuerta nand
está dispuesto tal como se muestra para implementar el circuito
lógico mencionado anteriormente en las señales emitidas a partir de
la primera conmutación (Q), la versión invertida de Q, la versión
capturada de la señal de entrada y su versión retardada (versión
retardada por los retrasos 1212), la señal RP retardada por los
retrasos 1212 y la señal PCE.
Los circuitos de captura de impulsos pueden
activarse y desactivarse de forma individual. Si se desactiva la
captura de impulsos, entonces la entrada del circuito se transmite
a través hacia la salida del circuito. Si se activa, entonces las
funciones de captura de impulsos descritas anteriormente están
activas.
Esta unidad (420, figura 4) de salida digital
permite el control directo, por medio del software, del estado de
cada punto de salida. Además, una capacidad de emisión de impulsos
permite la emisión del tren de impulsos y la emisión modulada con
impulsos en amplitud en hasta dos de los puntos de salida.
Ahora en relación con la figura 13, el circuito
ASIC proporciona dos registros 1302, 1304 de estado del punto de
salida para el control mediante software del estado de diez puntos
de salida digital. Además, dos Bloques 1306, 1308 de Salida de
Impulsos (PLS) pueden implementarse para proporcionar la capacidad
de generar formas de ondas de impulsos a una frecuencia más rápida
de lo que pueda llevar a cabo el software.
Dentro de los bloques 1306, 1308 de salida de
impulsos, el circuito ASIC proporciona una elección de dos
funciones de salida, por ejemplo, PWM (modulación de impulsos en
amplitud) o PTO (salida de tren de impulsos). La función PWM dota a
la salida de impulsos continua con un tiempo de ciclo programable y
coeficiente de utilización. Concebido principalmente para
aplicaciones de motor paso a paso, la función PTO prevé para la
salida de un número especificado de aproximadamente 50% de impulsos
de coeficiente de utilización. Por supuesto, los expertos en la
técnica apreciarán otras aplicaciones. El tiempo de ciclo en la
función PTO también puede programarse y puede estar fijo o
ajustarse de forma automática para aumentarse o reducirse a una
velocidad específica de usuario.
Si está funcionando PLS0 (activado), tiene
control del punto XQB0.0 de salida a través del MUX 1310. De lo
contrario, el XQB0.0 se controla por el valor al que el software
escribe en el registro de estado del punto de salida del circuito
ASIC. Asimismo, el PLS1 controla el estado del XQB0.1 si está
activado, a través del MUX 1312, y el registro de estado del punto
de salida del circuito ASIC controla el estado de XQB0.1 si PLS1 no
está activado.
El circuito ASIC mostrado soporta dos bloques de
salida de impulsos (PLS). Por supuesto, puede configurarse
cualquier número de PLS. Estos bloques le permiten a la CPU
producir formas de onda a frecuencias más rápidas de lo que el
software de la CPU es capaz de generar manualmente. La salida del
bloque 0 de salida de impulsos (PLS0) es una de las fuentes del
punto XQB0.0 de salida y la salida del Bloque 1 de Salida de
Impulsos (PLS1) es una de las fuentes del punto XQB0.1 de
salida.
El circuito ASIC para los contadores PLC
proporciona las funciones de salida del tren de impulsos (PTO) y la
Modulación de Impulsos en Amplitud (PWM). PTO es un modo
operacional en el que el periodo (tiempo de ciclo) de la forma de
onda y el número de ciclos (cómputo de impulsos) se especifica por
medio de software. El coeficiente de utilización de la forma de onda
es de aproximadamente el 50%. PWM es un modo funcional en el que el
periodo (tiempo de ciclo) y el coeficiente de utilización (amplitud
de impulsos) se especifican mediante software y la forma de onda se
emite de forma continua.
Se descubrió que había un problema fundamental
con la implementación de estas funciones porque no hay una forma
para una suave transición desde una forma de onda PTO o PWM a otra.
Cada transición requería que el bloque de salida de impulsos fuera
detenido por el software y luego se reiniciara, lo que introducía
una discontinuidad en la forma de onda de salida resultante.
Debido al problema con las transiciones de una
forma de onda a otra, tal como se ha descrito anteriormente, el
circuito ASIC de la presente invención proporciona el bloque de
salida de impulsos con un mecanismo de encauzamiento de hardware
para permitir transiciones de forma de onda a forma de onda suaves,
controladas a través del hardware. Asimismo, para permitir un mejor
funcionamiento con motores paso a paso, la capacidad de elevar
automáticamente el valor de la duración del ciclo a una velocidad
específica se añadió al circuito ASIC.
El diagrama de bloques de la figura 14a muestra
la organización y los componentes de cada bloque 1400 de emisión de
impulsos.
Generación de tiempo base del controlador PLS -
el tiempo base (por ejemplo, 1ms o 1\museg) se proporciona por un
multiplexor 1402 que selecciona, por ejemplo, el reloj de tiempo
base maestro de 1MHz o un reloj de 1KHz derivado del reloj de
tiempo base maestro
Control del periodo de la forma de onda - La
salida del multiplexor de tiempo base pone en funcionamiento un
contador ascendente de 16 bits, denominado el contador 1420 de
duración del ciclo. Este contador se incrementa en el flanco
ascendente del reloj de la base de tiempos. La salida de este
contador se compara mediante el comparador 1430 con el valor
almacenado en un registro 1422 ajustado previamente a una duración
de ciclo de 16 bits para controlar el periodo de la forma de onda
de salida. Cuando el valor del contador de la duración del ciclo
alcanza el valor del registro ajustado previamente para la duración
del ciclo, entonces se completa el ciclo actual y se genera el
evento Ciclo - Completado.
Los valores almacenados en el contador 1420 de la
duración del ciclo y el registro 1422 ajustado previamente para la
duración del ciclo son valores sin signo. El intervalo válido del
contador 1420 de la duración del ciclo es, por ejemplo, 0 a 65535.
El intervalo válido del registro ajustado previamente de la duración
del ciclo es 2 a 65535. La comparación para determinar Ciclo -
completado es una comparación en valores absolutos.
Existe un registro 1406 delta de la duración del
ciclo para utilizarlo en el modo PTO para mantener un valor de 16
bits con signo complemento de 2 que se añade al valor almacenado en
el registro 1422 ajustado previamente de la duración del ciclo en
cada evento Ciclo - Completado. Si la suma supera 65535 o es
inferior a 2, entonces se genera el evento Error - de - Adicionador.
Por ejemplo,
En el modo PWM, el registro delta de la duración
del ciclo se mantiene a un valor de 0.
El software sólo puede cargar el registro 1422
ajustado previamente para la duración del ciclo y el registro 1406
delta para la duración del ciclo cuando el bloque PLC esté
desactivado. El intervalo válido de este registro en el modo PTO
es, por ejemplo, -32768 a +32767.
Control del coeficiente de utilización de la
forma de onda - La salida del contador 1420 de la duración del
ciclo también se utiliza para el control del coeficiente de
utilización de la forma de onda. Hay una comparación en valores
absolutos llevada a cabo entre este valor del contador y un valor
ajustado previamente de amplitud de impulsos cuya fuente se
determina mediante el modo de funcionamiento del PLS. El estado de
la señal PLSx-OUT de salida del bloque PLS se
determina mediante esta comparación. Mientras que el valor del
contador sea menor que el valor ajustado previamente de la amplitud
de impulsos, la señal PLSxOUT es alta. Si el contador alcanza o
supera el valor ajustado previamente, entonces la señal PLSxOUT se
reduce. El valor ajustado previamente de la amplitud de impulsos se
obtiene a partir de los 16 bits inferiores del registro 1408
ajustado previamente de la amplitud / cómputo de impulsos, si está
en el modo PWM, o es la mitad del valor almacenado en el registro
1422 ajustado previamente de la duración del ciclo, si se encuentra
en el modo PTO.
Si el valor ajustado previamente de impulsos en
amplitud es 0, entonces PLSxOUT estará baja durante todo el ciclo.
Si el valor ajustado previamente de impulsos en amplitud es igual o
superior que el valor ajustado previamente de la duración del
ciclo, entonces PLSxOUT estará alta durante todo el ciclo.
El registro 1408 ajustado previamente de impulsos
en amplitud / cómputo de impulsos se carga mediante el software,
pero sólo los 16 bits inferiores son significativos al funcionar en
modo PWM. Por tanto, el software sólo debería escribir la palabra
menos significativa del registro en el modo PWM. El intervalo válido
de este registro en este modo es 0 a 65535. Este registro puede
cargarse mediante el software únicamente si el bloque PLS está
desactivado.
Control de cantidad del ciclo (únicamente en modo
PTO) - Un contador ascendente de 32 bits, denominado el contador
1428 de impulsos, se pone en funcionamiento en cada evento Ciclo -
Completado para contar el número de ciclos generados en la señal
PLSxOUT. El valor almacenado en este contador se compara, mediante
el comparador 1434, con el valor en el registro 1416 ajustado
previamente de cómputo de impulsos de 32 bits para determinar la
finalización de la operación PTO actual. Cuando el valor del
contador 1428 de impulsos alcanza el valor ajustado previamente del
cómputo de impulsos, se genera el evento PTO - completada. En el
modo PWM no se utiliza este contador.
En el modo PTO, es significativo todo el registro
de 32 bits ajustado previamente del cómputo de impulsos y se carga
mediante el software. El intervalo válido de este registro en este
modo es 1 a (2^{32}-1). El registro sólo puede
cargarse mediante software si el bloque PLS está desactivado.
Control operativo - Un registro de control
contiene bits para permitirle al software activar o desactivar el
funcionamiento del bloque PLS. Una vez que el software active el
bloque PLS, la conmutación del punto de salida desde el control
QBxPS al control del bloque PS, así como el funcionamiento de los
contadores internos y las comparaciones, se sincronizan con el
siguiente flanco ascendente del reloj de la base de tiempos. Esto
se lleva a cabo para garantizar que el ciclo inicial de la forma de
onda de salida es de una duración y una amplitud de impulsos
adecuada. Este registro se mantiene en su estado reajustado en caso
de condición errónea de tiempo de vigilancia o debido al control
directo del software de la función de desactivación de salida.
Un registro de configuración contiene bits para
permitirle al software configurar el funcionamiento del
bloque
PLS. Están incluidos una selección de base de tiempos PLS y una selección del modo de funcionamiento. Un registro de activación de interrupción le proporciona al software la capacidad de activar y desactivar individualmente la generación de interrupciones para los eventos de interrupción PTO - completada y Error - de - adición. Un registro de estado, proporcionado para permitirle al software obtener información sobre el estado operativo actual del bloque PLS.
Esta información incluye el estado activado y el estado del indicador cargado de encauzamiento (descrito posteriormente).
PLS. Están incluidos una selección de base de tiempos PLS y una selección del modo de funcionamiento. Un registro de activación de interrupción le proporciona al software la capacidad de activar y desactivar individualmente la generación de interrupciones para los eventos de interrupción PTO - completada y Error - de - adición. Un registro de estado, proporcionado para permitirle al software obtener información sobre el estado operativo actual del bloque PLS.
Esta información incluye el estado activado y el estado del indicador cargado de encauzamiento (descrito posteriormente).
Un registro de estado de interrupción proporciona
información sobre el origen u orígenes de la interrupción que
producen la condición de interrupción. La señal INTxPLS se origina
a partir del bloque PLS y se utiliza por medio de la Unidad de
Control de Interrupciones. La señal se vuelve activa cuando ha
tenido lugar uno o los dos eventos que generan la interrupción PLS
(sujetos al estado de los bits de activación de la interrupción en
el registro de activación de la interrupción). La lectura del
registro de estado de las interrupciones aclarará todas las
indicaciones activas de interrupciones en el bloque PLS y emitirá la
señal INTxPLS. Por tanto, desactivar una fuente de generación de
interrupciones en el registro de activación de interrupciones
eliminará una interrupción pendiente a partir de esa fuente. Si
entonces no hay pendientes otras interrupciones en el bloque PLS,
se emitirá la señal INTxPLS.
Mecanismo de encauzamiento del hardware - El
mecanismo de encauzamiento se proporciona de tal manera que las
modificaciones de las características de las formas de onda puedan
aplicarse sin distorsión resultante de las formas de onda. Se
proporcionan los siguientes registros de encauzamiento para mantener
nuevos valores para la duración del ciclo, la amplitud de los
impulsos, etc.:
- \bullet
- El registro de encauzamiento de la duración del ciclo se utiliza para almacenar el nuevo valor de la duración del ciclo.
- \bullet
- El registro delta de encauzamiento de la duración del ciclo se utiliza para almacenar el nuevo valor delta de la duración del ciclo.
- \bullet
- El registro de encauzamiento de la amplitud / cómputo de impulsos se utiliza para almacenar el nuevo cómputo de los impulsos o el valor de amplitud de los impulsos (si está en el modo PTO, este registro almacena un nuevo cómputo de impulsos y se utilizan los 32 bits del registro. Si está en el modo PWM, este registro almacena un nuevo valor de amplitud de impulsos y sólo se utilizan los 16 bits inferiores del registro).
Se implementa un indicador de encauzamiento
cargado como parte de la interfaz entre el bloque PLS y el software
al utilizar el mecanismo de encauzamiento de hardware. El indicador
de encauzamiento cargado se ajusta cada vez que el software escriba
un valor al byte menos significativo del registro de encauzamiento
de amplitud / cómputo de impulsos. Por tanto, para utilizar el
mecanismo de encauzamiento del hardware, el software siempre debe
escribir un valor en el registro de encauzamiento de amplitud /
cómputo de impulsos y debe ser el último registro de encauzamiento
que se escriba.
Todos los registros de encauzamiento deben
cargarse mediante el software ya que los contenidos de los
registros de encauzamiento se transferirán a los registros
operativos. En el modo PWM, el software no necesita escribir el
registro de encauzamiento delta de base de tiempos dado que el
registro delta de base de tiempos se mantiene a 0 mientras el
bloque PLS esté en el modo PWM. Cualquier contenido de ese registro
de encauzamiento se descarta eficazmente.
Una vez que se han escrito los registros de
encauzamiento y se ha ajustado el indicador de encauzamiento
cargado, los contenidos de los registros de encauzamiento se
transferirán a los registros operativos con las siguientes
condiciones:
- \bullet
- Si el bloque PLS está activado, se realizará la transferencia al producirse el evento PWM - Completada, si está en el modo PTO, o el evento Ciclo - Completado, si está en el modo PWM.
- \bullet
- Si se desactiva el bloque PLS, la transferencia se llevará a cabo inmediatamente cuando se activa el bloque PLS mediante el software.
Después de que se haya realizado la transferencia
a los registros operativos, entonces se eliminará automáticamente
el indicador de encauzamiento cargado.
Una vez que se haya ajustado el indicador de
encauzamiento cargado en un bloque PLS activado, se impide que el
software escriba en cualquiera de los registros de encauzamiento
hasta que se hayan transferido sus contenidos a los registros
operativos (expresado mediante la eliminación del indicador de
encauzamiento cargado mediante el circuito ASIC). Si se desactiva el
bloque PLS, entonces los registros de encauzamiento pueden
escribirse mediante el software sin restricciones y cada vez que se
escriba el byte menos significativo del registro de encauzamiento
de amplitud / cómputo de impulsos, se ajustará el indicador de
encauzamiento cargado.
Mecanismo de auto - desactivación - Puede
desactivarse automáticamente un bloque PLS activado en modo PTO con
las siguientes condiciones:
- \bullet
- Tiene lugar el evento PTO - Completada y no hay ninguna nueva configuración de forma de onda almacenada en los registros de encauzamiento (el indicador de encauzamiento cargado es 0).
- \bullet
- Tiene lugar el evento Error - de - Adición.
Si se desactiva automáticamente el bloque PLS, se
elimina el bit maestro de activación en el registro de control
mediante el circuito ASIC. El indicador de encauzamiento cargado no
se ve afectado.
Desactivación manual - Cada vez que el bit
maestro de desactivación sea eliminado mediante el software, el
bloque PLS introducirá inmediatamente el Estado de Desactivación
PTO o el Estado de Desactivación PWM (descritos posteriormente), en
función del modo actual de funcionamiento del bloque. Una
desactivación del software también eliminará el indicador de
encauzamiento cargado y cualquier interrupción pendiente.
Intervalos válidos de los registros - La tabla de
la figura 14b muestra el intervalo de valores válidos para cada uno
de los registros numéricos del bloque PLS.
Este modo se selecciona activando el bloque PLS.
El software controlará la duración del ciclo, la duración del ciclo
delta y el cómputo de los impulsos. El coeficiente de utilización
está fijado al 50%. Por tanto, están activadas para utilizarlas en
este modo las siguientes funciones del bloque PLS:
- \bullet
- Los registros de preajuste de la duración del ciclo y los registros de encauzamiento de la duración del ciclo.
- \bullet
- Los registros delta de la duración del ciclo y los registros delta de encauzamiento de la duración del ciclo
- \bullet
- Los registros de preajuste de la amplitud / cómputo de los impulsos y los registros de encauzamiento de la amplitud / cómputo de los impulsos (configurados para mantener el cómputo de impulsos de 32 bits).
- \bullet
- El contador de impulsos de 32 bits
- \bullet
- El contador de la duración del ciclo de 16 bits.
- \bullet
- La comparación para generar el evento Ciclo - Completado.
- \bullet
- La comparación para completar el estado de PLSxOUT
- \bullet
- El indicador de encauzamiento cargado
- \bullet
- Las interrupciones PTO-Completada y Error-de-Adición.
Las principales transiciones de estado del bloque
PLS en el modo PTO se muestran en el diagrama 1502 de estados de la
figura 15.
Cuando el bloque PLS está en el estado 1502 PTO
desactivado:
- \bullet
- La salida QB0.x se controla por el registro de estado del punto de salida en lugar del bloque PLS.
- \bullet
- El contador de la duración del ciclo y el contador de impulsos se mantienen a 0.
- \bullet
- El bit de estado PLSxSTAT.EM indica el estado desactivado.
Cuando el bloque PLS está en el estado 1504 PTO
operativo:
- \bullet
- La salida QB0.x se controla por el bloque PLS (a través de la señal PLSxOUT).
- \bullet
- El bit de estado PLSxSTAT.EN indica el estado activado.
- \bullet
- Se activa el funcionamiento PTO normal.
El contador de la duración del ciclo se
incrementa en el flanco ascendente de la base de tiempos PLS se
hacen funcionar la mayoría de las funciones del bloque PLS, bien
directa o bien indirectamente, desde ese contador. El segmento de
la figura 16 de pseudo-código da una idea general de
las acciones del circuito ASIC en el modo PTO, que tienen lugar en
un flanco ascendente de la base de tiempos PLS (el orden de las
acciones es importante, por tanto, estas afirmaciones deben
valorarse de arriba hacia abajo). El profesional experto apreciará
inmediatamente el funcionamiento del circuito ASIC en el modo PTO a
partir del pseudo-código.
Este modo se selecciona activando el bloque PLS.
El software controlará la duración del ciclo y la amplitud de los
impulsos. Por tanto, en este modo se activan las siguientes
funciones del bloque PLS:
- \bullet
- Los registros de ajuste previo de la duración del ciclo y los registros de encauzamiento de la duración del ciclo.
- \bullet
- Los registros de amplitud / cómputo de los impulsos y los registros de encauzamiento (configurados para una amplitud de impulsos de 16 bits).
- \bullet
- El contador de la duración del ciclo de 16 bits.
- \bullet
- La comparación para generar el evento Ciclo - Completado.
- \bullet
- La comparación para controlar el estado de PLSxOUT.
- \bullet
- El indicador de encauzamiento cargado.
El registro delta de la duración del ciclo y el
registro delta de encauzamiento de la duración del ciclo se
mantienen a 0 y se desactivan el contador de impulsos y la
generación de interrupciones para el bloque. La señal INTxPLS
debería hacerse funcionar siempre en el estado activo en este
modo.
Las principales transiciones de estado del bloque
PLS en el modo PWM se muestra en el diagrama de estados mostrado en
la figura 17.
Cuando el bloque PLS está en el estado 1702 PWM
desactivado:
- \bullet
- La salida QB0.x es controlada por el registro de estado del punto de salida en lugar de por el bloque PLS.
- \bullet
- El contador de a duración del ciclo se mantiene a 0.
- \bullet
- El bit de estado PLSxSTAT.EN indica el estado desactivado.
Cuando el bloque PLS está en el estado 1704 PWM
operativo:
- \bullet
- La salida QB0.x es controlada por el bloque PLS (a través de la señal PLSxOUT).
- \bullet
- El bit de estado PLSxSTAT.EN indica el estado desactivado.
- \bullet
- Se activa el funcionamiento PWM normal.
El contador de la duración del ciclo se
incrementa en el flanco ascendente de la base de tiempos PLS y se
ponen en funcionamiento la mayoría de las funciones del bloque PLS,
bien directa o bien indirectamente, a partir de este contador. El
segmento mostrado en la figura 18 de pseudo-código
da una idea general de las acciones del circuito ASIC en el modo
PWM que tienen lugar en un flanco ascendente de la base de tiempos
PLS (el orden de las acciones es importante, por tanto, estas
afirmaciones deben valorarse de arriba hacia abajo). El profesional
experto apreciará inmediatamente el funcionamiento del circuito
ASIC en el modo PWM a partir del pseudo-código.
La función de salida de impulsos proporcionada
por el circuito ASIC está concebida en principio para utilizarla
para controlar motores paso - a - paso. El controlador PLC
suministra una instrucción de usuario para generar perfiles para la
aceleración / deceleración y puesta en marcha de motores paso a
paso. La instrucción se muestra en la figura 19.
Físicamente, el subsistema de expansión consiste
en módulos E/S encerrados que se montan de manera independiente,
sin un plano posterior común. Un cable plano de diez conductores
que forma parte de cada módulo se utiliza para conectar el módulo
precedente o la CPU. Este cable porta las señales de potencia de 5V
y las señales lógicas requeridas para el funcionamiento de los
módulos. Véase la figura 20. Las señales en el bus E/S de expansión
se describen en la figura 21.
Mientras que todas las señales están unidas
físicamente en forma de cadena margarita a través de los módulos,
sólo las señales EMA se interrumpen de forma lógica y se generan
nuevamente en cada módulo. El resto de señales forman un único bus
eléctrico que extiende la longitud de la cadena módulo E/S. El valor
de las señales EMA se incrementa antes de pasar al siguiente módulo.
Cada acceso al bus E/S de expansión incluye un módulo de campo de
dirección para la selección del módulo al que se va a acceder. Sólo
el módulo cuya dirección coincide con el campo de dirección del
módulo del mensaje responderá al acceso. Este esquema permite
mezclas arbitrarias de tipos de módulos E/S que van a concatenarse
sin conmutadores de dirección y sin un plano posterior fijo. Es
posible la expansión lógica de hasta 8 unidades con tres líneas de
señales EMA, sin embargo, sólo se permiten por el momento 7
módulos. Por supuesto, son posibles otras unidades de
expansión.
La figura 22 muestra la estructura 2200 lógica y
el flujo de señales de los módulos 2202 E/S de la presente
invención. No se describen en el presente documento los detalles de
las estructuras lógicas E/S de expansión. La tabla de la figura 23
proporciona los valores para cada uno de los componentes utilizados
en la interfaz eléctrica de un módulo E/S de expansión. Las tablas
de la figura 24 describen las características eléctricas de las
señales de bus E/S. El acceso a la expansión I/P se controla por el
circuito ASIC en la CPU y se entenderá a partir de los diagramas de
las figuras 25 y 26, que ilustran las secuencias de los ciclos de
lectura y escritura, tal como se observa en el bus E/S de
expansión.
Lo siguiente describe la secuencia de transacción
del bus. La temporización del bus EM está dispuesta para
proporcionar tiempo para el retraso de propagación y el sesgo de la
señal si fuera necesario. El maestro proporciona señales en relojes
de flanco descendente del EMC, que se van a enganchar por el esclavo
en el flanco ascendente. Se permite un tiempo medio de reloj EMC
para cubrir la configuración de los datos para el esclavo y
permitir, para el peor de los casos, el sesgo de EMC frente a EMD a
través de memorias intermedias ASIC, cables externos y posibles
memorias intermedias de la estación repetidora. El esclavo presenta
datos en bordes ascendentes del EMC, y el maestro engancha los
datos en el siguiente flanco ascendente de reloj. Esto permite una
duración completa del reloj para la propagación del reloj al
esclavo, el retraso del reloj del esclavo a la salida, y devolver
el tiempo de propagación.
Durante una transacción del bus, se presentan
campos de registro en el primer bit más significativo del bus. El
bit P1 del campo de paridad de 2 bits se presenta primero, luego,
el bit P0. Las acciones de la máquina maestra de estado se
describen en relación con los bordes ascendentes y descendentes de
EMC mientras que se supone que el esclavo no tiene otra base de
tiempo que el EMC y puede operar por completo en bordes ascendentes
EMC. EMC se hace funciones bajo cuando no está en uso para
minimizar la posibilidad de falsos datos de sincronización en los
esclavos.
Los siguientes párrafos describen los distintos
componentes de la secuencia de transacción del bus EM, ambos al
escribir datos al esclavo y al leer datos desde el esclavo. Se
supone que las siguientes acciones son generadas por el maestro (la
unidad EM) a menos que se atribuyan específicamente para que sean
llevadas a cabo por el esclavo. El siguiente texto y el diagrama de
sincronización subsiguiente ayudarán a la comprensión de la
secuencia de transacción.
Inicio de la secuencia - Una transacción de bus
EM se inicia mediante la escritura por medio del software en el
registro EM0START o EM1START. El bit en progreso del registro de
estado EM se ajusta de inmediato. Además, los accesos de escritura
a los registros EM están desactivados por el circuito ASIC,
mientras que el bit in progreso se ajusta para evitar perturbar la
secuencia de bus en progreso. Es responsabilidad del software
garantizar que las nuevas transacciones de bus sólo se activan
cuando la unidad EM están fuera de funcionamiento (el bit en
progreso está bajo). La transacción del bus se sincroniza a partir
de la señal EMC0 si la secuencia se activó mediante una escritura
al registro EM0START. Si la secuencia se activó mediante una
escritura al registro EM1START, entonces la transacción del bus se
sincroniza a partir de la señal EMC1. El verdadero comienzo de la
secuencia de bus EM (al que se hace referencia como EMCST) tiene
lugar en el primer flanco descendente de la base de tiempos EMC
después de la activación de la transacción.
Dirección de Módulo / Registro - En el punto
EMCST, el maestro pone en funcionamiento la señal XA_OD baja y
activa las señales EMC y EMD. La detección de una señal XA_OD
activa en el flanco ascendente de EMC se utiliza por el esclavo
para identificar el inicio de una operación de direccionamiento.
Entonces el maestro produce 10 relojes en la señal EMC, que
sincronizan los contenidos del registro EMADDR y los 2 bits de
paridad, P1 y P0, en secuencia en el EMD. El primer bit del
registro EMADDR presentado en EMD es válido en el punto EMCST. La
señal XA_OD se hace funcionar alta nuevamente en EMC\downarrow1.
El maestro presenta un nuevo bit en EMD en cada EMC\downarrow. La
señal EMD se emite en EMC\downarrow 10. El esclavo engancha la
información válida en EMC\uparrow 1:10 (flanco ascendente de EMC
1:10).
Lectura de la secuencia de datos - Para una
transacción de lectura, la señal EMDDIR se hace funcionar al estado
bajo en EMC\downarrow 10. Tras la sincronización de los bits de
dirección del módulo / registro, el maestro produce 13 puntos de
sincronización adicionales (11:23) en la señal EMC. Los relojes
11:12 EMC son relojes en funcionamiento para permitirle al tiempo
del esclavo que elabore los datos apropiados del registro y la
paridad disponible para la transferencia. El esclavo seleccionado
proporciona 2 bits de paridad en la señal EMD en EMC\uparrow 13:22
y regresa al estado activo en EMC\uparrow 23 (en este momento el
esclavo emite la señal EMD). El maestro engancha la información en
EMC\uparrow 14:23. El esclavo proporciona el bit más significativo
del valor de datos primero, luego el bit P1 de paridad y finalmente
el bit P0 de paridad. El valor de los datos se almacena en el
registro EMDATA. El maestro determina la paridad del valor
almacenado en el registro EMDATA y compara esta paridad calculada
con los bits de paridad recibidos del esclavo. Si la paridad
calculada y la paridad recibida no coinciden, entonces se ajusta el
bit de error en el registro de estado EM. De lo contrario, se
elimina el bit de error. La señal EMDDIR se emite (impulsada alta)
en EMC\downarrow 23.
Escritura de la secuencia de datos - Para una
transacción de escritura, tras la sincronización de los bits de
dirección del módulo / registro, el maestro proporciona 14 puntos
de sincronización adicionales (11: 24) en el EMC. El maestro
proporciona los 8 bits de datos (a partir del registro EMDATA) en
EMD seguido por 2 bits de paridad (P1 luego P0). El maestro presenta
los datos y los bits de paridad en EMC\downarrow 10:19, entonces
emite la señal EMD y impulsa la señal EMDDIR al estado bajo en el
EMC\downarrow20. El esclavo engancha la información válida en
EMC\uparrow 11:20. El esclavo responde a un ciclo de escritura
completo y corrige la paridad sincronizando los bits 0, luego los 1,
a partir de EMD en EMC\uparrow 22:23. El maestro engancha esta
respuesta de acuse de recibo en EMC\uparrow 23:24. El esclavo
regresa al estado en funcionamiento y emite EMD en EMC\uparrow
24. Si el valor de acuse de recibo de 2 bits leído por el maestro
no es 01, entonces se ajusta el bit de error en el registro de
estado EM. De lo contrario, se corrige el valor de acuse de recibo
y se elimina el bit de error. La señal EMDDIR se emite (impulsada
alta) en EMC\downarrow 24.
Final de la secuencia - El final de la secuencia
de bus se define para que tenga lugar en el primer flanco
ascendente de la base de tiempos EMC que sigue a EMC\downarrow 23
(transacción de lectura) o EMC\downarrow 24 (transacción de
escritura). En EMCND, se elimina el bit en progreso del registro de
estado EM. El bit de error debe ser válido cuando se elimina el bit
en progreso. Las señales de bits deberían estar en sus estados
activos.
Se utilizan dos bits de paridad para indicar la
paridad de un único valor de 8 bits. Cada uno de los 2 bits de
paridad representa paridad desparejada en 5 bits del valor, tal
como se muestra en la tabla de la figura 27. La paridad desparejada
en un número despareado de bits garantiza que los campos de todos
los 1 ó 0 tienen bits de paridad de polaridad opuesta.
Una transacción de bus EM típica incluirá
software que escribe el registro EMADDR, que escribe un byte de
datos en el registro EMDASTA (si se trata de una transacción de
escritura), que escribe luego en los registros EM0START o EM1START
para iniciar la secuencia. El software leerá repetidamente el bit en
progreso del registro de estado EM para determinar si la
transacción está completa. Al completarse la transacción de bus EM,
se eliminará el bit en progreso y se ajustará de forma aproximada
el bit de error. El valor de los datos no puede leerse a partir del
registro EMDATA si se ha llevado a cabo una transacción de lectura.
El software puede garantizar que sólo se lea el registro EMSTAT
mientras la transacción está en progreso y la unidad EM puede estar
diseñada para tratar correctamente un acceso de lectura de ese
registro por el software en cualquier momento.
Si se produce un evento de interrupción mientras
una transacción de bus EM está en progreso y la interrupción
requiere el empleo de la unidad EM, entonces esa rutina puede
muestrear el estado del bit en progreso y esperar a que la
transacción se complete antes de acceder a cualquier otro registro
de unidad EM. Este tipo de rutinas de interrupción tendrán una
obligación de guardar y restaurar los contenidos de los registros
EMADDR y EMDATA, así como el estado del bit de error. Esto se
requiere para que esos registros contengan los valores correctos
para la transacción de bus iniciada por la rutina interrumpida una
vez que se devuelva el control a esa rutina.
La señal XA_OD sirve para el uso dual de
identificar el inicio del ciclo de direccionamiento y la ocurrencia
de una condición de desactivación de la salida (originada por un
fallo del sistema CPU). A la velocidad de bus más baja esperada de
\sim 1MHz, la afirmación normal más larga de XA_OD en el uso de
dirección es \sim 1 \mus. Un umbral de \sim 100 veces esto, o
100\mus para el reconocimiento por parte del esclavo de XA_OD
como una desactivación de salida permite un simple filtro
/C/R/diodo en el esclavo y proporciona una función de desactivación
de salida de respuesta de forma adecuada. La señal externa XA_OD
será el O lógico de la señal de identificación de ciclo de
dirección procedente de la máquina de estado del bus EM y la señal
OK de salida que proviene de la Unidad del temporizador de
vigilancia.
La memoria de programa de usuario puede
utilizarse para almacenar el programa de usuario. El final del
programa principal puede finalizarse utilizando una instrucción
MEND (fin de programa principal). La parte restante de la memoria
del programa de usuario más allá de la instrucción MEND puede
reservarse para sub-rutinas, y rutinas de
interrupción.
El PLC proporciona un puerto serial de
comunicación, tal como se describe en relación con la figura 1. El
puerto de comunicaciones emplea niveles de señal RS485 y es capaz
de funcionar a 9,6 KB, 19,2 KB o 187,5 KB, al mismo tiempo que
soporta los protocolos de comunicación del sistema (PPI o DP/T).
Este puerto sirve como la interfaz del programador para el PLC.
Además, el puerto está disponible en el modo de ejecución para
utilizarlo como un puerto de comunicaciones de propósito general
(denominado modo de puerto libre) bajo el control total del
programa de usuario. En el modo de puerto libre, el puerto de
comunicaciones es capaz de operar a velocidades medias de
transferencia de 300 a 38,4 KB. La conexión física al puerto RS485
se proporciona mediante un conector de 9 clavijas D.
Se proporcionan bits de memoria especial (SM)
/véase la sección 6,2, SM2, SM3, SM30 y SM130) para el uso de
puerto libre del puerto de comunicaciones. El estado por defecto de
los bits de memoria especial que controlan el uso del puerto de
comunicaciones permite el uso del puerto de comunicaciones como una
interfaz de programador. Si el programa de usuario activa el bit de
memoria especial que controla el uso del puerto de comunicaciones,
el programa de usuario estará capacitado para enviar y recibir
mensajes a través del puerto de comunicaciones. En este modo de
funcionamiento, el usuario puede configurar el puerto para
cualquier protocolo deseado basado en caracteres (7 u 8 bits /
carácter, desparejado, llana o sin paridad, y velocidad media de
transferencia). El puerto funcionará en modo
semi-dúplex y el programa de usuario puede operar
en modo interrogado o de interrupción. Una memoria intermedia de
caracteres de recepción se proporciona en el área de usuario SM,
junto con un registro del estado de las comunicaciones, y un
registro de configuración, que incluye el bit que controla el modo
de operación del puerto. Todas las funciones de comunicación,
excepto la transmisión, pueden llevarse a cabo a través de los
registros especiales en la memoria SM. La transmisión sólo puede
llevarse a cabo empleando la instrucción especial de escritura del
mensaje del puerto. El programa de usuario nunca tiene acceso
directo al controlador de comunicaciones o a la estructura de
interrupción de la máquina.
El controlador PLC puede funcionar como un PPI
esclavo. En el modo PPI esclavo el controlador PLC actúa como un
dispositivo respondedor de mensajes de comunicación.
En una disposición de la invención, cuando la CPU
está colocada en el modo Ejecutar, el controlador PLC puede
funcionar como un maestro PPI así como un esclavo PPI. El usuario
puede seleccionar el modo maestro PPI bajo el control, del programa
del usuario almacenado en la memoria de programa de usuario. En
esta disposición, puede implementarse un protocolo de comunicación
de paso de testigo bien conocido para efectuar una comunicación
entre el maestro y el esclavo. En el modo PPI maestro, el
controlador PLC es capaz de mantener el testigo e iniciar
peticiones PPI permitiendo al usuario con ello acceder a los datos
en otras CPU a través de las instrucciones de lectura y escritura de
la red. Cuando la CPU no está manteniendo el testigo, responde a
todas las peticiones como un esclavo PPI. Los tamaños de la memoria
intermedia de telecomunicaciones para la comunicación PPI se
definen en la tabla mostrada en la figura 28.
Mientras el controlador PLC está funcionando como
un maestro PPI, mantendrá la red de acuerdo con los estándares de
comunicación ampliamente conocidos (tal como la definición PROFIBUS
proporcionada por la Norma Europea EN 50170). El controlador PLC
utilizará el siguiente algoritmo para calcular el tiempo de giro
del testigo final.
TTTR =
(8+HSA)(256)(1/BR)
donde
TTTR - es el tiempo objetivo de giro del
testigo
HSA - es la dirección de estación más alta
BR - es la velocidad media de transferencia en
bits por segundo.
Si al recibir el testigo, ha expirado el tiempo
objetivo de giro del testigo, el controlador PLC transmitirá
inmediatamente el testigo al siguiente portador del testigo sin
enviar ningún mensaje que haya podido estar en cola antes de la
recepción del testigo.
La presente invención proporciona funcionamiento
de puerto libre del puerto de comunicaciones, denominado en el
presente documento "puerto libre", que le permite al usuario
controlar el puerto de forma manual o mediante la operación de un
programa de usuario. El procedimiento del funcionamiento de puerto
libre se muestra en la figura 30a.
En la presente invención, el usuario implementa
el uso de puerto libre (etapa S3000) forzando una interrupción
(etapa S3002) del controlador PLC de acuerdo con la arquitectura de
interrupciones anteriormente mencionada. En este caso, el usuario
inicia la comunicación de puerto libre, mientras el controlador PLC
funciona en el modo maestro, adjuntando un evento de interrupción
que transmitirá el control del puerto de comunicaciones al programa
de usuario (etapa S3004). Esto se realiza mientras el protocolo del
sistema posee el testigo (etapa S3006).
Como respuesta, el controlador PLC transmite el
control al programa de usuario (etapa S3008). El controlador PLC
controla los ajustes UART (etapa S3010) de acuerdo con las
definiciones de bits SM, SMB30 y SMB31, mostradas en la figura 30b.
En ese caso, los bits de modo de las definiciones SMB30 y SMB31 son
ajustados por el controlador PLC al modo maestro PPI (etapa
S3012).
Una vez que se ha transmitido el control desde el
sistema a la rutina de interrupción del usuario, el programa del
usuario controla la transmisión y recepción de mensajes empleando
puerto libre (etapa S3014). Una vez que el programa del usuario
haya completado esta tarea, el programa del usuario puede
transmitirle nuevamente el control al sistema ejecutando una
instrucción especial que finaliza el funcionamiento de puerto libre
(etapa S3016). La instrucción empleada para finalizar el
funcionamiento de puerto libre se describe en la tabla mostrada en
la figura 29. Entonces, el sistema reanudará el funcionamiento
normal transmitiendo el testigo a la siguiente estación (etapa
S3018). El sistema es responsable de mantener todos los aspectos de
la red tal como si nunca se le hubiera proporcionado un intervalo de
tiempo al programa de usuario durante el tiempo de posesión del
testigo del controlador PLC (etapa S3020).
Para proporcionar un mayor rendimiento en la
comunicación que emplea el protocolo PPI, se proporciona una opción
de selección de protocolos integrados para el protocolo PPI. Cuando
el controlador PLC se encuentra en el modo EJECUTAR y el protocolo
PPI de puerto libre está seleccionado mediante el valor escrito a
SM30 o SM130, el puerto de comunicación se configurará de acuerdo
con los valores escritos a SM30 o SM130. Cuando se abandona el modo
puerto libre, el controlador PLC regresará nuevamente al protocolo
PPI establecido por defecto a la velocidad en baudios seleccionada.
El código para seleccionar el protocolo PPI de puerto libre será
tal como se define mediante SM30 (puerto 0) y SM130 (puerto 1). La
tabla de la figura 30b proporciona la definición de SM30 y
SM130.
Para simplificar la programación en las
comunicaciones en puerto libre, el controlador PLC admite una
instrucción de recepción de mensaje que puede emplearse en
combinación con una interrupción de un evento de recepción de
mensaje. El usuario especifica las condiciones que se requieren para
definir el comienzo y el final de un mensaje. El controlador PLC
admite las siguientes especificaciones sobre las condiciones de los
mensajes:
Puerto
0:
SMB86 - Byte de estado del mensaje: indica las
condiciones de finalización
SMB87 - Byte de control del mensaje: habilita los
criterios seleccionados para recibir el mensaje
SMB88 - Carácter de inicio: el carácter que
identifica exclusivamente el inicio de un nuevo mensaje
SMB89 - Carácter de finalización: el carácter que
identifica exclusivamente la finalización del mensaje
SMW90 - Línea en reposo: periodo de tiempo tras
el cual el primer carácter recibido inicia un nuevo mensaje
SMW92 - Intervalo de espera entre caracteres /
intervalo de espera de mensaje: el máximo tiempo permitido entre
caracteres o para que se reciba el mensaje. El uso se determina
mediante el byte de control del mensaje.
SMB94 - Número de caracteres: La máxima longitud
del mensaje recibido.
Puerto
1:
SMB86 - Byte de estado del mensaje: indica las
condiciones de finalización
SMB87 - Byte de control del mensaje: habilita los
criterios seleccionados para recibir el mensaje
SMB88 - Carácter de inicio: el carácter que
identifica exclusivamente el inicio de un nuevo mensaje
SMB89 - Carácter de finalización: el carácter que
identifica exclusivamente la finalización del mensaje
SMW90 - Línea en reposo: periodo de tiempo tras
el cual el primer carácter recibido inicia un nuevo mensaje
SMW92 - Intervalo de espera entre caracteres /
intervalo de espera de mensaje: el máximo tiempo permitido entre
caracteres o para que se reciba el mensaje. El uso se determina
mediante el byte de control del mensaje.
SMB94 - Número de caracteres: La máxima longitud
del mensaje recibido.
El primer byte de la memoria intermedia de
recepción se utiliza como un contador de caracteres que puede
indicar el número de caracteres recibidos por la función de
recepción de mensajes. La definición de cada uno de estos registros
especiales de la memoria se proporciona en la tabla mostrada en las
figuras 30c y 30d.
El controlador PLC puede admitir el protocolo
DP/T que proporciona un transporte MPI para las comunicaciones
maestro / esclavo. Los mensajes PPI son totalmente compatibles con
los mensajes DP/T, de manera que no se requiere una selección
especial del protocolo. El controlador PLC puede aceptar una
petición PPI o una petición DP/T y responder en correspondencia. El
soporte para las comunicaciones DP/T por medio del puerto PPI puede
incluir el ser compatible con HD4 en las transmisiones del
controlador PLC a las velocidades en baudios admitidas.
Mientras que el PPI es un protocolo sin
conexiones, el protocolo DP/T es un protocolo orientado a la
conexión. La tabla de la figura 30d define el número de conexiones
DP/T y el tamaño de la memoria intermedia para cada conexión
admitida por el controlador PLC en cada puerto. Esta tabla no
incluye la memoria intermedia para el SAP por defecto que puede
soportarse en cada puerto.
La CPU de la presente invención admite
comunicaciones a través de módems estándar de 10 bits dúplex
completos. Esto es considerablemente importante dado que el módem
de 11 bits más moderno es a menudo demasiado costoso en el uso
extendido. Se descubrió que esto es particularmente cierto en el
entorno de la industria en el que la tecnología industrial
normalmente va retrasada respecto al estado de la técnica en lo que
se refiere a hardware informático. Por otra parte, los módems de 10
bits antiguos van a encontrarse en gran cantidad en las plantas
industriales. Esta invención saca ventaja del descubrimiento de que
existe un excedente de módems de 10 bits en la industria y, por
tanto, proporciona un único protocolo de 10 bits que le permite al
controlador PLC de la presente invención (o a cualquier controlador
PLC o procesador para ello) conectarse a locales de la fábrica
equipados de esta manera. Por supuesto, el protocolo de 10 bits de
la presente invención puede valorarse y aplicarse a otros ajustes
en los que se empleen módems de 10 bits.
Otra ventaja del protocolo de 10 bits de la
presente invención es que el protocolo de 10 bits es compatible con
protocolos de bits de orden superior. De esta manera, el protocolo
de 10 bits por un módem de 11 bits o superior.
El protocolo de 10 bits de la presente invención
es un contrapeso a la sabiduría convencional. Por supuesto, va en
contra de la intuición el emplear menos bits de los que es capaz la
última tecnología de módem. Además, es contrario a la sabiduría
convencional emplear el protocolo del módem de 10 bits dado que la
presente invención sacrifica el bit de paridad, la clavija sobre la
que se basan todas las comunicaciones remotas para garantizar la
integridad de los datos. En cambio, si se considera que los
controladores PLC son responsables de controlar las máquinas, por
ejemplo, equipo pesado o la robótica de alta precisión, la empresa
puede quedarse fuera del negocio o, peor, alguien puede resultar
dañado por los comandos inadecuados de un controlador PLC. El
profesional ordinario aconsejará con insistencia en contra de un
protocolo de 10 bits.
El protocolo de 10 bits de la presente invención
se describe en relación con la figura 1. En una disposición, el
protocolo utilizado para las comunicaciones por módem es una
modificación del protocolo PPI estándar. Por supuesto, son posibles
otras asignaciones de bits. El protocolo PPM o Punto a Punto
especificado asigna en este caso los siguientes bits:
1 - bit de inicio
8 - bits de datos
1 - bit de parada
0 - bits de paridad
En el protocolo PPM cada petición procedente del
maestro recibe una respuesta sin que intervenga un acuse de recibo
o encuesta (etapa S3100). Se recomienda que únicamente se utilicen
los tipos de mensaje SD2, definidos por el protocolo PPI, en el
protocolo PPM (etapa S3104). Para cumplir este requisito el
dispositivo maestro puede especificar el uso del protocolo maestro /
esclavo (DP/T) en la petición de establecimiento de asociación
(etapa S3106). Después de cada petición, el maestro puede permitir,
por ejemplo, 15 segundos, para que el dispositivo esclavo responda
antes de interrumpir la transacción (etapa S3108). Al recibir una
petición, el esclavo permitirá un tiempo mínimo de respuesta (etapa
S3108). Al recibir una petición, el esclavo permitirá un tiempo
mínimo de respuesta de, por ejemplo, 20 milisegundos antes de emitir
la respuesta (etapa S33110).
Cada mensaje de petición / respuesta es
preferiblemente un mensaje PPI SP2 (etapa S3112) con un código de
comprobación CRC de dieciséis bits adjuntado como los dos últimos
bytes del mensaje (etapa S3114). El CRC utiliza el polinomio
estándar de la industria (X16 + X12 + X5 + 1), que se conoce como el
polinomio CRC-CCITT (etapa S3116). El CRC se calcula
por todo el marco SD2 excluyendo los bits de inicio y parada (etapa
S3118). El generador de CRC puede estar ajustado previamente para
todos ellos, tanto para la transmisión como para la recepción
(etapa S3120). En este caso, la recepción de un mensaje válido
produce un patrón de 0x1 D0F (etapa S3122).
El protocolo PPM se le señaliza al controlador
PLC mediante la clavija 9 de puesta a tierra del conector de puerto
de comunicación. El controlador PLC proporciona un resistor interno
elevador de la tensión en esta clavija para seleccionar protocolos
PROFIBUS estándar.
Se apreciará que el protocolo de módem de 10 bits
de la presente invención no está limitado necesariamente a 10 bits
y puede ampliarse a cualquier número de configuraciones de bits que
incluya, por ejemplo, {1, 2, 3 ... 9, 10, 11 ... \infty}. De
hecho, la presente invención puede considerarse mejor un protocolo
de n bits que no incluye un bit de paridad. El protocolo de n bits
puede implementarse utilizando la descripción precedente para
garantizar la integridad de los datos.
El controlador PLC de la presente invención
permite la protección de software o código registrado. La misma
característica le permite al controlador PLC ocultar partes de
código del usuario que pueden no estar concebidas para la
visualización por parte del usuario, tal como código generado por el
controlador PLC para llevar a cabo operaciones de rutina del
controlador PLC. Se apreciará que esta función estimula a terceros
desarrolladores de software a proporcionar software, quienes, por
lo demás, rehuirían dado que, a parte de eso, el código está
disponible a los usuarios.
Con ese objetivo, el controlador PLC admite una
instrucción HIDE (ocultar) que le permite al usuario (o dispositivo
de programación) identificar y ocultar partes del programa de
usuario. Los programas PLC se transfieren y almacenan en la memoria
del programa de usuario con las secciones de código ocultas
cifradas. El controlador PLC descifra las secciones de código
ocultas en el tiempo de compilación con el objetivo de generar el
programa ejecutable. Una vez que se ha completado la compilación,
las secciones de código ocultas se vuelven a cifrar.
Se proporciona una capacidad de contraseña
suministrada por el usuario que se utiliza para cifrar la parte del
programa que va a ocultarse. De esta manera, únicamente la persona
con autorización será capaz de visualizar las secciones del
programa que están ocultas.
Tal como se muestra en la figura 32a, la
instrucción "ocultar" de la presente invención marca el inicio
de las partes cifradas. En la invención, se ajusta un indicador P
para indicar que existe código cifrado. Haciendo referencia ahora a
la figura 32b, debe describirse el funcionamiento de la función
"ocultar". En la etapa S3200, el usuario invoca la instrucción
"ocultar" para una parte determinada del código registrado.
Como respuesta, el controlador PLC hace que se ajuste el indicador
P (etapa S3202). El controlador PLC cifra el código con una
contraseña que puede proporcionarse por el usuario (etapa S3204) e
introduce la etiqueta "ocultar" en la memoria del usuario al
comienzo y al final del código para señalar la parte cifrada (etapa
S3206). Al compilar el programa de usuario (etapa S3208), el
controlador PLC hace que se descifre la parte cifrada (etapa S3210)
y el programa de usuario se ejecuta de modo normal (etapa S3212).
Una vez que se ha completado la ejecución del programa, el
controlador PLC vuelve a cifrar el código registrado (etapa
S3214).
Puede proporcionarse acceso restringido a la
memoria y las funciones del controlador PLC mediante el uso de una
contraseña que le permite al usuario configurar las restricciones
de acceso. Sin una contraseña el controlador PLC puede proporcionar
acceso sin restricciones. Cuando el controlador PLC está protegido
con una contraseña, el controlador PLC puede prohibir todas las
operaciones que están restringidas de acuerdo con la configuración
proporcionada en el momento en el que se instaló la contraseña. El
controlador PLC puede permitirle a una estación legitimar el enlace
de comunicaciones de manera que el usuario de esa estación puede
tener acceso sin restricciones. El usuario que conoce la contraseña
puede volver a configurar las restricciones en cualquier momento
introduciendo la contraseña correcta y editando las clases de
restricción. El usuario que no conoce la contraseña debe aceptar las
restricciones asignadas por la persona que conoce la
contraseña.
En el caso de que el usuario olvide una
contraseña, puede utilizarse la contraseña del maestro para obtener
acceso al controlador PLC. Para que la contraseña del maestro
funcione, el conmutador de modo del controlador PLC debe estar en
la posición PARADA o TERM. Cuando se utiliza la contraseña del
maestro el software del controlador PLC lleva a cabo las siguientes
acciones:
- 1.
- el controlador PLC desea la transición al modo PARADA
- 2.
- se elimina (borra) el programa (OB1) de usuario
- 3.
- se elimina (borra) la memoria (DB1) de datos de usuario
- 4.
- si existe SDB0, todos los parámetros de SDB2, excepto la dirección de la estación y la velocidad en baudios, se copiarán a SDB0
- 5.
- todos los indicadores SM se ajustan a su estado por defecto
- 6.
- se eliminan todos los indicadores
- 7.
- se eliminan todos los bits SCR
- 8.
- se suspenderán las salidas analógicas
- 9.
- toda la memoria de datos del sistema se ajusta al estado por defecto
- 10.
- se eliminan todos los puntos forzados y se elimina el esfuerzo
- 11.
- no se cambiará el reloj de la hora del día
- 12.
- se eliminan todos los datos actuales de temporizador / contador
- 13.
- se inicializa la memoria EEPROM interna (se elimina OB1 y DB1 y SDB2 se copia a SDB0 a excepción de la dirección de la estación, y no está forzada ninguna de las entradas, salidas y valores de datos
El controlador 100 PLC admite Llamadas a
Funciones del Sistema (SFC) que el permiten al usuario cargar
funciones personalizadas al cargador PLC.
En general, las llamadas SFC pueden crearse, por
ejemplo, por los grupos de desarrollo S7-200 de
Siemens, y descargarse al controlador PLC mediante el dispositivo
de programación. El controlador PLC admite al menos dos llamadas
SFC. El tamaño máximo de cada llamada SFC depende de los recursos
disponibles en el controlador PLC específico. Para la CPU prevista
en esta invención, el tamaño máximo de cada llamada SFC es de 8KB,
incluyendo la información de cabecera de bloque. Las llamadas SC no
requieren necesariamente ningún dato de usuario, aunque puede
proporcionarse la distribución de los datos del sistema. Las
llamadas SFC descargadas al controlador PLC se vuelven parte del
sistema operativo de ese controlador PLC. Además, el controlador
PLC permite que las llamadas SC sean cargadas, descargadas,
eliminadas y copiadas al cartucho de memoria. El controlador PLC
comunica la existencia de llamadas SFC en las funciones adecuadas
de comunicación de directorios.
La instrucción de llamada SFC a modo de ejemplo
se muestra en la tabla de la figura 33a. Ahora de forma más
detallada, la figura 33b muestra el método de la llamada de
funciones del sistema. En la etapa S3300, el usuario alerta al
controlador PLC de que se desea una descarga SFC. El controlador PLC
lleva a cabo el protocolo necesario de toma de contacto para la
descarga (etapa S3302) y se descarga la llamada SFC (etapa S3304).
El controlador PLC almacena la función descargada como parte de las
funciones de biblioteca del sistema operativo (etapa S3306).
Los controladores PLC pueden utilizar la memoria
FLASH EPROM para que el almacenamiento del sistema operativo
soporte la carga de un nuevo sistema operativo a través del puerto
de comunicaciones. Esto se lleva a cabo empleando un bloque de
carga inicial en la memoria FLASH EPROM que no puede eliminarse
cuando se instala en el controlador PLC.
La carga de un nuevo sistema operativo puede
realizarse conectando directamente un ordenador personal al
controlador PLC empleando un cable PC/PPI. No se prefiere el empleo
de tarjetas PROFIBUS instaladas en un ordenador personal o parte de
un PG debido a la complejidad del protocolo PROFIBUS, que es el
único protocolo que puede utilizarse con estos dispositivos.
La definición del protocolo empleado para cargar
el nuevo sistema operativo se identificará por el diseño y cada
mensaje de comunicación proporcionará comprobaciones de la
integridad de los datos en forma de sumas de comprobación o códigos
CRC. La verificación de la integridad del nuevo sistema operativo
se solicita antes del funcionamiento normal, pero después de que se
haya programado la memoria FLASH EPROM.
Se ha encontrado que el sistema de depuración
convencional para los programas de depuración tiene imperfecciones
dado que el sistema de depuración anterior del controlador PLC
lleva a cabo la depuración tras la ejecución de todo el programa, o
interfiere de forma significativa con la temporización de la
ejecución del programa. Con este objetivo, el controlador PLC admite
la adquisición de resultados procedentes de la ejecución de un
grupo de instrucciones en el momento en que se ejecuta cada
instrucción del grupo. Esta característica novedosa se realiza en
tiempo real y mientras el controlador PLC está ejecutando la
instrucción. Para implementar esta instrucción, el controlador PLC
instrumenta el segmento de código compilado para el que va a
recopilarse el estado.
En una disposición, el estado del STL se
implementa en una pantalla de visualización, tal como la
proporcionada por una interfaz hombre - máquina acoplada al
controlador PLC, como es ampliamente conocido. El tamaño de la
ventana de estado en la pantalla de visualización se determinará
mediante el número de valores de operando que pueden ser devueltos.
El controlador PLC puede reservar, por ejemplo, una memoria
intermedia de 200 byte para valores de operando. El tamaño de esta
memoria intermedia se basa en la cantidad de datos que pueden
devolverse en un único marco de comunicación.
Preferiblemente sólo se admite una única ventana
de estado del STL. El admitir múltiples ventanas requiere memoria
RAM adicional y presenta problemas de sincronización y activación.
Por supuesto, con los desarrollos futuros en la tecnología de las
memorias, es posible que las múltiples ventanas se conviertan en una
posibilidad.
Sólo un dispositivo debería estar disponible para
abrir una ventana de estado del STL. La función de la ventana de
estado del STL estará asociada con la dirección de la estación del
dispositivo que abrió la ventana de estado del STL. Mientras la
ventana de estado del STL permanece abierta, el controlador PLC
denegará todas las demás peticiones para abrir una ventana de estado
del STL.
Para abrir una ventana de estado del STL el
dispositivo de programación puede identificar la dirección de la
primera instrucción de la ventana y luego identificar el número de
instrucciones en la ventana. A continuación se muestra el formato
básico de la especificación de la ventana.
| Dirección de instrucción de inicio de ventana | 2 Bytes |
| No. de instrucciones en la ventana de estado del STL | 2 Bytes |
En este ejemplo, la única dirección de
instrucción especificada es la dirección de memoria de la primera
instrucción de la ventana. El dispositivo de programación aguanta
la carga completa para asegurarse de que los datos de respuesta
solicitados en la configuración del estado del STL se ajustan en los
200 bytes de la memoria intermedia de respuesta.
Por principio, la pantalla de visualización del
estado del STL no debe atravesar los límites entre las partes de
programas, por ejemplo, Princ a Sub, Sub a Sub, Sub a Int, Int a
Int. Esto provocaría una dislocación.
El formato a modo de ejemplo de la memoria
intermedia de respuesta se muestra en la figura 34a, en la que la
dirección de instrucción del inicio de la ventana de estado del STL
se devuelve para la confirmación positiva de que el controlador PLC
y el dispositivo de programación están visualizando la misma
ventana. El campo de longitud indica el número de bytes de valores
de datos contenidos en el área de datos para cada instrucción.
Ahora se describirá el código:
V
0 - los datos para esta instrucción no son
válidos puesto que la instrucción no se ejecutó durante este
barrido
1 - los datos para esta instrucción son
válidos
ENO
\hskip1.55cmEl bit de habilitación de salida que indica si se ejecutó la instrucción sin errores.
SCR
\hskip1.6cmEl valor del bit de la pila SCR.
S4 - S0
\hskip1.2cmS0 hace referencia al valor de la parte superior de la pila y S1 hace referencia al siguiente valor de la pila.
Data
\hskip1.6cmLa información de estado del STL devuelta por la instrucción. El dispositivo de programación es responsable de analizar los datos basándose en la petición que configura la ventana de estado del STL
El controlador PLC es responsable de asegurarse
de que los datos capturados en la ventana de estado del STL
proceden de un único ciclo de barrido. El controlador PLC le indica
esto al dispositivo de programación mediante el indicador
"Válido" (V), que se proporciona al disminuir los valores de
la pila para cada instrucción. De forma interna, el controlador PLC
lleva un seguimiento de lo que es válido mediante un valor del
contador de barrido que se reajusta mediante una petición a la
memoria intermedia de estado del STL y que se incrementa con cada
barrido. Cuando debe escribirse un valor en la memoria intermedia
de estado del STL, la palabra de estado del número de barridos se
compara con el valor actual del contador de barridos. Si los valores
son diferentes, el valor del contador de barridos se copiará a la
palabra de estado del número de barridos para la memoria intermedia
de estado del STL y se eliminarán todos los indicadores V de la
memoria intermedia. Entonces, se almacenan los nuevos valores en la
memoria intermedia y se ajusta el indicador V para esa instrucción.
Si los valores de los números de barridos son iguales, entonces se
almacenarán los nuevos valores en la memoria intermedia y se ajusta
el indicador V para esa instrucción. Esto le permite a la memoria
intermedia estar siempre actualizada con los datos procedentes del
último barrido al tiempo que mantiene los datos sincronizados con
el mismo barrido.
Ahora se describirá, de forma simultánea, el
aparato y el funcionamiento del STL en relación con las figuras 34b
y 34c. La sección de código compilado correspondiente a las
instrucciones en la Ventana de Estado del STL es identificada por
el controlador PLC (etapa S3400) (sombreada en la figura). El
código original compilado en esta región sombreada se guarda (etapa
S3402) y luego se restituye una vez que ha finalizado la operación
de Estado del STL (S3420). Una vez que se ha guardado el código
original compilado, se compila el código instrumentado en otra
sección de la memoria RAM (S3404).
Para explicar el proceso de instrumentar el
código es necesario definir algunos términos de la siguiente
manera:
Instrucción compilada - Una instrucción compilada
es el código máquina o código ejecutable creado al compilar una
instrucción del STL. Generalmente, cada instrucción del STL se
compila en múltiples instrucciones de la máquina.
Instrucción instrumentada - Una instrucción
instrumentada es una instrucción compilada junto con el código
máquina adicional requerido para guardar el estado del flujo de
potencia y los valores de operando.
Para mantener las direcciones de etiquetas, para
bucles subsiguientes, subrutinas y rutinas de interrupción, cada
instrucción compilada en la Ventana de Estado del STL se sustituye
con una desviación a la instrucción instrumentada (etapa S3406).
Cada instrucción instrumentada finaliza con una instrucción de
retorno que transfiere el control a la siguiente instrucción
compilada (etapa S3408).
La desviación al código instrumentado se realiza
empleando una instrucción LCALL (etapa S3410). La instrucción LCALL
transfiere el control al siguiente código instrumentado, que
captura el estado del STL para esa instrucción (S3412). Para las
instrucciones compiladas que son mayores de tres bytes, el valor de
retorno se ajusta de tal manera que se transferirá el control a la
siguiente instrucción compilada (etapa S3414).
La dirección de inicio de la primera instrucción
compilada en la Ventana de Estado del STL puede determinarse antes
de la instrumentación (S3416). Para reducir el tiempo necesario
para determinar esta dirección, puede mantenerse una tabla que
contiene un marcador a la dirección, por ejemplo, de cada vigésimo
quinta instrucción compilada (S3418). Una tabla de este tipo
necesitará aproximadamente 300 bytes para un programa de usuario de
8192 bytes. Si hay más memoria RAM disponible, entonces los
marcadores de la tabla de direcciones pueden señalar a cada décima
instrucción compilada, lo que reducirá adicionalmente el tiempo
para la instrumentación del estado del STL.
El controlador PLC utiliza la tabla de la figura
34c, que muestra un listado de las instrucciones booleanas más
rápidas y muestra qué cambios se requieren para compilar el código
de manera que todas las instrucciones tengan una longitud mínima de
tres bytes. Las instrucciones en las partes sombreadas de la tabla
le indican al controlador PLC qué instrucciones pueden
modificarse.
La técnica anterior requiere la mínima cantidad
de memoria RAM, pero también requiere que todas las instrucciones
de código compilado tengan al menos el número de bytes requerido
por la instrucción LCALL que se utilizará para la desviación a la
sección de código instrumentado. Por motivos de claridad, se supone
en lo anterior que la instrucción LCALL es de al menos tres bytes y
que todas las instrucciones compiladas son de al menos tres
bytes.
En la figura 1 se muestra el concepto de diseño
mecánico para la gama del controlador PLC. El concepto de diseño es
un estilo "cubo" que tendrá la capacidad de tener unidades
conectadas para la expansión. Estas unidades de expansión también
serán del mismo estilo y forma. El objetivo del diseño es hacer que
esta unidad sea tan rentable como sea posible al tiempo que se
mantiene la misma apariencia de gama de la gama Siemens
S7-300™ y S7-400™. La gama del
controlador PLC tendrá el mismo color y estilo de texto que la gama
S7-300™ y S7-400™.
La carcasa del controlador PLC está moldeada en
un plástico y color uniformes (Noryl CFN1 SE1 Anthrazit 614 Herst
N.R, CE 93263). La unidad está compuesta por una cubierta superior,
una cubierta base y dos cubiertas de acceso, un enclavamiento de
montaje en carril DIN, y dos tamaños de tubos luminosos. Todas
estas partes se unen por presión para facilitar la fabricación.
También se toman medidas para permitir que los PWB encajen en su
posición. La carcasa E/S está diseñada de la misma manera que la
carcasa del controlador PLC. La carcasa se diseñará para la
protección IP20 y para impedir que otros objetos (tales como una
moneda) entren en la unidad. La tabla de la figura 35a muestra un
posible grupo de dimensiones de las unidades.
El controlador 3900 PLC mostrado en la figura 35b
está diseñado para montarse en un carril 3906 DIN o para montarse
en un panel 3908. Se utilizará un enclavamiento de montaje para
bloquear la unidad sobre un carril DIN estándar del tipo 50022 si
la unidad va a montarse en un carril DIN. Si la unidad va a montarse
sobre un panel, se proporcionan orificios de montaje que aceptan un
tamaño de tornillo métrico de tipo M4 o #8. El controlador 3904 PLC
se muestra aquí acoplado con el módulo 3902 E/S de expansión. Será
necesario un espacio libre de, por ejemplo, 25 mm por encima y por
debajo de la unidad para permitir el acceso del cable de usuario y
para permitir el enfriamiento adecuado de la unidad.
Aunque la presente invención se ha descrito en
relación con valores y disposiciones de circuitos específicos, se
apreciará que pueden sustituirse otros valores y disposiciones de
circuitos por los descritos dentro del espíritu y el alcance de la
presente invención. Además, se apreciará que el profesional
reconocerá al instante cómo implementar el código de software del
controlador PLC y entenderá, en relación con esto, que las distintas
aplicaciones de software pueden estar escritas en cualquier
lenguaje de programación adecuado, así como pueden almacenarse en
cualquier medio de grabación adecuado, tal como un disco,
CD-ROM o DVD que incluye memoria no volátil.
Claims (8)
1. Aparato para un controlador (100; 200) lógico
programable (PLC) que incluye un circuito (508; 900; 904) de
captación de impulsos para capturar un cambio en el estado de una
señal de entrada hasta que dicho controlador (100; 200) PLC haya
detectado dicho cambio de estado, incluso cuando un cambio en dicha
señal de entrada tenga lugar entre ciclos de barrido de dicho
controlador (100; 200) PLC, comprendiendo dicho circuito (508; 900;
904) de captación de impulsos:
una entrada (418) para recibir dicha señal de
entrada; y
un circuito (508; 900; 904) que ajusta un
indicador que indica que dicha señal de entrada ha cambiado de
estado;
en el que dicho circuito (508; 900;
904) de captación de impulsos ignora cualquier cambio que ocurra en
dicha señal de entrada mientras dicho indicador esté en su estado
ajustado, reteniendo un estado de señal de entrada capturado hasta
que el controlador PLC haya detectado dicho cambio de estado,
incluso si un cambio en dicha señal de entrada tiene lugar entre
ciclos de barrido de dicho controlador (100; 200) PLC, y
caracterizado porque comprende además un circuito (510) de
interrupción de borde que interrumpe dicho controlador (100; 200)
PLC, suspendiendo con ello la ejecución normal del programa de dicho
controlador (100; 200)
PLC.
2. Aparato de la reivindicación 1, en el que
dicho circuito (508; 900; 904) reajusta dicho indicador cuando se
detecta dicho cambio de estado de dicha señal de entrada mediante
dicho controlador (100; 200) PLC, capturando con ello dicho cambio
de estado y re-habilitando dicho circuito (508; 900;
904) para reconocer cambios de estado adicionales en dicha señal de
entrada.
3. Aparato de la reivindicación 1, que comprende
además una pluralidad de circuitos (508; 900; 904) de captación de
impulsos, cada uno con componentes de dichos circuitos (508; 900;
904) de captación de impulsos previstos para cada entrada integrada
de dicho controlador PLC.
4. Aparato de la reivindicación 3, en el que cada
uno de los circuitos (508; 900; 904) de captación de impulsos de
dicha pluralidad está habilitado o deshabilitado de forma
individual.
5. Método para un controlador (100; 200) lógico
programable PLC que incluye un circuito (508; 900; 904) de
captación de impulsos para capturar un cambio de estado de una
señal de entrada hasta que dicho controlador (100; 200) PLC haya
detectado dicho cambio de estado, incluso si el cambio en dicha
señal de entrada tiene lugar entre ciclos de barrido de dicho
controlador (100; 200) PLC, comprendiendo dicho método las etapas
de:
recibir dicha señal de entrada; y
ajustar un indicador que indica que dicha señal
de entrada ha cambiado de estado;
en el que dicho circuito (508; 900;
904) de captación de impulsos ignora cualquier cambio que ocurra en
dicha señal de entrada mientras dicho indicador esté en su estado
ajustado, reteniendo con ello un estado de señal de entrada
capturado hasta que el controlador (100; 200) PLC haya detectado
dicho cambio de estado, incluso si un cambio en dicha señal de
entrada tiene lugar entre ciclos de barrido de dicho controlador
(100; 200) PLC, caracterizado porque comprende además la
etapa de proporcionar una interrupción de borde para utilizarla
para interrumpir dicho controlador (100; 200) PLC; suspendiendo con
ello la ejecución normal del programa de dicho controlador
PLC.
6. Método de la reivindicación 5, que comprende
además la etapa de reajustar dicho indicador cuando dicho cambio de
estado de dicha señal de entrada es detectado por dicho controlador
(100; 200) PLC, capturando con ello dicho cambio de estado y
rehabilitando dicho circuito para detectar cambios de estado
adicionales en dicha señal de entrada.
7. Método de la reivindicación 5, en el que dicha
etapa de ajuste comprende además la etapa de ajustar dicho
indicador para cada señal integrada de dicho controlador (100; 200)
PLC.
8. Método de la reivindicación 7, que comprende
además la etapa de habilitar y deshabilitar de forma individual el
ajuste de dicho indicador para cada entrada integrada en dicho
controlador (100; 200) PLC.
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12449899P | 1999-03-15 | 1999-03-15 | |
| US124498P | 1999-03-15 | ||
| US526114 | 2000-03-15 | ||
| US09/526,114 US6594529B1 (en) | 1999-03-15 | 2000-03-15 | Programmable logic controller method, system and apparatus |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2222194T3 true ES2222194T3 (es) | 2005-02-01 |
Family
ID=26822668
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES00917965T Expired - Lifetime ES2222194T3 (es) | 1999-03-15 | 2000-03-15 | Controlador logico programable con capacidad de deteccion de impulsos de corta duracion. |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US6594529B1 (es) |
| EP (1) | EP1177481B1 (es) |
| CN (1) | CN1180324C (es) |
| AT (1) | ATE268483T1 (es) |
| DE (1) | DE60011262T2 (es) |
| ES (1) | ES2222194T3 (es) |
| WO (1) | WO2000055697A1 (es) |
Families Citing this family (43)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6574743B1 (en) * | 1999-03-30 | 2003-06-03 | Siemens Energy & Automation | Programmable logic controller method, system and apparatus |
| EP1457033A1 (en) * | 2001-12-18 | 2004-09-15 | Siemens Energy & Automation, Inc. | PLC TO PLC COMMUNICATIONS WITH A MODEM ON THE PLC I/O BUS |
| EP1457020A1 (en) * | 2001-12-18 | 2004-09-15 | Siemens Energy & Automation, Inc. | Security features for an integral plc modem |
| US7981257B2 (en) | 2002-04-12 | 2011-07-19 | Schneider Electric USA, Inc. | Current-based method and apparatus for detecting and classifying arcs |
| US6978227B2 (en) | 2002-04-12 | 2005-12-20 | Schneider Automation Inc. | Programmable logic controller with programmable high-speed digital processing |
| US7988833B2 (en) | 2002-04-12 | 2011-08-02 | Schneider Electric USA, Inc. | System and method for detecting non-cathode arcing in a plasma generation apparatus |
| CN100442259C (zh) * | 2002-10-18 | 2008-12-10 | Nxp股份有限公司 | 处理输入比特的数据处理设备 |
| CN1521762B (zh) * | 2003-01-30 | 2010-05-05 | 旺宏电子股份有限公司 | 窄化起始电压分布的方法 |
| USD507542S1 (en) * | 2003-02-11 | 2005-07-19 | Delta Electronics, Inc. | Programmable logic control panel |
| TWD104898S1 (zh) * | 2003-11-10 | 2005-06-01 | 產電股份有限公司 | 可程式邏輯控制器之電源模組 |
| US7310720B2 (en) * | 2004-06-08 | 2007-12-18 | Siemens Energy & Automation, Inc. | Method for portable PLC configurations |
| US7308550B2 (en) * | 2004-06-08 | 2007-12-11 | Siemens Energy & Automation, Inc. | System for portable PLC configurations |
| US7512593B2 (en) * | 2004-06-08 | 2009-03-31 | Siemens Energy & Automation, Inc. | System for searching across a PLC network |
| US7860874B2 (en) * | 2004-06-08 | 2010-12-28 | Siemens Industry, Inc. | Method for searching across a PLC network |
| CN100342296C (zh) * | 2005-09-09 | 2007-10-10 | 深圳兆日技术有限公司 | 基于可信计算模块芯片实现计算机软件防盗版的方法 |
| US7568198B2 (en) * | 2006-01-10 | 2009-07-28 | National Instruments Corporation | Control of tasks in a programmable logic controller |
| US8352651B2 (en) * | 2007-06-12 | 2013-01-08 | Siemens Aktiengesellschaft | Devices, systems, and methods regarding programmable logic controller communications |
| US8195844B2 (en) | 2007-09-20 | 2012-06-05 | Siemens Aktiengesellschaft | Systems, devices, and/or methods for managing communications |
| US7646230B2 (en) * | 2007-09-21 | 2010-01-12 | Siemens Industry, Inc. | Devices, systems, and methods for reducing signals |
| USD679257S1 (en) * | 2010-08-04 | 2013-04-02 | Lg Electronics Inc. | Digital direct controller |
| USD675997S1 (en) * | 2010-08-16 | 2013-02-12 | Lg Electronics Inc. | Digital direct controller |
| US8538559B2 (en) * | 2011-04-04 | 2013-09-17 | Relcom, Inc. | Fieldbus system function block enhancements using transducer block |
| CN102384025A (zh) * | 2011-09-22 | 2012-03-21 | 苏州能健电气有限公司 | Plc控制系统 |
| CN109634198B (zh) | 2011-10-05 | 2021-06-22 | 奥普唐公司 | 用于监视和/或生成动态环境的方法、装置和系统 |
| USD727856S1 (en) * | 2013-03-19 | 2015-04-28 | Abb Technology Ltd. | Profibus master |
| USD733072S1 (en) * | 2013-03-19 | 2015-06-30 | Abb Technology Ltd. | Controller |
| USD704150S1 (en) * | 2013-05-15 | 2014-05-06 | Beijing Hollysys Co., Ltd. | Electronic control device |
| US9508267B2 (en) | 2013-06-09 | 2016-11-29 | Cae Inc. | Configurable simulator with testing capabilities |
| US10114783B2 (en) | 2014-03-26 | 2018-10-30 | Cae Inc. | Configurable input/output unit |
| US8868808B1 (en) * | 2014-03-26 | 2014-10-21 | Cae Inc. | Configurable simulator with a plurality of configurable modular cards |
| US8843660B1 (en) * | 2014-03-26 | 2014-09-23 | Cae Inc. | Configurable simulator for performing a distributed simulation |
| WO2015143533A1 (en) * | 2014-03-26 | 2015-10-01 | Cae Inc. | Configurable input/output unit |
| JP6375666B2 (ja) * | 2014-03-31 | 2018-08-22 | 株式会社ジェイテクト | Plcおよびplc用のプログラミングツール |
| US9843436B2 (en) * | 2015-06-27 | 2017-12-12 | Intel Corporation | Flexible interconnect architecture |
| CN105116830B (zh) * | 2015-07-27 | 2018-04-03 | 深圳市合信自动化技术有限公司 | 一种plc控制系统以及plc扩展总线实现方法 |
| US10417003B1 (en) | 2015-08-31 | 2019-09-17 | Ambarella, Inc. | Data unit synchronization between chained pipelines |
| CN108515031A (zh) * | 2018-03-30 | 2018-09-11 | 深圳大学 | 一种五金冲压件攻牙缺陷检测系统及方法 |
| CN109709860B (zh) * | 2018-12-30 | 2021-08-20 | 武汉极目智能技术有限公司 | 一种基于fpga的图像滤波器流水线控制系统及方法 |
| US11579578B2 (en) * | 2020-03-26 | 2023-02-14 | Honeywell International Inc. | Hierarchal controller logic with incremental updates |
| DE102021003647A1 (de) * | 2020-07-30 | 2022-02-03 | Canon Kabushiki Kaisha | Informationsverarbeitungsvorrichtung, Kontaktplanprogramm-Erzeugungsvorrichtung, Informationsverarbeitungsverfahren, Kontaktplanprogrammerzeugungsverfahren, Verfahren zum Herstellen eines Produkts, Programm und Aufzeichnungsmedium |
| TWI761008B (zh) | 2020-12-30 | 2022-04-11 | 新唐科技股份有限公司 | 可編程串列輸入輸出控制器、操作系統及方法 |
| CN114499815B (zh) * | 2021-12-27 | 2024-09-03 | 苏州路之遥科技股份有限公司 | 一种基于rs485的单线半双工转换电路 |
| CN115268352B (zh) * | 2022-05-09 | 2024-09-06 | 山东省计算中心(国家超级计算济南中心) | 一种适用于运动控制的plc指令设计方法 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4750150A (en) * | 1984-06-25 | 1988-06-07 | Allen-Bradley Company, Inc. | I/O scanner for an industrial control |
| US5461331A (en) * | 1994-07-28 | 1995-10-24 | International Business Machines Corporation | Dynamic to static logic translator or pulse catcher |
| GB2292620B (en) * | 1994-08-16 | 1998-04-22 | Motorola Israel Ltd | Event driven programmer logic controller processor arrangement |
| US5802389A (en) * | 1994-12-29 | 1998-09-01 | Siemens Energy & Automation, Inc. | Expansion module address method and apparatus for a programmable logic controller |
-
2000
- 2000-03-15 AT AT00917965T patent/ATE268483T1/de not_active IP Right Cessation
- 2000-03-15 CN CNB008076197A patent/CN1180324C/zh not_active Expired - Lifetime
- 2000-03-15 EP EP00917965A patent/EP1177481B1/en not_active Expired - Lifetime
- 2000-03-15 US US09/526,114 patent/US6594529B1/en not_active Expired - Lifetime
- 2000-03-15 WO PCT/US2000/006795 patent/WO2000055697A1/en not_active Ceased
- 2000-03-15 ES ES00917965T patent/ES2222194T3/es not_active Expired - Lifetime
- 2000-03-15 DE DE60011262T patent/DE60011262T2/de not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| ATE268483T1 (de) | 2004-06-15 |
| EP1177481B1 (en) | 2004-06-02 |
| US6594529B1 (en) | 2003-07-15 |
| WO2000055697A1 (en) | 2000-09-21 |
| DE60011262D1 (de) | 2004-07-08 |
| CN1180324C (zh) | 2004-12-15 |
| DE60011262T2 (de) | 2005-06-23 |
| EP1177481A1 (en) | 2002-02-06 |
| CN1350665A (zh) | 2002-05-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2263465T3 (es) | Metodo, sistema y aparato, para un controlador logico programable. | |
| EP1177481B1 (en) | Programmable logic controller with short duration pulses detection capability | |
| US6536029B1 (en) | Programmable logic controller method, system and apparatus | |
| US4972365A (en) | Executing downloaded user programs in a programmable controller | |
| US4918589A (en) | Method and apparatus for linking processors in a hierarchical control system | |
| US6717515B1 (en) | Sensor system | |
| EP1517203B1 (en) | Safety controller with simplified interface | |
| US7287184B2 (en) | High speed synchronization in dual-processor safety controller | |
| KR100196091B1 (ko) | 주변장치 선택 시스템 | |
| US20030204373A1 (en) | Wireless communication method between handheld field maintenance tools | |
| US12373281B2 (en) | Data processing procedure for safety instrumentation and control (I and C) systems, I and C system platform, and design procedure for I and C system computing facilities | |
| US6073053A (en) | Industrial controller input/output card providing reflex response | |
| JP4596448B2 (ja) | バスシステムの加入者におけるプログラム中断を発生させる方法,その装置及びバスシステム | |
| US20020069303A1 (en) | Universal controller expansion module system, method & apparatus | |
| US4131944A (en) | System bus module for a controller | |
| CN201489524U (zh) | 代码完整性校验电路 | |
| US6088514A (en) | Environmental data logging system | |
| ES2293704T3 (es) | Interfaz de bus. | |
| RU2117978C1 (ru) | Программируемое устройство для логического управления электроприводами и сигнализацией | |
| Levy | A wireless, low power, asynchronous, multi-sensor, temperature network | |
| Heller | The Hardware Substrate | |
| Steffan | Functional Safety in KNX | |
| JPH04157556A (ja) | 識別番号付与方式 | |
| JPH04123101A (ja) | ディジタル制御装置 | |
| WO1988009971A1 (en) | Security system having selective software program locks utilizing removable pla keys to allow hardware security lock updates |