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 | Required |
|---|---|---|
| ReadPolling | Enable polling mode Always, Never, OnDisplayOrServer | Yes |
| ReadPollingRate | Update frequency (ms) 100-60000 | Yes |
| ReadTrigger | Conditional read trigger Tag or expression | No |
| OnStartup | Read on solution start True/False | No |
| WriteEvents | Enable write capability | Yes |
| WriteEvent | Write trigger condition OnChange, OnTrigger | No |
| WriteTrigger | Conditional write trigger Tag or expression | No |
| AcceptUnsolicited | Accept unrequested data True/False | No |
| UseStaticBlocks | Enable block commands True/False | No |
| BlockCommand | Protocol-specific blocks True/False | No |
Every new solution ships with a seed catalog of six predefined AccessType rows. These cover the most common read and write patterns and are ready to assign to Device Points without any further configuration.
| Name | Description |
|---|---|
Read | Read using the PollingRate |
Write | Write when the tag changes its value |
ReadWrite | Read and Write the tag value |
Setpoints | Read on Startup, then WriteOnly |
DeviceControl | MQTT SparkplugB Publisher Device Control |
WriteUpEvent | Write when value changes up, typically for PLC commands using TimerDelayOff tags |
You can edit or extend the seed catalog like any other AccessType row. Custom rows you add appear alongside the predefined ones in the AccessType picker on Device Points.
The AccessTypes table has both a boolean column named IsDeviceControl and a seed row whose Name is DeviceControl. They are distinct concepts. IsDeviceControl is a boolean property available on every AccessType row, flagging whether the row drives MQTT SparkplugB device-control semantics. DeviceControl is simply the Name of the predefined row that ships with IsDeviceControl=true, used by default on MQTT SparkplugB Publisher channels. You can set IsDeviceControl=true on any custom AccessType you create.
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