Get used addresses on Schneider Unity v10

atomtm

Member
Join Date
Jun 2014
Location
Germany
Posts
130
Hello everyone!

On a project using the P572634M CPU , what is the best/safest way to determine what Words(%MW) have been used in Unity v10 ?
Working with I/O objects of the CPU,shows usages but only if the word is used on its own. If the word is contained in an array, it is not reflected there.


For example if I am looking for usages of %MW100 , if %MW100 is somewhere used on the application as is ,it will be shown on the I/O objects tab of the CPU, but if the application uses somewhere an array that contains the %MW100 like for example %MW80:40, then %MW100 will not be shown on the I/O objects.

The apparent option is through Data Search, but would like to know if this the best way.

Thank you in advance

Screenshot_20200420_220508.png
 
Click the "PLC" menu at the top and then click "State Ram Viewer" Then you can select %M, %I, %MW, or %IW and it will show you what is being used.
 
Hello everyone!

On a project using the P572634M CPU , what is the best/safest way to determine what Words(%MW) have been used in Unity v10 ?
Working with I/O objects of the CPU,shows usages but only if the word is used on its own. If the word is contained in an array, it is not reflected there.


For example if I am looking for usages of %MW100 , if %MW100 is somewhere used on the application as is ,it will be shown on the I/O objects tab of the CPU, but if the application uses somewhere an array that contains the %MW100 like for example %MW80:40, then %MW100 will not be shown on the I/O objects.

The apparent option is through Data Search, but would like to know if this the best way.

Thank you in advance


Are variables used on program by symbol name or direct address?
You can select used colum to shown on elementary variables for variables, then sort by address and select initialize search


Thinking also that if you make copy of original project, unselect arrays settings from project settings and try build, then you see errors for all indirect addressing on program.
Then make symbols for those indirect referencing / replace direct addressing on code and eventually you have only symboms on program and them are showed on used variables.
 
Mostly direct addresses are used! Very few symbols.
As for the workaround you suggest, I think this is a very good idea and definitely am going to try out.
 
By safe I mean, if this is going to show me every usage of an address on the code.

So for example if search/find for %MW100, it seems that it shows me every occurrence of this address on the code. No matter if this is used as is or is inside an array like my example in my original post!
p.s. thank you all for your patience with me :)
 
Yes, if you search with %M and %MW address, it should show all references (if indirect and overlapping selected to search)


But if you have variable named "test" with address %MW100
And on program side variable is used directly by %MW100 address and not by symbol name, then your varables editor shows that symbol name is used 0 times.

Unity is meaned to code by symbolic names, now when it is coded by addresses only, there is lot of work to do to symbolic as it should have done for start. (You need to search all addresses one by one and replace by symbolic names)


This is old PL7 conversion to Unity and you have to do some modification now?
 
Last edited:
I know what you re saying. Unfortunately the project is not coded by me , and I want to make some modifications, but be sure that I am not using addresses for my symbols that are already taken .
 
OK, now I understand.
You need to search every address which you mean to use.
Also remember to search %MF and %MD addresses as they overlap. (if you search overlap also, they should find without need to search every %MW, %MF and %MD combinations)


But if you look %MW100, %MF100, %MF101, %MD100 and %MD101 and search don't find anything, it should be pretty safe to use %MW100.


Unless there is some indirect addressing with %MWbase and changing indirect number.



If there is

%MW100:10 -> search %MW100..%MW109 find its (array of variables )

%MW100[10] = %MW110 finds this (indirect addressing to %MW110
%MW100[%MW200] = indirect addressing base %MW100 and indirect number from %MW200 (%MW100 and %MW200 finds this, but %MW100 +/- x number don't find anything of used address range)
 

Similar Topics

I am using Proficy Machine Edition 6.5 for a PLC. In a ladder logic program, I need to assign a register to a timer value. But, how do I find...
Replies
4
Views
1,568
Hi people, I have been using RSlGX5K for about since version 8, but I have not really run into this before... I have to make some I/O...
Replies
6
Views
1,443
My question: How can I see a list of PLC addresses (such as %V1012) that are available but un-used in the processor? Background: My client has...
Replies
2
Views
2,142
hi all i am new here i have a mitsubishi smart touch hmi i.e ms-60t-pe but i cannot find a software to edit and download a program in it any help...
Replies
3
Views
163
FactoryTalk View ME running on PanelView Plus 7, connected to Compact GuardLogix 5380 PLC Customer is asking for a physical push button to be...
Replies
6
Views
182
Back
Top Bottom