Applies To:
  • CitectSCADA 3.00

Summary:
If you call the function FmtOpen with mode 1 many times you may cause a GPF. When you use mode 1 FrmOpen will create a new format. If you keep creating new formats and reach over 1000 formats Citect may cause a GPF. You may use this function in association of the AlarmSetInfo() mode 5 to set the format of alarms.

Display all alarms with a new format

hFmt=FmtOpen("MyFormat","{Name}{Desc,20}",0);
AlarmSetInfo(20, 5, hFmt);

 

Solution:
You should modify your cicode so that you only creat the format once, you can do this on startup. Then use mode 0 to open the format when needed. For example:

// On startup create the format
hFmt = FmtOpen("MyFmt", "{TAG,8}{NAME,32}{DESC,32}", 1);

// when you need the format just open it.
FmtOpen("MyFmt", "", 0);

In version 3.2 and later Citect will stop creating new format instances after you have reached 512. The hardware alarm "Buffer has been overrun" will be generated and the mode will be switched to 0. This should make your cicode operate correctly. However you should change your cicode so that you create the format on startup and then only open it when needed.

 

Keywords:
 

Attachments