Addressing issue on Mitsubishi FX2N

sparko

Member
Join Date
Mar 2007
Location
CHESHIRE
Posts
27
Hi it's my first post so go easy on me guys, my experience of PLCs has mainly been using for fault finding and a few minor mods up until now.

My manager has given me a project. We have what is called a spiral freezer which is basically a conveyor belt in a freezer that takes around 2 to 3 hours(depending upon speed setting) from start to finish.This spiral is used to freeze down meals ready for packing.
We have lots of problems with jam ups that loose us a lot of money both in product and time.

What he wants me to do is devise a system that monitors meals going into the spiral and check that they should come out when they are supposed to.

I have built a prototype using an FX2N-32MR-ES/UL(Our supplier gave us this model cheap as it's ex demo if you're wondering why I need so many IOs)

I decided the way to proceed was using a bitshift to divide the residence time into minute segments.I used relays M000-M180 ie if the residence time is 120 minutes when the trigger bit goes high(in this case M120) then product should be coming out.

This all works fine and is quite effective.

The problem we have is that when the operator changes the speed setting we have to come along with the laptop and change the trigger bit manually. I want to use a relatively cheap HMI(I am looking at the E150) so that the operator can do this themselves.

The problem I am having is how to convert the value from the HMI to the trigger bit. ie user inputs 60 into a data register how do I get it to look at M60.

Thanks

Mike
 
Indexed addressing is your solution.
Hopefully you know what it is, otherwise this is your homework.
However, since this PLC does not support indexed addressing for bits, you must use words.
After executing MOV K1M0Z K1M200 the M200 bit state becomes same as M0Z (if such address was legal in the PLC).
M200 is just for example, you may use any other address, but be aware that four consecutive bits will be affected by the instruction.
 
Looks like I have a bit of homework to do then as this is beyond what I know at present.Luckily I have the manuals so I will swat up tomorrow night in work.
 
First off thanks to you both(I was being rushed by my better half when I replied to Sergei so I apologise for not thanking you then)

We have a lot of the E series HMIs on site and our supplier gives us a good price which as always seems to rule the day with my boss.

I will be back to work tonight so expect a few more questions from a baffled spark with a headache :)
 
If my memory serves me right, mov K1M0Z M200 moves 4 bits so provided you ingnore M201 to 203 & don't use them this should work.

The K1 means move a nibble, K2 means move a byte & so on
the code should be
mov D200 Z ** move the value in D200(HMI word) to the Z register**
Mov K1M0Z M200 **move the bits M0 + z (M60 for a value of 60 in D200 to M200 so M60 value is copied to M200 so by using M200 in your program whatever value 1-180 in the HMI register copies the value of M0Z into M200, a value of 120 will copy the value (0/1) of M120 to M200.
 
parky said:
If my memory serves me right, mov K1M0Z M200 moves 4 bits so provided you ingnore M201 to 203 & don't use them this should work.

The K1 means move a nibble, K2 means move a byte & so on
the code should be
mov D200 Z ** move the value in D200(HMI word) to the Z register**
Mov K1M0Z M200 **move the bits M0 + z (M60 for a value of 60 in D200 to M200 so M60 value is copied to M200 so by using M200 in your program whatever value 1-180 in the HMI register copies the value of M0Z into M200, a value of 120 will copy the value (0/1) of M120 to M200.

Thanks for explaining that, with your help and the manual I think I understand it:)

I have one more question if I were for example to put
MOV D200 Z0 (ASSUMING D200 IS 60)

then I simply put an NO contact referenced as M0Z0 would that cause the contact to make when M60 goes high.It doesn't matter if it affects the next 3 bits(in this case M61-63) as they have no influence on the program.

This is what I mean.

|-----------------------[MOV D200 Z0]------|
|
| M0Z0
|--| |------------------------------(Y0)-----|
|

Thanks again for the advice I really appreciate it

Mike
 
I have found out that you can't address like I put above so will stick to how you showed me.

I have just one more question

We have a few of these spiral freezers and my boss is keen to implement this system on them.
However one of these spirals has 2 lines feeding it so I will have to use 2 separate bitshifts(one for each line)

If I used relays M300 to M480 and wanted to have say M490 as the bit to copy to would this be the correct way to address it ?
Mov K1M300Z M490

thanks again Mike
 
Yes that is correct, remember that it copies 4 bits so any bit pattern in M380 to 383 will appear in M390 to M393
 
Cheers mate, I have found this project quite enjoyable compared to the more mundane aspects of work. I have been on a couple of mitsubishi courses but there is nothing like putting the theory into practice to give you a better understanding.

Thanks again
 

Similar Topics

Hey, I'm having trouble with moving data within a DB and I think the problem is rooted in my lack of understanding of programming 'pointers' so...
Replies
27
Views
6,093
Excuse my ignorance but I am having a hard time figuring out where my real IO points are to address tags. Please refer to attachments for screen...
Replies
5
Views
2,145
I'm trying to set up a project in Cscape for a new install. Our config will be an RCC972 with 2 SmartBlock I/O's - HE579DAC207 and HE579MIX105...
Replies
2
Views
1,572
Hello All, I was installing a 1785-ENET card on an existing 5/60B processor. Before installing i moved an 6 point AC input card from slot 0 (next...
Replies
7
Views
2,993
Hello all, I am currently working with a Control Logix 1756-L72. Using studio 5000 v. 23. I also have a 1756-ENBT Ethernet module plugged into an...
Replies
6
Views
2,113
Back
Top Bottom