Jump to content
OMRON Forums

Recommended Posts

Posted

Lets say I have the following ptr definition:

 

ptr valve1->PowerBrick[0].GpioData[0].16.1;

 

If I want to manipulate that IO port in the NC interface I need to figure out which M variable the pointer is stored in and then create a Device Member with that M variable as the getter and setter.

 

Now if I build the code on slightly different hardware or with a slightly different configuration then that M variable number will change. Is there any way for me to select the number that the pointer will be stored under, so I can make sure my code works in different configurations?

 

If not, is there any way for me to manually define a P variable that points to the pointer? (i.e. P8001 -> addressOf(valve1))

 

NOTE: I know it is possible for me to define the getter/setter in the devices.xml and then make a custom xml file for every machine, I am trying to avoid having to do that.

  • Replies 2
  • Created
  • Last Reply

Top Posters In This Topic

Posted

You can define the M-variables directly instead of making them user-named pointers..

 

M1000->PowerBrick[0].GpioData[0].16.1;

 

Keep in mind the way your project maps and defines the M-variables. By default, this mapping starts at M8192, so any M-variable below that can be used without it being overwritten once the ptr's are mapped. You can check this in the Properties of your project in the Solution Explorer.

Posted

I would use a group of P-Variables (verify they are unused in any other portion of the project) and use those in the NC interface as control bits. Then I would create a new control PLC which turns ON/OFF the actual hardware outputs based on those bits.

 

This way you can have a single location where the action (On/Off) happens. Then you can also use M-Codes (not to be confused with m-variables) to also write to those same control p-variables to control the I/O from your G-code program.

 

This way you have one location for logic which actually controls the I/O and you can set commands from wherever to control those outputs (HMI button, M-Code, other logic, etc.). Be sure to use #defines with actual P-variables, and not the auto assign 'Global' method to insure your HMI and pmac script code are locked together.

Guest
This topic is now closed to further replies.

×
×
  • Create New...