In the PROMOTIC system, there are many ways to define a variable. All PROMOTIC variables can be divided into two basic groups: licenced varables and unlicenced variables. The number of variables in PROMOTIC application defines the size of the application and can be detected in the configurator "Object size and license
" of the PmRoot
The licenced variables are:
- Data extension ExtSubVar
(Extending variable Var
by subvariable) in variables of the PmData
The UNlicenced variables are:
- Local variables in scripts (created by commands var
How to use licenced variables effectively
Data extensions of variables in the PmData object allow to:
- define a variable to be trended (ExtTrend
) - therefore additional variable does not have to be defined in the PmTrend
- define a variable to connect to communication driver (ExtComm
) - therefore additional variable does not have to be defined in the PmCommData
- define a variable to communicate via OPC (ExtOpcClient
) - therefore additional variable does not have to be defined in the PmOpcClientData
Columns "Read only" in PmDataTable object
Each cell of the table is counted into the application size for the purpose of licencing. But if a column of table in PmDataTable object is marked as "Read only", then the cells in this column are not counted into application size. This allows application designers to use such object for storing non-changing configuration values while the number of licenced variables is kept low. From the functional point of view this means that columns marked "Read only" can be written only once. Limitations of individual methods of the PmDataTable caused by "Read only" columns are explained in remark of this method..
Variables in object PmCommMsg of the PmChar communication
The communication driver PmChar
allows to assemble communication data in the PmCommMsg
object. Both data to be sent (on the Data-sent
page) and data to be received (on the Data-received
The variables on both these pages are licenced.
If you need to assemble a complex message containing many variables then all these variables do not have to be defined on those pages. There can be just one String
variable on each page.
- The variable on the Data-sent
page can be set before sending the message. Values from other variables located in other objects can be used.
- The variable on page Data-received
can be read in the onEndOfTransfer
event. After reading the value, the received String
can be processed in order to get m,ultiple values that are then written into multiple other variables located in other objects.
This way you can use just a single variable in order to send/receive multiple data values.
If the communication is not character based but binary then you can set to receive such data into the PmCommMsg
object in the form of HexaString
- see Binary data transfer