PDA

Ver la versión completa : Escalizaciones s7-200/s7-300



samplay9
17/09/2010, 00:51
Buenas tardes amigos programadores.....

La verdad les comentooo , tengo una inquietud a la ves simple pero a la ves algo complejaaa , pues me he metido una envolata pues no se si han visto q estoy con un proyecto para programar en omron, y la verdad de tanto leer me estoy es atrofiando...y eh dejado a siemnes a un lado, bueno sin tanta chachara y habladuria, quiero q me ayuden y me den una mano.

Tengo dos trasmisores de presion, uno para medir en mb (milibar) y el otro en bar de unos reactores.
como hago la escalizacion?
el rango de medida del de milibar es de 10 milibar a 30milibar me entrega una señal de 4 a 20ma... sabiendo que la forma de lectura en el plc para las entradas perifercias es (lectura=dato_periferia*100/27648......)
pues la verdad me he confundido, y quisera saber en ambos casos pues en el otro es los mismos valores pero en bar, cual seria el mecanismo manual para saber yo cuanto equivale un valor cualkiera de la lecturaa, osea por ejemplo a cuanto equivale 18 milibar en milis-amperios y a cuantas unidades de memoria de la escala de 0 a 27648 equivale?????


y hacer lo mismo para con el trasmisor de medida en bar, pero con la cifra de 25 bares?


le agradeceria a los programadores de aqui que me ayuden , estoy enredado creanme,

Esto lo tengo q ejecutar para un transmisor en el s7-200 y el otro en el s7-300, y la verdad me he envolatado.. agradesco su colaboracion.:D

jsp
17/09/2010, 13:02
Hola,

Mira en este enlace del foro: http://www.infoplc.net/foro/showthread.php?t=3884 y descargate el fichero escalado_FB de Omron que tengo puesto. A dentro verás una fórmula para hacer todo tipo de escalados.

Saludos.

samplay9
17/09/2010, 16:19
Muchas gracias por la informacion..
saludos

samplay9
17/09/2010, 17:52
Hola,

Mira en este enlace del foro: http://www.infoplc.net/foro/showthread.php?t=3884 y descargate el fichero escalado_FB de Omron que tengo puesto. A dentro verás una fórmula para hacer todo tipo de escalados.

Saludos.

amigo gracias por la informacion, te kiero hacer una pregunta, utilize la fomula que aparceahi q tu enviastes pues me da para algunos no en todos los casos,

pues por ejemplo cuando necesito hacer la escala de un valor de 300 a 100 para 4 a 20 ma no da la resultante, y pues analizando tu formula , tambien sale de esta manera.....

la que tu colokastes ....

R= BY - (BY-AY)/(Bx-AX) ... por BX - S... Pues me da par algunos casos no todos , no se por ue si es q la desarrollo mall o que , pero se me va a muypor encima o muy por debajo en algunos casos....


viendo tu formula tambien se puede hacer asii pero me pasa lo mismo, y esta...

R= (S-AX) por (BY-AY)/(BX-AX) mas AY......

bueno y para esta me sucede lo mismo , me trabaj para algunos casos, cuando el margen es de 0.. a .. 100 .... o tambien de 0 a 300,, siempre cuando los rango de la variable parten de cero en linea recta, pero cuando parten de un numero diferente de cero ahi se me jode la resultante para culakiera de las dos formulas,
espero que me des una manito
gracias....

lluisot
17/09/2010, 20:37
Buenas tardes amigos programadores.....

La verdad les comentooo , tengo una inquietud a la ves simple pero a la ves algo complejaaa , pues me he metido una envolata pues no se si han visto q estoy con un proyecto para programar en omron, y la verdad de tanto leer me estoy es atrofiando...y eh dejado a siemnes a un lado, bueno sin tanta chachara y habladuria, quiero q me ayuden y me den una mano.

