Hola Boris!
Estoy midiendo la salida de un variador de velocidad que está configurada en 0~10V. Como verás en el código, realizo varias conversiones y las guardo en diferentes variables, con diferentes métodos para mostrarlo en el HMI Array S300, como sigue:
new Motor1_VInt, Motor1_VInt1
new Float: Motor1_VFloat
PlcMain()
{
if(MbRtuServInit(1, 9600, SERIAL_8E1, MB_RTU_INTERFACE_RS232) < 0) //RS485 "No responde" !!!!!
{
// Error, pausar programa en este punto.
while(true)
{
DelayMS(2000)
LedToggle()
}
}
VinSetRange(1, VIN_RANGE_5V)
VinSetRange(2, VIN_RANGE_5V)
VinSetRange(3, VIN_RANGE_5V)
VinSetRange(4, VIN_RANGE_10V)
VinSetRange(5, VIN_RANGE_10V)
VinSetRange(6, VIN_RANGE_10V)
VinSetRange(7, VIN_RANGE_10V)
VinSetRange(8, VIN_RANGE_10V)
VinFilterAOn(1000, 1000)
while(true)
{
Motor1_VFloat= VinReadVolt(6)
Motor1_VInt= FloatToInt(VinReadVolt(6))
Motor1_VInt1= VinRead(6)
MbRtuServLoadRegister(42016, Motor1_VFloat)
MbRtuServLoadRegister(42017, Motor1_VInt)
MbRtuServLoadRegister(42018, Motor1_VInt1)
MbRtuServLoadRegister(42019, Motor1_VFloat)
}
}
Te adjunto una imagen de los valores mostrados y al mismo tiempo medido por un voltímetro. No hay forma de mostrar el valor correcto! También probé con la salida 4..20mA del variador, colocando los jumpers J3, J4, J5 (entradas VIN1, 2 o 3) y utilizando la función "VinToCurrent" y tampoco hay forma. Qué puede estar pasando?
Por otro lado, si coloco el jumper J1 e inicio el bus en RS485, el HMI me dice "No Responde"... ni aún colocando el jumper J2 para la resistencia de terminación. En el datasheet indica que soporta tanto RS232 como 485.
Gracias por la ayuda!
Saludos!