Cycle Timer

Our first timer will be called CYCLE and will be used to calculate the time from each CYCLESTART message to the following CYCLESTOP message.

This setup will only work if the machine does not stop in the middle of a program (e.g. for a probe cycle).

Click Setup in MDC-Max menus toolbar and then System Setup.

Opening System Setup.

Click Timers on the left hand side tree menu. We are going to modify the predefined existing CYCLE timer in the Timer configuration window (if there is no CYCLE timer in your Timer configuration box, add a new timer and call it CYCLE. See Stopped Timer for more details).

Click into Description and set this to Cycle Time - this is just a comment.

CYCLE timer configuration.

Next we have to describe the start and stop conditions for this timer. We will be using the messages generated by DNC-Max to start and stop the timers.

Setting Timer Start and Stop Conditions

Click the search icon to the right of the Start condition field. The following dialog will appear.

Start condition definition.

We want the timer to start when we get the message CYCLESTART from the machine. In MDC-Max all messages are denoted by MSG[nameofmessage].

Scroll down the list to the section that starts with MSG. Click on the MSG[CYCLESTART] (remember we setup the CYCLESTART message in Configuring Messages in DNC-Max) and click the Insert button below so it appears in the Expression box. Then click OK to be returned back to the timer screen.

Click the search icon to the right of the Stop Condition field to open the Expression window again and find the MSG[CYCLESTOP] message. Click Insert and OK. This means the timer will stop when we get a CYCLESTOP message from the machine.

CYCLE timer configuration.

Setting Timer Restart Condition

The restart condition is used to start a new cycle time even if the stop condition has not been reached. I.e. a bar fed machine will start a cycle and then continue in-cycle until the bar feed runs out or there is an error so we only ever get one CYCLESTART message for every batch of components. However we do get a PARTCOMPLETE message for each component (as long as you have set this up).

The Restart condition will stop the current timer, save the timer values and timer count and then start a new timer cycle.

Click the search icon to the right of the Restart Condition box and set it to MSG[PARTCOMPLETE]. This way we can still store individual cycle times.

CYCLE timer configuration.

Setting Timer Clear Condition

When you are running a live screen you only want to see cycle times and accumulative totals from today - this is where the Clear Condition comes into play.

MDC-Max has built in functions that you can use to determine the current time, when a day starts and ends and other time related values. We want to clear our timer at the end of the day for the livescreen so we use the built in function TIME[ISDAYEND] - this is True when we get to the end of the day (see Schedule Setup later on to determine the start / end of a day or shift).

Click the search icon to the right of the Clear Condition field, and scroll to the bottom of the expression list where you will find the TIME expressions. Select TIME[ISDAYEND] and click OK.

It is worth pointing out here that each of the 4 conditions on the left are binary conditions. For example, TIME[ISDAYEND] is either TRUE (the current time is the end of the day) or FALSE (the current time is not the end of the day).

Setting the clear condition to TIME[ISDAYEND] means that the current timer (CYCLE in this case) will be reset to 0 at the end of the day. Note, however that the clear condition only clears the accumulated cycle timer for the live screen. If you tick the box below Use "Clear Condition" on table/graphs it will also clear all daily and weekly timers used for historical charts (don't do this unless advised by CIMCO).

Click OK and the CYCLE timer is created, and will start when we get a cycle start message from the machine and will stop when we get a cycle stop message.

CYCLE timer configuration.

Once a timer is created is generates several internal timer values. This timer serves several purposes as follows:

There are also other uses but the above are the most frequently used.