List of Tag, and Alarm Properties created for scripting

I made this for some script that I have, but its seem like with the new Manual update some properties I had I can no longer find, like accessRights. I did not see a post like this, nor can I find a fully built script list in the documentation for easy grabbing.

With that said, I wanted to have a place where, I or others, could go to easily copy this list. As well as, I was hoping if I missed any or used some that are not in fact tag/alarm properties I will edit this post as needed.

Alarm Property List

allAlarmProps = [
    "name",  # Identifier of the alarm
    "enabled",  # Determines whether or not the alarm will be evaluated
    "priority",  # The priority or severity of this alarm
    "timestampSource",  # Indicates where the timestamp for the alarm event should come from
    "label",  # An optional name that will be used for display purposes
    "displayPath",  # Optional text that will be used for display and browsing purposes
    "mode", # This setting controls what condition this alarm is evaluating.
    "ackMode",  # Dictates how acknowledgement works for the alarm
    "ackExpression",  # Expression that, when true, will cause the alarm to be acknowledged
    "activePipeline",  # The name of an alarm notification pipeline to put this alarm into when it becomes active
    "clearPipeline",  # The name of an alarm notification pipeline to put this alarm into when it becomes cleared
    "ackPipeline",  # The name of the alarm notification pipeline to put this alarm into when the alarm has been acknowledged
    "voip.customMessage",  # The voice message you want to play when sending the Alarm
    "CustomEmailSubject",  # A string that will be used as the subject line of an email notification message
    "CustomEmailMessage",  # A string that will be used as the body of this alarm's email notification message
    "activeCondition", # binding of some sort that will be used to determine when the alarm goes active.
    "alarmType",  # The type of alarm
    "clearMode",  # Dictates how the alarm returns to the clear state
    "count",  # The number of times the alarm has been active
    "eventValue",  # The value of the tag at the time the alarm went active
    "isSystemAcked",  # Whether the alarm has been acknowledged by the system
    "latched",  # Whether the alarm is currently latched
    "notes",  # Notes associated with the alarm
    "onDelay",  # The delay, in milliseconds, between when the alarm condition is met and when the alarm goes active
    "onDelayMode",  # Dictates how the On Delay timer operates
    "offDelay",  # The delay, in milliseconds, between when the alarm condition is no longer met and when the alarm goes clear
    "offDelayMode",  # Dictates how the Off Delay timer operates
    "pipeline",  # The name of the alarm pipeline that the alarm will use
    "setpointA",  # The setpoint for the alarm
    "setpointB",  # The second setpoint for the alarm
    "shelved",  # Whether the alarm is currently shelved
    "shelveExpiration",  # The time at which the alarm will automatically unshelve
    "source",  # The source of the alarm
    "systemOnTime",  # The amount of time, in milliseconds, that the alarm has been in the active state
    "systemOffTime",  # The amount of time, in milliseconds, that the alarm has been in the clear state
    # Custom properties (associated data)
      "CustomProp1",
      "CustomProp2",
      "ETC.",
]

Tag Property List

allTagProperties = [
    "accessRights", # The access rights of the Tag.
    "arraySize", # The size of the array if the Tag is an array type.
    "dataType", # The data type of the Tag.
    "deadband", # The deadband of the Tag.
    "deadbandMode", # The deadband mode of the Tag.
    "deriveExpressionGetter", # Read Expression
    "deriveExpressionSetter", # Write Expression
    "documentation", # The documentation of the Tag.
    "enabled", # to enable oior disable a tag
    "engHigh", # The engineering high range of the Tag.
    "engLow", # The engineering low range of the Tag.
    "formatString", # The format string of the Tag.
    "historicalDeadband", # The historical deadband of the Tag.
    "historicalDeadbandMode", # The historical deadband mode of the Tag.
    "historyEnabled", # Whether history is enabled for the Tag.
    "historyProvider", # The history provider of the Tag.
    "historySampleRate", # The history sample rate of the Tag.
    "historySampleRateUnits", # The units of the history sample rate of the Tag.
    "historyStoreRate", # The history store rate of the Tag.
    "historyStoreRateUnits", # The units of the history store rate of the Tag.
    "name", # The name of the Tag as it will be presented and referenced in the system.
    "opcItemPath", # The OPC item path of the Tag.
    "opcServer", # The OPC server of the Tag.
    "rawHigh", # The raw high range of the Tag.
    "rawLow", # The raw low range of the Tag.
    "rescale", # Whether rescaling is enabled for the Tag.
    "scaleMode", # The scale mode of the Tag.
    "sourceTagPath", # The path to the Tag that this Tag is referencing.
    "tagGroup", # The Tag Group that will execute the Tag.
    "tooltip", # The tooltip of the Tag.
    "value", # The current value of the Tag.
    "valueSource", # the tags current type ex: opc, memory, etc.
    # Custom properties:
    "CustProp1",
    "CustProp2",
    "ETC.",
  
]
		    

Edits: - Below I will let everyone know what was added above or taken away as we go:
Added to Alarm list:

  • N/A

Took Away from Alarm list

  • N/A

Added to Tag list:

  • "enabled", # to enable or disable a tag
  • "valueSource", # the tags current type ex: opc, memory, etc.

Took Away from tag list

2 Likes

Thanks for putting this together! I have found that system.tag.readBlocking (and I assume writeBlocking) won't work to read many of the alarm properties. For instance I have several alarm properties bound to expressions, and I'm wanting to read what the expressions evaluate to at the current moment. I can read alarm state, priority, and display path, but things like activePipeline, clearPipeline, email messages, etc. are not available to read or write.

Just FYI

1 Like

Anytime!

We actually have a exchange project, not done yet, but will put it in the exchange forums when complete. It does the following:
:spades: Gets UDT Instances paths, parent types, with all the parameters as headers and out puts a CSV with those values
:spades: Gets Tag paths, Alarms, and all parameter or values based on user selection for each alarm. example tag path 1 has 5 alarm's there will be 5 rows in the csv path with either the alarm prams or values.
:spades: Tags and there properties- same as the tag report tool but I can add in the UDT path and UDT parent types in the same rows of the CSV file(this part is the only part we need to update and what is holding up the final product because it is very slow if we have multiple edge sites on a reginal site).
Once this is in the exchange I'll post the update here.

That said, if you need alarm properties I believe the writing block will work but you needs to have it set up like:

propertyPath = "{TagPath}/Alarms.PropertyName"
result = system.tag.readBlocking(path)[0].value  # gets just the value
or
result = system.tag.readBlocking(path)[0] # gets you the whole message [0, Good, Fri Apr 12 13:42:59 CDT 2024 (1712947379061)]

Cool, yeah I've made something that sounds very similar to what you're working on, although I don't have alarm functionality included. But I can export a .csv with all the parameters a UDT expects, edit, then re-import to create or edit UDT instances. It's been very helpful while building out our new architecture.

I'd be interested to see your exchange project and see how you're doing alarm configuration!

1 Like