On a DL06 the HMI's write only fills two data words; the clock moves when the PLC program loads them with LDD and executes TIME. Put the hour in the upper word as BCD, minutes and seconds in the lower word, trigger TIME once per press from the panel's pushbutton bit through a PD one-shot, and verify the clock takes the entered 24-hour time.
On a DL06, the panel write is only the first half of the job. The HMI can copy hour, minute and second into two V-memory words every night at 1:00 AM, and the PLC clock still reads an hour off, because the clock moves only when the program executes the TIME instruction. The fix is one rung: LDD loads the two words into the accumulator as BCD, a PD one-shot gates TIME to fire once per press of the panel's pushbutton bit, and TIME writes the loaded time into the clock. This page builds that rung, shows the BCD word layout the DL06 expects, and gives checks that tell a trigger problem apart from a format problem. The short version for the yearly daylight-saving correction from an operator panel is set a PLC clock from the operator panel for daylight saving time; this page is the machinery behind it, with the test.
Why the clock stays an hour off
The DL06 carries a real-time clock that holds the year, month, day and time of day. PLC models differ in how that clock accepts new values. Some take the write directly: put the values in the clock registers and the clock updates. Some hold the clock in packed date and time registers and need the panel write to respect the packed layout; set a PLC clock from an HMI without breaking the packed format is that layout. The DL06 wants the program to execute the TIME instruction, shown with a worked example at page 5-172 of the DL06 user manual. So the panel's scheduled write delivers data, and the rung delivers the command. Watch the two words and the clock separately, and every failure names its own half: words that change with a clock that does not is a missing trigger, and a clock that jumps wrong is a format problem in the words.
What you need
- The DL06 powered up and in run, with its programming software connected online so you can watch word values and the clock during the test.
- Two consecutive unused V-memory words. The manual's example uses V2000 and V2001, and the vendor's DL06 FAQ notes that other free addresses work; if you pick your own pair, point the panel tags and the LDD instruction at the same words.
- Two panel tags that write BCD values into those words, and one momentary pushbutton on the panel that writes a single unused C bit.
- A trusted time reference to check the panel's own clock against before you run the test.
Steps to build the clock rung
- Reserve the words. Use V2000 and V2001 as in the manual example, or your own consecutive free pair. Nothing else in the project may use them.
- Map the tags to the word layout. The double word is eight BCD digits: four for the hour with leading zeros, two for the minute, two for the second. The upper word carries the hour (0007 for 7:30 AM) and the lower word carries minute then second (3000 for 30 minutes, 00 seconds). Point the panel's hour tag at the upper word and assemble minute and second into the lower word as the four digits MMSS. Set both tags' data format to BCD in the panel project; binary 193000 and BCD 00193000 are different bit patterns, and TIME reads the digits you deliver. Every HMI tag editor carries a data format per tag, wherever your panel project keeps it. For the panel side of that conversion, a V-memory BCD conversion from an HMI to a DirectLogic PLC walks through an HMI writing BCD words a DirectLogic PLC reads correctly.
- Convert the time to 24 hours. AM hours pass through unchanged. Add 12 to PM hours, so 7:30 PM uses hour 19.
- Enter the rung. A normally open contact on the panel's C bit drives a PD one-shot, and the one-shot gates TIME. Ahead of the one-shot, LDD loads the accumulator from the upper word address, which pulls both words in. Keep the load-then-execute order of the manual example; the printed example loads a constant K value, and the panel-driven rung loads the same double word from your two words instead.
- Save to the PLC and put it in run.
- Press once and go to the checks. Enter a test time on the panel, press the pushbutton, and read the clock back.
How to check it worked
- Data path. With the PLC online, enter 14:05:00 on the panel. The upper word reads 0014 and the lower word reads 0500. When the words change, the panel-to-PLC path works.
- Command path. Press the pushbutton. A momentary button holds the C bit on while pressed, and the PD one-shot catches the rising edge, so TIME runs once for that press even during a long hold.
- Result. Read the PLC clock back and compare it with the panel time; the two should agree within the few seconds it took to reach the button. Any timestamped event reads the same clock, so an alarm-history entry is a quick second opinion; record job completion time with an alarm history is that piece of the picture.
- Read each failure against its half.
- The words change and the clock does not: the rung never executed. Check that the C bit address in the panel project matches the contact in the ladder, and that the PD one-shot actually gates TIME.
- The clock takes a wrong value: a format or placement problem. Check that both tags are BCD, that the hour sits in the upper word, and that the hour is the 24-hour value.
- The clock lands 12 hours away from what you meant: a PM hour went in without the +12.
Example: set the clock to 7:30 PM from the panel
The panel clock reads 7:30:00 PM. Convert the hour: 7 + 12 = 19. The panel writes BCD 0019 into V2000 and BCD 3000 into V2001, where the digits 30 and 00 are minute 30, second 00. LDD on V2000 loads both words, and the accumulator holds 00193000, the same value the manual's example uses as its constant for 7:30:00 PM. The pushbutton pulses the C bit, the PD one-shot lets TIME run once, and the DL06 clock reads 19:30:00. The next morning the same entries at 7:30 AM write 0007 and 3000, and the clock takes 07:30:00. Reading the eight digits back as hour, minute, second turns a wrong entry into a diagnosis: a value like 00071234 carries minute 12 and second 34, so the panel sent the wrong time and the layout is innocent.
Recommendation
Recommendation: Commission on the pushbutton first: check the panel clock against a trusted reference, write the words, press once, and confirm the DL06 clock takes the entered 24-hour time. Once the button path works, decide who triggers updates from there. To let the overnight panel write set the clock with nobody present, watch the two words for a change with a compare-and-save bit and drive the PD rung from it; log PLC data on V-memory change with a compare-and-save bit is that pattern. One boundary stays fixed: time-of-day logic belongs on schedules and timestamps, never in an interlock that has to stop a machine.
Questions
What time does the panel need to show before the test?
Set the panel's own clock first, against a trusted reference. The transfer copies whatever the panel clock holds, so a correct rung with a panel clock 60 minutes fast sets the PLC clock 60 minutes fast. Fix the source, then enter the test time and press once.
Does the daylight-saving correction touch the calendar date?
No. The shift moves the hour and leaves the date alone, and the example at page 5-172 loads hour, minute and second only, which is the whole correction. The DL06's real-time clock also holds the year, month and day, and the DL06 user manual covers the clock in full if those fields ever need attention.
Which bits can drive the trigger rung?
Any bit that goes on once per update. The panel pushbutton bit is the usual one. A commissioning bit pulsed from the programming software works well during the bench test. A compare bit that watches the two clock words for a change lets the 1:00 AM panel write set the clock with nobody present. Keep the trigger one-shot, and make sure the words hold a valid BCD time before it fires.
Planning information, not legal or engineering advice. Rules differ by place: check codes and permits with your local authority and your licensed trades.