Atom values can be read (REQUEST) or written explicitly (POKE), while the I/O mode and attributes can only be read since they are fixed at configuration time.
VBA example
Assume you want to read the process value of the object, q1, and then change its set point to 22.0. You would then write the following code:
Sub DDE()
Dim chan As Long
Dim val As String
chan = DDEInitiate("IGSS_DDE", "q1")
val = DDERequest(chan, "value")
Debug.Print val
DDEPoke chan, "setpoint", "22.0"
val = DDERequest(chan, "setpoint")
Debug.Print val
DDETerminate chan
End Sub
This example was written in an MS Access module. Notice the "Debug.Print" lines which allow you to show the result of the DDE transaction in the Debug Window.
DDEInitiate establishes a conversation to the server "IGSS_DDE" and the topic "q1".
When the conversation is established, the item "VALUE" can be requested and the set point can be changed (DDEPoke line).
After all is done the conversation is closed (DDETerminate). You can make as many transactions on an object as needed as long as the conversation is open.
It will take some time to read or write a value during which time the server will not accept requests from any client. Also, no notifications from advice loops will appear. The notifications queue up until the transaction is finished.
If you are going to make more than one transaction on an object within a short time, you can keep the connection open, i.e. not execute the terminate command before all operations on the object are completed. There will be some performance degradation with an increasing number of connections.