Mitsubishi Q plc

Never quite understood it myself or even wanted to as I never print the usage reference as it limits the number of contacts on a page but I believe it is something to do with in/out instructions so A/S is input & B/D is output.
This is a little hard to explain but an instruction [MOV D1 D3] if used in other parts of the program will reference D1 as an A/S & D3 as B/D so it is cross references of what addresses the variables are used throughout the program. So if D3 Is used for compare or transfer on different rungs then B/D D3 At address 24 is where it is transferred to (effective out instruction) & A/S D3 at address 45 is a compare or transfer from, however, this only applies to registers all bits are A/S even when they are contact or out instructions. see pdf
To be honest not particularly useful as doing a cross ref printout is just as good and reduces cross page broken rungs if lots of contacts in series.
 
Thaks a lot for your reply... Sir one more thing at the time of downloading a program to q cpu (that i already have backed up) do i need to download device memory with program and parameters? What if i do and don't?
 
alihasan_736 and parky:

Good day.

As Parky correctly points out what you are showing is a cross-reference when printing the ladder diagram, indicating the destination address.

In Japanese the word "a-setten" (A接点) means a "normally open" contact in Siemens terminology, or XIO (examine if open in Rockwell terminology). The word "b-setten" (B接点) means the opposite, normally closed or examine if closed. Totally arbitrary way of assigning a name for such a basic notation for a PLC, but there you have it.

S indicates that it is used as a source and D is used as a destination.
 
You only need to download the parameters if it is a new CPU or I/O cards, never download the parameters if you have not uploaded them first if the CPU is already configured. Examples are: New complete PLC: once all cards are inserted and powered up in most cases you can read the parameters from the PLC into a new project and it will contain things like default settings, and I/O card locations & type, you can modify these for example alter the Latch memory areas (retentive memories) i.e. increase or decrease the range. some cards & CPU can be configured in the parameters and some cards can be configured using configurator plug ins. So, if you have an existing PLC with the program in and the source file it would pay to verify the parameters are the same, you can upload the states of the memory i.e. D area and capture the current values (very useful if retentive memory is used to store values that are stored in retentive memory). however, if the variables change when the program is running, downloading the last values could upset the control.
I suggest if you want to upload to the application the state of the memory you do it when the process is not running and at it's normal stopped state, by that I mean the PLC is in run mode but the machine is idle.
Just one other thing, I noticed that the little bit of program you posted is using the index (pointer) registers "Z", just in case you are not sure what these are here is a quick guide.
The Z registers Z0-xx are used for indirect addressing so you set the Z register to a value and use that to point to an offset of a bit or word.
so some code would be:
Move k10 Z0 // Set the pointer register to a value of 10
Move k23 D0Z0 // move a value of 23 to a D register with an offset of 10 so D0 + 10 is D10
Move K10 Z0
Move K23 D5Z0 will move 23 to D5 + offset of 10 i.e. D15.
Often used in loops so initially you point to the first word do the logic then increment or add a value to the Z register then do the logic.
Example:
Move K 10 Z0 //set the initial pointer
FOR K 10 // For next loop (10 iterations)
Move D0Z0 D30Z0 move the value in D10 + Z pointer to D30 + pointer
INC Z0 // increment the pointer
NEXT //jump back
so this will copy D10 to D19 to D30 to D39
 
Sir.... Thanks a lot for your positive response... It really cleared my concept....one more thing if i make changes in my code... I just need to download that program sub routine and after download restart cpu?
 
That depends on a number of factors, first the project you have on disk must match the PLC code, You can do on-line edits (not really on-line) so you can modify code within limits of about 500 bytes. However, if you use GXWorks or any of the IEC compatible systems then there are problems with function blocks as any changes to the interface & code means the program may have to shift causing more than the max limit. so make your changes in small chunks if possible that way there is no need to stop the PLC, if the change is too large then when you download it will ask you to put the plc in stop, download the code and then ask you to confirm putting the PLC into run.
On-line change is useful for small changes. It looks like from the code that you are using GXDeveloper, GXWorks has a different structure in reality it still produces one long ladder but for function blocks it puts an FEND instruction in the main cycle and uses jumps passed this instruction to pointers for the functions and then does a return back to the main ladder. If you do not download the symbolic information to the plc you cannot upload it back to the PLC as it cannot re-construct the FBD/LAD, you could upload it to GXDeveloper as a ladder but will have jumps all over the place.
 
