Mitsubishi FX1, Can someone explain this diagram for me?

Terminatez

Member
Join Date
Jan 2015
Location
California
Posts
8
0 -|X0|---------------------------------[MOV k0 d0]-
6 -|M8|----|T0/|----------------------------(t0 k5)-
............|--|T0 |---------------------[ADD k1 d0 d0]-
.........................|------------------[CMP k16 d0 m0]-
.........................|------------------[MOV d0 k2y000]-
.........................|--|M1|----------------MOV k0 d0 ]-

39 -|X2|----|X3/|-------------------------(y1)-
....-|Y1 |-|

43 -|X3|---|X2/|--------------------------(y3)-
....-|Y3|-|

It's on a Mitsubishi FX1 series
X/0 = Switch
X/1 = Switch
X/2 = PushButton
X/3 = PushButton

Y/0 = BLue
Y/1 = Green
Y/2 = Yellow
Y/3 = Red
 
Never messed with Mitsubishi before but I can point out part of what you have there.

rung 39 = if PB X2 is pressed and PB X3 is not then output Y1 (green light) will be true (on).
Once it is on then the parallel instuction Y1 that is under instruction X2 will act as a seal in and keep Y1 (green light) on until you push button X3 to break the circuit and turn the light off.

Rung 43 is the same as 39 but you reverse the order of the switches and are using the red light instead of the green.


Rung 0 = XO switch is on then you move logic in the program.

Rung 6 = well you are Outputing, Moving, Adding, Computing, and Moving some more logic around in the program when the conditions preceding the outputs are true.
(Not much help to you on the last one I know, but hey at least I tried)

Good luck

BCS
 
Well, at least in Allen Bradley instructions:

When you see the MOV instruction then when conditions preceding it on the rung are true then this instruction will move the specified logic to another specified place in the program.

For instance if Integer A = 247 and you have Integer B as the destination for your move instruction, then when the MOV instruction is true it will move the value of 247 to integer B.

