DynamicLinks

Description:

The primary function of this object is to be able to link from several objects anywhere on the station using a list of ords and/or format ords, and slots. In the CSV list, the ord or format ord is the first value, then the source slot, then the target slot. The target slot is automatically created using the name you specify, and the type is automatically determined by the source slot type.

The secondary function of this object is to resolve formats to strings. This is done by leaving the source slot empty in the CSV string. These slots will not have a link shown on the object.


Provide a CSV string structured as such:
[format ord or string],[source slot name (leave blank if the ord is a string)],[Target slot name]\n
[format ord or string],[source slot name (leave blank if the ord is a string)],[Target slot name]\n
etc...


If the format ord is a string output (such as %parent.name%, which would return the parent folder's name), leave the source slot name blank. The target slot name, however, must always be provided.

If the intention is to link the slot to another object, the proper formatting for the ord (or the value returned by the format ord) should be "station:|slot:/dir/object"


Example:
station:|%parent.sampleObject.slotPath%,out,someSlotFromAnObjectInMyParentFolder
%parent.parent.name.substring(8,11)%,,PartOfANameInMyPath


Eric's example from a production server:
%parent.parent.parent.name%,,WorkcenterName
station:|slot:/Global/ProprietaryData/CSVData,out,ProprietaryDataCsv
station:|%parent.parent.slotPath%/Machine_Status/Status_Manual,out,Manual


Other hidden jems:
  %seguinZonePath% returns the path to the subfolder within the points folder.
    Ex: station:|slot:/Drivers/OpcNetwork/KEPServerEX/points/Training
  %seguinZoneSlotPath% returns the slot path to the subfolder within the points folder.
    Ex: slot:/Drivers/OpcNetwork/KEPServerEX/points/Training
  %seguinZone% returns the BComponent instance of the subfolder within the points folder. This is useful when you need to use the folder path in a BFormat string.


  The following are the exact same as the "Zone" options above, except they return the sub-subfolder within the points folder:
  %seguinStationPath% returns the path to the sub-subfolder within the points folder.
    Ex: station:|slot:/Drivers/OpcNetwork/KEPServerEX/points/Training/L1_0010_L2
  %seguinStationSlotPath% returns the slot path to the sub-subfolder within the points folder.
    Ex: slot:/Drivers/OpcNetwork/KEPServerEX/points/Training/L1_0010_L2
  %seguinStation% returns the BComponent instance of the sub-subfolder within the points folder. This is useful when you need to use the folder path in a BFormat string.



Notes:
* - If the only the ord changes (source and target slot names remain the same), the link on the existing slot will be updated to the new ord
* - If the only the target slot name changes (source ord and slot name remain the same), the target slot name will be renamed (not removed) and any links in or out of that slot will be updated to the new name.
* - If the source slot name changes and the new source slot is the same type as the old source slot, the link is updated to the new source slot.
* - If the source slot name changes and the new source slot is a different type, the old target slot is removed and a new one is created using the new type.


Properties:

  • facetsForDynamicSlots
  • validateDelay
  • pathToEnableLinks
    • This should be the format slotPath comma slotName to the component you wish to link to this component's 'enableLinks' slot.
  • enableLinks
    • When this is false all links to any dynamic slot on this component will be removed and the slot's status will be set to the status of slot 'statusForInvalidOrds'.
  • slotInfoCsv
    • See the class description for more information
  • enableDynamicKnobs
    • Under development. This doesn't do anything yet, so it is hidden.
  • knobInfoCsv
    • Under development. This doesn't do anything yet.
  • executeFindAndReplace
  • findStringInCsv
  • replaceStringInCsv
  • refreshInterval
    • Set to zero seconds to disable
  • refreshLinksAtMidnight
  • ignoreMissingObjects
  • statusForInvalidOrds
  • reorderSlotsBasedOnCsvString
  • useAreaZoneStation
  • enableDelimittedValues
  • outDelimitedSlotNames
  • outDelimitedSlotValues
  • outDelimitedSlotNameValuePairs
  • inPairsDelimiter
  • inDelimiter
  • refreshLinks
    • This will refresh any links and any string values
  • midnightTimerExpired