SoftPLC7.ini

SUMMARY

The SoftPLC7.ini file defines the environment for the SoftPLC7.

DESCRIPTION

Note:
The default name for the configuration file is “SoftPLC7.ini”; on calling up “SoftPLC7.exe” it is possible to define a different configuration file name ( [ini=<File name>] ).

Section [HLL-Functions]

Entry Type Description / Example Default
(FB |FC |SFB |SFC )<num> string
Defines the DLL-Function that replaces the Program-Module with the following syntax: <dll, function>
Example
FC13=MyDll, MyFunction
				
PYstart,len [,part] string
The defined DLL-Function supplies the peripheral I/O bytes 0 to 255. The following syntax is used: <dll, function>
Note:
If parameter [, part] is missing, it will be replaced by the default '0'
Example
PY0,256=MyDll, MyFunction
					

That entry assigns peripheral bytes to a process image. Actualization is done either after OB cycles or explicitly via SFC 26 and SFC 27, in that case a read after write is performed.

Note:
Prior to start of any first cycle only a read is performed.
DB <num>, start,len [, (R |W |RW ) [,part]] string
Prior to cyclestart that DLL-Function supplies the defined bytes of a given DB by reading and writing. The following syntax is used: <dll, function>
Note:
If DB-Numer=0 the entry applies to a peripheral
If parameter [, part] is missing, it is set to '0' and actualisation is initiated on cycle start of OB1 only.
Example
DB100,10,40,RW=MyDll, MyFunction
					
The bytes 10 to 40 of DB 100 are read from and written to on cycle start of OB 1. Default for parameter 4 is RW.
PY<start-dummy>, 0 string
DLL-Function to communicate between SoftPLC7 and SoftPlc7OPCServer.
The following syntax is used: <SoftPlc7OPCServerDll,DoDataExchangeUDP>
Example
PY0, 0=SoftPlc70PCServerDll,DoDataExchangeUDP
					
That entry assures that in any time slice the SoftPLC7 communicates via the defined function with the SoftPLC7OPC-Server.

Section [OBnn]

Entry Type Description / Example Default
CycleTime string
Cycle time of an OB in milliseconds
OB1:  500
OB30-38:  according the S7- description
OB100,101,102:  500
PhasisOffset integer
The phase offset defines the offset-time in milliseconds the OB is started at. If set, it’s rounded to a multiple of a time slice.
OB1, OB30-38:  0
Priority integer
Priority
Refer to S7 description
InitLStackBlockCount integer
Maximum nesting depth of the local data-stack
10
InitLStackBlockSize integer
Maximum size of the local data area for calling FBs or FCs
1024
ToggleByte integer
Defines a flag byte. If the range is within 0 - 16383 it is inverted prior of calling any OB.
-1
PeripheryPart integer
Defines a process image that is updated by the system via that OBx.
Possible values: 0…15.
0 represents the process image of OB1, for any other OBx it denotes there is no process image
0
FreezeBlock string
Defines the block to be called instead of the OB in case of a freeze condition.
Permitted are FBs or FCs without I/O parameters.
Syntax: (FB |FC )<num>
Example
FreezeBlock=FB100
					
Note:
In case such a substitute block is defined, the process image is updated further on.
""

Section [OB1]

Entry Type Description / Example Default
CycleMonotoring integer
Time in milliseconds for controlling cycletime (not implemented yet)
10000

Section [Snapshot]

Entry Type Description / Example Default
IgnoreDB string
Defines DBs that are not effected by snapshots:
  • They are not stored in snapshot
  • They are not deleted or overwritten when a snapshot is restored
Syntax: <num>(,<num>)*
Example
IgnoreDB=1,3-7,10,12,100-200
					
""

Section [Run]

Entry Type Description / Example Default
Project string
File directory of the lastly loaded SoftPLC7 project

Section [Convert]

Entry Type Description / Example Default
CPUDescription string
SIMATIC Type of the imported CPU.
BausteinDir integer
Directory of the modules in the S7-Project that was imported.
SDBDir integer
Directory of the cominication information in the S7-Project that was imported.
ProjectDir integer
Directory were the lastly imported S7-Project were imported from.
To string
File directory were the lastly converted STEP7 programs were written to.

Section [StartUp]

