I want to break down some things in Damien's
post further back on this page about states.
State 0 - Startup. entered upon plug in detection.
Tried to advance to state 1 via detection of 5% not ready pilot. Kinda works. Sometimes. 2 second timers works everytime.
Appears to be actually a pretty big step. A lot of stuff potentially happens here: detection of 5% pilot, SLAC/connection processing, SECC Discovery Protocol (SDP), protocol handshake request, session set up, service discovery, service payment selection, and finally contract authentication - where you could potentially sit for an indeterminate amount of time.
State 1 - Initialisation. entered 2 seconds after plug in is detected.
This is the daddy. In this state the LIM attempts PLC comms with the station and if successful populates CAN messages 0x29E and 0x2EF with data such as voltage and current available from the station.
Now here's the kicker : Jump out of that state too soon and Mr.Efacec not happy. STAY in that state too long and Mr.Efacec not happy.
Now long is a piece of string? In this case anything under 2 seconds is too short and anything over 3.5 seconds is too long AFTER we populate those two CAN messages.
If what you say is true here, and I would study those two CAN messages in detail to make sure this is true, this is the stage you actually get the parameters of the station aka, charge parameter discovery. If the messages appear before having valid data in them, they might appear earlier in the actual CCS stages. Note, a station can stay in charge parameter discovery by saying EVSE processing ongoing instead of finished. If you try to jump the gun at any stage which could have EVSE processing, you’ll fault the station. Some stations will only take a single message to be ready, others take longer (~anywhere from 3-30s in my experience). Most vehicles will time out here after 60 second if the EVSE is not done (and likely there’s something wrong with the station).
State 2 and 3 - cable test.
Nothing to see here. move along.
Cable check is one step/state in CCS land. Not sure what the difference is here. It seems silly/incorrect to have two states for this. Once cable check is complete by the station with an “EVSEProcessing: finished” flag, the vehicle sends the first PreChargeReq.
State 4 and 5 - Precharge and close contactors.
Nothing to see here. move along.
Likely state 4 = precharge and state 5 = power delivery request. Note I previously mentioned you had a case of sending one PLC packet with a recharge voltage request of what appeared to be your pack max voltage so you might want to look into this a bit, you might be moving to the next state before changing the input value.
State 6 - Give those juicy CCS amps baby.
Current demand request (EV to EVSE) and current demand response (EVSE to EV). While this isn’t too exciting communications wise, you do need to look into the flag for EVSE status as it took you a bit to react last time. Also you should try to react as soon as possible to an EVSE emergency shutdown or a low level pilot state change. Some stations, notably ABB, will stop speaking PLC (closing the TCP connection first) when they go into emergency shutdown, and change their pilot state to static.
State 7,8 and 9 - Shutdown session.
Likely power delivery, welding detection, and session stop.