Yes: store one selected-day word per channel in V-memory, compare it with the clock's day-of-week word V7771, and put the match bit in series with each channel's time window. Four channels take four rungs of day logic instead of 28 compare contacts. When a channel must run on several days a week, swap the word for a seven-cell table read through a pointer.
Yes, this is a four-rung job, not a wall of compare contacts. Keep the 24-hour start/stop windows exactly as they are. Store one selected-day word per channel in data memory, compare it with the clock's day-of-week word V7771, and put the match bit in series with that channel's window contacts. One rung per channel. When a channel has to run on several days a week, swap the single word for a seven-cell table and read today's cell through a pointer, still one rung per channel. The brute-force alternative is one compare contact per day per channel: 4 channels x 7 days = 28 contacts before any time logic appears.
What the day check adds to the time window
Your time comparisons already answer "is the clock inside this channel's window?" The day check answers "is this channel allowed to run today?" and sits in front of the first one, in series:
--| day allowed |--| time window |--( channel output )
A channel output is on only when both are true. The existing windows are untouched; on the wrong day the day contact holds the channel off. If the windows came from the build described for scheduling PLC outputs by day and time from an HMI panel, the day contact drops in ahead of the first time contact on each of those four rungs.
What you need
- The four start/stop schedules already in the PLC, with their time-compare contacts.
- The clock. Its day-of-week word is V7771; the same clock keeps the year, month, day of month, hour, minute and second, so a weekly schedule needs no separate time source.
- Four spare data words for the selections. Example addresses: V2000 channel 1, V2001 channel 2, V2002 channel 3, V2003 channel 4.
- One spare internal relay per channel for the match bit. Example: C100 through C103.
- A write path from the 6-inch HMI already on the machine: one numeric entry per channel, or a recipe push that writes all four words at once.
- Online monitoring, so you can watch the selection words, V7771 and the match relays during testing.
Learn the day numbering first
V7771 holds the day as a number, and the selection words must use the same numbering. Go online, watch V7771, and record its value for each weekday as the week turns. If Sunday reads 1 and Saturday reads 7, the HMI day list is Sunday = 1 through Saturday = 7. If it counts 0 through 6, shift the list to match. A week of watching settles the numbering for the life of the machine, and every screen and rung downstream copies it. Working from the clock is the same skill used to schedule a PLC output from the real time clock.
The build, one rung per channel
- Reserve the four selection words and the four match relays (V2000 through V2003 and C100 through C103 in this example; any spare data words and relays in your program work).
- On the HMI, add a day entry for each channel that writes its word: a numeric entry from 1 to 7 using the numbering you recorded, or a day list that writes the matching number.
- In the PLC, add one compare-equal rung per channel: V2000 equals V7771 energizes C100, V2001 equals V7771 energizes C101, and so on to C103. Keep the compare single-word on both sides; a width mismatch between clock values is exactly the failure walked through in the single-word hour compare fix.
- Insert each match contact in series with that channel's window contacts, ahead of them, driving the same output coil.
- Test a match and a mismatch per channel, then run the full three-case check described under "Check it worked".
Several weekdays on one channel
A channel that must run Monday, Wednesday and Friday needs more than one selected number. Give each channel a seven-cell table, one cell per day, holding 1 for "run today" and 0 for "do not run". Example for channel 2: V2110 through V2116, day 1 at V2110 up to day 7 at V2116.
Read one cell per scan with pointer addressing: a register holds the address of a table word, the day value sets that register, and the load instruction reads the word it points to. With Sunday = 1 numbering, the address is table start + (day - 1); a clock that counts 0 through 6 uses table start + day with no offset. A fetched 1 is the day-allowed condition, wired in series with the time window exactly where the match relay sat. The pointer notation for your controller is in its programming manual; the concept is one register choosing which table word the instruction reads.
The HMI writes a channel's whole table as one recipe push: 7 words per channel, 28 words for four channels. The layout follows storing HMI recipe tables in PLC memory and loading the values. The block-write step is the same idea as recipes stored in V-memory for batch recall.
Example: channel 2 on three weekdays
Channel 2 runs a wash-down pump from 05:30 to 06:15, and only on Monday, Wednesday and Friday. Its table is V2110 through V2116, and the clock numbering you recorded reads Sunday = 1 through Saturday = 7.
| Day | Clock value in V7771 | Cell | Pump allowed |
|---|---|---|---|
| Sunday | 1 | V2110 = 0 | no |
| Monday | 2 | V2111 = 1 | yes |
| Tuesday | 3 | V2112 = 0 | no |
| Wednesday | 4 | V2113 = 1 | yes |
| Thursday | 5 | V2114 = 0 | no |
| Friday | 6 | V2115 = 1 | yes |
| Saturday | 7 | V2116 = 0 | no |
Wednesday: V7771 = 4, so the fetch address is V2110 + (4 - 1) = V2113. The cell holds 1, the day-allowed condition is true, and the 05:30 to 06:15 window alone decides the pump: 45 minutes of run time that morning. Tuesday: V7771 = 3, the fetch reads V2112, the cell holds 0, and the pump stays off all day, 05:45 included. Across the week the pump runs 45 minutes x 3 days = 135 minutes. If your clock counts 0 through 6 instead, drop the - 1 and the same table reads correctly.
Check it worked
Put each channel through three cases while you watch the selection word (or the fetched cell), V7771, the match relay and the output coil:
- Day matches and the clock is inside the window: output on.
- Day matches and the clock is outside the window: output off.
- Day does not match and the clock is inside the window: output off.
Then change one channel's selection and confirm the other three outputs hold their state; separate words per channel keep the schedules independent. With the pointer build, watch the fetched address as the day value steps: an off-by-one shows up as the pump running a day early or a day late, which the three cases run on two consecutive days will catch. Do all of this with the machine in a state where an unexpected output is harmless, outputs disconnected or the driven equipment isolated, under your site's testing procedure.
Which build to use
Recommendation: use the single-word compare for every channel that runs on one day a week, and move a channel to the seven-cell table the moment it needs two or more days. Both are one rung per channel, the gating contact is identical, and the day logic for four channels stays at four rungs against 28 brute-force compare contacts.
Questions
Why does a channel ignore the day you selected?
Check the path in order. Read the selection word in the PLC, on the HMI: a screen can show a value the controller never received. Then read V7771 and confirm today's number matches the numbering you recorded. Then confirm the match relay is on. If all three check out and the channel still runs, the day contact is wired around the window contacts instead of in series with them.
Can one channel run on several days of the week?
Yes. Give that channel a seven-cell table, one cell per day holding 1 or 0, and let the day value point to the cell. Fill all seven cells with 1 and the channel runs every day; mix freely, since each channel has its own table and its own rung. The fetched word replaces the match relay in series with the same time window.
How do you test the day logic without waiting a week?
Write each selection word to the number in V7771 right now, and every channel should follow its window today. Write one channel to any other number and it must stay off all day, inside its window or not. Match and mismatch are tested in two minutes; only the day numbering itself needs the week of watching.
Do day selections take effect without a restart?
Yes. The compare rung executes every scan and reads whatever is in the selection word, so a value written from the HMI applies on the next scan. A recipe push that writes all four words lands the same way, as one block. The clock itself keeps running through the change.
Planning information, not legal or engineering advice. Rules differ by place: check codes and permits with your local authority and your licensed trades.