Entry Type Description / Example Default
Instance integer
Number of the SoftPLC7 instance
Note:
important if more instances running on the same workstation
1
Akkus integer
Number of Accu-register in the S7
4
HSystem integer
Tells whether a CPU is a H-type
  • 0 - no H-Type
  • 1 - H-Type
0
FSystem integer
Tells whether a CPU is a F-type
  • 0 - no F-Type
  • 1 - F-Type
0
MLFB string
Machine-readable product designation
SOFTPLC7
Type integer
Type identification of CPU for internal purposes (decimal notation)
130
VersionFirmware integer
Version of CPU, respectively the Operating System (decimal notation)
5
VersionPG integer
Version of PLC description files (decimal notation)
0
SLevel integer
Defines the Security Level
  • 0 - no Security Level
  • 1 - low Security Level
  • 2 - medium Security Level
  • 3 - high Security Level
0
ManualStartupType integer
Defines the default starting duty on a manual start up. See also SoftPLC7 starting window in System Overview
  • 0 - Warmstart mode OB100
  • 1 - Resume mode OB101
  • 2 - Coldstart mode OB102
1
TimeSliceMilliSec integer
Defines the time slice in milliseconds an OB cycle can be started at.
Should be a divider of all cycle times.
100
WaitForTimeSlice integer
Defines whether (1) or not (0) at the end of any OB-Cycle the next Time Slice is awaited.
If not, a Plugin Function -by the token mechanism, for instance- must provide the cycle from outside.
1
UpdatePAAfterCycle integer
Defines whether the process image of the outputs are updated immediately after execution of an OB-Cycle (1), or straight before actualizing the inputs of the process image (0).
0
ClockByte integer
The given number relates to an address in the 16K Flag-Area and defines a Clock Byte. A cycle time (multiple of 100 ms) is assigned to any single bit; after that time elapsed the bit is inverted. Overwriting these bytes by the S7-Program has not effect on the next cyclic calculated values. If no valid address is stated, no Clock Byte is provided.
-1
VelocityFactor float
Defines a velocity factor. All times within the SoftPLC7 are stretched or crushed, so it looks like the program execution runs in slow motion (0,0<factor<1,0) or in fast motion (factor > 1,0). Due to performance reasons mainly slow motion is reasonable.
1,0
ControlOBInterruption integer
Defines, whether OB-interrupts should be controlled according to their priority class.
  • 0 - OBs may interrupt higher priority OBs. Interrupts may occur several times.
  • 1 - OBs may interrupt only coequal or lower priority OBs.
1
CountCmdsAndOps integer
Defines whether workload of the CPU should be recorded or not.
  • 0 - No recording at all.
  • 1 - Records workload "ControlOBInteruption=0" is assumed.
On leaving the program gathered data are written to the project directory.

- instructions independent of operands:
  • 1 SoftPLC7_CmdSortedByCount.log
  • 2 SoftPLC7_CmdSortedTotalTime.log
  • 3 SoftPLC7_CmdSortedAvgTime.log

- operands independent of instructions:
  • 1 SoftPLC7_OpSortedByCount.log
  • 2 SoftPLC7_OpSortedTotalTime.log
  • 3 SoftPLC7_OpSortedAvgTime.log

- all combinations of operands and instructions:
  • 1 SoftPLC7_CmdOpSortedByCount.log
  • 2 SoftPLC7_CmdOpSortedTotalTime.log
  • 3 SoftPLC7_CmdOpSortedAvgTime.log

In any case the time for emulating the whole AWL-Instruction including the operant is taken into account. (Excluded is the time for the measurement itself)
During measuring time any other application should be closed down, since CPU time increases tremendously.
0
S7Clock string
Defines the time-system used when initializing the internal clock.
  • LT - Local Time
  • UT - Universal Time
UT
RepeatAllPeripheryErrors integer
Defines whether all peripheral access errors should be repeated when the system updates the process image.
  • 0 - No
  • 1 - Yes
1
RefreshPeripheryPart0 integer
Defines whether the system should update process image 0 of OB 1
  • 0 - No
  • 1 - Yes
1

Section [MEMORY]

Entry Type Description / Example Default
WorkRAM integer
Size of volatile memory (default 8MB)
8388608
WorkFEPROM integer
Size of non volatile memory (default 8MB)
8388608
LoadInternRAM integer
Size of internal volatile memory (default 8MB)
8388608
LoadExternRAM integer
Size of external volatile memory (default 8MB)
8388608

