Los problemas de comunicacion entre las pylon y los axpert pueden ser por 3 causas:
1.- El cable no es el correcto.
2.- El puerto rs485 de la pylon este defectuoso.
3.- El puerto rs485 del voltronic este defectuoso.
Y puede haber una cuarta que es que el firmware del voltronic este defectuoso y sea un problema de software.
La mas normal es la 1 pero las otras pueden darse ya que si empezamos a meter cables no correctos a los puertos del voltronic y de las pylon pues igual nos cargamos algo ya que por ahi van tensiones, masas y cosas. Y si hacemos algun corto aunque sea en comunicaciones y si el puerto no esta lo suficientemente protegido pues nos lo cargaremos. Esto va para los que les gusta empezar a probar cosas metiendo cables por todos sitios a ver si funciona.
Y despues esta la cuarta opcion que esto ya es de chinos.... Y de chinos, pues chinadas como viene siendo habitual. Como en alguna partida hayan cargado algun firmware defectuoso pueden darse estos problemas.
Voy a poner un esquema para nubs de como tiene que ser el cable entre pylontech rs485 y voltronic de tercera generacion (vmiii, max, etc o sea los que llevan MCU que se puede quitar). Para los InfiniSolar que tambien son Voltronic, este cable no sirve ya que estos usan el 4 y 5, en vez del 3 y 5 como los de tercera generacion.
Archivo adjunto 27330
De todas formas estos cables no hacen nada del otro mundo, simplemente informan al voltronic de los datos de voltaje de bateria (average) y SOC (average) de todas las pylon conectadas reemplazando esos datos en los nativos del voltronic. En funcion de estos dos valores principalmente hacen el algoritmo de carga de las pylon que no es mas que ir bajando amperios cuando se acerca al SOC 100% para que al bms le de tiempo a repartir. Si le vienen los amperios desbocados pues el repartidor se atora y la bateria sufre un poco.
Para los inquietos, los datos de SOC, Vbat, Ibat y otros de las pylontech se pueden sacar por otros sitios y en funcion de estos datos ir diciendole al voltronic que vaya frenando o acelarando. Esto se llama hacerse tu propio algoritmo de carga de las pylontech sin judiadas de los chinos y sin cables de comunicacion. Pero solo para los inquietos... no mas.
Código:
var SOC = msg.payload.SOCmedio;
var voltaje = msg.payload.Voltajemedio;
var amperaje = msg.payload.Amperajetotal;
// Subiendo a flow SOC, voltaje y amperaje Pylontech por si hace falta para otros nodos y cosas
flow.set('SOCpylon',SOC);
flow.set('Vbatpylon',voltaje);
flow.set('Ibatpylon',amperaje);
// Variacion de parametros 2, 26, 27 y 29 para 5xUS2000C o mas en funcion del SOC enviado por el BMS de la Pylontech
const USE = {payload: "PBT02" , topic: "Parametro 5 modo USE" };
const A120 = {payload: "MNCHGC0120" , topic: "Maximo 120A hacia bateria" };
const A100 = {payload: "MNCHGC0100" , topic: "Maximo 100A hacia bateria" };
const A80 = {payload: "MNCHGC0080" , topic: "Maximo 80A hacia bateria" };
const A50 = {payload: "MNCHGC0050" , topic: "Maximo 50A hacia bateria" };
const A30 = {payload: "MNCHGC0030" , topic: "Maximo 30A hacia bateria" };
const A10 = {payload: "MNCHGC0010" , topic: "Maximo 10A hacia bateria" };
const Vabs = {payload: "PCVV53.2" , topic: "Voltaje de carga Pylon" };
const Vflot = {payload: "PBFT53.2" , topic: "Voltaje de carga Pylon" };
const Vmin = {payload: "PSDV45.0" , topic: "Voltaje para corte Pylon" };
if(SOC < 96){
return[USE, A120, Vflot, Vabs, Vmin];
}
else if (SOC >= 96 && SOC < 97){
return [USE, A100, Vflot, Vabs, Vmin];
}
else if (SOC >= 97 && SOC < 98){
return [USE, A80, Vflot, Vabs, Vmin];
}
else if (SOC >= 98 && SOC < 99){
return [USE, A50, Vflot, Vabs, Vmin];
}
else if (SOC >= 99 && SOC < 100){
return [USE, A30, Vflot, Vabs, Vmin];
}
else if (SOC == 100) {
return[USE, A10, Vflot, Vabs, Vmin];
}