Jump to content
OMRON Forums

PMAC Dual Core 465, FW and bgcplc's


Recommended Posts

I recently tried to update a Power PMAC 465 UMAC processor from FW to the latest FW version


I used IDE V3.0.1.0 for the firmware upgrade and subsequent project download.


I found that background C plcs that ran fine in no longer appear to be running after upgrading the FW.


I can start and stop the PLC's from the task manager and/or using the UserAlgo terminal command. Even though the task manager shows they are running there is no indication that they are actually doing anything.


For example, one C plc (see code below) does nothing more than invoke the fsave() command when a global variable is set, then reset the global, I also had it increment a p-variable just so I could monitor whether it was running or not.


The other two bgcplc's that do more complicated stuff also don't appear to be running, even though task manager insists they are.


All this worked fine prior to the FW upgrade.


Any idea what could've gotten broken???


No code changes, just build and download after the firmware update.


**** update ****

I just noticed that pp_proj.h is now completely empty!!! Normally it defines global variables and pointers


pp_proj.h gets built when selecting "map PMAC variables" but gets cleared after the project download


The bg plc's can't read/write P variables, but any expressions using pointers to share user mem work fine.

For example:

pshm->P[x]=pshm->P[x]+1; does not work

*pntrShm = *pntrShm + 1; works as expected.




Code for test bgcplc

#include "../../Include/pp_proj.h"
#define _PPScriptMode_	// uncomment for Pmac Script type access
//#define _EnumMode_			// uncomment for Pmac enum data type checking on Set & Get global functions		

fast save function
* set bDoFastSave from script environment, cPlc runs Fastsave function
* set variables to be saved in "pp_custom_save.tpl"
* FastSave will save any parameters listed in the pp_custom_save to non-volatile memory

#define P7 pshm->P[7]

void user_plcc()

if(pshm->P[bDoFastSave] == 1){
	pshm->P[bDoFastSave] = 0;

if (P7 > 100000){
	P7 = 0;
P7 = P7+1;

Link to comment
Share on other sites

  • Replies 1
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

I was able to re-create this problem; seems to be related to the firmware update process.


After updating firmware to V2.xxx, background C plc's did not seem capable of reading or writing global P variables. Even after resetting ($$$) the motion system.


It was not until I rebooted the Linux OS, followed by a build and download, that I was able to get the C plcs working properly.


I had this problem while upgrading to V2.1.1.3, and to


PMAC's in question were dual core (465) UMAC processors. Have not tried this with a single core processor.

Link to comment
Share on other sites

This topic is now closed to further replies.

  • Create New...