Proficy: Machine Edition / Memory Areas

kdcui

Lifetime Supporting Member
Join Date
Dec 2007
Location
USA
Posts
386
I am working with Proficy: ME with a PAC RX3i controller. Normally I would map variables to a memory space on the CPU. However this controller supports "Symbolic" memory that variables are automatically assigned to if one does not specify a specific address for the data.

An excerpt from the help file:
A symbolic variable is a variable that you do not map to the PACSystems CPU memory or PACSystems Hardware Configuration. Machine Edition automatically handles all the mapping for a symbolic variable in a special portion of PACSystems user space memory outside %R, %AI, %AQ, %P, %L, %W, %I, %Q, %M, %T, %S, and %G memory. In fact, if you map a symbolic variable to one of those memory areas, you destroy its symbolic nature and it becomes a CPU-mapped variable.

Not sure when I should use this managed, symbolic variable space as opposed to regular CPU memory. Does it even matter? Once I downoad to the controller it all takes up the same amount of memory doesn't it?
 
Typically, you will use CPU-mapped variables in your programs and give the variable some meaningful name to enhance readability of the program. For instance, something like Alarm_Reset could be mapped to %M00001. Then, you can configure Proficy to display the variable name, address or both.

Where I have found symbolic variables to be quite useful is when declaring variables for timers and counters. Timers and counters use three consecutive words of memory for the Current Value, Preset Value and a control word. If you use CPU-mapped variables, you have to ensure that you do not "step on" any of these words with other CPU-mapped variables or instructions that will overwrite the timer/counter data words. Symbolic variables are perfect for this. In fact, when I place a counter or timer instruction in a program, I will just type in the name of the symbolic variable that I want to use and Proficy will create the variable. The thing is that when Proficy creates the variable, it will not set the variable as retentive. When you verify the program, Proficy will display a message that it is setting all symbolic variables to retentive. If you re-verify, the message does not come back unless you have defined new symbolic variables.

Regards,
Ken
 
Last edited:
For the most part, it doesn't really matter whether you use symbolic variables or traditionally addressed variables. Ken has identified one example where symbolic addresses can prevent a frequently-encountered problem.

Use CPU-mapped variables for things that need to appear on an HMI panel, especially if the HMI uses serial communications. The serial port drivers in your HMI will be looking for traditional addresses. Furthermore, the serial port drivers are at their most efficient when you use contiguous addresses for anything displayed on the HMI. That's because the drivers read data by sending a command that says "Send me X bytes of data from memory type Y starting at address Z".
 

Similar Topics

I'm getting frustrated creating arrays of variables in Machine edition. I need to make 2 variable arrays that are 102x2 in size, with varying...
Replies
3
Views
89
Hi, I am still a beginner with PLCs and I have never worked with GE PLCs before so looking for some help. I am using GE Proficy Machine Edition...
Replies
11
Views
1,358
hey i am new to PME proficy-machine-edition-9-70-emerson, can anyone please help me in knowing how to install a crack version. usually i used to...
Replies
4
Views
1,372
I am trying to download version 9.8 of G.E.'s proficy machine edition, does anyone have a link to a download site?
Replies
9
Views
4,996
Need to learn a few more tricks in Proficy Machine Edition. I don't use it often, but one of the first things I usually do when getting into a new...
Replies
3
Views
1,004
Back
Top Bottom