content.gif menu.gif basics.gif

Possible config entries of the S7 driver

In the following you can find the possible config entries for the S7 driver. The entries have to be defined in the [s7] section of the config file.

The table below describes the possible config entries and a short description:

Entries in the config file

Entry

Type

Default

Range

Description

deviceOffset

int 0

>= 0

Up to 512 PLCs can be supported by the S7 driver. Maximum 256 PLCs are supported per driver. The config entry deviceOffset can be used to specify the start device index for the second driver. The peripheral addresses, of course, has to be configured on the corresponding driver.

HighPrioBlock

int

-1

>= -1

Data block number of high priority addresses.

If a write request with an address belonging to this block is queued, it is inserted in front of the first request with normal priority.

MaxAGLinkQueueSize

int

1

0 - 126

Maximum number of request queued to AGLink library. If this value is exceeded  the request is put into an internal read or write queue. If the value is 0 no internal queue is used = old behavior before implementation of internal queues.

MaxGap

unsigned

10

1 - 50

The maximum difference in bytes between two addresses before the data is grouped to polling requests.  If the address range between two addresses that are next to each other is greater than the value in MaxGap, a new group is created. (e.g. configuration of the addresses 1.100, 1.101, 1.102,1.103, 1.115, 1.116 would group the addresses into two polling requests. The default value is 10.) This config entry only applies to input addresses.

MaxRequestQueueSize

int

200

 0 - 1000

Maximum size of internal write and read queue (each queue can have this size).  If the write or read queue is full the request is discarded and an error message (the error code 56) is written to the  _S7_Conn.LastError DPE. Furthermore Read-, Write- and AGLink queue sizes can be supervised  using _S7_Conn.State.ReadQueue and _S7_Conn.State.AGLinkQueue DPEs.

Remark: The new values are written to DPE in the interval defined  by "StatCheckInterval" config entry.  

MaxWriteGroupSize

int

16

 1 - 64

Maximum size of single write request, that can be grouped together in one multiple write request, when processing request from the write request queue.

AliveInterval

unsigned

30

>= 0

Interval [s] after which a status check is sent to the PLC(s) via all connections. If the AliveInterval is set to 0, then no regular alive checks are done. But there is at least one alive check whenever a connection is established.

AutoGQ

string

"Y"

"Y"|"N"

Specifies whether general queries should be executed automatically.

AutoTimeSyncFactor

unsigned

0

>= 0

The value specifies in which alive intervals an automatic time synchronization should be executed. The default value is 0. This means no automatic synchronization. When the alive interval is e.g. 10 seconds and the AutoTimeSyncFactor = 10, a time synchronization is executed every 100 seconds.

CheckPollReqPending  

bool

1

0|1

If the entry is activated, the system checks if an identical poll request is pending before the new is added to the AGLink Queue.

LimitedTSPPAliveCheck

string

"N"

"Y"|"N"

 

The config entry LimitedTSPPAliveCheck = "Y" can be used to switch off the alive check for redundant TSPP connections. Therefore, the system only checks if telegrams are received by one connection (and not all connections).

MaxTsppRequestQueue

unsigned

4

1 - 64

Number of requests in queue for asynchronous communication. This is used for test purposes only.

UseOneConnection

string

"N"

"Y"|"N"

Specifies if only one connection should be opened to the PLCs. Per default 2 read and one write connection is opened.

s7ProjRootDir

string

