F4009 error after replacing pgdynobj.dbf

I was having a problem with not being able to open a page in the graphics editor, despite being able to navigate to it via runtime. When I searched for a solution I found the one stated here:

https://www.schneider-electric.co.in/en/faqs/FA275537/

I went on to copy and paste both the pgdynobj.dbf and pgtouch.dbf files from the VijeoCitect7.50\User\System file into my project file, as described in the above link. When I went to compile my project, it gave me a F4009 fatal error with Context: C:\ProgramData\Schneider Electric\Vijeo Citect 7.50\User\Taylor_HMI\PGDYNOBJ.DBF

Any solutions for this? Have I done a step wrong?

  • Did you do an update pages after you replaced the pgtouch dbf? Any time you replace any of the pg*.dbf files you always need to update the pages within that project. These dbfs are only written to when pages are saved (which is what update pages does)

  • Updating the pages didn’t resave everything, but you did set me on the right path. I opened and saved each page in the graphics builder and that fixed the problem. Thanks!
  • If you run into this again, make sure you go into the Graphics Builder | Tools menu | Options and un-select Fast Update Pages. A slow (thorough) update should be the same as opening and resaving each page, but is much easier if you have lots of pages.

    Note that you may not have needed to replace the entire DBF file. Usually you'll find there are many records with the value 0 in the AN column. That is invalid and is ignored by the graphics builder and runtime, but it causes slowdowns and sometimes failures opening and saving pages in the Graphics Builder. Just delete any rows that have AN 0 and you shouldn't have any problems (no need to update pages or re-save).

    The AN 0 records seem to be created as a side-effect of certain errors in the graphics objects on your pages. You probably already fixed the errors to get your project to compile so hopefully the AN 0 records won't come back. The developers fixed most of the causes of this issue in v7 of Citect but it still happens occasionally.
  • Two more things you could do:
    1) Perform a File / Pack from the Citect Project Editor, so that all the records in pg*.dbf that are marked for deletion, really get deleted from the file.
    2) Scan the pg*.dbf files for AN numbers that become too high. In Citect versions up to v2015 there is a bug that limits the storage of AN numbers in most of these dbfs to 4 characters (digits). If you see AN numbers higher than, let's say 9900, there is a good chance that your project will behave very unpredictable in runtime.