Nota Técnica Función Aplicación "Control de Par"

Anuncio
Presentación de la instrucción CAN_CMD
Para cada programa de usuario, la instrucción CAN_CMD permite al usuario programar su red y obtener el
diagnóstico de los esclavos. Los parámetros de la instrucción se transmiten por medio de palabras internas (palabras
de memoria) %MWx.
La sintaxis de la instrucción es la siguiente:
CAN_CMDn %MWx:l
Leyenda:
Símbolo
Descripción
n
Dirección de ampliación del módulo maestro CANopen en el bus Twido (de 1 a 7).
x
Número de la primera palabra interna (memoria) transmitida en parámetro.
l
Longitud de la instrucción en número de palabras (2 o 6).
Uso de la instrucción CAN_CMD
La instrucción CAN_CMD le permite programar y gestionar la red CANopen y realizar comprobaciones de
diagnóstico en dispositivos esclavos individuales. Los parámetros de comando se transmiten a través de palabras de
memoria %MWx.
En la tabla siguiente se describe la acción de la instrucción CAN_CMD en función del valor de los parámetros
%MW(x) hasta %MW(x+5), según corresponda:
%MWx %MWx+1 %MWx+2 %MWx+3 %MWx+4 %MWx+5
Acción
Bit
Bit
Bit
Bit
Bit
Bit
Bit
Bit
Bit
Bit
[15-8] [7-0] [15-8] [7-0] [15-8] [7-0] [15-8] [7-0] [15-8] [7-0]
Restablecer la comunicación
1
0
CANopen.
Restablecer los nodos
1
1
CANopen.
–
Pasar del modo operativo al
2
0
modo preoperativo.
Pasar al modo de
2
1
funcionamiento.
3 => iniciar la lectura del
comando SDO.
3o4
4 => iniciar la escritura del
comando SDO.
Nodo = 1-16 => dirección de
Nodo
nodo
Índice
Índice del objeto PDO.
Sub = 0-255 => subíndice del
Sub Len
objeto
Len = longitud de datos en bytes
Carga útil de acuerdo con el
Dato 1
valor que aparece en el campo
de longitud (Len)
Carga útil de acuerdo con el
Dato 2
valor que aparece en el campo
de longitud (Len)
5
Nodo
Restablecer la comunicación
CANopen para un nodo.
1)
6(
Nodo
Restablecer los nodos CANopen
para un nodo.
(1)
7
Nodo
Pasar del modo operativo al
modo preoperativo para un
nodo.
(1)
8
Nodo
Pasar al modo de
funcionamiento para un nodo.
(1)
CAN_CMD solamente disponible para: Twido Extreme con la versión de firmware 4.0 o posterior y para la
versión de firmware 2.0 o posterior del módulo maestro CANopen TWDNCO1M.
(1)
Nota: El estado del bus se actualiza con cada ciclo del PLC. Sin embargo, el resultado de la instrucción
CAN_CMD de lectura del bus sólo está disponible en el ciclo siguiente del PLC.
Ejemplos de programación de la instrucción CAN_CMD
Ejemplo 1:
Para forzar al maestro de CANopen TWDNCO1M (que se ubica en la dirección 1 del bus de ampliación Twido) o al
maestro integrado de CANopen de Twido Extreme a cambiar al modo Inic:
LD 1
[%MW0 := 16#0001]
[%MW1 := 16#0001]
LD %SW81:X3
(* Si no hay ninguna instrucción CAN_CMD en *)
(* Progreso, continuar *)
[CAN_CMD1 %MW0:2] (* Para forzar al bus maestro de CANopen a *)
(* pasar a modo Inic *)
---LDN %SW81:X4
(* (opcional) para saber si la instrucción CAN_CMD *)
(* se ha completado correctamente, antes de que se *)
(* emita una nueva. *)
Ejemplo 2:
Para leer la siguiente variable: SDO_Slave:1_index:24576_sub-index:1_length:4
LD 1
[%MW6 := %MW4]
(* Almacenar el resultado del último *)
(* comando SDO *)
[%MW7 := %MW5]
(* SDO*)
(* Almacenar el resultado del último comando *)
---LD %SW81:X3
(* Si no hay ninguna instrucción CAN_CMD *)
(* en curso, continúe*)
[%MW0 := 16#0003]
[%MW1 := 16#0001] (* Iniciar la lectura del comando SDO hasta el nodo de dirección 1*)
[%MW2 := 16#6000] (* Acceder al número de índice 24576*)
[%MW3 := 16#0104] (* Acceder al número de subíndice 1 *)
(* y valor de longitud 4 *)
[CAN_CMD1 %MW0:6] (* Iniciar el comando SDO*)
Ejemplo 3:
para escribir la siguiente variable: SDO_Slave:1_index:24576_sub-index:1_length:4
LD 1
[%MW0 := 16#0004]
[%MW1 := 16#0001]
(* Iniciar la escritura del comando SDO hasta el nodo de dirección 1*)
[%MW2 := 16#6000]
(*Acceder al número de índice 24576*)
[%MW3 := 16#0104]
(* Acceder al número de subíndice1 * )
(* y valor de longitud 4 *)
[%MW4 := 16#1234]
(* Valor del dato 1*)
[%MW5 := 16#1234]
(* Valor del dato 2*)
---LD %SW81:X3
(* Si no hay ninguna instrucción CAN_CMD *)
(* en curso, continúe *)
[CAN_CMD1 %MW0:6]
(* Iniciar el comando SDO*)
Ejemplo 4:
Para forzar al bus maestro CANopen integrado del Twido Extreme a pasar a modo Inic:
LD 1
[%MW0 := 16#0005]
(*Tipo de comando de 5 a 8*)
[%MW1 := 16#0001]
(* Dirección del nodo*)
---LD %SW81:X3
(*Si no hay ninguna instrucción CAN_CMD en*)
(* en curso, continúe *)
[CAN_CMD1 %MW0:2]
(* Para forzar al bus maestro Twido Extreme *)
(* CANopen integrado a cambiar al modo Inic*)
Descargar