Section [Aci]

Entry Type Description / Example Default
DoFile string
The Data Object File to connect to the Application Communication Interface
DebugOutput boolean
1: Enable debug output messages to a window.
0: Disable debug output messages.
0

Section [AciConnect]

Entry Type Description / Example Default
<DataObject>.(Value|Status) string
Defines the data object and the attribute which is to be mapped to an address in the SoftPlc7. Currently only Value and Status are supported as attributes.

<S7-address>,(R|W|RW)[,F]

Defines the S7-address, read/write-access and data type.
WARNING
If both read AND write access RW are specified, and if the measuring value or status changes simultaneously in the SoftPlc7 and ACI / data source then one of the changes may be lost or different or toggling values in SoftPlc7 and ACI/data source may result.
A data type F means floating point / REAL, no data type means integer.
Example
[AciConnect]
SINUS.Value=MD4,W,F
FIRE_DET.Status=DBX20.4,R
			        
The value (Format=float) of data object SINUS is written to S7-Address MD4
The status of data object FIRE_DET is read from S7-Address DBX20.4
WatchdogRunState boolean
1: The ALPHA-VISION®-application watchdog is triggered only if SoftPlc7 is in RUN-State. See also Vision2000.ini where the watchdog data are specified.
0: The watchdog is triggered always.
0

Section [PG]

Entry Type Description / Example Default
Interface integer
Defines the protocol to communicate with the SIMATIC MANAGER
  • 0 - PC Adapter (MPI)
  • 1 - TCP/IP
0
ComPort integer
Defines the number of the COM-Port to open when communication starts. The connection is set up via “PG-Interface” in the pull-down menu “EXTRAS” of the SoftPLC7 Starting window. Values 1 to 4 correspond to the number of COM-Ports, any other input connects to nowhere.
0
Baudrate integer
Defines the baud rate of the serial connection to the PG.
19200 and 38400 are valid rates.
19200
WaitAfterRecvMPI integer
Defines the milliseconds the state machine Level 1 has to wait after receiving a Level 2 Statement. If the connection is interrupted for no obvious reasons the value should be increased to 100 or 150.
50
WaitAfterRecvTCP integer
Defines the milliseconds the state machine Level 1 has to wait in between two telegrams from the PLC.
The value should be set to 100 on a heavy loaded CPU or if on more than 1 SoftPLC7 are debugged.
On running one SoftPLC7 only and low workload the value may be set to 0
40
IP string
Defines the IP-address the SoftPLC7 can be reached as server.
No entry or address 0.0.0.0 gives unlimited access.
0.0.0.0
Connect integer
Defines automatic connection on start up
  • 0 - no automatic connection
  • 1 - automatic connection and acceptance of clients
0

Section [CPUSync]

Entry Type Description / Example Default
LocalAddr integer
Local IP-address for that IP the function “bind” is called
0.0.0.0
IP string
IP-address a master CPU sends time-telegrams to for synchronisation.
224.0.1.0
Port string
Port a master CPU sends time-telegrams to for synchronisation.
Type integer
Defines, whether the CPU synchronises other CPUs or is synchronised by another.
  • M,m – Master, sending
  • S,s – Slave, receiving
  • N – neither the CPU synchronises other CPUs nor is synchronised by another CPU
N
Cycle integer
Time intervals in milliseconds time-telegrams are send out. (Master CPU only)
1000

Section [WATCH]

Entry Type Description / Example Default
AllCycles integer
Defines how often debug infos are checked.
  • 0 – End of OB1 cycle only
  • 1 – After any OB cycle
0

Section [RETENTIVE]

Entry Type Description / Example Default
Flags integer
Defines the number of remanent flag-bytes (starting with MB 0)
16
Timers integer
Defines the number of remanent timers (starting with T 0)
0
Counters integer
Defines the number of remanent counters (starting with C 0)
8

Section [OPC]

Entry Type Description / Example Default
UpdateTimeFactor integer
Defines the interval for CPU update related to a time slice. The value 5 at a given time slice of 200 ms leads to a refresh rate of 1 sec.
1
LocalAddr string
Defines the IP address used for calling up the function “blind”
0.0.0.0
RemoteAddr string
Defines the target IP address the UDP packages for the SoftPLC7 OPC server are send to.
IP address 255.255.255.255 stands for BROADCAST and may be used within a LAN.
IP address 127.0.0.1 stands for LOCAL HOST and has to be used if the system is not part of a LAN
Example
RemoteAddr=127.0.0.1
				
