Dudas: Autómatas siemens. Software Step7

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Spanish to

Threaded View
Duda 1:
 ¿Se puede leer una variable de un bloque DB desde un OB?

llevo tiempo intentándolo y no lo consigo, he hecho esto:

AUF            DB                1

o lo que es lo mismo en KOP:

                                  DB1
----------------------(OPN)---

En el DB1 tengo declarado un array doble 10x10 del tipo INT con el nombre
"variable1"
y quiero acceder a él desde el OB1. Además, si fuera posible acceder a esta
tabla mediante otros 2 índices "j" y "k" desde el OB1 es decir algo como
DB1.variable1[j,k] la cuestión es

duda 2:
¿Se puede hacer esto?
en caso afirmativo, ¿Cómo?
¿Hay alguna manera mejor?

El objetivo en sí es poder leer/escribir en una tabla o vector y que sea
direccionado por unos indices, vamos, algo como
int tabla[10][10],j=0,k=0;
tabla[j][k] = valor;
sencillo de hacer en C o pascal, me resulta imposible hacerlo para el
autómata.
Tengo manuales etc... pero en ninguno veo una explicación clara y precisa a
esta cuestión.



Re: Dudas: Autómatas siemens. Software Step7
Gracias.
La otra es que hay cosas en AWL que no puedo realizar en KOP y viceversa,
por ejemplo,

 U     DBX    0.0
      SPBNB _001
      L     W#16#1
      L     MW     0
      SLW
      T     MW     0
      SET
      SAVE
      CLR
_001: U     BIE
      =     M      3.3

que en KOP sería:
                 _______________
 DBX 0.0  |       SHL_W        |                      M3.3
----|  |-----| EN            ENO |----------------(   )--
                 |                            |
    MW0-- |  IN             OUT |--MMW0
                 |                            |
W#16#1 - | N                        |
                 |______________|


Quiero cambiar la "entrada" DBX0.0 por DBX[MD 0] por ejemplo, esto, me lo
permite hacer en AWL pero no en KOP. Asimismo, para pasar de KOP a AWL es
necsario que estén todas las E/S del bloque (en este caso SHL_W) asignadas.
¿Es que no se puede hacer este tipo de direccionamiento en KOP? ¿Por qué?.
No tiene mucho sentido.

Quoted text here. Click to load it
nombre
esta



Re: Dudas: Autómatas siemens. Software Step7
Vale, muchas gracias, sobre todo era importante para mí saber que no se
puede hacer.

En caso de que sea necesario trataré de arreglármelas con una mezcla de
AWL+KOP. Que parece ser lo mejor, más que nada porque ciertas cosas como el
seteo de básculas y ver si se cumplen las condiciones lógicas de los
"contactos" se ven más claro en KOP.

Quoted text here. Click to load it
lo
es
asignadas.
qué?.
Quoted text here. Click to load it



Re: Dudas: Autómatas siemens. Software Step7
Me funcionan estos:

      AUF   DB     3                    // abrimos DB3
      L     DBW    0                    // word del DB abierto (DB3) la 0
      L     DBW    2                    // word 2 cargada db3.dbw 2
      L     DB3.DBW    2                // en teoria esto es lo mismo

      AUF   DB     2                    // abrimos db2
      AUF   DI     4                    // abrimos db4 como bloque de
instancia

      L     DB1.DBB    0
      T     DBB [MD 7]                  // T db2.dbw[md7] no permitido
      L     DBB [MD 7]                  // leeemos del db2 (abierto con auf
db)
      T     DIB [MD 11]                 // dejamos en db4 (abierto con auf
di o sea de instancia)

      U     DB2.DBX    1.0
      =     DB1.DBX    3.1

      L     #cadena                     // cargamos la variable cadena
indicada en la estructura de datos del FB
      T     DBW    3                   // La  dejamos en db2.dbw3 podria ser
dbw[mw0] con mw = 3

      U     DBX [MD 0]
      =     DBX [MD 4]
      L     DB2.DBB    0

y esto por ejemplo, no se permite:       L DB2.DBB[MW 0]

Tampoco entiendo porqué si en un bloque DBn hemos creado variables con sus
respectivos nombres, luego al llamar desde un bloque FB u OB no nos reconoce
los nombres de dichas variables, es decir, no me coge por ejemplo
DB2.nombre_ variable ni nada por el estilo, por tanto, tienes que acceder de
las formas que he indicado anteriormente, esto lo que he sacado en claro
haciendo pruebas. Estaba pensando quizás indicarlo en la tabla de símbolos,
por ejemplo: nombre_variable1 DB2.DBB0... etc. tal vez funcione, pero si es
asi, ¿qué sentido tiene entonces que tengas que declarar los nombres en el
bloque OB?.

Quoted text here. Click to load it
esta
a



Site Timeline