Control Architect supports the programmatic disabling of a Control Binding by using a custom command value <REMOVEBINDING> that is returned in the Getter method of a Control Binding script property.
Examples of how or where users may apply this type of function would include adding Parameter References that are based on the Strategy host { ACE, C300 } where either a
NonCee parameter reference or a CEE parameter reference is to be applied, where both connection type references can be configured as 2 Control Bindings, but only one or the other is executed based on conditions specified in the Property script.
Here is an example of coding a Property script for the above scenario. The generated Control Modules may either be loaded into an ACE or C300. Strategies loaded into an ACE Server that have connections to Scada data will typically use OPCG gateways, while strategies loaded into a C300 will use NonCee references as OPCG gateways are not accessible from a C300. Depending on the host CEE the Parameter Reference connections will either be routing using an OPCG (ACE host) or be routed directly as a NonCee Parameter Reference type, which may or may not require an additional TypeConverter Function block for Scada Status types.
The above Chart View represents part of a Control Module whose Blocks are being connected during Control Conversion using the Control Binding set below. The Control Bindings of interest below specify whether a Parameter Reference connection is established on the TYPECONVERTB.IN.ENUM pin or the ANACOMEREADA.COMEREAD input pin. If deciding to pin to the ANACOMEREADA.COMEREAD input pin, then the TYPECONVERTB block must be removed during conversion execution.
The above snapshot shows a set of Control Bindings for generating an Analyzer Validation CM where the 3 highlighted Control Bindings use either a normal OPCG gateway for the Scada point reference or a C300 NonCee reference path to the Scada point. The TargetProperty TYPECONVERTB.Block is being used to programmatically remove the TypeConvert Function block if the host CEE is an ACE vs C300 where no type conversion would be required if the source Scada reference is using an OPCG gateway.
The above Control Binding script shows an example of how conditions are used to determine if this Control Binding will be processed during the Conversion execution. The Control Binding property will return the command <REMOVEBINDING> if the generated Control Module will be loaded into an ACE CEE.
The above Control Binding script shows an example of how conditions are used to determine if this Control Binding will be processed during the Conversion execution. The Control Binding property will return the command <REMOVEBINDING> if the generated Control Module will be loaded into a C300 CEE as it will use a NonCee reference that will require a type conversion.
The above Control Binding is used to programmatically remove the TYPECONVERTB Block if the host CEE for this CM will be an ACE. You must manually add this new Control Property "TYPECONVERTB.Block" to the CM Template whose block or blocks may require deletion. The "Block" name is case sensitive, which means if you specify "BLOCK" it will fail. Returning the command text BLOCK_DELETE will instruct the conversion execution to remove the Block with a BlockName of "TYPECONVERTB".
Note the use of the API method
LookUp(...):
ControlConversion.Support.Core.Conversion.LookUp($<C_EXCEL_RESOURCES_FILENAME>$, "RESOURCES", "UNIT", _FLAREID, "HostInC300");
This API method allows users to provide common resources in a separate Excel Workbook or Worksheet that can be queried using the data as indicated in this example Excel Worksheet. The above Control Binding scripts determine if the host CEE is either an ACE or C300 based on the "FLAREID" value for the entity.