Thanks sir for your kind reply.... One more thing
Sir, Q03UDVCPU cpu is running a system, i have Q06UDEHCPU in spare, what if i need to replace q03UDVCPU with q06UDEHCPU ?
Is is possible? What changes i need to make for that parameters ? Cpu type?
 
I have looked at the manual and tere seems to be little difference the 06 model has a larger memory so no problem there.
Here is the manual link:
https://www.allied-automation.com/w...al-Hardware-Design-Maintenance-Inspection.pdf
To convert the program take a copy of the original and open it up.
Go to FILE\ Change plc type and select the new CPU type.
It will convert the project, If there are errors it will tell you.
I have just done a trial by converting a Q03 UDV to the Q06UDEH and it converted without a problem, however, although this was quite a large program and no errors, it must be assumed that the instruction set is the same, I do not believe there are any differences in the instruction set so there should not be any problems.
I know there are differences in converting the old A series to Q and any instructions that are not supported seem to use bits or words in the high end of the special memories, one is SM1255, No idea what this did originally as I did not convert it, however, the converted code produced a rung where SM1255 was used as an output coil many times, it only produced a warning and who ever did the conversion either did not notice the difference or what ever the function of the original code was not important or they re-wrote it but forgot to remove the old code.
As a matter of interest, the print of code you show in post #1 looks like it was done in GX Developer, There is a way to open it up as a project in GXWorks as a structured project.
The original code will still be in ladder, however, it allows you to write other blocks & functions in LAD/FBD, it's a bit tricky to convert and get it right but I have done it a couple of times.
This is not recommended for a beginner though.
 
Last edited:
----[BMOVP ZR500 ZR534 k17000] ZR is used for addressing over the range of 32767 points of file registers. There are more than 32767 file registers, with this notation you can address them. So for the range 0..32767 the notation R and ZR is the same address, the "P" on the BMOV does it on a ones hot i.e. pulse so only does it once when the logic is true not every scan and only re-triggers when the logic goes from false to true .
So in effect this transfers R500 to R534 and 17,000 of them in effect this is like shifting the data starting at R500 by 34 so the value in R500 is moved to R534 R501 is moved to R535 and so on, not sure why they are doing this but it could be some type of logging and shifting it 34 at a time. Do not assume this is the same as using the "Z" pointer registers the code would be different i.e. BMOVP R500Z0 R534Z0 would move R500 + the offset of Z so if Z was set to 20 then it would move R520. if the Z in in front of the register it moves that register but not limited to the 32767 limit.

----[FMOVP k0 ZR534 K17000 ] This fills all registers with 0 from R534 for 17000 registers so from R534 to R17534. i.e. resets all these registers to 0.
 
Thanks a lot sir.. Sorry i couldn't respond early...
Sir what does the Mode led denotes on qcpu i studied it has A mode and Q mode .whta these modes are and how they work?
 
Not researched it but I believe it means the "Q" PLC is operating in compatible mode for the older "A" series PLC's.
The A series were made obsolete some years ago, but although many instructions are the same for both A & Q I think they decided to make the Q work in compatible mode so that an older A series could be upgraded to a Q without many modifications to the code. When you select the processor you can select QCPU(QMode) or QCPU(AMode).
 
Last edited:

Similar Topics

I have Toyopuc PLC PC10G-CPU and some communication modules of it. With this modules I'm able to connect with Ethernet, Ethernet/IP, FLnet, FRMT...
Replies
0
Views
54
Hi all, anyone does have experience in Gx Works 2? Currently I having an issue which is when certain device added from MELSOFT Navigator and...
Replies
1
Views
92
Hi All, I am after some assistance setting up kepware to take tag data from an FX5U PLC, I have tried many many port numbers and still cant get a...
Replies
2
Views
118
Dear All, I have an Mitsubishi PLC (FX1N-40MR) and PLC backup was taken and i compiled the program and its showing 0 error. then I tried to...
Replies
8
Views
228
Currently,we are facing the communication go through with 422 tx+ and tx-. Mitsubishi fx5u series is used and using command rs2. But the package...
Replies
0
Views
91
Back
Top Bottom