Tengo dos trasmisores de presion, uno para medir en mb (milibar) y el otro en bar de unos reactores.
como hago la escalizacion?
el rango de medida del de milibar es de 10 milibar a 30milibar me entrega una señal de 4 a 20ma... sabiendo que la forma de lectura en el plc para las entradas perifercias es (lectura=dato_periferia*100/27648......)
pues la verdad me he confundido, y quisera saber en ambos casos pues en el otro es los mismos valores pero en bar, cual seria el mecanismo manual para saber yo cuanto equivale un valor cualkiera de la lecturaa, osea por ejemplo a cuanto equivale 18 milibar en milis-amperios y a cuantas unidades de memoria de la escala de 0 a 27648 equivale?????


y hacer lo mismo para con el trasmisor de medida en bar, pero con la cifra de 25 bares?


le agradeceria a los programadores de aqui que me ayuden , estoy enredado creanme,

Esto lo tengo q ejecutar para un transmisor en el s7-200 y el otro en el s7-300, y la verdad me he envolatado.. agradesco su colaboracion.:D



Hola , acabo de probar en el S7-200 la formula para el escalado 4-20 del PDF de JSP - Muy bueno JSP el aporte - :) y funciona a la perfeccion . Lo he probado para un rango de 4-20 mA ; 10 -30 mBar .

Supongo que has tenido en cuenta que el rango de la entrada en unipolar es 0-32000 , pero que a 4 mA , el valor de AIW no es cero :confused: .

Un saludo

samplay9
17/09/2010, 21:49
Hola , acabo de probar en el S7-200 la formula para el escalado 4-20 del PDF de JSP - Muy bueno JSP el aporte - :) y funciona a la perfeccion . Lo he probado para un rango de 4-20 mA ; 10 -30 mBar .

Supongo que has tenido en cuenta que el rango de la entrada en unipolar es 0-32000 , pero que a 4 mA , el valor de AIW no es cero :confused: .

Un saludo

Pues si se tubo encuenta eso pero sabes lo que sucede es lo que comente anteriormente, cuando es la escalizacion para valores diferentes de cero . osea que comprenden rangos ya sea para cualkier valor diferente de cero, como por ejemplo escalizar valores que comprendan de 100 a 300, teniendo referencia q me estan entregando de 4 a 20ma , no es exata ninguna de las dos formulas, pues el vlor se v or encima o por debajo. sabes algo al respecto, aver si aclaramos dudas.

lluisot
17/09/2010, 21:56
Pues si se tubo encuenta eso pero sabes lo que sucede es lo que comente anteriormente, cuando es la escalizacion para valores diferentes de cero . osea que comprenden rangos ya sea para cualkier valor diferente de cero, como por ejemplo escalizar valores que comprendan de 100 a 300, teniendo referencia q me estan entregando de 4 a 20ma , no es exata ninguna de las dos formulas, pues el vlor se v or encima o por debajo. sabes algo al respecto, aver si aclaramos dudas.

Hola , porque no adjuntas la parte de programa del escalado para ver donde está el problema ?
Puedes subir un ZIP .

samplay9
17/09/2010, 21:59
Hola , porque no adjuntas la parte de programa del escalado para ver donde está el problema ?
Puedes subir un ZIP .

pues mira lo que me sucede es en muchos casos, siempre me toca utilizar el fc105 o fc 106 para las salidas respectivamente en el s7'300 pero cuando escalizo en el s7'200 viene envolte. por eso queria comentarlo desde el privado de mensajes a ver como lo solucionamos. y luego plasmarlo en el foro general para cuando a otros les ocurra el mismo problema.

lluisot
17/09/2010, 22:22
pues mira lo que me sucede es en muchos casos, siempre me toca utilizar el fc105 o fc 106 para las salidas respectivamente en el s7'300 pero cuando escalizo en el s7'200 viene envolte. por eso queria comentarlo desde el privado de mensajes a ver como lo solucionamos. y luego plasmarlo en el foro general para cuando a otros les ocurra el mismo problema.

En el 300 , ni idea , en el 200 debes realizar los calculos en el programa , aplicando la formula aportada por JSP :

R = BY- [( BY-AY /BX-AX) x ( BS-S) ]

donde :

R : Resultante escalado
BY: Valor maximo escalado ( 30 mBar)
AY: Valor minimo escalado ( 10 mBar)
BX: Valor maximo analogica ( 32000 ???)
AX: Valor minimo analogica ( 6450 ???)
S: valor actual lectura analogica

