Need for speed: Run multiple instances of equipment generator (EquipGen.exe) in parallel.

Is it possible to run multiple instances of the equipment generator (EquipGen.exe) on one Computer on different core’s?
This to speed up the generation for example if an Equipment type is changed.

At a Customer we have a project where the equipment editor and generation is used (not my choice). This to create the Variable.dbf, trend.dbf and digalm.dbf. At this moment an “Update equipment” will cost hours, it does not matter if incremental update equipment is on or off, it is too long!

In the equipment there is some sort of logic, it is possible to split them over several projects.

I’m able to start by batch scrips a instance of the equipment editor to generate the DBF files on a specific project. See command below, REV_VBL is one of the project names. Running multiple instance at the same time by manually starting different batch file with different project name, fails.

Command:
"C:\Program Files (x86)\AVEVA Plant SCADA\Bin\EquipGen.exe" /I"C:\ProgramData\AVEVA Plant SCADA 2023\Config\citect.ini" "REV_VBL" "C:\ProgramData\AVEVA Plant SCADA 2023\User\REV_VBL"

  • Hi  ,

    I feel your pain. I also observed similar performance issues when engineering projects using Equipment Editor.

    There are some underlying technologies which are hampering its performance (e.g. the dbase driver) and also the number of sweeps that the Equipment Editor needs to do (read, compare, update delta).

    This is something the R&D team is aware of and is working towards addressing. I hope we will be able to provide an update to this soon. If you can, also please post something on the Aha Ideas Forum for Citect: https://citectscada.ideas.aha.io/

    Ok, so if I was in your shoes, this is what I would do:

    1. Separate Equipment and tags into their own Include Project (safely away from any manually entered or non-equipment generated tags).

    2. Develop a script or batch file that replaces the variable, trend, and alarm dbf files (and any other dbf that gets populated by your equipment template instances)

    3. Run the update of Equipment.

    I hope this suggestion helps.

    Kind regards

    Olivier

  • Hi  ,
    Thanks for the reply,

    The idea is submitted and more idea’s,

    The SCADA system exist of several projects, it is a library for tunnels. The project containing the tags is generated for 100%. Manual tags are not allowed.
    A batch file we have already in place, it replace files by a copy from the Include project.

     

    Kind regards,
    Thijs-Jan

  • Hi Thijs-Jan,

    If you have the time (budget) and skills you could consider building your own equipment generator. This generator can and will be much faster, because it will be tailored to your project. In your case the generator does not need to check for manual changes made in the dbf as no manual changes are allowed anyway.

    This makes it possible for the tool to just delete the current dbf and build a new one from scratch (byte by byte), eliminating the ODBC interface that EquipGen.exe uses to query the dbf.

    We use a custom generator that does exactly that, and in our case it reduces the generation time from over 1 hour to just 5 seconds. And in addition to the standard tooling, it also is capable of generating Local Variables and performs a re-index on the project afterwards.

  • Hi Patrick,

    I know the trick and used it a lot on former projects.Blush,

    Customers most of the time don’t want to spent that budget. They want a commercial off the shelf product that performs!. The current customer is one that. So I’m looking for a work around/tweak within the boundary’s

    Best regards,

    Thijs-Jan

  • I understand and I agree.

    Performance of the standard tooling is dreadful right now, so every engineer doing large projects is looking for alternatives.

    I hope there will be an off the shelf solution soon, because this WILL impact system choice in favor of other brands.

  •  Please raise the concern via your local distributor! Thanks

  •   
    Please make sure to keep the conversation technical 
    Commercial discussion needs to go via our channel: distributor!
    Thanks

  • Please note there were some improvements in 2020R2 which you might not have included in your projects yet (they have to be implemented on the equipment template xml files) and could be worth a try.

    Typically the xml version for older templates is (based on the Meter_MEO from the ExampleSA):
    <?xml version="1.0" encoding="UTF-8"?>
    for newer versions you will see the 2nd line:
    <?xml version="1.0" encoding="utf-8"?>
    <template version="2.0" desc="">

    The newer template for Meter_MEO has:
    <input name="equipment" file="equip.dbf" desc="Equipment Database">
    <field name="NAME" />
    <field name="CLUSTER" />
    <field name="TYPE" load="true">{type.name}</field>

    the last line makes the difference and was not possible in older versions (ie dynamic referring to the equip type, hard coded was possible), but it makes the generations quite a bit more effective (especially if you have loads of equipment with a fair amount of different types).

  • Hi Erik, thanks for the tips.

    I tried that but now equipgen.exe fail and I can't see anymore my types in EquipmentEditor. My xml files looks like that (I added the line 2 and updated the line 13)

    <?xml version="1.0" encoding="utf-8"?>
    <template version="2.0" desc="">
    <!-- E_ANAVALVE - Vanne analogique -->
    	<template desc="Vanne analogique">
    	<param name="type">
    		<string name="name">E_ANAVALVE</string>
    		<string name="parameter-definitions">
    		</string>
    	</param>
    	<input name="equipment" file="equip.dbf" desc="Equipment Database">
    		<field name="NAME"/>
    		<field name="CLUSTER"/>
    		<field name="TYPE" load="true">{type.name}</field>
    		<field name="COMMENT"/>
    		<field name="CUSTOM1"/>
    		<field name="CUSTOM2"/>
    		<field name="CUSTOM3"/>
    		<field name="CUSTOM4"/>
    		<field name="CUSTOM5"/>
    		<field name="CUSTOM6"/>
    		<field name="CUSTOM7"/>
    		<field name="CUSTOM8"/>
    		<field name="IODEVICE"/>
    		<field name="PAGE"/>
    		<field name="TAGPREFIX"/>
    		<field name="PARAM"/>
    		<array name="param_list">{ToProperty('{param}','=',';')}</array>
    	</input>

    Is this improvement exist in 2020R2? The Meter_MEO in my ExempleSA don't have this modification.

    Thank you,