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
Application number
ES00917965T
Other languages
English (en)
Inventor
Mark Steven Boggs
Temple L. Fulton
Steve Hausman
Gary Mcnabb
Alan Mcnutt
Steven W. Stimmel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens Energy and Automation Inc
Original Assignee
Siemens Energy and Automation Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Siemens Energy and Automation Inc filed Critical Siemens Energy and Automation Inc
Application granted granted Critical
Publication of ES2222194T3 publication Critical patent/ES2222194T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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.
Antecedentes Campo de la invención
La presente invención se refiere a un controlador lógico programable (PLC).
Información relacionada
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.
Objetos y sumario de la invención
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.
Breve descripción de los dibujos
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.
Descripción detallada de las realizaciones preferidas Descripción general del controlador lógico programable (PLC)
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.
Unidad de puntos de entrada digital
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. Circuito de filtrado de entrada digital
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
Circuito de captura de impulsos
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.
Diagrama de bloques de nivel superior del circuito de captura de impulsos
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.
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.
Unidad de punto de salida digital
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.
Bloques de salida de impulsos
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.
Diagrama de bloques del controlador PLS y vista operativa global
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,
1
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).
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.
Operación PTO
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.
Funcionamiento PWM
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.
Instrucción del perfil de salida del tren de impulsos (PTOP)
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.
Unidad E/S de expansión Vista global del concepto de bus de expansión
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.
El circuito ASIC (Máquina maestra de estado y temporización de las transacciones)
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.
Secuencia de transacción de bus
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.
Bits de comprobación de la paridad
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.
Consideraciones de la Interfaz de Software
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.
Desactivar la salida empleando la señal XA_OD
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.
Memoria de programa de usuario
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.
Comunicación en serie
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.
Escritura y lectura de red en los modos PPI de maestro y esclavo
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.
Enlace de puerto libre proporcionado en el modo maestro PPI
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).
Protocolo Puerto Libre Integrado
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.
Interrupción de la recepción de mensajes en puerto libre
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.
Comunicaciones DP_S7
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.
Comunicaciones por módem
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.
Partes ocultas del programa de usuario
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).
Contraseñas de usuario
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
Soporte de llamadas de funciones del sistema
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).
Cargar nuevo sistema operativo
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.
Estado del STL
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.55cm
El bit de habilitación de salida que indica si se ejecutó la instrucción sin errores.
SCR
\hskip1.6cm
El valor del bit de la pila SCR.
S4 - S0
\hskip1.2cm
S0 hace referencia al valor de la parte superior de la pila y S1 hace referencia al siguiente valor de la pila.
Data
\hskip1.6cm
La 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.
Instrumentando la Ventana de Código Compilado para el Estado del STL
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.
Concepto de diseño
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™.
Carcasa
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.
Montaje de la unidad
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.
ES00917965T 1999-03-15 2000-03-15 Controlador logico programable con capacidad de deteccion de impulsos de corta duracion. Expired - Lifetime ES2222194T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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