He probado en el 200 cargándole valores minimo , medio, y maximo y ha funcionado correctamente .

Con que formato de datos operas ? Supongo que con reales .

PD . Con los privados ,impides que el resto del foreros te pueda ayudar , lo cual acaba empobreciendo el foro y no es bueno para nadie .

Un saludo

samplay9
18/09/2010, 03:06
bueno primeramente te aclaro pues yo programo en formato real, siempre tiendo a llevarlo a ese punto. pues quiero saber con exactitud lo que me expresas al explicar la formula, lo que sucede es que en el s7-200 me complico mas aun la escalizada.

R = BY- [( BY-AY /BX-AX) x ( BS-S) ] ¿cual es BS? valor maximo de escalado o de valor analogico, ¿ cual es S? por centaje de la variable en milibar o del rango dado en mili amperio de la lectura. ¿ desde ahi no tomas el rango de 4-20ma como punto de referencia si no lo pones desde ya leido desde el plc de 6450 a 32000, no hay forma de sacarlo con el valor en miliamperios en la misma formula?. y si le doy el rango para 0 a 27648 tambien aplica o dado el caso si voy na escalizar numeros enteros ? pues espero que me guies pues ya me acostumbre al S7-300 y a la hora de hacerlo en el 200 me es confuso.

donde :