(This is just an example, you will be moving what ever value is actually in the instructions you specify.

In your program you should be able to use the help menu to see instructions help that will explain this better.

Also the CMP instruction I am assuming is "Compute" so you can use this instruction to add, subtract, multiply, divide. etc values within the program.



BCS
 
Last edited:
The k0 referenced in 'rung 0' if mitsu short for constant '0' (I'm pretty sure).
So, MOVe constant k0 to data word d0.

I think CMP is compare ...
(edit - just checked and yes, it's Compare)
 
Last edited:
 
Using info from an FX0 Manual - all I had

0 - If input X0 is on MOV a constant of zero into data register d0
6 - If internal contact M8 is ON then
If Timer 0 is not timed out enable Timer 0 for 5 units
If Time 0 is done then
Add a constant of 1 to do, store the result in d0
Compare the contents of d0 to a constant of 16. If
it is Greater Than 16 then turn on M0 (M1 and M2 would hold the 'Equal To' and 'Less Than' indicators)
MOV d0 (not sure what K2 does, possibly number of
bits) to output bit Y0 (and following)
If internal bit M1 is ON (I think this would make
more sense if it was M0) then MOV zero to register d0

I think this is just turning on the 4 output lights in a binary fashion.

 
Last edited:
Using info from an FX0 Manual - all I had
0 - If input X0 is on MOV a constant of zero into data register d0
6 - If internal contact M8 is ON then
If Timer 0 is not timed out enable Timer 0 for 5 units
If Time 0 is done then
Add a constant of 1 to do, store the result in d0
Compare the contents of d0 to a constant of 16. If
it is Greater Than 16 then turn on M0 (M1 and M2 would hold
the 'Equal To' and 'Less Than' indicators)
MOV d0 (not sure what K2 does, possibly number of
bits) to output bit Y0 (and following)
If internal bit M1 is ON (I think this would make
more sense if it was M0) then MOV zero to register d0

I think this is just turning on the 4 output lights in a binary fashion.

This helped me understand it a little better. Thanks.

From what the PLC actually does is to the lights looks like it's counting.
Counts from Blue to Red then back from red to blue then it resets and counts blue to red again.

OK so..
ADD k1 d0 d0 = 1 + 0 + 0 so (blue light is on then turns off)
repeats with saved number?
ADD k1 d0 d0 = 1 + 1 + 0 so (blue light comes on then off then green light comes on and blue light comes on again (both blue and green are on then they turn off)
ADD k1 d0 d0 = 1 + 2 + 0 so (blue comes on green comes on yellow comes on.... etc im lost lmao
 
Last edited:
Found this one

not sure what K2 does, possibly number of bits

It's the number of 4 bit nibbles to move (though since there are only 4 lights K1 would have been fine)

And ignore this

I think this would make more sense if it was M0

As I pointed out this is holding the 'Equal To' result of the CoMPare instruction.

And since the timebase of T0 is 100 ms then K5 would be 1/2 second.
 
Last edited:
Been a long time since I've used Mitsubishi, But IIRC:

[MOV K0 D0]: Move Decimal Constant(K) value of 0 to Data Memory(D) 0
[T0 K5]
: Timer(T) 0 with a constant Preset vaule of 5. I think these are 100ms resolution.

[ADD k1 D0 D0]: Add 1 to d0 and put it in D0. Basically, it just increments D0

[CMP k16 d0 m0]: Compare D0 to a Constant of 16. Status flags start at M0. The order of the first two operators is counter-intuitive, IMO. For the Flags:
If D0>16, M0 it true.
If D0=16, M1 is true.
If D0<16, M2 is true.

[MOV d0 k2y000]: Basically, it moves D0 to some physical outputs, but I really don't know how it's calculated...

|M1|----------------[MOV k0 d0 ]): Remember the compare from before? M1 is the Equals flag. So if D0=16, then move a zero back into D0.
 
Been a long time since I've used Mitsubishi, But IIRC:

[MOV K0 D0]: Move Decimal Constant(K) value of 0 to Data Memory(D) 0
[T0 K5]
: Timer(T) 0 with a constant Preset vaule of 5. I think these are 100ms resolution.

[ADD k1 D0 D0]: Add 1 to d0 and put it in D0. Basically, it just increments D0

[CMP k16 d0 m0]: Compare D0 to a Constant of 16. Status flags start at M0. The order of the first two operators is counter-intuitive, IMO. For the Flags:
If D0>16, M0 it true.
If D0=16, M1 is true.
If D0<16, M2 is true.

[MOV d0 k2y000]: Basically, it moves D0 to some physical outputs, but I really don't know how it's calculated...

|M1|----------------[MOV k0 d0 ]): Remember the compare from before? M1 is the Equals flag. So if D0=16, then move a zero back into D0.


Changed [MOV d0 k2y000] to [MOV d0 k1y000] and it works the same as bernie stated it would. I don't understand how [MOV d0 k1y000] actually turns on the output lights. wouldn't it only turn on Y0 (blue light)?
 
Since d0 is a - I think - 16 bit word this is saying (now that you changed it to 'k1') MOV the bottom 4 bits (1 nibble) to the outputs STARTING AT Y0. So it should be moving the bit pattern 0 - 15 to the 4 lights. One half second for each set.
 

Similar Topics

Hello, I have a question on my HNC electrical and electronic engineering assesignment which has me stumped after hours of looking through PDF...
Replies
2
Views
2,568
Hey! I have a transistor output FX1 14MT and I can't figure out how to wire it. (One of these...
Replies
2
Views
1,844
Dear all, hi to all PLC experts! I am trying to connect to proface HMI with my mitsubishi FX1s PLC but always failed to connect. the HMI manual...
Replies
2
Views
3,119
Dear all, hi to all PLC experts! I am trying to connect to proface HMI with my mitsubishi FX1s PLC but always failed to connect. the HMI manual...
Replies
0
Views
3,312
Hello! Can someone help me to translate this two networks to Ladder: Network 8: LDP X004 OR M6 ANI...
Replies
9
Views
3,260
Back
Top Bottom