Runtime system variables

Communication on ports

false communication on this channel is OK
true on this channel at least one variable has a communication error

Globally stops communication on all channels. If communication is stopped in this way, the HW.CommError variable. is false even if the channel has a physical communication error.
false not blocked, communication running
true blocked, communication not running

Force variable update on the leading edge (M-Bus only). Used for controlled reading from meters based on an event.

File size (in KB) for recording monitor port communication to the controller's Flash memory (MiniPLC) or HDD (SoftPLC ). It only makes sense if HW.LogPortMonitor. is True.
0 file size is not limited but beware, memory or disk space may become full over time!

False traffic is not sampled - default state
True traffic is sampled

Alarm LEDs and alarms

For stations with an alarm LED, determines how this LED will be controlled. In automatic mode, the LED is controlled according to the status of alarms in the controller:
no alarms - off
at least one unacknowledged alarm - flashes
at least one undeleted alarm - is permanently lit.
In manual mode it is controlled by System.Alarms.IndicatorManualState variable.
false automatic mode
true manual mode, LED controlled by System.Alarms.IndicatorManualState variable

Controls the alarm LED if System.Alarms.IndicatorModeManual is true.
false LED is off
true LED is lit

Reports the number of active acknowledged alarms (from BD49, BD50 blocks) on the system.

Reports the number of active unacknowledged alarms (from BD49, BD50 blocks) on the system.

Reports the number of alarms in memory (faded - not deleted) (from BD49, BD50 blocks) in the system.

System time

Current time in the system, including the time zone and any summer offset. It is used to control time programs and other processes that must respect summer / winter time and the time zone. the time zone is defined in the IDE in the project properties - Properties - Time zones & amp; daylight savings.

Daylight Saving Time Flag. The transition between summer and winter time is done according to the table, which can be defined in the project properties.
false is now winter time
true is now summer time

Current time in the system = Universal Time Coordinated (Universal Time Coordinated), used for processes where time must increase continuously (which does not happen during the transition from summer to winter time).

Start and stop the runtime

IDE or runtime status.
0 feet
1 boot?
2 full run ( Full Run
3 Shut Down Full Run
4 Evaluation only
8 Communication only

Specifies whether the runtime should be stopped "safely" based on the fulfillment of certain process conditions. If so, System.StopRequest and System.StopAllowed variables are required - see below.
false normal hard run stop
true "safe" stop

When a runtime stop request (remotely via the IDE) is requested, this variable is set to true, and based on this request, the process logic can initiate action to safe stop. Once these measures are met (eg heat exchanger temperature drop below a certain value, demonstrable closing of valves by signal from limit switches, etc.), the program should write true to the StopAllowed variable, which only stops the runtime. Meanwhile, the program is in Shut Down Full Run mode.
false runtime is not stopped
true runtime has received a stop request

Writing true to StopAllowed will stop the runtime (but only if a safe stop is required (System.WaitForApplicationStop = true) and was received request to stop runtime (System.StopRequest = true), see above).

RcWare DB

Enables / disables saving to RcWare DB, if saving is enabled, then it follows the interval. SavingEnabled blocks saving for SaveNow as well. If zero interval is specified, it is saved only on request SaveNow (for consumption, I save only when I need it).
false is not saved in the database
true is saved in the database

Saves values ​​to the database on the leading edge of this variable, drops the flag to false when saved

System.RcWare.DB.Status - as a proxy
To identify connection status, save errors
-2 communication is not configured, does not communicate is
-1 configured, unknown status
0 cannot communicate with database, database unavailable
1 OK
10 data rejected
11 exception
12 connection exception

RcWare Proxy server

Proxy communication is not configured to identify proxy connection status
-2 communication is not communicating
- 1 configured, unknown status
0 proxy not available (internet connection ???)
1 data registration (transient status)
2 values ​​communicate
10 wrong name / password

To identify the connection status to the alarm server (not commonly used)
-2 not configured;
-1 configured, status unknown;
0 error;
1 ok;
13 cannot set some alarm state on server

Event logging

Enables logging of runtime system events to a file.
false does not log
true logs
Be careful not to fill up the disk on IPLC5… platforms!

Bit Field - What is stored when logging runtime system events to a file:
0 Generic
2 Runtime
4 UpdaterEngine
1024 SoftplcProxy
2048 PortMonitor
4096 RcWareDb

Defines which all events are saved when logging runtime system events to a file
1 Debug0
2 Debug
4 Info
6 Warning
9 Error
10 None

Save current values ​​

System.ForceSaveValues ​​
Saves the current variables to a leading disk file on disk or to flash. (Otherwise, the variables are saved regularly every 30 minutes, unless this is turned off by the No save request to flash variable.) Caution, frequent saving (more than approx. Once per hour) can cause the maximum number of EEPROM writes to be exceeded and memory to be destroyed. Use this feature judiciously or rather not at all.

Last time to save values ​​no matter where (even if you saved RT yourself)

For "large" PLCs only, true = current values ​​were read from a .vars file. Normally, after starting RT, the variables are taken from the .splcproj project, then it is checked if the .vars file exists, if so, its CRC is checked, if it is OK, it plays the values ​​of the variables to RT from the .vars file.
false current values are from the .softplc project (probably the ones that were loaded when the project was last uploaded from the IDE)
true The current values ​​are from the .vars file (ie those that were backed up 30 minutes or after the forced write (System. ForceSaveValues))

Attention: running RT only writes to .vars, IDE writes to .vars and .splcproj (so that the values ​​go with the project).

Older versions

If you don't see variables like:

  • System.ForceSaveValues,
  • System.ValuesLastSaveTime,
  • System.Logger.

You probably have an old version of the IDE, these system variables appeared during 2011. We recommend update. There is now a bulk installer. Before using it for the first time, it is necessary to uninstall all SoftPLC programs, during further updates it can be reinstalled "via them".