I’m observing high comms usage on our 5580 processors (33.12) used by Tatsoft (9.2.29) and am studying how the provided OEM C# scripting behaves to determine whether and how it should be changed.
(1) Read example is MES_TransferPct_SP (double) with access type:
Does Tatsoft treat this as a blocking line of code that reads the PLC on-demand or is the expression just the most recent value of the tag provided at the ReadPollingRate?
(2) Write example is MES_RequestedIngredient (IngredientInfo) with the same access type above.
Does Tatsoft treat this as a blocking line of code that reads the PLC on-demand or is the expression just the most recent value of the tag provided at the ReadPollingRate?
FactoryStudio supports both methods for handling tag values from a PLC: polling and exception-based updates.
Polling:
The system reads the tag value from the PLC at regular intervals defined by the ReadPollingRate.
For example, if the ReadPollingRate is set to 5 seconds, the system will query the PLC for the most recent tag value every 5 seconds.
Exception-Based Updates:
The system updates the tag value only when a change or event occurs in the PLC (just when the driver supports unsolicited messages).
This approach reduces communication overhead as the PLC pushes updates only when there is a new value.
It is more efficient when dealing with tags that do not require constant monitoring.
Does Tatsoft write to the PLC with each statement (4x writes) in this body of code?
Tatsoft writes to the PLC for each tag, but only if the tag’s value changes. This applies to tags configured with the Changed access type.
For tags with the WriteTrigger access type, all tags in the group are sent together when triggered. However, each tag group is sent in a separate packet.