En esta guía, exploraremos cómo podemos habilitar la carga inteligente para vehículos eléctricos analizando en profundidad los componentes de un perfil de carga en formato OCPP 1.6J y el proceso mediante el cual una estación de carga acepta los perfiles de carga.
Un perfil de carga es un conjunto de límites de potencia con valores de tiempo definidos en segundos. Por ejemplo, un perfil de carga podría tener el siguiente aspecto:
De lo contrario, se describe como:
Potencia 10 kW de tiempo de 0 segundos a 120 segundos
Potencia: 25 kW de tiempo de 120 segundos a 300 segundos
Potencia de 5 kW de tiempo de 300 segundos a 600 segundos
Potencia 8 kW de tiempo de 600 segundos a 800 segundos
OCPP define un formato estándar para crear estos perfiles de carga, de modo que cualquier cargador compatible con OCPP pueda aceptar y seguir estos comandos. Se ve así:
{ «ID de conector»: 3 «Perfiles de carga de CS»: { «ID del perfil de carga»: 26771, «ChargingProfileKind»: «Absoluto», «Finalidad del perfil de carga»: «Perfil TX», «Programación del perfil de carga»: { «Unidad de velocidad de carga»: «kW», «Período programado de carga»: [ { «límite»: 2, «Período de inicio»: 0 } ], «duración»: 86400 }, «Nivel de pila»: 1, «ID de transacción»: 372812, «Válido desde»: «2021-10-25T 21:57:33.222 092», «Válido hasta»: «2021-10-26T 21:57:33.222 092» } }
El backend de OCPP puede enviar un perfil de cobro durante una transacción (= sesiones de cobro) o cuando no se produce ninguna transacción. Sin embargo, el OCPP define ciertas limitaciones en este último caso, que analizaremos más adelante (Perfil predeterminado de TX vs. TXPerfil).
En cualquier caso, se llevan a cabo varios pasos cuando se produce una sesión de carga con la carga inteligente habilitada. Una vez que se inicia una sesión de carga, ya sea mediante un Iniciar transacción o Inicio remoto, el Sistema Central envía los perfiles de carga mediante un Establecer el perfil de carga. REQ.
El Establecer el perfil de carga. REQ es uno de los tipos de mensajes OCPP más complejos y tiene muchas opciones de configuración. Este mensaje posibilita la administración de la energía, ya que contiene la flexibilidad necesaria para crear una lógica compleja. Por otro lado, esto puede provocar problemas y errores complejos si se usa mal.
El Establecer el perfil de carga. REQ incluye un objeto csChargingPerfil. Este objeto especifica los parámetros principales, como los límites de potencia o corriente, el período de tiempo y más.
Por ejemplo, las unidades del límite se pueden expresar en poder (potencia máxima permitida en vatios) o corriente (corriente máxima permitida por fase en amperios).
Ciertos parámetros, como Fases numéricas, Duración, también puede influir en gran medida en la reacción de un punto de carga ante una orden.
El punto de recarga responderá a estos comandos con una confirmación, Establecer ChargingProfile.conf, que incluye una respuesta definida para Estado del perfil de carga tan aceptado, rechazado, no admitido. Si el cargador respondió con rechazado o no es compatible, es posible que tengas que verificar el formato del Establecer perfil de carga o verifique el formato con el fabricante del hardware. La mayoría de los cargadores tienen limitaciones y excepciones y pueden provocar esta respuesta.
Si bien lo anterior es una simplificación del proceso y los campos obligatorios, analizaremos cada uno de los campos obligatorios y lo que representan a continuación.
Envío de un perfil de carga mediante SetChargingProfile.req
Antecedentes: En OCPP, el sistema central envía el mensaje SetChargingProfile.req al punto de carga. El punto de carga lo confirma con SetChargingProfile.conf (aceptado, rechazado, no admitido).
Está compuesto por ID de conector y el Perfiles de carga CS.
ConnectID (obligatorio): El conector al que se aplica el perfil de carga. Si connectorID = 0, el mensaje contiene un límite general para el punto de carga.
Perfiles de carga CS (obligatorios): El perfil de carga se establecerá en el punto de recarga.
Se puede enviar un SetChargingProfile.req:
Al inicio de una transacción, para establecer el perfil de cobro de la transacción: Una vez que se ha iniciado una transacción, se establece un perfil de cobro con ese identificador de transacción específico. Esto evita que haya discrepancias entre las transacciones y Perfiles TX, asegurándose de que el comando de cobro tenga un transactionID correspondiente.
En un Transacción de inicio remoto solicitud enviada a un punto de recarga: Si una transacción se inicia de forma remota, el Sistema Central puede incluir un perfil de cobro en el Transacción de inicio remoto solicitud.
Durante una transacción para cambiar el perfil activo de la transacción: Es posible que sea necesario actualizar el perfil de cobro durante una transacción. En este caso, otro Establecer el perfil de carga. REQ se enviará. A continuación, el punto de facturación volverá a evaluar la recopilación de perfiles de facturación para determinar qué perfil está activo.
Fuera del contexto de una transacción, como mensaje independiente para configurar un perfil de carga para un controlador local, un punto de carga o un perfil de carga predeterminado para un conector: Los perfiles de carga predeterminados se pueden enviar al punto de carga. Estos perfiles predeterminados se pueden ejecutar sin ID de transacción, lo que puede resultar útil cuando hay problemas de conectividad de red y permite cargar incluso sin ID de transacción.
Descripción de los elementos del ChargingProfile con csChargingProfile
UN Perfil de carga consiste en un Calendario de carga, que se describe en la siguiente sección, que detalla los límites de potencia a lo largo del tiempo.
Aquí, analizamos Perfil de carga CS, que describe los elementos específicos del perfil de carga.
chargingProfileId (Required): Unique Identifier for this profile. This is defined by the energy management system or the OCPP backend.
transactionId (Optional): Only valid if the profile is TxProfile, in which case the transaction ID is used to match the profile to a specific transaction. This field is not required for txDefaultProfiles but is required for txProfiles.
stackLevel (Required): Value determining level in hierarchy stack of profiles. Higher values have precedence over lower values. The lowest level is 0.) This is used to stack several profiles on each other without deleting or overriding the previous one. The charge point will always use the profile on the highest available stack level. Stacking charging profiles with various levels allows the construction of complex schedules that can take into account times of day, days of the week, and even certain holiday exceptions.
chargingProfilePurpose (Required): Defines the purpose of the schedule transferred by this message. OCPP defines the following options:
ChargePointMaxProfile: Configuration for the maximum power or current available for an entire Charge Point.
TxProfile: Profile with constraints to be imposed by the Charge Point on the current transaction or a new transaction when this is started via a RemoteStartTransaction.req with a ChargeProfile. A profile with this purpose SHALL cease to be valid when the transaction terminates. This is the most frequently used charging profile purpose.
TxDefaultProfile: a default profile to be used for new transactions. More on the differences between TxProfiles and TxDefaultProfiles can be found here. Typically a default profile can be sent without a transactionID, for example, to ensure charging occurs in a controlled manner if connectivity is lost.
chargingProfileKind (Required): Indicates the kind of schedule.
Absolute: Schedule periods are relative to a fixed point in time defined in the schedule.
Recurring: The schedule restarts periodically at the first schedule period.
Relative: Schedule periods are relative to a situation-specific start point (such as the start of a Transaction), which is determined by the charge point.
recurrencyKind (Optional): Indicates the start point of a recurrence.
Daily: Schedule restarts at the beginning of the next day
Weekly: Schedule restarts at the beginning of the next week (Monday morning)
validFrom (Optional): Point in time at which the profile starts to be valid. If absent, the profile is valid as soon as the Charge Point receives it. Remember that most charge points use the UTC time zone.
validTo (Optional): Point in time at which the profile stops being valid. If absent, the profile is valid until it is replaced by another profile.
chargingSchedule (Required): Contains limits for the available power or current over time. This is technically the core of the setChargingProfile.req and contains the actual “charging profile.” We will go into more detail in the next section.
Programa de carga: describe la cantidad de energía o corriente que se puede entregar por intervalo de tiempo
El Calendario de carga componente que se encuentra dentro del Perfiles de carga CS incluye los límites de potencia o corriente a lo largo del tiempo para los perfiles de carga. Además, también incluye otra información, como las unidades, etc.
Duration (Optional): Duration of the charging schedule in seconds. If the duration is left empty, the last period will continue indefinitely, or until the end of the transaction, in case startSchedule is absent. Important: some charge points require this field.
startSchedule (Optional): Starting point of an absolute schedule. If absent, the schedule will be relative to the start of charging.
chargingRateUnit (Required): The unit of measure Limit is expressed in:
W: Watts (power) defines the maximum power allowed on the charge point
A: Amperes (current) defines the maximum current allowed per phase
chargingSchedulePeriod (Required): List of ChargingSchedulePeriod elements defining maximum power or current usage over time. The startSchedule of the first ChargingSchedulePeriod SHALL always be 0. This always has:
startPeriod (Required): Start of the period, in seconds from the start of schedule. The value of StartPeriod also defines the stop time of the previous period.
Limit (Required): Charging rate limit during the scheduled period, in the applicable chargingRateUnit, for example, in Amperes or Watts. Accepts at most one digit fraction (e.g. “8.1”).
numberPhases (Optional): The number of phases that can be used for charging. If several phases are needed, numberPhases=3 will be assumed unless another number is given.
minChargingRate (Optional): Minimum charging rate supported by the electric vehicle. The chargingRateUnit defines the unit of measure. This parameter is intended to be used by a local smart charging algorithm to optimize the power allocation if a charging process is inefficient at lower charging rates. Accepts at most one digit fraction (e.g. “8.1”). Certain vehicles stop charging or go into sleep mode if the charging rate is too low. This parameter sets a minimum power so that the charging remains engaged at the most minimal level.
Conclusión: aplicaciones reales con EVSE Brands
{ «ID de conector»: 3, «Perfiles de carga de CS»: { «ID del perfil de carga»: 26771, «ChargingProfileKind»: «Absoluto», «Propósito del perfil de carga»: «Perfil predeterminado de TX», «Programa de carga»: { «Unidad de velocidad de carga»: «kW», «Período programado de carga»: [ { «límite»: 2, «Período de inicio»: 0 } ], «duración»: 86400 }, «Nivel de pila»: 1, «transactionId»: nulo, «Válido desde»: «2021-10-25T 21:57:33.222 092», «Válido hasta»: «2021-10-26T 21:57:33.222 092» } }
Si bien lo anterior destaca los componentes obligatorios y opcionales de los mensajes de perfil de carga que utilizan OCPP, lo que descubrimos en Ampcontrol es que algunos fabricantes tienen matices ligeramente diferentes en su interpretación del OCPP.
Por ejemplo, muchos cargadores no siguen el estándar previsto y esperan un formato diferente. Es posible que otros solo acepten límites con un número determinado de niveles o fases de acumulación. Es posible que sea necesario ajustar el perfil exacto de carga enviado al cargador; de lo contrario, el cargador rechazará el mensaje.
Además de calcular y enviar los perfiles de carga, es igualmente importante entender los mensajes de error y realizar pruebas de hardware con los fabricantes. En Ampcontrol, solemos realizar pruebas con modelos antes de ejecutar perfiles de carga complejos en un sitio de carga real.
Resumen
Para utilizar la carga inteligente en las operaciones del cargador, primero debes iniciar una sesión de carga. Puedes hacerlo a través de Iniciar transacción o Inicio remoto. Una vez iniciado, el Sistema Central envía los perfiles de carga mediante un Establecer el perfil de carga. REQ.
El Establecer el perfil de carga. REQ es uno de los tipos de mensajes OCPP más complejos y tiene muchas opciones de configuración. Este mensaje posibilita la administración de la energía, ya que contiene la flexibilidad necesaria para crear una lógica compleja.
El setChargingProfile.req incluye un objeto csChargingPerfil. Este objeto especifica los parámetros principales, como los límites de potencia o corriente, el período de tiempo y más. El punto de recarga responderá entonces a estos comandos con una confirmación, Establecer ChargingProfile.conf, que incluye una respuesta definida para Estado del perfil de carga tan aceptado, rechazado, no admitido.
Esquema
Introducción
Envío de un perfil de carga mediante Establecer el perfil de carga. REQ
Describir los elementos del ChargingProfile con Perfil de carga CS
Programa de carga: describe la cantidad de energía o corriente que se puede entregar por intervalo de tiempo.