According to RA support, all display commands must come from the client. To accomplish this requires creating a background screen to issue the command from, an event to trigger the command and the use of VBA on the background screen to open your display. It also requires creating a macro to open the Background screen when the CLI project is started and starting the event.
The first thing we did was to create a memory tag. We called it popup. It's a digital tag with an initial value set to 0.
Second, create your background screen and on the background screen add a Numeric Display object and assign the Popup tag to the connection. I named my background screen EVENT_SCREEN.
Right click on your Numeric Display and click VBA code.
Add this code:
Private Sub NumericDisplay1_Change()
On Error GoTo ErrorHandler
If Not IsError(NumericDisplay1.Value) Then
If NumericDisplay1.Value = 1 Then
ExecuteCommand "Display ALARM_SCREEN"
End If
End If
ErrorHandler:
LogDiagnosticsMessage Err.Description, ftDiagSeverityError
End Sub
I named my popup display ALARM_SCREEN.
Third, create your Event. The Action of the Event is to set the popup tag to a value of 1. Use your expression to trigger that action. I named my event OPEN_ALARM.
Next, you need to create your Macro to start you background command screen. Once created, I placed mine in the Startup Macro of the CLI project.
I used this:
Display EVENT_SCREEN /ZA
EventOn OPEN_ALARM
I also went to Display Settings on my Event Screen and set Cache After Display to YES and checked Always Updating. Even though that /ZA is the same command. Not sure it's needed but it did not seem to hurt.
Lastly, I added a button to my ALARM_SCREEN. This button will be used to reset the popup tag to 0 and to close the ALARM_SCREEN.
I did this by adding the set command to the Press Down Action and the Abort Command to the Release Action of the button.
Hope this helps and good luck with your project!