Devices AccessTypes (Reference) define read/write rules for Device Points, controlling polling rates, triggers, and communication behavior between the platform and field devices.
AccessTypes provide:
Each Device Point uses one AccessType to determine when and how it communicates.
| Property | Description | Options |
|---|---|---|
| ReadPolling | Enable polling mode | Always, Never, OnDisplayOrServer |
| ReadPollingRate | Update frequency (ms) | 100-60000 |
| ReadTrigger | Conditional read trigger | Tag or expression |
| OnStartup | Read on solution start | True/False |
| Property | Description | Options |
|---|---|---|
| WriteEvents | Enable write capability | True/False |
| WriteEvent | Write trigger condition | OnChange, OnTrigger |
| WriteTrigger | Conditional write trigger | Tag or expression |
| Property | Description | Default |
|---|---|---|
| AcceptUnsolicited | Accept unrequested data | False |
| UseStaticBlocks | Enable block commands | False |
| BlockCommand | Protocol-specific blocks | Driver dependent |
Name: AlwaysRead
ReadPolling: Always
ReadPollingRate: 1000
WriteEvents: False
OnStartup: TrueName: ReadWrite
ReadPolling: Always
ReadPollingRate: 500
WriteEvents: True
WriteEvent: OnChangeName: Triggered
ReadPolling: Never
ReadTrigger: @Tag.ReadNow
WriteEvents: True
WriteTrigger: @Tag.WriteNowOptimizes communication by activating points only when needed.
OnDisplay Behavior:
OnServer Behavior:
Display-Driven:
Line A Display → Line A Tags Active
Line B Display → Line B Tags Active
No Display → No CommunicationServer Requirements:
<ac:structured-macro ac:name="info"> ac:rich-text-body Server-side tags (used in scripts, alarms, expressions) require an AccessType with ReadPolling set to "Always" or a separate AccessType for OnDisplayOrServer mode. </ac:rich-text-body> </ac:structured-macro>
csharp
// Trigger read when button pressed
ReadTrigger: @Tag.RefreshButton
// Periodic trigger
ReadTrigger: @Tag.Timer.SecondTick
// Conditional trigger
ReadTrigger: @Tag.ProductionActive && @Tag.ShiftRunningcsharp
// Write on command
WriteTrigger: @Tag.SendCommand
// Batch write
WriteTrigger: @Tag.BatchReady
// Conditional write
WriteTrigger: @Tag.Value > 100| Data Type | Suggested Rate | Use Case |
|---|---|---|
| Critical Alarms | 100-500ms | Safety systems |
| Process Values | 500-1000ms | Normal monitoring |
| Status/States | 1000-5000ms | Equipment status |
| Reports | 5000-60000ms | Historical data |
For protocols supporting block transfers:
UseStaticBlocks: True
BlockCommand: "READ_BLOCK:100:50"Benefits:
Check driver documentation for supported commands.
Points not updating:
Write failures:
Performance issues:
OnDisplay not working:
HMI Points: OnDisplayOrServer, 500ms
Alarms: Always, 250ms
Reports: Triggered, OnDemandHVAC: Always, 5000ms
Lighting: OnDisplayOrServer, 1000ms
Energy: Always, 60000msCritical: Always, 100ms
Process: Always, 1000ms
Historical: Triggered, 5000ms