Skip to content
Ladder logic (PLC) templates

Ladder - Batch Mixer Charge and Soak

Nine rungs of a jacketed batch vessel caught 240 s into a 600 s soak: both charge valves have closed on their made weights, the agitator and its soak TON are running, and the batch-done latch on rung 7 is still unpowered - which is exactly why rung 2's seal-in reads that not-yet-written tag as zero and holds the batch on.

Template previewLadder logic (PLC)
Batch mixer - weigh, agitate, soak and dischargeDECLARED INPUT STATEStart_Batch = 0EStop_OK = 1Hatch_Closed = 1Temp_OK = 1Weight_A_Made = 1Weight_B_Made = 1Discharge_Ack = 0Batch_Run = 1L1N1Vessel safe: E-stop healthy and the charge hatch closedTRUEEStop_OK1Hatch_Closed1Vessel_Safe12Batch seal-in, dropped by the done latch written further downTRUEStart_Batch0Batch_Run1Vessel_Safe1Batch_Done0Batch_Run13Charge valve A open until its weight is madeFALSEBatch_Run1Weight_A_Made1Valve_A04Charge valve B open until its weight is madeFALSEBatch_Run1Weight_B_Made1Valve_B05Agitate once both charges are in and the jacket is at temperatureTRUEBatch_Run1Weight_A_Made1Weight_B_Made1Temp_OK1Agitator16Soak timer - 600 s of agitation at temperatureTRUEAgitator1TONT_SoakPRE 600 sACC 240 sDN7Batch complete when the soak times outFALSET_Soak.DN0SBatch_Done08Discharge valve on the operator acknowledgementFALSEBatch_Done0Discharge_Ack0Valve_Discharge09Jacket heating whenever the batch runs below temperatureFALSEBatch_Run1Temp_OK1Jacket_Heat09 rungs solved in one scan: 4 true, 5 false. 19 tags, 8 declared as inputs.5 outputs are never energised in this state: 'Batch_Done', 'Valve_A', 'Valve_B' +2 more.

Make it your own.

title "Batch mixer - weigh, agitate, soak and discharge"
state: Start_Batch=0, EStop_OK, Hatch_Closed, Temp_OK, Weight_A_Made, Weight_B_Made, Discharge_Ack=0, Batch_Run

rung "Vessel safe: E-stop healthy and the charge hatch closed"
  xic EStop_OK
  xic Hatch_Closed
  ote Vessel_Safe

rung "Batch seal-in, dropped by the done latch written further down"
  branch
    --] [--Start_Batch
    --] [--Batch_Run
  --] [--Vessel_Safe
  --]/[--Batch_Done
  --( )--Batch_Run

rung "Charge valve A open until its weight is made"
  xic Batch_Run
  xio Weight_A_Made
  ote Valve_A

rung "Charge valve B open until its weight is made"
  xic Batch_Run
  xio Weight_B_Made
  ote Valve_B

rung "Agitate once both charges are in and the jacket is at temperature"
  xic Batch_Run
  xic Weight_A_Made
  xic Weight_B_Made
  xic Temp_OK
  ote Agitator

rung "Soak timer - 600 s of agitation at temperature"
  xic Agitator
  ton T_Soak preset: 600 accum: 240 unit: s

rung "Batch complete when the soak times out"
  xic T_Soak.DN
  otl Batch_Done

rung "Discharge valve on the operator acknowledgement"
  xic Batch_Done
  xic Discharge_Ack
  ote Valve_Discharge

rung "Jacket heating whenever the batch runs below temperature"
  xic Batch_Run
  xio Temp_OK
  ote Jacket_Heat