PLC TSX 07
Software PL7-07
El PLC en el sistema de C.A.
Terminal de Programación
Memoria dePrograma
Procesador
OUTPUTS
INPUTS
PLC
PC
Operación
Procesamiento Interno
LecturaEntradas
Ejecuciónprograma
ActualizaciónSalidas
Sca
n
Direccionamientode I/O
• Entrada: % I 0 o 1 . i
(entrada) 0 = PLC base nro.entrada
1 = ext. I/O i = 0 a 8
• Salida % Q 0 o 1 . i
(salida) 0 = PLC base nro.salida
1 = ext. I/O i = 0 a 6
Display del estado del PLC
OKApagado
- (para la extensión)Intermitente
Vínculo de extensión no activoApagado
OKApagado
Aplicación no ejecutableIntermitente
PLC apagado / aplic.no ejecutableApagado
Aplic.en STOP / falla en ejecuciónIntermitente
Fallas de I/OEncendidoI/O
Vínculo de extensión activoEncendidoCOM
Fallas internasEncendidoERR
Aplicación en ejecuciónEncendidoRUN
SignificadoEstadoLed
RUN
COM
ERR
I/O
Display de I/O
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6
I
O
Encendido: I/O en ONApagado: I/O en OFFIntermitente: error en la I/O
Salvando el programa y los datos
• El programa y los datos del usuario están en la memoria RAM del PLC.
• El programa puede también ser transferido a la EEPROM.
Programación
• Modo Lista
003 LD %I0.1
Nro.Línea Código Operando
Instrucción
• Modo Ladder%I0.0 %I0.2 %I0.4 %Q0.4
%I0.1 %I0.7
Reversibilidad
%I0.5 %Q0.4
%I0.4
Es equivalente a:
LD %I0.5OR %I0.4ST %Q0.4
Modo Lista
Operandos de tipo bit
[
Ej.: [%MWi < 1000] Expresiones de comparación
%:Xk
Ej.: %MWi:Xk (0 k 15)
Bits extraídos de palabras
%BLK.x
Ej.: %TMi.QBits de bloques de función
%Si (0 i 127)Bits del sistema
%Mi (0 i 127)Bits internos
%I0.i (0 i 8)
%Q0.i (0 i 6)Bits de I/O
0 o 1Valores inmediatos
Instrucciones booleanas
• Elementos de condición
LD %I0.0 (LOAD) Carga en el acumulador la imagen lógica del
estado eléctrico de la entrada %I0.0.
• Elementos de acción
ST %Q0.0 (STORE)El objeto bit asociado toma el valor lógico del acumulador (resultado de la lógica previa).
• Ecuaciones booleanas
LD %I0.0
AND %I0.1
ST%Q0.0El resultado booleano de los elementos de condición es aplicado al elemento de acción.
Detección de flancos ascendentes y descendentes
• Flanco ascendente: detecta el cambio de una entrada de 0 a 1.
• Flanco descendente: detecta el cambio de una entrada de 1 a 0.
1 scan del PLC
%I0.2
Tiempo
Resultadobooleano
1 scan del PLC
%I0.2
Tiempo
Resultadobooleano
Instrucciones de carga
%ILDF
%ILDR
%I, %Q, %M, %S, %BLK.x, %:Xk, [LDN
0/1, %I, %Q, %M, %S, %BLK.x, %:Xk, [LD
OperandoCódigo
Estas instrucciones cargan el valor del operando, su inversa, su flanco ascendente o descendente, respectivamente, en el acumulador.
Instrucciones de asignación
%Q, %M, %S, %BLK.x, %:XkR
%Q, %M, %S, %BLK.x, %:XkS
%Q, %M, %S, %BLK.x, %:XkSTN
%Q, %M, %S, %BLK.x, %:XkST
OperandoCódigo
Las dos primeras instrucciones asignan el valor del acumulador o su inversa en el operando.
Las dos últimas instrucciones setean o resetean el valor del operando dependiendo del resultado de la lógica previa.
Instrucciones lógicas AND
%IANDF
%IANDR
%I, %Q, %M, %S, %BLK.x, %:Xk, [ANDN
0/1, %I, %Q, %M, %S, %BLK.x, %:Xk, [AND
OperandoCódigo
Estas instrucciones ejecutan un AND lógico entre el operando, (su inversa, su flanco ascendente o descendente), y el resultado booleano de la instrucción previa.
Instrucciones lógicas OR
%IORF
%IORR
%I, %Q, %M, %S, %BLK.x, %:Xk, [ORN
0/1, %I, %Q, %M, %S, %BLK.x, %:Xk, [OR
OperandoCódigo
Estas instrucciones ejecutan un OR lógico entre el operando, (su inversa, su flanco ascendente o descendente), y el resultado booleano de la instrucción previa.
Instrucciones lógicas XOR
%IXORF
%IXORR
%I, %Q, %M, %S, %BLK.x, %:Xk, [XORN
%I, %Q, %M, %S, %BLK.x, %:Xk, [XOR
OperandoCódigo
Estas instrucciones ejecutan un OR exclusivo entre el operando, (su inversa, su flanco ascendente o descendente), y el resultado booleano de la instrucción previa.
Instrucción NOT
-N
OperandoCódigo
Esta instrucción niega el resultado booleano de la instrucción previa.
Uso de paréntesis
Las instrucciones AND y OR pueden usar paréntesis. La apertura va asociada con la instrucción AND u OR.
Por cada paréntesis abierto debe aparecer una instrucción de cierre de paréntesis.
Ejemplo:
LD %I0.0
AND( %I0.1
OR %I0.2
)
ST %Q0.0
%I0.0 %I0.1 %Q0.0
%I0.2
%I0.0 %I0.1 %Q0.0
%I0.2
LD %I0.0
AND %I0.1
OR %I0.2
ST %Q0.0
Uso de paréntesis
• Se pueden agregar modificadores al paréntesis que abre:– N negaciónAND(N u OR(N– R fl. asc. AND(R u OR(R– F fl. desc. AND(F u OR(F– [ comparación
Ejemplo:
LD %I0.0
AND %I0.1
OR(N %I0.2
AND %I0.3
)
ST %Q0.0
Uso de paréntesis
• Se pueden anidar hasta 8 niveles de paréntesis.
• No se deben ubicar rótulos ni subrutinas entre paréntesis.
• No se deben ubicar instrucciones de bloques de función entre paréntesis.
• No se deben ubicar instrucciones ST, STN, S y R entre paréntesis.
Bloques de función
• Timers
• Contadores
Manejan objetos de tipo:– Bit: Salidas del bloque– Palabra: Parámetros de
configuración y valores actuales
Timers
%TMi
TYPE: TONTB: 1 minADJ: y%TMi.P: 9999
IN Q
Timers: Tipos
Existen tres tipos:
• TON: Para controlar acciones on-delay
• TOF: Para controlar acciones off-delay
• TP: Para crear pulsos de duración exacta
Timers: Características
Se hace 1 según el tipo de timer
QSalida del timer
El timer arranca con su fl. ascendente (TP / TON) o con su fl. desc. (TOF)
INEntrada de seteo
0 %TMi.P 9999 (defecto)
Puede ser leída y escrita por el programa
Delay grado. = %TMi.P x TB
%TMi.PValor de preset
Se incrementa de 0 a %TMi.P
Puede ser leída pero no escrita por el programa
%TMi.VValor actual
1 min (defecto), 1s, 100ms, 10ms, 1ms (%TM0 y %TM1)
TBTiempo base
On-delay (defecto)
Off-delay
Pulso
TON
TOF
TP
Tipo
0 a 31%TMi Nro. Timer
Timer TON: Funcionamiento
• El timer se inicia con un flanco ascendente de IN.
• El valor %TMi.V se incrementa de 0 a %TMi.P una unidad por cada pulso de duración TB.
• %TMi.Q se hace 1 cuando %TMi.V alcanza a %TMi.P y %TMi.Q se hace 0 con un flanco descendente de IN.
• Con un flanco descendente de IN el timer se detiene y %TMi.V vuelve a 0.
IN
Q
%TMi.P
%TMi.V
Timer TOF: Funcionamiento
• Un flanco ascendente de IN setea el valor de %TMi.V a 0.
• Un flanco descendente de IN inicia el timer.• El valor %TMi.V se incrementa de 0 a %TMi.P
una unidad por cada pulso de duración TB.• %TMi.Q se hace 1 con el flanco ascendente de
IN y %TMi.Q se hace 0 cuando %TMi.V llega a %TMi.P.
• Es reseteado con un flanco ascendente de IN (el timer se detiene y %TMi.V vuelve a 0).
IN
Q
%TMi.P
%TMi.V
Timer TP: Funcionamiento
• Un flanco ascendente de IN inicia el timer.• El valor %TMi.V se incrementa de 0 a %TMi.P
una unidad por cada pulso de duración TB.• %TMi.Q se hace 1 al iniciarse el timer y
%TMi.Q se hace 0 cuando %TMi.V llega a %TMi.P.
• No puede ser reseteado.• Cuando %TMi.V llega a %TMi.P e IN está en
0, %TMi.V cae a 0.
IN
Q
%TMi.P
%TMi.V
Timers: Programación
LD %I0.0
IN %TM1
LD %TM1.Q
ST %Q0.3
%I0.0 %Q0.3%TM1
IN Q
Se deben configurar:• el tipo• TB • %TMi.P
Timers: Configuración
Contadores
Se usan para contar eventos en forma ascendente o descendente.
%Ci
%Ci.P: 9999
RE
S
CU
CD
D
F
Contadores: Características
En 1 cuando %Ci.V pasa de 9999 a 0
F (full)Salida overflow
En 1 cuando %Ci.V = %Ci.PD (done)
Salida preset alcanzado
En 1 cuando %Ci.V pasa de 0 a 9999
E (empty)
Salida underflow
Un flanco descendente decrementa %Ci.V
CDEntrada cuenta descendente
Un flanco ascendente incrementa %Ci.V
CUEntrada cuenta ascendente
Si vale 1 %Ci.V = %Ci.PSEntrada de seteo
Si vale 1 %Ci.V = 0REntrada de reseteo
0 %Ci.P 9999 (defecto)%Ci.PValor Preset
Palabra inc. o decr. según CU y CD
%Ci.VValor Actual
0 a 15%CiNro. Contador
Contadores: Funcionamiento
• Cuenta ascendente: – Un flanco ascendente en CU, inicia el
incremento de %Ci.V. – Cuando %Ci.V llega a %Ci.P, %Ci.D = 1. – Cuando %Ci.V pasa de 9999 a 0, %Ci.F=1,
y vuelve a 0 si la cuenta sigue.
• Cuenta descendente: – Un flanco ascendente en CD, inicia el
decremento de %Ci.V. – Cuando %Ci.V pasa de 0 a 9999, %Ci.E=1,
y vuelve a 0 si la cuenta sigue.
• Reset: Cuando esta entrada vale 1:– %C1.V=0, %Ci.E=0, %Ci.D=0 y %Ci.F=0.
Esta entrada tiene prioridad.
• Set: Cuando vale 1, si R está en 0:– %Ci.V=%Ci.P y %Ci.D=1.
Contadores: Programación
LD %I0.1
R %C8
LD %I0.2
AND %M0
CU %C8
LD %C8.D
ST %Q0.3
Se debe configurar %Ci.P.
%I0.1%C8
RE
S
CU
CD
D
F
%C8.D %Q0.3
%I0.2 %M0
Contadores: Configuración
Instrucciones de control
• Fin de Programa– END: Fin incondicional del programa– ENDC: Fin del programa si el
resultado de la operación previa es 1– ENDCN: Fin del programa si el
resultado de la operación previa es 0(Cuando se activa el fin de programa, se actualizan las salidas y se inicia el próximo scan).
• Instrucción NOPSe usa para reservar líneas para insertar luego instrucciones sin modificar los números de línea.
Instrucciones de control
• Instrucciones de salto– JMP: Salto incondicional– JMPC: Salto si op. previa = 1– JMPCN: Salto si op. previa = 0(Van seguidas por un rótulo %Li (0 i 15)
Ejemplo: LD %M15
JMPC %L8
LD %I0.1
ST %M15
JMP %L12
%L8:
LD %M12
ST %M2
%L12:
LD %I0.0
– No se pueden ubicar entre paréntesis.– El rótulo sólo puede ser seguido por LD, LDN,
LDR, LDF o BLK.
Instrucciones de Subrutina
• SRnLlama a la subrutina referenciada por el rótulo SRn: si el resultado de la operación previa es 1.
• RETSe ubica al final de la subrutina. Provoca el retorno al programa principal.
– No pueden ser ubicadas entre paréntesis.– Una subrutina no puede llamar a otra.– El rótulo sólo puede ser ubicado antes de un
LD o BLK.– La llamada no puede ser seguida por una
asignación (ST).
Operandos de tipo Palabra
• Los objetos de tipo palabra son direccionados como palabras de 16 bits, que se almacenan en la memoria de datos y que pueden contener un valor entero entre –32768 y 32767.
• Se almacenan en código binario de 16 bits. El bit 15 indica el signo (1 - , 0 +).
• Se pueden ingresar o recuperar en formato:– Decimal (ej: 1579)– Hexadecimal (ej: 16#A536 o #A536)
Operandos de tipo Palabra
%SWi (0 i 127)
Acceso a datos que vienen del PLCPalabras del sistema
%KWi (0 i 63)
Se modifican desde el menú de configuración
Palabras constantes
%MWi (0 i 255)
Para uso del usuarioPalabras internas
Valores enteros entre –32768 y 32767
Valores inmediatos
Bits extraídos de palabras: Es posible extraer uno de los 16 bits de algunas palabras.
Sintaxis: %palabra : Xk (0 k 15)Ejemplo: %MW5:X6
Instrucciones numéricas
• Generalmente se aplican a palabras de 16 bits.
• Se escriben entre corchetes.
• Se ejecutan si el resultado de la operación previa fue 1.
Instrucciones numéricas:Asignación
[Op1:=Op2]:=
SintaxisOperador
Valor inmediato, %MWi, %KWi, %SWi, %BLK.x
%MWi, %SWi
Op2Op1
Instrucciones numéricas:
Comparación
LD [Op1 oper Op2]
AND [Op1 oper Op2]
OR [Op1 oper Op2]
>, >=, <, <=, =, <>
SintaxisOperador
Valor inmediato, %MWi, %KWi, %SWi, %BLK.x
%MWi, %KWi, %Swi, %BLK.x
Op2Op1
Instrucciones numéricas:Aritméticas
[Op1 := SQRT(Op2)]SQRT
[Op1 := Op2 oper Op3]+, -, *, /, REM
[oper Op1]INC, DEC
SintaxisOperador
Valor inmediato, %MWi, %KWi, %SWi, %BLK.x
%MWi, %SWi
Op2/Op3Op1
Instrucciones numéricas:
Reglas• Suma
– Overflow: %S18 = 1 y el resultado no es correcto.
• Resta– Resultado negativo: %S17 = 1.
• Multiplicación– Overflow: %S18 = 1 y el resultado
no es correcto.
• División / Resto (REM)– División por 0: %S18 = 1 y el
resultado no es correcto.– Overflow: %S18 = 1 y el resultado
no es correcto.
• Raíz cuadrada– Operando negativo: %S18 = 1 y el
resultado no es correcto.
Es responsabilidad del programador resetear los bits %S17 y %S18.
Software
• El software PL707 puede ser utilizado para programar el PLC desde una PC, pero requiere la conexión del PLC a la PC.
• Existe un producto que permite simular la programación del PLC en modo Lista en:http://www.exa.unicen.edu.ar/catedras/tldcaut/