Mitsubishi Melsec F1 Timer Registers

Jmacd802

Member
Join Date
Oct 2020
Location
Vermont
Posts
8
Its been a while since I've worked with a mitsu.

In regards to Timer register reads and writes:

Does it read the accumulator and write to the preset?
Or does it read and write both the accumulator?

The only hint I can find in the manual is:
"Since the F1 series programmable controller is not provided with any setting value register for counter, the constant is transferred to the current value register"

To me, this is interpretted as "The counter is the only element that cannot have a value written to its preset". Meaning any other element, such as the timer in my case, is writing to the preset and reading from the accumulator. But unless it says that exclusively, how can you really be sure?

Unfortunately I don't have a bench test or simulator, so its really just up to interpretation at this point; I was hoping to meet some seasoned mitsu experts to chime in.

Here's the manual I've been referencing in PDF.

https://dl.mitsubishielectric.com/dl/fa/document/manual/plc_fx/jy992d08301/jy992d08301a.pdf
 
For counters when you call the counter (out instruction) you give it a constant for example OUT C10 K1500.
You cannot change this but you can change the accumulated value just
MOV K500 C10 this will set the actual counter to 500.
You can compare the counter with CMP C10 K200 M10 this compares the counter accumulator with the constant (or a variable) and M10-12 are either >=<.
Timers work the same way so you cannot change the timer.
However, By substituting the constant "K" with a "D" Memory it is possible to change the pre-set values i.e.
OUT C10 D100
this will set the pre set of the counter or timer to the value in D10
This way you can alter dynamically the timer or counter pre-set.
Note: unlike AB(RW) you do not have declarations like Timer.DN .ACC etc.
The program compiler knows from the instruction what the type is
i.e. OUT is the timer pre-set
CMP T10 is the accumulated value
MOV K200 T10 sets the accumulated time.
Most PLC's are using the IEC functions for timers/counters in Mitsubishi these don't actually use the in-built timers but create a subroutine that just counts values & compares them accordingly.
 
For counters when you call the counter (out instruction) you give it a constant for example OUT C10 K1500.
You cannot change this but you can change the accumulated value just
MOV K500 C10 this will set the actual counter to 500.
You can compare the counter with CMP C10 K200 M10 this compares the counter accumulator with the constant (or a variable) and M10-12 are either >=<.
Timers work the same way so you cannot change the timer.
However, By substituting the constant "K" with a "D" Memory it is possible to change the pre-set values i.e.
OUT C10 D100
this will set the pre set of the counter or timer to the value in D10
This way you can alter dynamically the timer or counter pre-set.
Note: unlike AB(RW) you do not have declarations like Timer.DN .ACC etc.
The program compiler knows from the instruction what the type is
i.e. OUT is the timer pre-set
CMP T10 is the accumulated value
MOV K200 T10 sets the accumulated time.
Most PLC's are using the IEC functions for timers/counters in Mitsubishi these don't actually use the in-built timers but create a subroutine that just counts values & compares them accordingly.
Thanks Parky! This is actually my first post here but I've lingered this site for a while and have always seen your name around, so I'm honored that you've taken the time to help me, thank you!

I see what your saying and that makes since, it seems to follow suite to most timer programming I've seen. I don't believe this PLC can do variables as timer presets. The manual only calls it out as a constant variable, K. The nice thing is this is just for an upgrade, so I'm only reading this code to be able to copy it to a newer PLC, so I'm not too worried about any limitations in functionality, just need to make sure I understand it correctly so as to copy it without flaws.

Since I have you here, can I ask you one more timer register question?
In the manual, timers 650-657 are .01-99.9sec timers. In the code (on a programming panel cause I was unsuccessful in using MEDOC) one of those timers is K=03.5, and another is K=200. Is the 03.5 one a 3.5 second timer and the 200 one is a 2.00 second timer but with higher accuracy?
 
The F1 system is very old and no longer supported I only have GXDeveloper, GXWorks 2 & 3 and these do not support the old F1.
however, if my memory serves me right T50 -T57 are 0.1 to 999 seconds
T450 457 are also 0.1 to 999 seconds
Same for T550 to 557 note: all the above are 100msec time intervals so for 0.1 second it will be K1 for 99.9 seconds it will be K999 you have to use a one to four digit format i.e. K123 is 12.3 seconds.
Timers 650 to 657 are the higher speed timers 10msec and have a range from 0.01 to 99.9 seconds so a 0.01 second (10ms) would be K1 & 99.9 would be K999. You cannot have a real value with decimal point as far as I'm aware (but it has been a long time since I used an F1).
What PLC is the upgrade to ?.
If you were using the newer versions then you have timers 0 to 255, 235 to 242 are normally reserved for high speed counting tied to the first 7 inputs on the FX range. It will depend on what PLC you use but all Mitsubishi PLC's have 0.1 & 0.01 (100 & 10msec) timers.
For example the FX3UC has t0-199 as 100msec timers, T200-245 b10msec timers + others for retentive etc.
 