"""

-

Obsolete.

Specifies the root directory for the Siemens STEP 7 projects. This is used for retrieval of symbolic information from the STEP 7 project.

OnlyActivePolls

string

"N"

"Y"|"N"

 

OnlyActivePolls = "Y" specifies that only the active driver polls in a redundant system. The default value is "No" (both drivers poll the PLC).

ReadPLCTime

string "N"

"Y"|"N"

 

If the config entry ReadPLCTime is set to ”Y” (Default "No") the PLC time is read in the alive check interval and the value is written to the _S7_Conn.Time.Value. DPE. This value can be used if the WinCC OA time should be synchronised to the PLC time.

ReadOpState

string | unsigned

"N"|0

"Y"|"N"|| >=0

 

If a PLC stops (state of the PLC is STOP) in case of a redundant PLC pair, the driver does not know that the state was changed and the communication with the PLC still works.

 

If the value of the config entry is set to "Yes", the state of the PLC is read periodically.

The state is read every "Alive interval" seconds and is shown on the internal data point _S7_Conn.OpState of the particular driver. The PLC switches automatically in redundant systems.

 

The default value is "No" / 0. (no automatic switch).

 

This config allows also to specify, in which intervals the state of the PLC is read, if the time from "Alive Interval" should not be used. Instead of "Y" / "N" in this case, an unsigned number in seconds (should be <=5 seconds and > "Alive Interval") can be defined in the config. If a cycle >0 was defined and the PLC supports automatic state detection, this will be started. If not, the state will be polled in the defined intervals. In each case the operating state of the PLC is read once for each connection to have the actual state.

 

The different states are:

0 STOP

1 START-UP

2 RUN

3 UNDEFINED

 

Redundant PLC

When using redundant PLCs (H-System), different states will be sent by the driver:

8 RUN SOLO (Only one PLC is running)

9 RUN REDU (Both PLCs are running)

10 CPU HALT

11 CONNECTING

12 UPDATING

reduModeTSPP

bool

0

0|1

Defines which TSPP telegrams are processed, when using redundant PLCs / Connections

  • 0 => Only telegrams from the active connection are used

  • 1 => Telegrams from all connections are used.

StatCheckInterval

unsigned

20

5 - 100

Interval [s] after which the DPE ".State" of the connection data point is updated.

setInvalidForConnLoss

uint

0

0 - 2

Using this config entry, the values sent by the driver can be set invalid when a connection loss occurs. Optional the timestamp can be set to the time of the connection loss.

Following options are available:

  • 0 => Invalid bit will not be set

  • 1 => Invalid bit will be set (and the timestamp will be changed)

  • 2 => Invalid bit will be set (without changing the timestamp)

TimeSyncUTC

string

"N"

"Y"|"N"

 

With the config entry TimeSyncUTC = "Y", the driver synchronizes the PLC using the UTC time. If the config entry is not used (or the entry is set to "No"), the driver synchronizes the PLC using the local time.

MaxTsppVcPerLoop

int

1000

-

Specifies the maximum value changes per driver cycle. If the value is exceeded, the next value changes are processed in the next driver cycle.

MaxTsppAnswerListSize

int

200

-

Specifies the maximum size of the TSPP answer list. If the value is exceeded, data is deleted and an error message is shown.

maxWriteBlockLen

int

0

0 - 240

Write requests can be sent as a block if the addresses are in consecutive order and there are no "holes". The default value of the entry is 0. This means that the requests are not sent as a block. To be sure that the consecutive addresses are sent as block, the corresponding data points must be set via  dpSet().

 

For example the writes of addresses

             DB10.DBW0

             DB10.DBB3

             DB10.DBX4.0

             DB10.DBX4.1

             DB10.DBX4.2

             DB10.DBX4.3

             DB10.DBX4.4

             DB10.DBX4.5

             DB10.DBX4.6

             DB10.DBX4.7

are sent as a block, because the addresses are in consecutive order (there is no hole). If e.g. the last bit is missing only the first 2 addresses are sent as block and the bits are sent individually, because the last byte is not full. The maximumWriteBlockLen depends on the used PLC type. If the value is below 240 bytes, you can be sure that the generated request is not split by the used S7 communication library.

UseConnections

int

2

1 - 3

When the first connection to the PLC is established, the driver does not try to establish any further connections. Via the config entry "UseConnections" the driver tries to establish further connections although the first connection is already established. The number of the connections depends on the number of the config entry. The default value is 2.

mpiDevice

string string int ""

-

mpiDevice = <serial interface> <pc address> <Baudrate>

 

The config entry defines the parameters for one serial interface/adapter. To communicate with a PLC, define the MPI device in the config file as follows:

 

mpiDevice = ”COM1” 15 38400.

In this case a Siemens adapter is connected to COM1 and 15 should be used as an MPI address for the adapter. The entry of the COM port in the configuration panel must match the device defined in the config file.

 

Note:

The MPI address and the PLC address must not equal! Set the MPI address of the adapter.

For example, if the MPI address of the PLC is "5" then it is not allowed to set the address of the adapter also to "5". So the following config entry is for this example not allowed:

mpiDevice = "COM1" 5 38400

pollGroupCyclicRead

string

""

-

Name of the poll group for cyclic reading (the S7 driver reads the required data after a defined cyclic time (e.g. 2 seconds) from the PLC).

This config entry can appear several times to specify several poll groups.

Example:

[s7]

pollGroupOnDataChange = "poll500ms"

pollGroupOnDataChange = "poll200ms"

pollGroupCyclicRead   = "poll2sec"

pollGroupOnDataChange

string

""

-

Name of the poll group for sending on data change (the PLC sends the requested data only if the corresponding values changed). The old/new comparison takes place in the PLC.

This config entry can appear several times to specify several poll groups.

Example:

[s7]

pollGroupOnDataChange = "poll500ms"

pollGroupOnDataChange = "poll200ms"

pollGroupCyclicRead   = "poll2sec"

The "reduPostfix" cannot be defined in the config file. It must have the fix value "_2".

 

page_top.gif

V 3.11 SP1

Copyright ETM professional control GmbH 2013 All Rights Reserved