Note:
To keep sockets from allocating the whole address area when using the function ’bind’ a special local IP-Address can be selected.

Section [FREEZE]

Entry Type Description / Example Default
SysTime integer
Defines whether in case of a FREEZE condition the system time (queried by SFC 64 “TIME_TCK”) should be stopped and overwritten on restoring of a snapshot.
  • 0 – On FREEZE condition system time continues, system time of the snapshot will be ignored
  • 1 – On FREEZE condition system time stops, system time of the snapshot is adapted.
1

Section [EXIT]

Entry Type Description / Example Default
SavePersistent integer
Defines whether on closing down SoftPLC7 persistent data should be saved in the persistent directory
  • 0 – no data are saved
  • 1 – data blocks, flags, timers and counters are saved
1

Section [Modbus]

Entry Type Description / Example Default
MasterCount integer
Defines the number of the Modbus-System.
The following syntax is used: <Number Modbus-System>
Example
MasterCount=2
				
Master <n> string
Defines the communication parameter with the following syntax:
(<MasterID>;COM<PortNo>; <Baudrate-Index>;<Parity>;<Databits>;<Stopbits>)

BAUTRATE-index:
0=300, 1=600, 2=1200, 3=2400, 4=4800, 5=9600, 6=19200, 7=38400, 8=57600, 9=76800

PARITY:
n=no parity, e=even parity, o=odd parity

DATA BITS:
7 or 8

STOP BITS:
1 or 2
Example
Master1=(2;COM1;5;n;8;1)
Master2=(129;COM2;6;n;8;1)
				

Section [Plugin-Functions]

Entry Type Description / Example Default
Func<n> string
Activates Plugin-Functions of the SoftPLC7.
Example
Func1=S7Sync,S7SyncControl
				
Note:
This function is called up by the same fixed cycle that the OBs are synchronized with. It waits for the token, hands over the control to the S7-threads and on cycle end it passes on the token.

Section [IPC-SYNC]

Entry Type Description / Example Default
INSTNR integer
Defines the Instance number, must be >=2.

Number used for passing on the token; not to mix up with the instance number. Value 1 is reserved for the control application.
-1
SNAPBUFSIZE integer
Defines the buffer size for the Snapshot file, depending on the project 1-2 MB is recommended.
That value defines the size of the Shared-Memory-Area.

Defines the size of the user area for commands. 0 allocates 1 MB
0
SHMNAME string
Name of the Shared-Memory-Area defined by the SoftPLC7.

Name of the shared memory area used for communication.
OWNSEM string
Name of the first event defined by the SoftPLC7.

Name of the semaphore the SoftPLC7 is waiting for.
NEXTSEM string
Name of the second event defined by the Control-Instance.

Name of the semaphore the SoftPLC7 sets after executing the OB-cycles.

Section [AdvantechIO]

Entry Type Description / Example Default
Device integer
Example
Device=0
							 
BasePort string
BasePort is the base address of the assembly group. Advantech demands on the standard address 0x2a8.
Example
BasePort=0x2a8
				

Section [DBExchangeSHM]

Entry Type Description / Example Default
DBNumIn integer
DB number of receiving DB. 0=peripheral input PI
0
DBNumOut integer
DB number of sending DB. 0=peripheral output PO
0
LengthIn integer
Length of receive buffer
0
LengthOut integer
Length of send buffer
0
OffsetIn integer
Offset within the receiving DB (resp. PI) for buffer start
0
OffsetOut integer
Offset within the sending DB (resp. PO) for buffer start
0
OffsetOutHandshake integer
Offset within the sending DB (resp. PO) for a handshake-byte. The SoftPLC7 only writes data if the result of anding the handshake-byte with the mask is zero. If no value, or a value smaller than 0 is inputted, writing is continued.
-1
OffsetOutHandshakeMask integer
Mask to be anded with the handshake-byte
255
SHMNameIn string
Name of the shared memory area for the receive buffer
-1
SHMNameOut string
Name of the shared memory area for the send buffer
255