Last edited:
The F1 system is very old and no longer supported I only have GXDeveloper, GXWorks 2 & 3 and these do not support the old F1.
however, if my memory serves me right T50 -T57 are 0.1 to 999 seconds
T450 457 are also 0.1 to 999 seconds
Same for T550 to 557 note: all the above are 100msec time intervals so for 0.1 second it will be K1 for 99.9 seconds it will be K999 you have to use a one to four digit format i.e. K123 is 12.3 seconds.
Timers 650 to 657 are the higher speed timers 10msec and have a range from 0.01 to 99.9 seconds so a 0.01 second (10ms) would be K1 & 99.9 would be K999. You cannot have a real value with decimal point as far as I'm aware (but it has been a long time since I used an F1).
What PLC is the upgrade to ?.
If you were using the newer versions then you have timers 0 to 255, 235 to 242 are normally reserved for high speed counting tied to the first 7 inputs on the FX range. It will depend on what PLC you use but all Mitsubishi PLC's have 0.1 & 0.01 (100 & 10msec) timers.
For example the FX3UC has t0-199 as 100msec timers, T200-245 b10msec timers + others for retentive etc.
The upgrade is to an Automation Direct brand of PLC's. I double checked the code again and the 03.5 and 200 are both correct.

I think I may have found the answer hidden in the manual, in the Functions section, were it mentions reading constants from timers; there's a note that says
K12.3--> 12.30 seconds
K123--> 1.23 seconds

You'd think they would make this note in the timer section as well.. oh well,
I'm gonna assume that this answers my question. Thanks for your help Parky, much appreciated.

Considering your time on this site, I'm gonna assume your PLC experience is a bit more than mine, but I have spent a large chunk of my career helping engineer grid-tied inverters and VFD's, so if you ever find yourself needing assistance in those realms, please feel free to DM me. I'd be happy to pay it forward.
 
it's been many years since I used the F1 & I certainly cannot remember ever using decimal points on timers and you certainly cannot on the later CPU's. So I think you will find that 3.5 seconds would be 35 as each count of the timer would be 100ms on the normal timers and .35 on the 10ms timers.
I suspect that using the hand held programmer then it may be possible to use the decimal point and it is ignored as far as the PLC is concerned, cannot confirm this but I think you will find that you will need to assume that 3.5 is 3.5 seconds but although I do not know AD that well for the newer processors and if you are using IEC functions then the 3.5 sec timer will be formatted as T#3.5s this is converted into msec when compiled (3500).
On standard speed timers then putting in T#3.05 will issue a warning and truncate it as per picture.
However, using a high speed timer then it will allow 2 decimal places (well in Mitsubishi anyway). So you need to make sure you select the correct time base for the platform you are using.
Thanks for the offer on drives but I am now retired so not likely to use any drives now, I'm on this site just to keep my hand in, but not being in the forefront of automation now my knowledge is falling behind on some of the latest hardware & software but I hope that my 40 years of being in automation can be of use to some people.

Timer.png
 

Similar Topics

Hello! First time poster and a big PLC newbie so I am looking for some backup here. I have an old Mitsubishi FX-48MR that lost its program...
Replies
15
Views
521
I've worked on one Mitsubishi PLC in the past 40 years. Now, it looks like I get to tackle another one...using GX-WORKS3-C1 software which I...
Replies
3
Views
954
I have been asked to work on a Mitsubishi Melsec FX2N-80MR PLC but have no experience with Mitsubishi at all. The hope is to get online to find...
Replies
4
Views
1,341
I have an 80's PLC, Mitsubishi K2NCPU that needs replacing. Is there a software / cable available to upload and print the current PLC program? Thanks
Replies
3
Views
949
We received a cell that has a MELSEC Mitsubishi FX 2N-80MR PLC installed. We need to access the PLC program for troubleshooting and additional...
Replies
4
Views
1,982
Back
Top Bottom