R : Resultante escalado
BY: Valor maximo escalado ( 30 mBar)
AY: Valor minimo escalado ( 10 mBar)
BX: Valor maximo analogica ( 32000 ???)
AX: Valor minimo analogica ( 6450 ???)
S: valor actual lectura analogica
Partiendo con esta escalizada `pregunto si el valor dado actual es de 10 mbar, entonces con la escalizada de 6450 a 32000 lleega a 5 y si es de 0 27648 se va al doble deberia ser 8 pero llega a 10 y si es de 0 a 80000 duplica a el 10 dejando el valor en 20 .. entonces corrigeme que hago mall o si empleo mal la formula, sabes no creas me he confundido y te agradeceria q el ejemplo q me distes anterior lo hagass mas detallado a ver si consigo scalizar bien en el s7-200 es q me e envolatado mucho, te agradesco.

pero si te anexo que quiero saber la equivalencia dada en rangos de corrinte de campo no tanto saber el valor de lectura interna en el plc, pero bueno es lo mismo solo hay q hacer tal conversion
agradesco tu colaboracion
ah y lo de los mensajes privados y esos tienes toda la razon...

samplay9
18/09/2010, 04:28
mira aqui te dejo el zip con . la escalizacion de 0 a 100 por ciento de lectura de un transmisor de presion para nivel de un tanke, miralo y dime como lo harias para 6450 a 32000 , pues ahi lo escalize de 0 a 27648, pues ahi solo lo puse para rangos de porcentaje , pero en el caso de la escalizacion de rango de medida de 10 a 30 mBar, como lo ejecutarias para , 6450 a 32000 y la que e puesto yo de 0 a 27648 como quedaria,...

ahora bien en la escalizacion tome el valor reflejado de la entrada en formato real y le hize una operacion, le saque la raiz cuadrada y luego le sume 20.0, y lo transferi a una salida,

Corrigeme esa salida que coloque es analoga?
o es digital en formato coma flotante, es que la entrada analogica si me cojia AIW0 , pero cuando intente truncar solo me dejaba colocar QD0, no tiene que ser AQD0 o AQW0 respectivamente si en en word o en doble word.

espero las respuestas a los dos mensajes a esre y al anteriror, disculpa la molestia q te he causado , pero necesito la ayuda en gran manera, no solo para mi si no para aclarar dudas de todos los visitantes y usuarios de nuestro foro.


lo hize con temporales para q veas mas claro el ejemplo
aquie te lo dejo en awl:

network1
LD SM0.0
MOVW AIW0, #temp1
ITD #temp1, #temp2
DTR #temp2, #temp3
MOVR #temp3, #temp4
*R 100.0, #temp4
MOVR #temp4, #temp5
/R 27648.0, #temp5
MOVR #temp5, VD0

Network2

LD SM0.0
MOVR VD0, #temp6
SQRT #temp6, #temp7
MOVR #temp7, #temp8
+R 20.0, #temp8
TRUNC #temp8, QD0



gracias.

jsp
18/09/2010, 10:05
Hola a todos,

La fórmula que puso lluisot hay un error de escritura, no es BS-S sino Bx-S. La variable BS no existe en la fórmula. El resto está todo correcto.

R = BY- [( BY-AY /BX-AX) x ( BS-S) ]
R = BY- [( BY-AY /BX-AX) x ( Bx-S) ]
R : Resultante escalado
BY: Valor maximo escalado ( 30 mBar)
AY: Valor minimo escalado ( 10 mBar)
BX: Valor maximo analogica ( 32000 ???)
AX: Valor minimo analogica ( 6450 ???)
S: valor actual lectura analogica

Tanto las salidas como las entradas analógicas del 300 son int (integer). Con lo cual, el valor que le tienes que dar a la salida analógica tiene que ser de 0 a 27000 a través de una variable int.
La declaración de las analógicas por programa son PIW<num> (entradas analógicas) y PQW<num> (las salidas analógicas) en lenguaje inglés. En alemán creo que es PAW y PEW respectivamente. Pero esto último no estoy seguro al 100%.

Saludos.

lluisot
18/09/2010, 15:22
Hola a todos,

La fórmula que puso lluisot hay un error de escritura, no es BS-S sino Bx-S. La variable BS no existe en la fórmula.

Tiens razón , me confundí al teclear .

un saludo

lluisot
18/09/2010, 15:30
mira aqui te dejo el zip con . la escalizacion de 0 a 100 por ciento de lectura de un transmisor de presion para nivel de un tanke, miralo y dime como lo harias para 6450 a 32000 , pues ahi lo escalize de 0 a 27648, pues ahi solo lo puse para rangos de porcentaje , pero en el caso de la escalizacion de rango de medida de 10 a 30 mBar, como lo ejecutarias para , 6450 a 32000 y la que e puesto yo de 0 a 27648 como quedaria,...

ahora bien en la escalizacion tome el valor reflejado de la entrada en formato real y le hize una operacion, le saque la raiz cuadrada y luego le sume 20.0, y lo transferi a una salida,

Corrigeme esa salida que coloque es analoga?
o es digital en formato coma flotante, es que la entrada analogica si me cojia AIW0 , pero cuando intente truncar solo me dejaba colocar QD0, no tiene que ser AQD0 o AQW0 respectivamente si en en word o en doble word.

espero las respuestas a los dos mensajes a esre y al anteriror, disculpa la molestia q te he causado , pero necesito la ayuda en gran manera, no solo para mi si no para aclarar dudas de todos los visitantes y usuarios de nuestro foro.


lo hize con temporales para q veas mas claro el ejemplo
aquie te lo dejo en awl:

network1
LD SM0.0
MOVW AIW0, #temp1
ITD #temp1, #temp2
DTR #temp2, #temp3
MOVR #temp3, #temp4
*R 100.0, #temp4
MOVR #temp4, #temp5
/R 27648.0, #temp5
MOVR #temp5, VD0

Network2

LD SM0.0
MOVR VD0, #temp6
SQRT #temp6, #temp7
MOVR #temp7, #temp8
+R 20.0, #temp8
TRUNC #temp8, QD0



gracias.

Hola , antes que nada comentar que estaba en un error respecto al valor de AIW0 a 4 mA .Este valor debiera ser 6400 , y no 6450 como dije .La entrada del 200 va de 0-20 mA , por lo que los primeros 4 mA no son medida real . Si dividimos 32000 entre 20 mA nos da un valor de 1200 para cada mA , por lo que a 4 mA tendriamos un valor de 6400 .

Te adjunto un ejemplo para 4-20 mA , Esc minimo 10 - Esc máximo 30 .No es tan elegante como la formula de JSP pero parece que funciona .No tiene seguridades ni filtros .



un saludo

samplay9
18/09/2010, 16:34
bueno amigo muchas gracias por lo del aporte, pregunto revisaste lo del zip q te envie pues quiero q observs en el grafico kop, por que cuando le doy truncar no me toma la direccion de salida analoga, por que toma es valor de QD0 y no la de AQDO ( no deberia ser asi o estoy ekivocado=) o QDO si es salida analoga o es una digitl en formato doble word.

espero tu respuest.
gracias.

lluisot
18/09/2010, 22:24
mira aqui te dejo el zip con . la escalizacion de 0 a 100 por ciento de lectura de un transmisor de presion para nivel de un tanke, miralo y dime como lo harias para 6450 a 32000 , pues ahi lo escalize de 0 a 27648, pues ahi solo lo puse para rangos de porcentaje , pero en el caso de la escalizacion de rango de medida de 10 a 30 mBar, como lo ejecutarias para , 6450 a 32000 y la que e puesto yo de 0 a 27648 como quedaria,...

ahora bien en la escalizacion tome el valor reflejado de la entrada en formato real y le hize una operacion, le saque la raiz cuadrada y luego le sume 20.0, y lo transferi a una salida,

Corrigeme esa salida que coloque es analoga?
o es digital en formato coma flotante, es que la entrada analogica si me cojia AIW0 , pero cuando intente truncar solo me dejaba colocar QD0, no tiene que ser AQD0 o AQW0 respectivamente si en en word o en doble word.

espero las respuestas a los dos mensajes a esre y al anteriror, disculpa la molestia q te he causado , pero necesito la ayuda en gran manera, no solo para mi si no para aclarar dudas de todos los visitantes y usuarios de nuestro foro.


lo hize con temporales para q veas mas claro el ejemplo
aquie te lo dejo en awl:

network1
LD SM0.0
MOVW AIW0, #temp1
ITD #temp1, #temp2
DTR #temp2, #temp3
MOVR #temp3, #temp4
*R 100.0, #temp4
MOVR #temp4, #temp5
/R 27648.0, #temp5
MOVR #temp5, VD0

Network2

LD SM0.0
MOVR VD0, #temp6
SQRT #temp6, #temp7
MOVR #temp7, #temp8
+R 20.0, #temp8
TRUNC #temp8, QD0



gracias.

Hola , si cargas el valor en QD0 estas dando un valor a la Doble Word de las salidas digitales ( QB0,QB1,QB2 y QB3) por lo que puedes activar accidentalmente las salidas digitales en funcion del valor que des a QD0.Lo mismo te puede pasar si usas QWXX o QBXX.

Si quieres cargar un valor a la salida analogica 0 (AQW0), debes trabajar en formato word ,puedes guardar el truncado en una VD ( o LD) y convirtir esa VD del truncado de DI a I y el resultado I moverlo con MOV_W a AQW0

Un saludo

samplay9
18/09/2010, 22:38
pues es asii como tu dices , voy aprobarlo ahi tenia el detalle amigo pues en el s7-300 se le hace el truncado directo desde el real de una y va directo a la salida analoga.
bueno muchas gracias por el Dato , lo probare y ya te comento.

samplay9
18/09/2010, 22:45
bueno amigo muchas gracias ya me a funcionado correctamente.
pues ya comprendo que el truncado aqui en el 200 no va directo a la salida analoga, gracias mira ahi esta el .zip

lluisot
19/09/2010, 11:54
bueno amigo muchas gracias ya me a funcionado correctamente.
pues ya comprendo que el truncado aqui en el 200 no va directo a la salida analoga, gracias mira ahi esta el .zip

Por curiosidad. ¿ Porque sacas la raiz cuadrada del tanto por cien de la analogica , le sumas veinte y lo envias a la AQW0 ?

samplay9
19/09/2010, 20:22
Pues dependiendo al valor leido por el transmisor de presion escalizado entonces sacandole la raiz cuadrada y sumandole 20 que sera el "minimo" valor de llenado del tanque para q sea este cero dejando asiii fuera de contexto q el arranque de mi bomba se aleje de la posibilidad de un vacio.

colocando despues un sistema de comparacion para controlar el arranque y parada de ella, por valores q estan por encima del 20 por ciento real del llenado del tanque q sera a su ves el valor de 0 en definitiva.