<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.ibhsoftec.com/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Joscha</id>
	<title>IBHsoftec Wiki English - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ibhsoftec.com/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Joscha"/>
	<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=Special:Contributions/Joscha"/>
	<updated>2026-05-13T13:56:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBH_OPC_UA:Logo8_Configuration_with_IBH_OPC_Editor&amp;diff=1840</id>
		<title>IBH OPC UA:Logo8 Configuration with IBH OPC Editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBH_OPC_UA:Logo8_Configuration_with_IBH_OPC_Editor&amp;diff=1840"/>
		<updated>2016-04-06T14:05:43Z</updated>

		<summary type="html">&lt;p&gt;Joscha: /* Settings within the IBH OPC Editor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &#039;&#039;&#039;IBH OPC UA Server/Client&#039;&#039;&#039; with Siemens LOGO 8 ==&lt;br /&gt;
&lt;br /&gt;
The Siemens LOGO 8 is equipped with an ethernet port and supports S7 connections over ethernet. This permits to integrate the LOGO 8 into more comlex environments, as per example connecting it to MES, ERP and SAP systems and visualizations. Below the configuration for exchanging data with the LOGO 8 and the &#039;&#039;&#039;IBH OPC UA Server/Client&#039;&#039;&#039; is described.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Communication==&lt;br /&gt;
The communication with the LOGO 8 uses the ethernet protocol of the S7-200. Following variables can be read/written from/to the LOGO 8:&lt;br /&gt;
&lt;br /&gt;
* Order number&lt;br /&gt;
* Inputs&lt;br /&gt;
* Outputs&lt;br /&gt;
* Flags&lt;br /&gt;
* DB1, it&#039;s configuration is made with the LOGO! Soft Comfort software&lt;br /&gt;
&lt;br /&gt;
Reading the operational state of the PLC does not interfere with the communication, but does not deliver useable results.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Settings of the LOGO 8 over it&#039;s display ==&lt;br /&gt;
&lt;br /&gt;
First, the LOGO 8 must be accessible over the ethernet network. Then the IP addres can be set with the LOGO! Soft Comfort software. If neccessary, the IP address of the PC needs to be changed, to have LOGO 8 and PC in the same subnet. The current address of the LOGO 8 can be looked up in the display.&lt;br /&gt;
&lt;br /&gt;
* &amp;amp;quot;ESC&amp;amp;quot; opens the settings.&lt;br /&gt;
* Move down to &amp;amp;quot;Network..&amp;amp;quot;.&lt;br /&gt;
* &amp;amp;quot;OK&amp;amp;quot; - &amp;amp;quot;IP address&amp;amp;quot; is shown. &amp;amp;quot;OK&amp;amp;quot; The current address is displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Settings with the LOGO!Soft Comfort software ==&lt;br /&gt;
&lt;br /&gt;
In the LOGO!Soft Comfort software the IP address of the PLC must be set. This is made within &#039;&#039;&#039;LOGO!settings&#039;&#039;&#039; &#039;&#039;&#039;IP settings&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Image:Logo8_settings.png|745px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To read variables from the DB1, it must be created. With &amp;amp;quot;Tools - Parameter VM Mapping...&amp;amp;quot; the elements from the PLC programm can be arranged in the DB1.&lt;br /&gt;
&lt;br /&gt;
[[Image:Logo8_VM.png|498px]]&lt;br /&gt;
&lt;br /&gt;
It may happen, that the LOGO!Soft Comfort software must be restarted, before changes in the connection settings will be transferred to the PLC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Settings within the &#039;&#039;&#039;IBH OPC Editor&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
In the &#039;&#039;&#039;IBH OPC Editor&#039;&#039;&#039; the PLC type &#039;&#039;&#039;S7-200 TCP/IP&#039;&#039;&#039; must be selected.&lt;br /&gt;
&lt;br /&gt;
[[Image:Logo8_OPC_plc_properties.png|295px]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the TSAP settings for the TSAP PLC &#039;&#039;&#039;0200&#039;&#039;&#039; must be entered:&lt;br /&gt;
&lt;br /&gt;
[[Image:Logo8_OPC_plc_setting.png|436px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within the menu &#039;&#039;&#039;OPC Slots&#039;&#039;&#039; the &#039;&#039;&#039;OPC Editor File&#039;&#039;&#039; can be loaded:&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_Load_IBH_Editor_Project.png|803px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_Logo8_Load.png|793px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After the OPC Editor file was donwloaded successfully the Logo8 PLC and their variables are listed within the menu &#039;&#039;&#039;OPC Slots&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_Logo8_Slot.png|793px]]&lt;br /&gt;
&lt;br /&gt;
Possible variables are inputs, outputs, flags and the DB1. Any OPC UA client may now communicate with the &#039;&#039;&#039;IBH OPC UA Server/Client&#039;&#039;&#039; and read/write data from/to a LOGO 8 with ethernet port.&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_Logo8_Client.png|793px]]&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBH_OPC_UA:Integrated_S7_SoftPLC&amp;diff=1839</id>
		<title>IBH OPC UA:Integrated S7 SoftPLC</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBH_OPC_UA:Integrated_S7_SoftPLC&amp;diff=1839"/>
		<updated>2016-04-06T14:03:54Z</updated>

		<summary type="html">&lt;p&gt;Joscha: /* Block call instructions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The IBH OPC UA Server/Client additional contains a SoftPLC. The SoftPLC is able to read and write variables from the OPC UA server. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The integrated SoftPLC can be used for data preprocessing and supports the programming languages LAD, FBD, STL, SCL or S7-GRAPH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Overview.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Commissioning&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Activate the integrated SoftPLC ====&lt;br /&gt;
&lt;br /&gt;
First, the SoftPLC needs to be activated using the web interface:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Insert.png|798px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Define SoftPLC within PLC project ====&lt;br /&gt;
&lt;br /&gt;
Therefore on the defined slot of the PC station a SoftPLC must be added.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIMATIC Manager:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Insert_STEP7.png|576px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_S7_Configuration_STEP7.png|419px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TIA Portal:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Catalog_TIA.png|313px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Configuration_TIA.png|454px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A S7 connection between the SoftPLC and the OPC UA Server must be established:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIMATIC Manager:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_S7_Connection_STEP7.png|836px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TIA:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Server_Connections_TIA.png|1097px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The SoftPLC supports the programming languages LAD, FBD, STL, SCL or S7-GRAPH.&lt;br /&gt;
&lt;br /&gt;
=== SoftPLC Status and Settings ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;SoftPLC Status&#039;&#039;&#039; can be monitored on the web interface:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Status.png|791px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The performance of the SoftPLC can be adjusted:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! CPU Share PLC !! processing time (1000 mixed instructions)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 50%  || apx. 360 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 33% || apx. 550 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 25%  || apx. 720 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 20%  || apx. 900 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 12%  || apx. 1800 µs&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Furthermore, the status of the &#039;&#039;&#039;SoftPLC Connections&#039;&#039;&#039; is available.:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Connections.png|769px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Server Function ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A S7 connection between the SoftPLC and the OPC UA Server must be established::&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIMATIC Manager:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_S7_Connection_STEP7.png|836px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TIA:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Server_Connections_TIA.png|1261px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within the properties of the OPC Server at &amp;lt;&#039;&#039;&#039;General&#039;&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;&#039;S7&#039;&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;&#039;OPC tags&#039;&#039;&#039;&amp;gt; the OPC Tags can be selected:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Server_OPC_Variables.png|977px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now the configuration needs to be downloaded to the IBH OPC UA Server/Client:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Download_TIA.png|860px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The configuration is now completed and the tags from the &#039;&#039;&#039;SoftPLC&#039;&#039;&#039; within the IBH OPC UA Server/Client are available :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_OPC_Slot.png|527px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_UA_Client.png|1318px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Client Function ===&lt;br /&gt;
&lt;br /&gt;
==== Cyclic Read and Write ====&lt;br /&gt;
&lt;br /&gt;
The SoftPLC is able to read and write the OPC variables cyclically. &amp;lt;br/&amp;gt;The configuration will be done within the SFB 8 (USEND) and called during the warm start (OB100).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Parameter !! Declaration !! Data type !! Storage area !! description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| REQ || INPUT || BOOL || E, A, M, D, L || Not evaluated&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ID || INPUT ||WORD  ||M, D, Const. || Fixed value: 65400&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R_ID || INPUT || DWORD || E, A, M, D, L, Const. || Mode&amp;lt;br/&amp;gt;Low Word:&amp;lt;br/&amp;gt;0: Read(Variable as XML String)&amp;lt;br/&amp;gt;1: Write(Variable as XML String)&amp;lt;br/&amp;gt;2: Read(PLC Variable)&amp;lt;br/&amp;gt;3: Write(PLC Variable)&amp;lt;br/&amp;gt;4: Read(Special Variable)&amp;lt;br/&amp;gt;5: Write(Special Variable)&amp;lt;br/&amp;gt;6: Read(Server Variable)&amp;lt;br/&amp;gt;7: Write(Server Variable)&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;High Word:&amp;lt;br/&amp;gt;Sampling in milliseconds&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DONE || OUTPUT || BOOL || E, A, M, D, L || is not set&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ERROR || OUTPUT || BOOL || E, A, M, D, L ||ERROR=0:&amp;lt;br/&amp;gt;The parameters were passed correctly&amp;lt;br/&amp;gt;ERROR=1:&amp;lt;br/&amp;gt;The parameters were passed not correctly &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| STATUS || OUTPUT || WORD || E, A, M, D, L || is no set&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_1 || IN_OUT || ANY || D || Pointer to the OPC Variable. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_2 || IN_OUT || ANY || E, A, M, D || Pointer to the OPC Variable for the value of the OPC Variable. &amp;lt;br/&amp;gt;Allowed is Data Type BOOL, BYTE, CHAR, WORD, INT, DWORD, DINT, REAL, DATE, DATE_AND_TIME.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;:&amp;lt;br/&amp;gt;If the ANY pointer points to a DB, the DB must always be specified (f.i.: P# DB10.DBX5.0 Byte 0). &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_3 || IN_OUT || ANY || E, A, M, D || Pointer to the PLC Variable for the status of the Variable.&amp;lt;br/&amp;gt;Allowed is Data Type DWORD&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br/&amp;gt;If the ANY pointer points to a DB, the DB must always be specified (f.i.: P# DB10.DBX5.0 Byte 10).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_4 || IN_OUT || ANY || D || Pointer to the PLC Variable for the Time Stamp.&amp;lt;br/&amp;gt;Allowed is Data Type DATE_AND_TIME.&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br/&amp;gt;If the ANY pointer points to a DB, the DB must always be specified (f.i.: P# DB10.DBX5.0 Byte 10).&lt;br /&gt;
&lt;br /&gt;
|}&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The OPC Variables are defined as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mode 0 &#039;&#039;&#039;and&#039;&#039;&#039; 1: ´ns=&amp;lt;Namespace&amp;gt;;s=&amp;lt;Identifier&amp;gt;&#039;&#039;&#039;´&lt;br /&gt;
&lt;br /&gt;
::or: &#039;&#039;&#039;ns=&amp;lt;Namespace&amp;gt;;i=&amp;lt;Numeric Identifier&amp;gt;&#039;&#039;&#039;´&lt;br /&gt;
&lt;br /&gt;
::All OPC Variables can be read using this mode. The IBH OPC UA Server/Client knows the following Namespaces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Namespace !! Area&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 0 || General OPC Server Variables&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 1, 2, 3, 5 || No evaluable variables&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 4 || All PLC specific OPC variables&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 6 || IBH OPC UA Server/Client Special Variables&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mode 2 &#039;&#039;&#039;and&#039;&#039;&#039; 3: ´&amp;lt;Identifier&amp;gt;´&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::The identifier is formed as follows:&amp;lt;br/&amp;gt;&#039;&#039;&#039;&amp;lt;Station name&amp;gt;.&amp;lt;PLC Name&amp;gt;.&amp;lt;GlobalVars&amp;gt;.&amp;lt;Variable name from Variables table&amp;gt;&#039;&#039;&#039;&amp;lt;br/&amp;gt;or:&amp;lt;br/&amp;gt;&#039;&#039;&#039;&amp;lt;Station name&amp;gt;.&amp;lt;PLC Name&amp;gt;.&amp;lt;Programs&amp;gt;.&amp;lt;Data block name&amp;gt;.&amp;lt;Variable name&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mode 4 &#039;&#039;&#039;and&#039;&#039;&#039; 5: &amp;lt;Numeric Identifier&amp;gt;&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::Number of the Special Variable from Namespace 6.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Modus 6 &#039;&#039;&#039;and&#039;&#039;&#039; 7: &amp;lt;Numeric Identifier&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
::Number of the Server Variable from Namespace 0.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sample TIA Portal =====&lt;br /&gt;
&lt;br /&gt;
Create a function block for the client configuration:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Create_New_Block.png|688px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Config_Block.png|388px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The PLC Variable &#039;&#039;&#039;OutputVal&#039;&#039;&#039; will be written cyclically into the  OPC Variable &#039;&#039;&#039;S7-1500.S7-1500.GlobalVars.InputVal&#039;&#039;&#039;.&amp;lt;br/&amp;gt;The sampling rate is 16#00c8 or 200 milliseconds.&amp;lt;br/&amp;gt;The OPC Status is written in the same cycle as &#039;&#039;&#039;Output Val &#039;&#039;&#039; into the variable &#039;&#039;&#039;# Status_1 &#039;&#039;&#039; and the time stamp of the cycle into the variable &#039;&#039;&#039; # timestamp_1 &#039;&#039;&#039;.&amp;lt;br/&amp;gt;Now the configuration block must be called within OB100.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Server Bridge ====&lt;br /&gt;
&lt;br /&gt;
The basic procedure is described at [http://wiki.ibhsoftec.com/en/IBH_OPC_UA:Client_functions IBH OPC UA Client Functions].&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The server, between which a communication should be established, need to be defined. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First, the own server URL of the IBH OPC UA Server/Client is specified:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Discovery_Servers.png|1048px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Furthermore, the desired security level can be chosen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the variables of the SoftPLC can be selected for reading:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Select_Variables_To_Read.png|813px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and can be connected to a variable of another OPC UA Server:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Connect_Variables.png|764px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Instruction set===&lt;br /&gt;
&lt;br /&gt;
==== Bit logic instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Instruction !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| A ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| AND with a scan to &amp;quot;1&amp;quot;“&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| AN ||  || AND with a scan to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| O ||  || OR with scan to &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ON ||  || OR with scan to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| X ||  || Exclusive-OR with a scan to &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XN ||  || Exclusive-OR with a scan to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || I || of an input&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || Q || of an output&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || M || of a memory&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || L || of a local data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || T || of a timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || C || of a counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBX || of a data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIX || of an instant data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ==0 ||  || result equal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;0 ||  || result unequal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;0 ||  || result greater than zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=0 ||  || result greater or equal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;0 ||  || result less than zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=0 ||  || result less or equal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| UO ||  || invalid result&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OV ||  || overflow&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OS ||  || overflow (saving)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BR ||  || binary result&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other boolean logic instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| A( ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| AND left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| AN( ||  || AND NOT left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| O( ||  || OR left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ON( ||  || OR NOT left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| X( ||  || Exclusive OR left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XN( ||  || Exclusive OR NOT left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ) ||  || Right parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| O ||  || OR-ing AND operations &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NOT ||  || Negate RLO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SET ||  || Set RLO to &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CLR ||  || Set RLO to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SAVE ||  || Save RLO to the BR bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| = ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Assign value of RLO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| S ||  || Set&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R ||  || Reset&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FP ||  || Positive edge detection&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FN ||  || Negative edge detection&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || I || of an input bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || Q || of an output bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || M || of a memory bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || L || of a local data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBX || of a data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIX || of a instance data bit&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Master Control Relay ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| MCRA ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Activate MCR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MCRD ||  || Deactivate MCR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MCR( ||  || Open MCR zone&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| )MCR ||  || Close MCR zone&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Load / Transfer instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| L ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Load operand&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| T ||  || Transfer operand&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || IB || Input byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || IW || Input word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || ID || Input double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || QB || Output byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || QW || Output word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || QD || Output double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MB || Memory byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MW || Memory word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MD || Memory double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LB || Local data byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LW || Local data word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LD || Local data double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBB || Data block byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBW || Data block word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBD || Data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIB || Instance data block byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIW || Instance data block word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DID || Instance data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || STW || Status word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || const || Load constant value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || #Pointer || Load pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || T || Timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LC || T || Timer (BCD coded)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || Z || Counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LC || Z || Counter (BCD coded)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DBNO || Data block number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DBLG || Data block length&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DINO || Instance data block number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DILG || Instance data block length&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Peripheral access instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Peripheral access is not possible with the integrated SoftPLC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Accumulator instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| PUSH ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Push accumulators upwards&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| POP ||  || Push accumulators downwards&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ENT ||  || Push accumulators (without A1) A2-&amp;gt;A3, A3-&amp;gt;A4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LEAVE ||  || Push accumulators (without A1) A4-&amp;gt;A3, A3-&amp;gt;A2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAK ||  || Change ACCU1 with ACCU2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CAW ||  || Change ACCU1 bytes 0 and 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CAD ||  || Change ACCU1 bytes 0 and 3, 1 and 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Shift and rotating instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| SLW ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 23em&amp;quot;| Shift ACCU1-L left (word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SLD ||  || Shift ACCU1 left (double word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SRW ||  || Shift ACCU1-L right (word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SRD ||  || Shift ACCU1 right (double word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SSI ||  || Shift ACCU1-L right (word shift with sign)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SSD ||  || Shift ACCU1 right (double word shift with sign)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RLD ||  || Rotate ACCU1 left (double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RLDA ||  || Rotate ACCU1 left through CC1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RRDA ||  || Rotate ACCU1 right through CC1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RRD ||  || Rotate ACCU1 right (double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || const || Number of places to shift/rotate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || - || Number of places to shift/rotate located in ACCU2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Timer instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| SP ||style=&amp;quot;width: 5em&amp;quot;| T ||style=&amp;quot;width: 22em&amp;quot;| Start as impulse&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SE || T || Start as extended impulse&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD || T || Start as ON-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SS || T || Start as saving ON-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SF || T || Start as OFF-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R || T || Reset timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FR || T || Enable timer&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Counter instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| CU ||style=&amp;quot;width: 5em&amp;quot;| C ||style=&amp;quot;width: 22em&amp;quot;| Count up (increment)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CD || C || Count down (decrement)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| S || C || Set counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R || C || Reset counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FR || C || Enable counter&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Word instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| AW ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| AND ACCU1-L (AND word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| AD ||  || AND ACCU1 (AND double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OW ||  || OR ACCU1-L (OR word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OD ||  || OR ACCU1 (OR double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XOW ||  || Exclusive-OR ACCU (XOR word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XOD ||  || Exclusive-OR ACCU (XOR double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || const || with a word or double word constant&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || - || with ACCU2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Arithmetic instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| ==I ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Integer values equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;I ||  || Integer values unequal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;I ||  || Integer values greater&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=I ||  || Integer values greater or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;I ||  || Integer values less&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=I ||  || Integer values less or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ==D ||  || Double integer values equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;D ||  || Double integer values unequal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;D ||  || Double integer values greater&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=D ||  || Double integer values greater or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;D ||  || Double integer values less&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=D ||  || Double integer values less or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ==R ||  || Real values equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;R ||  || Real values unequal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;R ||  || Real values greater&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=R ||  || Real values greater or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;R ||  || Real values less&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=R ||  || Real values less or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SIN ||  || Sine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| COS ||  || Cosine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAN ||  || Tangent of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ASIN ||  || Arcsine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ACOS ||  || Arccosine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ATAN ||  || Arctangent of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SQR ||  || Square a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SQRT ||  || Square root a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| EXP ||  || e to the power of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LN ||  || Natural logarithm of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +I ||  || Integer addition&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| -I ||  || Integer subtraction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| *I ||  || Integer multiplication&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| /I ||  || Integer division&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +D ||  || Double-integer addition&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| -D ||  || Double-integer subtraction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| *D ||  || Double-integer multiplication&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| /D ||  || Double-integer division&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +R ||  || Real addition&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| -R ||  || Real subtraction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| *R ||  || Real multiplication&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| /R ||  || Real division&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MOD ||  || Double integer division (modulo)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| + || const || Add a constant&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +P# || const || Add a pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DEC ||  || decrement ACCU1-LL (one byte)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| INC ||  || increment ACCU1-LL (one byte)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Data type conversion instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| ITD ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Convert integer to double integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ITB ||  || Convert integer to BCD&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DTB ||  || Convert double integer to BCD&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DTR ||  || Convert double integer to real&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BTI ||  || Convert BCD to integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BTD ||  || Convert BCD to double integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RND ||  || Convert real to double integer (round)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RND+ ||  || Convert real to double integer (round up)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RND- ||  || Convert real to double integer (round down)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TRUNC ||  || Convert real to double integer (truncate)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| INVI ||  || Invert ACCU1-L (integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| INVD ||  || Invert ACCU1 (double integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NEGI ||  || Negate ACCU1-L (integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NEGD ||  || Negate ACCU1 (double integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NEGR ||  || Negate ACCU1 (real)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ABS ||  || Absolute value (real)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Jump instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| JU ||style=&amp;quot;width: 5em&amp;quot;| goal ||style=&amp;quot;width: 26em&amp;quot;| Jump unconditional&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JC || goal || Jump if RLO = 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JCB || goal || Jump if RLO = 1 (save RLO)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JCN || goal || Jump if RLO = 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JNB || goal || Jump if RLO = 0 (save RLO)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JBI || goal || Jump if BR = 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JNBI || goal || Jump if BR = 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JZ || goal || Jump if compare result = 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JN || goal || Jump if compare result != 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JP || goal || Jump if compare result &amp;gt; 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JPZ || goal || Jump if compare result &amp;gt;= 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JM || goal || Jump if compare result &amp;lt; 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JMZ || goal || Jump if compare result &amp;lt;= 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JUO || goal || Jump if compare result &amp;quot;Unordered Math Instruction&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JO || goal || Jump on overflow&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JOS || goal || Jump on saving overflow&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JL || goal || Jump distributor&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LOOP || goal || Loop programming (decrement ACCU1-L and jump if != 0&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Block call instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| CALL FB ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 26em&amp;quot;| Unconditional call of an FB with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CALL FC ||  || Unconditional call of an FC with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CALL SFB ||  || Unconditional call of an SFB with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CALL SFC ||  || Unconditional call of an SFC with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| UC FB ||  || Unconditional call of an FB without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CC FB ||  || Conditional call of an FB without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| UC FC ||  || Unconditional call of an FC without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CC FC ||  || Conditional call of an FC without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BEU ||  || End block unconditionally&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BEC ||  || End block conditionally (RLO = 1)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BE ||  || End block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OPN || DB || Open data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DI || Open instance data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TDB ||  || Exchange data block registers&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Indirect addressing instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| LAR1/LAR2 ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Load AR1/AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MD || with memory double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LD || with local data double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBD || with data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DID || with instance data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR1 || - || Load AR1 with ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR2 || - || Load AR2 with ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR1 || AR2 || Load AR1 with AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR1 || P# || Load AR1 with pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR2 || P# || Load AR2 with pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR1/TAR2 ||  || Transfer in AR1/AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MD || in memory double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LD || in local data double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBD || in data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DID || in instance data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR1 || - || Transfer AR1 in ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR2 || - || Transfer AR2 in ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR1 || AR2 || Transfer AR1 in AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR ||  || Swap AR1 with AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR1 ||  || Add ACCU1 to AR1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR2 ||  || Add ACCU1 to AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR1 || P# || Add pointer to AR1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR2 || P# || Add pointer to AR2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Program display and null operation instructions====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| NOP ||style=&amp;quot;width: 5em&amp;quot;| 0 ||style=&amp;quot;width: 22em&amp;quot;| Null operation instruction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NOP || 1 || Null operation instruction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BLD || const || Program display instruction (null operation)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integrated organisation blocks===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The organisation blocks, listed in the chart below, are executed, if they are programmed:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! OB no !! Short Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width:14em&amp;quot;| OB 1 ||style=&amp;quot;width:14em&amp;quot;| Main program&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 10 – OB 17 || Time alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 20 – OB 23 || Delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 30 – OB 38 || Time blocks (cyclic call)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 80 – OB 87 || Error blocks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 90 || Background execution&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 100/OB 101 || Warm or hot restart&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 121/OB 122 || Programming faults&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integrated system functions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All system functions (SFC) relevant for a Software PLC are integrated in &#039;&#039;S7-SoftPLC&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The chart below shows the available SFCs(in numeric listing)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! SFC no !! SF name !! Short Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width:7em&amp;quot;| SFC 0 ||style=&amp;quot;width:8em&amp;quot;| SET_CLK || Set system clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 1 || READ_CLK || Read system clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 6 || RD_SINFO || Read start information of actual OB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 20 || BLKMOV || Copy PLC-variable in target-area&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 21 || FILL || Preoccupy PLC-variable in target-area&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 22 || CREAT_DB || Create data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 23 || DEL_DB || Delete data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 24 || TEST_DB || Test attributes of a data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 25 || COMPRESS || Compress load memory&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 28 || SET_TINT || Set time alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 29 || CAN_TINT || Stop time alarm (do not execute)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 30 || ACT_TINT || Enable time alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 31 || QRY_TINT || Status of time alarm &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 32 || SRT_DINT || Start delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 33 || CAN_DINT || Stop delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 34 || QRY_DINT || Status query of delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 36 || MSK_FLT || Mask a synchron error occurrence&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 37 || DMSK_FLT || Demask a synchron error occurrence&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 38 || READ_ERR || Read out the occurrence status register&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 39 || DIS_IRT || Locking the asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 40 || EN_IRT || Enable the asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 41 || DIS_AIRT || Delay high-priority asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 42 || EN_AIRT || Enable high-priority asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 43 || RE_TRIGR || Retrigger the Watchdog&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 46 || STP || CPU operating state STOP&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 51 || RDSYST || Read out system status list (SSL)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 64 || TIME_TCK || Timer Tick&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 81 || UBLKMOV || Block Move, that can not be stopped&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integrated system blocks===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The system blocks (SFB) relevant for a software PLC are integrated in &#039;&#039;S7-SoftPLC&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following system function blocks are supported:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! SFB no !! SFB name !! Short Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width:7em&amp;quot;| SFB 0 ||style=&amp;quot;width:7em&amp;quot;| CTU || Count up&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 1 || CTD || Count down&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 2 || CTUD || Count up and down&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 3 || TP || Generate pulse&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 4 || TON || Generate ON-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 5 || TOF || Generate OFF-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 8 || USEND || OPC UA Client Configuration&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 32 || DRUM || Implement sequencer&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Technical Data===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Load memory ||5 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Main memory  || &amp;gt; 100 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Blocks || 16.384&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Flags (Bit)  || 131.072&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Timer  || 2048&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Counter  || 2048&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Digital I/O  || 32.768 Bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || processing times 1) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare PLC 50%  || apx. 360 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare PLC 33% || apx. 550 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare PLC 25%  || apx. 720 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare SPS 20%  || apx. 900 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare SPS 12%  || apx. 1800 µs&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) 1024 mixed instructions (50% Binär, 50% Digital)&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBH_Link_UA:Integrated_S7_SoftPLC&amp;diff=1838</id>
		<title>IBH Link UA:Integrated S7 SoftPLC</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBH_Link_UA:Integrated_S7_SoftPLC&amp;diff=1838"/>
		<updated>2016-04-06T14:00:20Z</updated>

		<summary type="html">&lt;p&gt;Joscha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The IBH Link UA additional contains a SoftPLC. The SoftPLC is able to read and write variables from the OPC UA server. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The integrated SoftPLC can be used for data preprocessing and supports the programming languages LAD, FBD, STL, SCL or S7-GRAPH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Overview.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Commissioning&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Activate the integrated SoftPLC ====&lt;br /&gt;
&lt;br /&gt;
First, the SoftPLC needs to be activated using the web interface:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Insert.png|798px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Define SoftPLC within PLC project ====&lt;br /&gt;
&lt;br /&gt;
Therefore on the defined slot of the PC station a SoftPLC must be added.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIMATIC Manager:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Insert_STEP7.png|576px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_S7_Configuration_STEP7.png|419px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TIA Portal:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Catalog_TIA.png|313px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Configuration_TIA.png|454px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A S7 connection between the SoftPLC and the OPC UA Server must be established:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIMATIC Manager:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_S7_Connection_STEP7.png|836px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TIA:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Server_Connections_TIA.png|1097px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The SoftPLC supports the programming languages LAD, FBD, STL, SCL or S7-GRAPH.&lt;br /&gt;
&lt;br /&gt;
=== SoftPLC Status and Settings ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;SoftPLC Status&#039;&#039;&#039; can be monitored on the web interface:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Status.png|791px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The performance of the SoftPLC can be adjusted:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! CPU Share PLC !! processing time (1000 mixed instructions)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 50%  || apx. 360 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 33% || apx. 550 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 25%  || apx. 720 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 20%  || apx. 900 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 12%  || apx. 1800 µs&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Furthermore, the status of the &#039;&#039;&#039;SoftPLC Connections&#039;&#039;&#039; is available.:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Connections.png|769px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Server Function ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A S7 connection between the SoftPLC and the OPC UA Server must be established::&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIMATIC Manager:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_S7_Connection_STEP7.png|836px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TIA:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Server_Connections_TIA.png|1261px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within the properties of the OPC Server at &amp;lt;&#039;&#039;&#039;General&#039;&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;&#039;S7&#039;&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;&#039;OPC tags&#039;&#039;&#039;&amp;gt; the OPC Tags can be selected:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Server_OPC_Variables.png|977px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now the configuration needs to be downloaded to the IBH Link UA:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Download_TIA.png|860px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The configuration is now completed and the tags from the &#039;&#039;&#039;SoftPLC&#039;&#039;&#039; within the IBH Link UA are available :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_OPC_Slot.png|527px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_UA_Client.png|1318px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Client Function ===&lt;br /&gt;
&lt;br /&gt;
==== Cyclic Read and Write ====&lt;br /&gt;
&lt;br /&gt;
The SoftPLC is able to read and write the OPC variables cyclically. &amp;lt;br/&amp;gt;The configuration will be done within the SFB 8 (USEND) and called during the warm start (OB100).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Parameter !! Declaration !! Data type !! Storage area !! description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| REQ || INPUT || BOOL || E, A, M, D, L || Not evaluated&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ID || INPUT ||WORD  ||M, D, Const. || Fixed value: 65400&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R_ID || INPUT || DWORD || E, A, M, D, L, Const. || Mode&amp;lt;br/&amp;gt;Low Word:&amp;lt;br/&amp;gt;0: Read(Variable as XML String)&amp;lt;br/&amp;gt;1: Write(Variable as XML String)&amp;lt;br/&amp;gt;2: Read(PLC Variable)&amp;lt;br/&amp;gt;3: Write(PLC Variable)&amp;lt;br/&amp;gt;4: Read(Special Variable)&amp;lt;br/&amp;gt;5: Write(Special Variable)&amp;lt;br/&amp;gt;6: Read(Server Variable)&amp;lt;br/&amp;gt;7: Write(Server Variable)&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;High Word:&amp;lt;br/&amp;gt;Sampling in milliseconds&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DONE || OUTPUT || BOOL || E, A, M, D, L || is not set&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ERROR || OUTPUT || BOOL || E, A, M, D, L ||ERROR=0:&amp;lt;br/&amp;gt;The parameters were passed correctly&amp;lt;br/&amp;gt;ERROR=1:&amp;lt;br/&amp;gt;The parameters were passed not correctly &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| STATUS || OUTPUT || WORD || E, A, M, D, L || is no set&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_1 || IN_OUT || ANY || D || Pointer to the OPC Variable. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_2 || IN_OUT || ANY || E, A, M, D || Pointer to the OPC Variable for the value of the OPC Variable. &amp;lt;br/&amp;gt;Allowed is Data Type BOOL, BYTE, CHAR, WORD, INT, DWORD, DINT, REAL, DATE, DATE_AND_TIME.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;:&amp;lt;br/&amp;gt;If the ANY pointer points to a DB, the DB must always be specified (f.i.: P# DB10.DBX5.0 Byte 0). &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_3 || IN_OUT || ANY || E, A, M, D || Pointer to the PLC Variable for the status of the Variable.&amp;lt;br/&amp;gt;Allowed is Data Type DWORD&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br/&amp;gt;If the ANY pointer points to a DB, the DB must always be specified (f.i.: P# DB10.DBX5.0 Byte 10).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_4 || IN_OUT || ANY || D || Pointer to the PLC Variable for the Time Stamp.&amp;lt;br/&amp;gt;Allowed is Data Type DATE_AND_TIME.&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br/&amp;gt;If the ANY pointer points to a DB, the DB must always be specified (f.i.: P# DB10.DBX5.0 Byte 10).&lt;br /&gt;
&lt;br /&gt;
|}&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The OPC Variables are defined as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mode 0 &#039;&#039;&#039;and&#039;&#039;&#039; 1: ´ns=&amp;lt;Namespace&amp;gt;;s=&amp;lt;Identifier&amp;gt;&#039;&#039;&#039;´&lt;br /&gt;
&lt;br /&gt;
::or: &#039;&#039;&#039;ns=&amp;lt;Namespace&amp;gt;;i=&amp;lt;Numeric Identifier&amp;gt;&#039;&#039;&#039;´&lt;br /&gt;
&lt;br /&gt;
::All OPC Variables can be read using this mode. The IBH Link UA knows the following Namespaces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Namespace !! Area&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 0 || General OPC Server Variables&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 1, 2, 3, 5 || No evaluable variables&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 4 || All PLC specific OPC variables&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 6 || IBH Link UA Special Variables&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mode 2 &#039;&#039;&#039;and&#039;&#039;&#039; 3: ´&amp;lt;Identifier&amp;gt;´&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::The identifier is formed as follows:&amp;lt;br/&amp;gt;&#039;&#039;&#039;&amp;lt;Station name&amp;gt;.&amp;lt;PLC Name&amp;gt;.&amp;lt;GlobalVars&amp;gt;.&amp;lt;Variable name from Variables table&amp;gt;&#039;&#039;&#039;&amp;lt;br/&amp;gt;or:&amp;lt;br/&amp;gt;&#039;&#039;&#039;&amp;lt;Station name&amp;gt;.&amp;lt;PLC Name&amp;gt;.&amp;lt;Programs&amp;gt;.&amp;lt;Data block name&amp;gt;.&amp;lt;Variable name&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mode 4 &#039;&#039;&#039;and&#039;&#039;&#039; 5: &amp;lt;Numeric Identifier&amp;gt;&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::Number of the Special Variable from Namespace 6.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Modus 6 &#039;&#039;&#039;and&#039;&#039;&#039; 7: &amp;lt;Numeric Identifier&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
::Number of the Server Variable from Namespace 0.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sample TIA Portal =====&lt;br /&gt;
&lt;br /&gt;
Create a function block for the client configuration:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Create_New_Block.png|688px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Config_Block.png|388px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The PLC Variable &#039;&#039;&#039;OutputVal&#039;&#039;&#039; will be written cyclically into the  OPC Variable &#039;&#039;&#039;S7-1500.S7-1500.GlobalVars.InputVal&#039;&#039;&#039;.&amp;lt;br/&amp;gt;The sampling rate is 16#00c8 or 200 milliseconds.&amp;lt;br/&amp;gt;The OPC Status is written in the same cycle as &#039;&#039;&#039;Output Val &#039;&#039;&#039; into the variable &#039;&#039;&#039;# Status_1 &#039;&#039;&#039; and the time stamp of the cycle into the variable &#039;&#039;&#039; # timestamp_1 &#039;&#039;&#039;.&amp;lt;br/&amp;gt;Now the configuration block must be called within OB100.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Server Bridge ====&lt;br /&gt;
&lt;br /&gt;
The basic procedure is described at [http://wiki.ibhsoftec.com/en/IBH_Link_UA:Client_functions IBH Link UA Client Functions].&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The server, between which a communication should be established, need to be defined. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First, the own server URL of the IBH Link UA is specified:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Discovery_Servers.png|1048px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Furthermore, the desired security level can be chosen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the variables of the SoftPLC can be selected for reading:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Select_Variables_To_Read.png|813px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and can be connected to a variable of another OPC UA Server:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Connect_Variables.png|764px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Instruction set===&lt;br /&gt;
&lt;br /&gt;
==== Bit logic instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Instruction !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| A ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| AND with a scan to &amp;quot;1&amp;quot;“&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| AN ||  || AND with a scan to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| O ||  || OR with scan to &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ON ||  || OR with scan to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| X ||  || Exclusive-OR with a scan to &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XN ||  || Exclusive-OR with a scan to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || I || of an input&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || Q || of an output&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || M || of a memory&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || L || of a local data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || T || of a timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || C || of a counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBX || of a data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIX || of an instant data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ==0 ||  || result equal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;0 ||  || result unequal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;0 ||  || result greater than zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=0 ||  || result greater or equal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;0 ||  || result less than zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=0 ||  || result less or equal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| UO ||  || invalid result&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OV ||  || overflow&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OS ||  || overflow (saving)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BR ||  || binary result&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other boolean logic instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| A( ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| AND left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| AN( ||  || AND NOT left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| O( ||  || OR left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ON( ||  || OR NOT left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| X( ||  || Exclusive OR left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XN( ||  || Exclusive OR NOT left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ) ||  || Right parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| O ||  || OR-ing AND operations &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NOT ||  || Negate RLO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SET ||  || Set RLO to &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CLR ||  || Set RLO to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SAVE ||  || Save RLO to the BR bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| = ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Assign value of RLO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| S ||  || Set&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R ||  || Reset&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FP ||  || Positive edge detection&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FN ||  || Negative edge detection&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || I || of an input bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || Q || of an output bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || M || of a memory bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || L || of a local data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBX || of a data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIX || of a instance data bit&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Master Control Relay ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| MCRA ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Activate MCR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MCRD ||  || Deactivate MCR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MCR( ||  || Open MCR zone&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| )MCR ||  || Close MCR zone&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Load / Transfer instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| L ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Load operand&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| T ||  || Transfer operand&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || IB || Input byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || IW || Input word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || ID || Input double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || QB || Output byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || QW || Output word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || QD || Output double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MB || Memory byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MW || Memory word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MD || Memory double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LB || Local data byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LW || Local data word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LD || Local data double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBB || Data block byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBW || Data block word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBD || Data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIB || Instance data block byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIW || Instance data block word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DID || Instance data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || STW || Status word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || const || Load constant value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || #Pointer || Load pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || T || Timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LC || T || Timer (BCD coded)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || Z || Counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LC || Z || Counter (BCD coded)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DBNO || Data block number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DBLG || Data block length&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DINO || Instance data block number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DILG || Instance data block length&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Peripheral access instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Peripheral access is not possible with the integrated SoftPLC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Accumulator instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| PUSH ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Push accumulators upwards&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| POP ||  || Push accumulators downwards&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ENT ||  || Push accumulators (without A1) A2-&amp;gt;A3, A3-&amp;gt;A4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LEAVE ||  || Push accumulators (without A1) A4-&amp;gt;A3, A3-&amp;gt;A2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAK ||  || Change ACCU1 with ACCU2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CAW ||  || Change ACCU1 bytes 0 and 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CAD ||  || Change ACCU1 bytes 0 and 3, 1 and 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Shift and rotating instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| SLW ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 23em&amp;quot;| Shift ACCU1-L left (word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SLD ||  || Shift ACCU1 left (double word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SRW ||  || Shift ACCU1-L right (word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SRD ||  || Shift ACCU1 right (double word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SSI ||  || Shift ACCU1-L right (word shift with sign)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SSD ||  || Shift ACCU1 right (double word shift with sign)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RLD ||  || Rotate ACCU1 left (double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RLDA ||  || Rotate ACCU1 left through CC1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RRDA ||  || Rotate ACCU1 right through CC1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RRD ||  || Rotate ACCU1 right (double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || const || Number of places to shift/rotate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || - || Number of places to shift/rotate located in ACCU2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Timer instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| SP ||style=&amp;quot;width: 5em&amp;quot;| T ||style=&amp;quot;width: 22em&amp;quot;| Start as impulse&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SE || T || Start as extended impulse&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD || T || Start as ON-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SS || T || Start as saving ON-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SF || T || Start as OFF-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R || T || Reset timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FR || T || Enable timer&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Counter instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| CU ||style=&amp;quot;width: 5em&amp;quot;| C ||style=&amp;quot;width: 22em&amp;quot;| Count up (increment)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CD || C || Count down (decrement)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| S || C || Set counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R || C || Reset counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FR || C || Enable counter&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Word instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| AW ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| AND ACCU1-L (AND word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| AD ||  || AND ACCU1 (AND double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OW ||  || OR ACCU1-L (OR word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OD ||  || OR ACCU1 (OR double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XOW ||  || Exclusive-OR ACCU (XOR word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XOD ||  || Exclusive-OR ACCU (XOR double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || const || with a word or double word constant&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || - || with ACCU2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Arithmetic instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| ==I ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Integer values equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;I ||  || Integer values unequal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;I ||  || Integer values greater&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=I ||  || Integer values greater or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;I ||  || Integer values less&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=I ||  || Integer values less or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ==D ||  || Double integer values equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;D ||  || Double integer values unequal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;D ||  || Double integer values greater&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=D ||  || Double integer values greater or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;D ||  || Double integer values less&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=D ||  || Double integer values less or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ==R ||  || Real values equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;R ||  || Real values unequal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;R ||  || Real values greater&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=R ||  || Real values greater or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;R ||  || Real values less&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=R ||  || Real values less or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SIN ||  || Sine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| COS ||  || Cosine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAN ||  || Tangent of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ASIN ||  || Arcsine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ACOS ||  || Arccosine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ATAN ||  || Arctangent of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SQR ||  || Square a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SQRT ||  || Square root a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| EXP ||  || e to the power of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LN ||  || Natural logarithm of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +I ||  || Integer addition&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| -I ||  || Integer subtraction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| *I ||  || Integer multiplication&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| /I ||  || Integer division&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +D ||  || Double-integer addition&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| -D ||  || Double-integer subtraction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| *D ||  || Double-integer multiplication&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| /D ||  || Double-integer division&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +R ||  || Real addition&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| -R ||  || Real subtraction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| *R ||  || Real multiplication&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| /R ||  || Real division&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MOD ||  || Double integer division (modulo)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| + || const || Add a constant&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +P# || const || Add a pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DEC ||  || decrement ACCU1-LL (one byte)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| INC ||  || increment ACCU1-LL (one byte)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Data type conversion instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| ITD ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Convert integer to double integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ITB ||  || Convert integer to BCD&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DTB ||  || Convert double integer to BCD&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DTR ||  || Convert double integer to real&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BTI ||  || Convert BCD to integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BTD ||  || Convert BCD to double integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RND ||  || Convert real to double integer (round)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RND+ ||  || Convert real to double integer (round up)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RND- ||  || Convert real to double integer (round down)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TRUNC ||  || Convert real to double integer (truncate)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| INVI ||  || Invert ACCU1-L (integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| INVD ||  || Invert ACCU1 (double integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NEGI ||  || Negate ACCU1-L (integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NEGD ||  || Negate ACCU1 (double integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NEGR ||  || Negate ACCU1 (real)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ABS ||  || Absolute value (real)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Jump instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| JU ||style=&amp;quot;width: 5em&amp;quot;| goal ||style=&amp;quot;width: 26em&amp;quot;| Jump unconditional&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JC || goal || Jump if RLO = 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JCB || goal || Jump if RLO = 1 (save RLO)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JCN || goal || Jump if RLO = 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JNB || goal || Jump if RLO = 0 (save RLO)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JBI || goal || Jump if BR = 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JNBI || goal || Jump if BR = 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JZ || goal || Jump if compare result = 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JN || goal || Jump if compare result != 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JP || goal || Jump if compare result &amp;gt; 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JPZ || goal || Jump if compare result &amp;gt;= 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JM || goal || Jump if compare result &amp;lt; 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JMZ || goal || Jump if compare result &amp;lt;= 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JUO || goal || Jump if compare result &amp;quot;Unordered Math Instruction&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JO || goal || Jump on overflow&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JOS || goal || Jump on saving overflow&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JL || goal || Jump distributor&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LOOP || goal || Loop programming (decrement ACCU1-L and jump if != 0&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Block call instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| CALL FB ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 26em&amp;quot;| Unconditional call of an FB with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CALL FC ||  || Unconditional call of an FC with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CALL SFB ||  || Unconditional call of an SFB with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CALL SFC ||  || Unconditional call of an SFC with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| UC FB ||  || Unconditional call of an FB without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CC FB ||  || Conditional call of an FB without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| UC FC ||  || Unconditional call of an FC without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CC FC ||  || Conditional call of an FC without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BEU ||  || End block unconditionally&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BEC ||  || End block conditionally (RLO = 1)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BE ||  || End block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OPN || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DB || Open data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DI || Open instance data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TDB ||  || Exchange data block registers&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Indirect addressing instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| LAR1/LAR2 ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Load AR1/AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MD || with memory double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LD || with local data double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBD || with data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DID || with instance data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR1 || - || Load AR1 with ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR2 || - || Load AR2 with ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR1 || AR2 || Load AR1 with AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR1 || P# || Load AR1 with pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR2 || P# || Load AR2 with pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR1/TAR2 ||  || Transfer in AR1/AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MD || in memory double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LD || in local data double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBD || in data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DID || in instance data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR1 || - || Transfer AR1 in ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR2 || - || Transfer AR2 in ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR1 || AR2 || Transfer AR1 in AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR ||  || Swap AR1 with AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR1 ||  || Add ACCU1 to AR1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR2 ||  || Add ACCU1 to AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR1 || P# || Add pointer to AR1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR2 || P# || Add pointer to AR2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Program display and null operation instructions====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| NOP ||style=&amp;quot;width: 5em&amp;quot;| 0 ||style=&amp;quot;width: 22em&amp;quot;| Null operation instruction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NOP || 1 || Null operation instruction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BLD || const || Program display instruction (null operation)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integrated organisation blocks===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The organisation blocks, listed in the chart below, are executed, if they are programmed:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! OB no !! Short Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width:14em&amp;quot;| OB 1 ||style=&amp;quot;width:14em&amp;quot;| Main program&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 10 – OB 17 || Time alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 20 – OB 23 || Delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 30 – OB 38 || Time blocks (cyclic call)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 80 – OB 87 || Error blocks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 90 || Background execution&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 100/OB 101 || Warm or hot restart&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 121/OB 122 || Programming faults&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integrated system functions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All system functions (SFC) relevant for a Software PLC are integrated in &#039;&#039;S7-SoftPLC&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The chart below shows the available SFCs(in numeric listing)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! SFC no !! SF name !! Short Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width:7em&amp;quot;| SFC 0 ||style=&amp;quot;width:8em&amp;quot;| SET_CLK || Set system clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 1 || READ_CLK || Read system clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 6 || RD_SINFO || Read start information of actual OB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 20 || BLKMOV || Copy PLC-variable in target-area&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 21 || FILL || Preoccupy PLC-variable in target-area&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 22 || CREAT_DB || Create data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 23 || DEL_DB || Delete data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 24 || TEST_DB || Test attributes of a data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 25 || COMPRESS || Compress load memory&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 28 || SET_TINT || Set time alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 29 || CAN_TINT || Stop time alarm (do not execute)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 30 || ACT_TINT || Enable time alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 31 || QRY_TINT || Status of time alarm &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 32 || SRT_DINT || Start delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 33 || CAN_DINT || Stop delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 34 || QRY_DINT || Status query of delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 36 || MSK_FLT || Mask a synchron error occurrence&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 37 || DMSK_FLT || Demask a synchron error occurrence&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 38 || READ_ERR || Read out the occurrence status register&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 39 || DIS_IRT || Locking the asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 40 || EN_IRT || Enable the asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 41 || DIS_AIRT || Delay high-priority asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 42 || EN_AIRT || Enable high-priority asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 43 || RE_TRIGR || Retrigger the Watchdog&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 46 || STP || CPU operating state STOP&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 51 || RDSYST || Read out system status list (SSL)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 64 || TIME_TCK || Timer Tick&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 81 || UBLKMOV || Block Move, that can not be stopped&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integrated system blocks===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The system blocks (SFB) relevant for a software PLC are integrated in &#039;&#039;S7-SoftPLC&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following system function blocks are supported:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! SFB no !! SFB name !! Short Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width:7em&amp;quot;| SFB 0 ||style=&amp;quot;width:7em&amp;quot;| CTU || Count up&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 1 || CTD || Count down&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 2 || CTUD || Count up and down&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 3 || TP || Generate pulse&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 4 || TON || Generate ON-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 5 || TOF || Generate OFF-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 8 || USEND || OPC UA Client Configuration&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 32 || DRUM || Implement sequencer&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Technical Data===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Load memory ||5 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Main memory  || &amp;gt; 100 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Blocks || 16.384&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Flags (Bit)  || 131.072&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Timer  || 2048&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Counter  || 2048&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Digital I/O  || 32.768 Bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || processing times 1) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare PLC 50%  || apx. 360 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare PLC 33% || apx. 550 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare PLC 25%  || apx. 720 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare SPS 20%  || apx. 900 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare SPS 12%  || apx. 1800 µs&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) 1024 mixed instructions (50% Binär, 50% Digital)&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBH_OPC_UA:Integrated_S7_SoftPLC&amp;diff=1837</id>
		<title>IBH OPC UA:Integrated S7 SoftPLC</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBH_OPC_UA:Integrated_S7_SoftPLC&amp;diff=1837"/>
		<updated>2016-04-06T13:59:22Z</updated>

		<summary type="html">&lt;p&gt;Joscha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The IBH OPC UA Server/Client additional contains a SoftPLC. The SoftPLC is able to read and write variables from the OPC UA server. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The integrated SoftPLC can be used for data preprocessing and supports the programming languages LAD, FBD, STL, SCL or S7-GRAPH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Overview.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Commissioning&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Activate the integrated SoftPLC ====&lt;br /&gt;
&lt;br /&gt;
First, the SoftPLC needs to be activated using the web interface:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Insert.png|798px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Define SoftPLC within PLC project ====&lt;br /&gt;
&lt;br /&gt;
Therefore on the defined slot of the PC station a SoftPLC must be added.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIMATIC Manager:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Insert_STEP7.png|576px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_S7_Configuration_STEP7.png|419px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TIA Portal:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Catalog_TIA.png|313px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Configuration_TIA.png|454px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A S7 connection between the SoftPLC and the OPC UA Server must be established:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIMATIC Manager:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_S7_Connection_STEP7.png|836px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TIA:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Server_Connections_TIA.png|1097px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The SoftPLC supports the programming languages LAD, FBD, STL, SCL or S7-GRAPH.&lt;br /&gt;
&lt;br /&gt;
=== SoftPLC Status and Settings ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;SoftPLC Status&#039;&#039;&#039; can be monitored on the web interface:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Status.png|791px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The performance of the SoftPLC can be adjusted:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! CPU Share PLC !! processing time (1000 mixed instructions)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 50%  || apx. 360 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 33% || apx. 550 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 25%  || apx. 720 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 20%  || apx. 900 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 12%  || apx. 1800 µs&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Furthermore, the status of the &#039;&#039;&#039;SoftPLC Connections&#039;&#039;&#039; is available.:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Connections.png|769px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Server Function ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A S7 connection between the SoftPLC and the OPC UA Server must be established::&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIMATIC Manager:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_S7_Connection_STEP7.png|836px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TIA:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Server_Connections_TIA.png|1261px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within the properties of the OPC Server at &amp;lt;&#039;&#039;&#039;General&#039;&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;&#039;S7&#039;&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;&#039;OPC tags&#039;&#039;&#039;&amp;gt; the OPC Tags can be selected:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Server_OPC_Variables.png|977px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now the configuration needs to be downloaded to the IBH OPC UA Server/Client:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Download_TIA.png|860px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The configuration is now completed and the tags from the &#039;&#039;&#039;SoftPLC&#039;&#039;&#039; within the IBH OPC UA Server/Client are available :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_OPC_Slot.png|527px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_UA_Client.png|1318px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Client Function ===&lt;br /&gt;
&lt;br /&gt;
==== Cyclic Read and Write ====&lt;br /&gt;
&lt;br /&gt;
The SoftPLC is able to read and write the OPC variables cyclically. &amp;lt;br/&amp;gt;The configuration will be done within the SFB 8 (USEND) and called during the warm start (OB100).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Parameter !! Declaration !! Data type !! Storage area !! description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| REQ || INPUT || BOOL || E, A, M, D, L || Not evaluated&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ID || INPUT ||WORD  ||M, D, Const. || Fixed value: 65400&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R_ID || INPUT || DWORD || E, A, M, D, L, Const. || Mode&amp;lt;br/&amp;gt;Low Word:&amp;lt;br/&amp;gt;0: Read(Variable as XML String)&amp;lt;br/&amp;gt;1: Write(Variable as XML String)&amp;lt;br/&amp;gt;2: Read(PLC Variable)&amp;lt;br/&amp;gt;3: Write(PLC Variable)&amp;lt;br/&amp;gt;4: Read(Special Variable)&amp;lt;br/&amp;gt;5: Write(Special Variable)&amp;lt;br/&amp;gt;6: Read(Server Variable)&amp;lt;br/&amp;gt;7: Write(Server Variable)&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;High Word:&amp;lt;br/&amp;gt;Sampling in milliseconds&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DONE || OUTPUT || BOOL || E, A, M, D, L || is not set&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ERROR || OUTPUT || BOOL || E, A, M, D, L ||ERROR=0:&amp;lt;br/&amp;gt;The parameters were passed correctly&amp;lt;br/&amp;gt;ERROR=1:&amp;lt;br/&amp;gt;The parameters were passed not correctly &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| STATUS || OUTPUT || WORD || E, A, M, D, L || is no set&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_1 || IN_OUT || ANY || D || Pointer to the OPC Variable. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_2 || IN_OUT || ANY || E, A, M, D || Pointer to the OPC Variable for the value of the OPC Variable. &amp;lt;br/&amp;gt;Allowed is Data Type BOOL, BYTE, CHAR, WORD, INT, DWORD, DINT, REAL, DATE, DATE_AND_TIME.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;:&amp;lt;br/&amp;gt;If the ANY pointer points to a DB, the DB must always be specified (f.i.: P# DB10.DBX5.0 Byte 0). &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_3 || IN_OUT || ANY || E, A, M, D || Pointer to the PLC Variable for the status of the Variable.&amp;lt;br/&amp;gt;Allowed is Data Type DWORD&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br/&amp;gt;If the ANY pointer points to a DB, the DB must always be specified (f.i.: P# DB10.DBX5.0 Byte 10).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_4 || IN_OUT || ANY || D || Pointer to the PLC Variable for the Time Stamp.&amp;lt;br/&amp;gt;Allowed is Data Type DATE_AND_TIME.&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br/&amp;gt;If the ANY pointer points to a DB, the DB must always be specified (f.i.: P# DB10.DBX5.0 Byte 10).&lt;br /&gt;
&lt;br /&gt;
|}&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The OPC Variables are defined as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mode 0 &#039;&#039;&#039;and&#039;&#039;&#039; 1: ´ns=&amp;lt;Namespace&amp;gt;;s=&amp;lt;Identifier&amp;gt;&#039;&#039;&#039;´&lt;br /&gt;
&lt;br /&gt;
::or: &#039;&#039;&#039;ns=&amp;lt;Namespace&amp;gt;;i=&amp;lt;Numeric Identifier&amp;gt;&#039;&#039;&#039;´&lt;br /&gt;
&lt;br /&gt;
::All OPC Variables can be read using this mode. The IBH OPC UA Server/Client knows the following Namespaces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Namespace !! Area&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 0 || General OPC Server Variables&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 1, 2, 3, 5 || No evaluable variables&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 4 || All PLC specific OPC variables&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 6 || IBH OPC UA Server/Client Special Variables&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mode 2 &#039;&#039;&#039;and&#039;&#039;&#039; 3: ´&amp;lt;Identifier&amp;gt;´&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::The identifier is formed as follows:&amp;lt;br/&amp;gt;&#039;&#039;&#039;&amp;lt;Station name&amp;gt;.&amp;lt;PLC Name&amp;gt;.&amp;lt;GlobalVars&amp;gt;.&amp;lt;Variable name from Variables table&amp;gt;&#039;&#039;&#039;&amp;lt;br/&amp;gt;or:&amp;lt;br/&amp;gt;&#039;&#039;&#039;&amp;lt;Station name&amp;gt;.&amp;lt;PLC Name&amp;gt;.&amp;lt;Programs&amp;gt;.&amp;lt;Data block name&amp;gt;.&amp;lt;Variable name&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mode 4 &#039;&#039;&#039;and&#039;&#039;&#039; 5: &amp;lt;Numeric Identifier&amp;gt;&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::Number of the Special Variable from Namespace 6.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Modus 6 &#039;&#039;&#039;and&#039;&#039;&#039; 7: &amp;lt;Numeric Identifier&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
::Number of the Server Variable from Namespace 0.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sample TIA Portal =====&lt;br /&gt;
&lt;br /&gt;
Create a function block for the client configuration:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Create_New_Block.png|688px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Config_Block.png|388px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The PLC Variable &#039;&#039;&#039;OutputVal&#039;&#039;&#039; will be written cyclically into the  OPC Variable &#039;&#039;&#039;S7-1500.S7-1500.GlobalVars.InputVal&#039;&#039;&#039;.&amp;lt;br/&amp;gt;The sampling rate is 16#00c8 or 200 milliseconds.&amp;lt;br/&amp;gt;The OPC Status is written in the same cycle as &#039;&#039;&#039;Output Val &#039;&#039;&#039; into the variable &#039;&#039;&#039;# Status_1 &#039;&#039;&#039; and the time stamp of the cycle into the variable &#039;&#039;&#039; # timestamp_1 &#039;&#039;&#039;.&amp;lt;br/&amp;gt;Now the configuration block must be called within OB100.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Server Bridge ====&lt;br /&gt;
&lt;br /&gt;
The basic procedure is described at [http://wiki.ibhsoftec.com/en/IBH_OPC_UA:Client_functions IBH OPC UA Client Functions].&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The server, between which a communication should be established, need to be defined. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First, the own server URL of the IBH OPC UA Server/Client is specified:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Discovery_Servers.png|1048px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Furthermore, the desired security level can be chosen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the variables of the SoftPLC can be selected for reading:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Select_Variables_To_Read.png|813px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and can be connected to a variable of another OPC UA Server:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Connect_Variables.png|764px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Instruction set===&lt;br /&gt;
&lt;br /&gt;
==== Bit logic instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Instruction !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| A ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| AND with a scan to &amp;quot;1&amp;quot;“&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| AN ||  || AND with a scan to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| O ||  || OR with scan to &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ON ||  || OR with scan to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| X ||  || Exclusive-OR with a scan to &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XN ||  || Exclusive-OR with a scan to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || I || of an input&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || Q || of an output&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || M || of a memory&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || L || of a local data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || T || of a timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || C || of a counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBX || of a data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIX || of an instant data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ==0 ||  || result equal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;0 ||  || result unequal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;0 ||  || result greater than zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=0 ||  || result greater or equal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;0 ||  || result less than zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=0 ||  || result less or equal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| UO ||  || invalid result&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OV ||  || overflow&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OS ||  || overflow (saving)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BR ||  || binary result&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other boolean logic instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| A( ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| AND left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| AN( ||  || AND NOT left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| O( ||  || OR left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ON( ||  || OR NOT left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| X( ||  || Exclusive OR left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XN( ||  || Exclusive OR NOT left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ) ||  || Right parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| O ||  || OR-ing AND operations &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NOT ||  || Negate RLO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SET ||  || Set RLO to &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CLR ||  || Set RLO to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SAVE ||  || Save RLO to the BR bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| = ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Assign value of RLO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| S ||  || Set&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R ||  || Reset&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FP ||  || Positive edge detection&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FN ||  || Negative edge detection&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || I || of an input bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || Q || of an output bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || M || of a memory bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || L || of a local data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBX || of a data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIX || of a instance data bit&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Master Control Relay ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| MCRA ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Activate MCR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MCRD ||  || Deactivate MCR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MCR( ||  || Open MCR zone&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| )MCR ||  || Close MCR zone&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Load / Transfer instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| L ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Load operand&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| T ||  || Transfer operand&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || IB || Input byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || IW || Input word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || ID || Input double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || QB || Output byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || QW || Output word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || QD || Output double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MB || Memory byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MW || Memory word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MD || Memory double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LB || Local data byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LW || Local data word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LD || Local data double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBB || Data block byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBW || Data block word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBD || Data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIB || Instance data block byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIW || Instance data block word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DID || Instance data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || STW || Status word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || const || Load constant value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || #Pointer || Load pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || T || Timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LC || T || Timer (BCD coded)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || Z || Counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LC || Z || Counter (BCD coded)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DBNO || Data block number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DBLG || Data block length&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DINO || Instance data block number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DILG || Instance data block length&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Peripheral access instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Peripheral access is not possible with the integrated SoftPLC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Accumulator instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| PUSH ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Push accumulators upwards&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| POP ||  || Push accumulators downwards&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ENT ||  || Push accumulators (without A1) A2-&amp;gt;A3, A3-&amp;gt;A4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LEAVE ||  || Push accumulators (without A1) A4-&amp;gt;A3, A3-&amp;gt;A2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAK ||  || Change ACCU1 with ACCU2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CAW ||  || Change ACCU1 bytes 0 and 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CAD ||  || Change ACCU1 bytes 0 and 3, 1 and 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Shift and rotating instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| SLW ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 23em&amp;quot;| Shift ACCU1-L left (word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SLD ||  || Shift ACCU1 left (double word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SRW ||  || Shift ACCU1-L right (word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SRD ||  || Shift ACCU1 right (double word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SSI ||  || Shift ACCU1-L right (word shift with sign)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SSD ||  || Shift ACCU1 right (double word shift with sign)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RLD ||  || Rotate ACCU1 left (double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RLDA ||  || Rotate ACCU1 left through CC1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RRDA ||  || Rotate ACCU1 right through CC1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RRD ||  || Rotate ACCU1 right (double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || const || Number of places to shift/rotate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || - || Number of places to shift/rotate located in ACCU2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Timer instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| SP ||style=&amp;quot;width: 5em&amp;quot;| T ||style=&amp;quot;width: 22em&amp;quot;| Start as impulse&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SE || T || Start as extended impulse&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD || T || Start as ON-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SS || T || Start as saving ON-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SF || T || Start as OFF-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R || T || Reset timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FR || T || Enable timer&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Counter instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| CU ||style=&amp;quot;width: 5em&amp;quot;| C ||style=&amp;quot;width: 22em&amp;quot;| Count up (increment)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CD || C || Count down (decrement)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| S || C || Set counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R || C || Reset counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FR || C || Enable counter&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Word instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| AW ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| AND ACCU1-L (AND word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| AD ||  || AND ACCU1 (AND double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OW ||  || OR ACCU1-L (OR word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OD ||  || OR ACCU1 (OR double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XOW ||  || Exclusive-OR ACCU (XOR word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XOD ||  || Exclusive-OR ACCU (XOR double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || const || with a word or double word constant&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || - || with ACCU2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Arithmetic instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| ==I ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Integer values equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;I ||  || Integer values unequal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;I ||  || Integer values greater&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=I ||  || Integer values greater or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;I ||  || Integer values less&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=I ||  || Integer values less or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ==D ||  || Double integer values equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;D ||  || Double integer values unequal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;D ||  || Double integer values greater&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=D ||  || Double integer values greater or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;D ||  || Double integer values less&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=D ||  || Double integer values less or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ==R ||  || Real values equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;R ||  || Real values unequal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;R ||  || Real values greater&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=R ||  || Real values greater or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;R ||  || Real values less&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=R ||  || Real values less or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SIN ||  || Sine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| COS ||  || Cosine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAN ||  || Tangent of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ASIN ||  || Arcsine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ACOS ||  || Arccosine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ATAN ||  || Arctangent of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SQR ||  || Square a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SQRT ||  || Square root a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| EXP ||  || e to the power of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LN ||  || Natural logarithm of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +I ||  || Integer addition&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| -I ||  || Integer subtraction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| *I ||  || Integer multiplication&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| /I ||  || Integer division&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +D ||  || Double-integer addition&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| -D ||  || Double-integer subtraction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| *D ||  || Double-integer multiplication&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| /D ||  || Double-integer division&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +R ||  || Real addition&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| -R ||  || Real subtraction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| *R ||  || Real multiplication&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| /R ||  || Real division&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MOD ||  || Double integer division (modulo)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| + || const || Add a constant&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +P# || const || Add a pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DEC ||  || decrement ACCU1-LL (one byte)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| INC ||  || increment ACCU1-LL (one byte)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Data type conversion instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| ITD ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Convert integer to double integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ITB ||  || Convert integer to BCD&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DTB ||  || Convert double integer to BCD&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DTR ||  || Convert double integer to real&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BTI ||  || Convert BCD to integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BTD ||  || Convert BCD to double integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RND ||  || Convert real to double integer (round)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RND+ ||  || Convert real to double integer (round up)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RND- ||  || Convert real to double integer (round down)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TRUNC ||  || Convert real to double integer (truncate)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| INVI ||  || Invert ACCU1-L (integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| INVD ||  || Invert ACCU1 (double integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NEGI ||  || Negate ACCU1-L (integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NEGD ||  || Negate ACCU1 (double integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NEGR ||  || Negate ACCU1 (real)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ABS ||  || Absolute value (real)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Jump instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| JU ||style=&amp;quot;width: 5em&amp;quot;| goal ||style=&amp;quot;width: 26em&amp;quot;| Jump unconditional&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JC || goal || Jump if RLO = 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JCB || goal || Jump if RLO = 1 (save RLO)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JCN || goal || Jump if RLO = 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JNB || goal || Jump if RLO = 0 (save RLO)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JBI || goal || Jump if BR = 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JNBI || goal || Jump if BR = 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JZ || goal || Jump if compare result = 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JN || goal || Jump if compare result != 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JP || goal || Jump if compare result &amp;gt; 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JPZ || goal || Jump if compare result &amp;gt;= 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JM || goal || Jump if compare result &amp;lt; 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JMZ || goal || Jump if compare result &amp;lt;= 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JUO || goal || Jump if compare result &amp;quot;Unordered Math Instruction&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JO || goal || Jump on overflow&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JOS || goal || Jump on saving overflow&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JL || goal || Jump distributor&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LOOP || goal || Loop programming (decrement ACCU1-L and jump if != 0&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Block call instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| CALL FB ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 26em&amp;quot;| Unconditional call of an FB with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CALL FC ||  || Unconditional call of an FC with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CALL SFB ||  || Unconditional call of an SFB with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CALL SFC ||  || Unconditional call of an SFC with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| UC FB ||  || Unconditional call of an FB without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CC FB ||  || Conditional call of an FB without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| UC FC ||  || Unconditional call of an FC without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CC FC ||  || Conditional call of an FC without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BEU ||  || End block unconditionally&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BEC ||  || End block conditionally (RLO = 1)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BE ||  || End block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OPN || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DB || Open data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DI || Open instance data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TDB ||  || Exchange data block registers&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Indirect addressing instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| LAR1/LAR2 ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Load AR1/AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MD || with memory double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LD || with local data double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBD || with data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DID || with instance data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR1 || - || Load AR1 with ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR2 || - || Load AR2 with ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR1 || AR2 || Load AR1 with AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR1 || P# || Load AR1 with pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR2 || P# || Load AR2 with pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR1/TAR2 ||  || Transfer in AR1/AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MD || in memory double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LD || in local data double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBD || in data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DID || in instance data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR1 || - || Transfer AR1 in ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR2 || - || Transfer AR2 in ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR1 || AR2 || Transfer AR1 in AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR ||  || Swap AR1 with AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR1 ||  || Add ACCU1 to AR1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR2 ||  || Add ACCU1 to AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR1 || P# || Add pointer to AR1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR2 || P# || Add pointer to AR2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Program display and null operation instructions====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| NOP ||style=&amp;quot;width: 5em&amp;quot;| 0 ||style=&amp;quot;width: 22em&amp;quot;| Null operation instruction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NOP || 1 || Null operation instruction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BLD || const || Program display instruction (null operation)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integrated organisation blocks===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The organisation blocks, listed in the chart below, are executed, if they are programmed:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! OB no !! Short Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width:14em&amp;quot;| OB 1 ||style=&amp;quot;width:14em&amp;quot;| Main program&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 10 – OB 17 || Time alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 20 – OB 23 || Delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 30 – OB 38 || Time blocks (cyclic call)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 80 – OB 87 || Error blocks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 90 || Background execution&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 100/OB 101 || Warm or hot restart&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 121/OB 122 || Programming faults&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integrated system functions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All system functions (SFC) relevant for a Software PLC are integrated in &#039;&#039;S7-SoftPLC&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The chart below shows the available SFCs(in numeric listing)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! SFC no !! SF name !! Short Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width:7em&amp;quot;| SFC 0 ||style=&amp;quot;width:8em&amp;quot;| SET_CLK || Set system clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 1 || READ_CLK || Read system clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 6 || RD_SINFO || Read start information of actual OB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 20 || BLKMOV || Copy PLC-variable in target-area&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 21 || FILL || Preoccupy PLC-variable in target-area&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 22 || CREAT_DB || Create data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 23 || DEL_DB || Delete data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 24 || TEST_DB || Test attributes of a data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 25 || COMPRESS || Compress load memory&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 28 || SET_TINT || Set time alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 29 || CAN_TINT || Stop time alarm (do not execute)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 30 || ACT_TINT || Enable time alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 31 || QRY_TINT || Status of time alarm &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 32 || SRT_DINT || Start delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 33 || CAN_DINT || Stop delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 34 || QRY_DINT || Status query of delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 36 || MSK_FLT || Mask a synchron error occurrence&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 37 || DMSK_FLT || Demask a synchron error occurrence&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 38 || READ_ERR || Read out the occurrence status register&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 39 || DIS_IRT || Locking the asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 40 || EN_IRT || Enable the asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 41 || DIS_AIRT || Delay high-priority asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 42 || EN_AIRT || Enable high-priority asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 43 || RE_TRIGR || Retrigger the Watchdog&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 46 || STP || CPU operating state STOP&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 51 || RDSYST || Read out system status list (SSL)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 64 || TIME_TCK || Timer Tick&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 81 || UBLKMOV || Block Move, that can not be stopped&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integrated system blocks===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The system blocks (SFB) relevant for a software PLC are integrated in &#039;&#039;S7-SoftPLC&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following system function blocks are supported:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! SFB no !! SFB name !! Short Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width:7em&amp;quot;| SFB 0 ||style=&amp;quot;width:7em&amp;quot;| CTU || Count up&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 1 || CTD || Count down&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 2 || CTUD || Count up and down&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 3 || TP || Generate pulse&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 4 || TON || Generate ON-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 5 || TOF || Generate OFF-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 8 || USEND || OPC UA Client Configuration&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 32 || DRUM || Implement sequencer&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Technical Data===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Load memory ||5 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Main memory  || &amp;gt; 100 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Blocks || 16.384&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Flags (Bit)  || 131.072&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Timer  || 2048&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Counter  || 2048&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Digital I/O  || 32.768 Bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || processing times 1) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare PLC 50%  || apx. 360 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare PLC 33% || apx. 550 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare PLC 25%  || apx. 720 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare SPS 20%  || apx. 900 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare SPS 12%  || apx. 1800 µs&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) 1024 mixed instructions (50% Binär, 50% Digital)&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBH_OPC_UA:Integrated_S7_SoftPLC&amp;diff=1836</id>
		<title>IBH OPC UA:Integrated S7 SoftPLC</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBH_OPC_UA:Integrated_S7_SoftPLC&amp;diff=1836"/>
		<updated>2016-04-06T13:56:45Z</updated>

		<summary type="html">&lt;p&gt;Joscha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The IBH OPC UA Server/Client additional contains a SoftPLC. The SoftPLC is able to read and write variables from the OPC UA server. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The integrated SoftPLC can be used for data preprocessing and supports the programming languages LAD, FBD, STL, SCL or S7-GRAPH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Overview.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Commissioning&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Activate the integrated SoftPLC ====&lt;br /&gt;
&lt;br /&gt;
First, the SoftPLC needs to be activated using the web interface:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Insert.png|798px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Define SoftPLC within PLC project ====&lt;br /&gt;
&lt;br /&gt;
Therefore on the defined slot of the PC station a SoftPLC must be added.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIMATIC Manager:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Insert_STEP7.png|576px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_S7_Configuration_STEP7.png|419px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TIA Portal:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Catalog_TIA.png|313px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Configuration_TIA.png|454px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A S7 connection between the SoftPLC and the OPC UA Server must be established:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIMATIC Manager:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_S7_Connection_STEP7.png|836px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TIA:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Server_Connections_TIA.png|1097px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The SoftPLC supports the programming languages LAD, FBD, STL, SCL or S7-GRAPH.&lt;br /&gt;
&lt;br /&gt;
=== SoftPLC Status and Settings ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;SoftPLC Status&#039;&#039;&#039; can be monitored on the web interface:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Status.png|791px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The performance of the SoftPLC can be adjusted:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! CPU Share PLC !! processing time (1000 mixed instructions)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 50%  || apx. 360 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 33% || apx. 550 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 25%  || apx. 720 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 20%  || apx. 900 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 12%  || apx. 1800 µs&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Furthermore, the status of the &#039;&#039;&#039;SoftPLC Connections&#039;&#039;&#039; is available.:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Connections.png|769px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Server Function ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A S7 connection between the SoftPLC and the OPC UA Server must be established::&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIMATIC Manager:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_S7_Connection_STEP7.png|836px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TIA:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Server_Connections_TIA.png|1261px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within the properties of the OPC Server at &amp;lt;&#039;&#039;&#039;General&#039;&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;&#039;S7&#039;&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;&#039;OPC tags&#039;&#039;&#039;&amp;gt; the OPC Tags can be selected:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Server_OPC_Variables.png|977px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now the configuration needs to be downloaded to the IBH OPC UA Server/Client:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Download_TIA.png|860px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The configuration is now completed and the tags from the &#039;&#039;&#039;SoftPLC&#039;&#039;&#039; within the IBH OPC UA Server/Client are available :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_OPC_Slot.png|527px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_UA_Client.png|1318px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Client Function ===&lt;br /&gt;
&lt;br /&gt;
==== Cyclic Read and Write ====&lt;br /&gt;
&lt;br /&gt;
The SoftPLC is able to read and write the OPC variables cyclically. &amp;lt;br/&amp;gt;The configuration will be done within the SFB 8 (USEND) and called during the warm start (OB100).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Parameter !! Declaration !! Data type !! Storage area !! description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| REQ || INPUT || BOOL || E, A, M, D, L || Not evaluated&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ID || INPUT ||WORD  ||M, D, Const. || Fixed value: 65400&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R_ID || INPUT || DWORD || E, A, M, D, L, Const. || Mode&amp;lt;br/&amp;gt;Low Word:&amp;lt;br/&amp;gt;0: Read(Variable as XML String)&amp;lt;br/&amp;gt;1: Write(Variable as XML String)&amp;lt;br/&amp;gt;2: Read(PLC Variable)&amp;lt;br/&amp;gt;3: Write(PLC Variable)&amp;lt;br/&amp;gt;4: Read(Special Variable)&amp;lt;br/&amp;gt;5: Write(Special Variable)&amp;lt;br/&amp;gt;6: Read(Server Variable)&amp;lt;br/&amp;gt;7: Write(Server Variable)&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;High Word:&amp;lt;br/&amp;gt;Sampling in milliseconds&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DONE || OUTPUT || BOOL || E, A, M, D, L || is not set&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ERROR || OUTPUT || BOOL || E, A, M, D, L ||ERROR=0:&amp;lt;br/&amp;gt;The parameters were passed correctly&amp;lt;br/&amp;gt;ERROR=1:&amp;lt;br/&amp;gt;The parameters were passed not correctly &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| STATUS || OUTPUT || WORD || E, A, M, D, L || is no set&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_1 || IN_OUT || ANY || D || Pointer to the OPC Variable. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_2 || IN_OUT || ANY || E, A, M, D || Pointer to the OPC Variable for the value of the OPC Variable. &amp;lt;br/&amp;gt;Allowed is Data Type BOOL, BYTE, CHAR, WORD, INT, DWORD, DINT, REAL, DATE, DATE_AND_TIME.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;:&amp;lt;br/&amp;gt;If the ANY pointer points to a DB, the DB must always be specified (f.i.: P# DB10.DBX5.0 Byte 0). &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_3 || IN_OUT || ANY || E, A, M, D || Pointer to the PLC Variable for the status of the Variable.&amp;lt;br/&amp;gt;Allowed is Data Type DWORD&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br/&amp;gt;If the ANY pointer points to a DB, the DB must always be specified (f.i.: P# DB10.DBX5.0 Byte 10).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_4 || IN_OUT || ANY || D || Pointer to the PLC Variable for the Time Stamp.&amp;lt;br/&amp;gt;Allowed is Data Type DATE_AND_TIME.&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br/&amp;gt;If the ANY pointer points to a DB, the DB must always be specified (f.i.: P# DB10.DBX5.0 Byte 10).&lt;br /&gt;
&lt;br /&gt;
|}&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The OPC Variables are defined as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mode 0 &#039;&#039;&#039;and&#039;&#039;&#039; 1: ´ns=&amp;lt;Namespace&amp;gt;;s=&amp;lt;Identifier&amp;gt;&#039;&#039;&#039;´&lt;br /&gt;
&lt;br /&gt;
::or: &#039;&#039;&#039;ns=&amp;lt;Namespace&amp;gt;;i=&amp;lt;Numeric Identifier&amp;gt;&#039;&#039;&#039;´&lt;br /&gt;
&lt;br /&gt;
::All OPC Variables can be read using this mode. The IBH OPC UA Server/Client knows the following Namespaces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Namespace !! Area&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 0 || General OPC Server Variables&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 1, 2, 3, 5 || No evaluable variables&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 4 || All PLC specific OPC variables&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 6 || IBH OPC UA Server/Client Special Variables&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mode 2 &#039;&#039;&#039;and&#039;&#039;&#039; 3: ´&amp;lt;Identifier&amp;gt;´&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::The identifier is formed as follows:&amp;lt;br/&amp;gt;&#039;&#039;&#039;&amp;lt;Station name&amp;gt;.&amp;lt;PLC Name&amp;gt;.&amp;lt;GlobalVars&amp;gt;.&amp;lt;Variable name from Variables table&amp;gt;&#039;&#039;&#039;&amp;lt;br/&amp;gt;or:&amp;lt;br/&amp;gt;&#039;&#039;&#039;&amp;lt;Station name&amp;gt;.&amp;lt;PLC Name&amp;gt;.&amp;lt;Programs&amp;gt;.&amp;lt;Data block name&amp;gt;.&amp;lt;Variable name&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mode 4 &#039;&#039;&#039;and&#039;&#039;&#039; 5: &amp;lt;Numeric Identifier&amp;gt;&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::Number of the Special Variable from Namespace 6.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Modus 6 &#039;&#039;&#039;and&#039;&#039;&#039; 7: &amp;lt;Numeric Identifier&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
::Number of the Server Variable from Namespace 0.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sample TIA Portal =====&lt;br /&gt;
&lt;br /&gt;
Create a function block for the client configuration:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Create_New_Block.png|688px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Config_Block.png|388px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The PLC Variable &#039;&#039;&#039;OutputVal&#039;&#039;&#039; will be written cyclically into the  OPC Variable &#039;&#039;&#039;S7-1500.S7-1500.GlobalVars.InputVal&#039;&#039;&#039;.&amp;lt;br/&amp;gt;The sampling rate is 16#00c8 or 200 milliseconds.&amp;lt;br/&amp;gt;The OPC Status is written in the same cycle as &#039;&#039;&#039;Output Val &#039;&#039;&#039; into the variable &#039;&#039;&#039;# Status_1 &#039;&#039;&#039; and the time stamp of the cycle into the variable &#039;&#039;&#039; # timestamp_1 &#039;&#039;&#039;.&amp;lt;br/&amp;gt;Now the configuration block must be called within OB100.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Server Bridge ====&lt;br /&gt;
&lt;br /&gt;
The basic procedure is described at [http://wiki.ibhsoftec.com/en/IBH_OPC_UA:Client_functions IBH OPC UA Client Functions].&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The server, between which a communication should be established, need to be defined. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First, the own server URL of the IBH OPC UA Server/Client is specified:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Discovery_Servers.png|1048px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Furthermore, the desired security level can be chosen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the variables of the SoftPLC can be selected for reading:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Select_Variables_To_Read.png|813px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and can be connected to a variable of another OPC UA Server:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Connect_Variables.png|764px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Instruction set===&lt;br /&gt;
&lt;br /&gt;
==== Bit logic instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Instruction !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| A ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| AND with a scan to &amp;quot;1&amp;quot;“&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| AN ||  || AND with a scan to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| O ||  || OR with scan to &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ON ||  || OR with scan to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| X ||  || Exclusive-OR with a scan to &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XN ||  || Exclusive-OR with a scan to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || I || of an input&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || Q || of an output&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || M || of a memory&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || L || of a local data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || T || of a timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || C || of a counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBX || of a data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIX || of an instant data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ==0 ||  || result equal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;0 ||  || result unequal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;0 ||  || result greater than zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=0 ||  || result greater or equal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;0 ||  || result less than zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=0 ||  || result less or equal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| UO ||  || invalid result&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OV ||  || overflow&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OS ||  || overflow (saving)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BR ||  || binary result&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other boolean logic instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| A( ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| AND left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| AN( ||  || AND NOT left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| O( ||  || OR left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ON( ||  || OR NOT left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| X( ||  || Exclusive OR left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XN( ||  || Exclusive OR NOT left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ) ||  || Right parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| O ||  || OR-ing AND operations &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NOT ||  || Negate RLO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SET ||  || Set RLO to &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CLR ||  || Set RLO to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SAVE ||  || Save RLO to the BR bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| = ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Assign value of RLO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| S ||  || Set&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R ||  || Reset&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FP ||  || Positive edge detection&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FN ||  || Negative edge detection&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || I || of an input bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || Q || of an output bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || M || of a memory bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || L || of a local data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBX || of a data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIX || of a instance data bit&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Master Control Relay ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| MCRA ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Activate MCR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MCRD ||  || Deactivate MCR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MCR( ||  || Open MCR zone&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| )MCR ||  || Close MCR zone&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Load / Transfer instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| L ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Load operand&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| T ||  || Transfer operand&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || IB || Input byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || IW || Input word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || ID || Input double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || QB || Output byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || QW || Output word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || QD || Output double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MB || Memory byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MW || Memory word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MD || Memory double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LB || Local data byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LW || Local data word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LD || Local data double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBB || Data block byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBW || Data block word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBD || Data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIB || Instance data block byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIW || Instance data block word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DID || Instance data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || STW || Status word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || const || Load constant value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || #Pointer || Load pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || T || Timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LC || T || Timer (BCD coded)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || Z || Counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LC || Z || Counter (BCD coded)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DBNO || Data block number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DBLG || Data block length&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DINO || Instance data block number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DILG || Instance data block length&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Peripheral access instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Peripheral access is not possible with the integrated SoftPLC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Accumulator instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| PUSH ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Push accumulators upwards&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| POP ||  || Push accumulators downwards&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ENT ||  || Push accumulators (without A1) A2-&amp;gt;A3, A3-&amp;gt;A4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LEAVE ||  || Push accumulators (without A1) A4-&amp;gt;A3, A3-&amp;gt;A2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAK ||  || Change ACCU1 with ACCU2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CAW ||  || Change ACCU1 bytes 0 and 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CAD ||  || Change ACCU1 bytes 0 and 3, 1 and 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Shift and rotating instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| SLW ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 23em&amp;quot;| Shift ACCU1-L left (word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SLD ||  || Shift ACCU1 left (double word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SRW ||  || Shift ACCU1-L right (word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SRD ||  || Shift ACCU1 right (double word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SSI ||  || Shift ACCU1-L right (word shift with sign)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SSD ||  || Shift ACCU1 right (double word shift with sign)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RLD ||  || Rotate ACCU1 left (double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RLDA ||  || Rotate ACCU1 left through CC1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RRDA ||  || Rotate ACCU1 right through CC1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RRD ||  || Rotate ACCU1 right (double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || const || Number of places to shift/rotate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || - || Number of places to shift/rotate located in ACCU2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Timer instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| SP ||style=&amp;quot;width: 5em&amp;quot;| T ||style=&amp;quot;width: 22em&amp;quot;| Start as impulse&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SE || T || Start as extended impulse&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD || T || Start as ON-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SS || T || Start as saving ON-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SF || T || Start as OFF-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R || T || Reset timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FR || T || Enable timer&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Counter instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| CU ||style=&amp;quot;width: 5em&amp;quot;| C ||style=&amp;quot;width: 22em&amp;quot;| Count up (increment)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CD || C || Count down (decrement)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| S || C || Set counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R || C || Reset counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FR || C || Enable counter&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Word instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| AW ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| AND ACCU1-L (AND word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| AD ||  || AND ACCU1 (AND double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OW ||  || OR ACCU1-L (OR word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OD ||  || OR ACCU1 (OR double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XOW ||  || Exclusive-OR ACCU (XOR word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XOD ||  || Exclusive-OR ACCU (XOR double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || const || with a word or double word constant&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || - || with ACCU2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Arithmetic instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| ==I ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Integer values equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;I ||  || Integer values unequal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;I ||  || Integer values greater&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=I ||  || Integer values greater or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;I ||  || Integer values less&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=I ||  || Integer values less or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ==D ||  || Double integer values equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;D ||  || Double integer values unequal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;D ||  || Double integer values greater&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=D ||  || Double integer values greater or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;D ||  || Double integer values less&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=D ||  || Double integer values less or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ==R ||  || Real values equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;R ||  || Real values unequal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;R ||  || Real values greater&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=R ||  || Real values greater or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;R ||  || Real values less&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=R ||  || Real values less or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SIN ||  || Sine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| COS ||  || Cosine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAN ||  || Tangent of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ASIN ||  || Arcsine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ACOS ||  || Arccosine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ATAN ||  || Arctangent of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SQR ||  || Square a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SQRT ||  || Square root a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| EXP ||  || e to the power of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LN ||  || Natural logarithm of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +I ||  || Integer addition&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| -I ||  || Integer subtraction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| *I ||  || Integer multiplication&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| /I ||  || Integer division&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +D ||  || Double-integer addition&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| -D ||  || Double-integer subtraction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| *D ||  || Double-integer multiplication&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| /D ||  || Double-integer division&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +R ||  || Real addition&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| -R ||  || Real subtraction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| *R ||  || Real multiplication&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| /R ||  || Real division&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MOD ||  || Double integer division (modulo)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| + || const || Add a constant&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +P# || const || Add a pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DEC ||  || decrement ACCU1-LL (one byte)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| INC ||  || increment ACCU1-LL (one byte)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Data type conversion instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| ITD ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Convert integer to double integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ITB ||  || Convert integer to BCD&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DTB ||  || Convert double integer to BCD&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DTR ||  || Convert double integer to real&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BTI ||  || Convert BCD to integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BTD ||  || Convert BCD to double integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RND ||  || Convert real to double integer (round)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RND+ ||  || Convert real to double integer (round up)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RND- ||  || Convert real to double integer (round down)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TRUNC ||  || Convert real to double integer (truncate)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| INVI ||  || Invert ACCU1-L (integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| INVD ||  || Invert ACCU1 (double integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NEGI ||  || Negate ACCU1-L (integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NEGD ||  || Negate ACCU1 (double integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NEGR ||  || Negate ACCU1 (real)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ABS ||  || Absolute value (real)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Jump instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| JU ||style=&amp;quot;width: 5em&amp;quot;| goal ||style=&amp;quot;width: 26em&amp;quot;| Jump unconditional&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JC || goal || Jump if RLO = 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JCB || goal || Jump if RLO = 1 (save RLO)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JCN || goal || Jump if RLO = 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JNB || goal || Jump if RLO = 0 (save RLO)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JBI || goal || Jump if BR = 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JNBI || goal || Jump if BR = 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JZ || goal || Jump if compare result = 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JN || goal || Jump if compare result != 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JP || goal || Jump if compare result &amp;gt; 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JPZ || goal || Jump if compare result &amp;gt;= 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JM || goal || Jump if compare result &amp;lt; 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JMZ || goal || Jump if compare result &amp;lt;= 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JUO || goal || Jump if compare result &amp;quot;Unordered Math Instruction&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JO || goal || Jump on overflow&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JOS || goal || Jump on saving overflow&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JL || goal || Jump distributor&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LOOP || goal || Loop programming (decrement ACCU1-L and jump if != 0&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Block call instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| CALL FB ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 26em&amp;quot;| Unconditional call of an FB with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CALL FC ||  || Unconditional call of an FC with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CALL SFB ||  || Unconditional call of an SFB with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CALL SFC ||  || Unconditional call of an SFC with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| UC FB ||  || Unconditional call of an FB without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CC FB ||  || Conditional call of an FB without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| UC FC ||  || Unconditional call of an FC without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CC FC ||  || Conditional call of an FC without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BEU ||  || End block unconditionally&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BEC ||  || End block conditionally (RLO = 1)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BE ||  || End block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OPN || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DB || Open data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DI || Open instance data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TDB ||  || Exchange data block registers&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Indirect addressing instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| LAR1/LAR2 ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Load AR1/AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MD || with memory double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LD || with local data double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBD || with data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DID || with instance data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR1 || - || Load AR1 with ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR2 || - || Load AR2 with ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR1 || AR2 || Load AR1 with AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR1 || P# || Load AR1 with pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR2 || P# || Load AR2 with pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR1/TAR2 ||  || Transfer in AR1/AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MD || in memory double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LD || in local data double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBD || in data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DID || in instance data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR1 || - || Transfer AR1 in ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR2 || - || Transfer AR2 in ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR1 || AR2 || Transfer AR1 in AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR ||  || Swap AR1 with AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR1 ||  || Add ACCU1 to AR1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR2 ||  || Add ACCU1 to AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR1 || P# || Add pointer to AR1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR2 || P# || Add pointer to AR2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Program display and null operation instructions====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| NOP ||style=&amp;quot;width: 5em&amp;quot;| 0 ||style=&amp;quot;width: 22em&amp;quot;| Null operation instruction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NOP || 1 || Null operation instruction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BLD || const || Program display instruction (null operation)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integrated organisation blocks===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The organisation blocks, listed in the chart below, are executed, if they are programmed:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! OB no !! Short Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width:14em&amp;quot;| OB 1 ||style=&amp;quot;width:14em&amp;quot;| Main program&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 10 – OB 17 || Time alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 20 – OB 23 || Delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 30 – OB 38 || Time blocks (cyclic call)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 80 – OB 87 || Error blocks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 90 || Background execution&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 100/OB 101 || Warm or hot restart&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 121/OB 122 || Programming faults&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integrated system functions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All system functions (SFC) relevant for a Software PLC are integrated in &#039;&#039;S7-SoftPLC&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The chart below shows the available SFCs(in numeric listing)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! SFC no !! SF name !! Short Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width:7em&amp;quot;| SFC 0 ||style=&amp;quot;width:8em&amp;quot;| SET_CLK || Set system clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 1 || READ_CLK || Read system clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 20 || BLKMOV || Copy PLC-variable in target-area&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 21 || FILL || Preoccupy PLC-variable in target-area&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 22 || CREAT_DB || Create data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 23 || DEL_DB || Delete data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 24 || TEST_DB || Test attributes of a data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 25 || COMPRESS || Compress load memory&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 28 || SET_TINT || Set time alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 29 || CAN_TINT || Stop time alarm (do not execute)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 30 || ACT_TINT || Enable time alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 31 || QRY_TINT || Status of time alarm &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 32 || SRT_DINT || Start delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 33 || CAN_DINT || Stop delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 34 || QRY_DINT || Status query of delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 36 || MSK_FLT || Mask a synchron error occurrence&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 37 || DMSK_FLT || Demask a synchron error occurrence&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 38 || READ_ERR || Read out the occurrence status register&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 39 || DIS_IRT || Locking the asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 40 || EN_IRT || Enable the asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 41 || DIS_AIRT || Delay high-priority asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 42 || EN_AIRT || Enable high-priority asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 43 || RE_TRIGR || Retrigger the Watchdog&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 46 || STP || CPU operating state STOP&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 51 || RDSYST || Read out system status list (SSL)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 64 || TIME_TCK || Timer Tick&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 81 || UBLKMOV || Block Move, that can not be stopped&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integrated system blocks===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The system blocks (SFB) relevant for a software PLC are integrated in &#039;&#039;S7-SoftPLC&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following system function blocks are supported:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! SFB no !! SFB name !! Short Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width:7em&amp;quot;| SFB 0 ||style=&amp;quot;width:7em&amp;quot;| CTU || Count up&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 1 || CTD || Count down&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 2 || CTUD || Count up and down&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 3 || TP || Generate pulse&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 4 || TON || Generate ON-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 5 || TOF || Generate OFF-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 8 || USEND || OPC UA Client Configuration&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 32 || DRUM || Implement sequencer&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Technical Data===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Load memory ||5 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Main memory  || &amp;gt; 100 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Blocks || 16.384&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Flags (Bit)  || 131.072&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Timer  || 2048&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Counter  || 2048&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Digital I/O  || 32.768 Bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || processing times 1) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare PLC 50%  || apx. 360 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare PLC 33% || apx. 550 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare PLC 25%  || apx. 720 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare SPS 20%  || apx. 900 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare SPS 12%  || apx. 1800 µs&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) 1024 mixed instructions (50% Binär, 50% Digital)&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBH_Link_UA:Integrated_S7_SoftPLC&amp;diff=1835</id>
		<title>IBH Link UA:Integrated S7 SoftPLC</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBH_Link_UA:Integrated_S7_SoftPLC&amp;diff=1835"/>
		<updated>2016-04-06T13:55:44Z</updated>

		<summary type="html">&lt;p&gt;Joscha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The IBH Link UA additional contains a SoftPLC. The SoftPLC is able to read and write variables from the OPC UA server. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The integrated SoftPLC can be used for data preprocessing and supports the programming languages LAD, FBD, STL, SCL or S7-GRAPH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Overview.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Commissioning&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Activate the integrated SoftPLC ====&lt;br /&gt;
&lt;br /&gt;
First, the SoftPLC needs to be activated using the web interface:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Insert.png|798px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Define SoftPLC within PLC project ====&lt;br /&gt;
&lt;br /&gt;
Therefore on the defined slot of the PC station a SoftPLC must be added.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIMATIC Manager:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Insert_STEP7.png|576px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_S7_Configuration_STEP7.png|419px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TIA Portal:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Catalog_TIA.png|313px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Configuration_TIA.png|454px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A S7 connection between the SoftPLC and the OPC UA Server must be established:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIMATIC Manager:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_S7_Connection_STEP7.png|836px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TIA:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Server_Connections_TIA.png|1097px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The SoftPLC supports the programming languages LAD, FBD, STL, SCL or S7-GRAPH.&lt;br /&gt;
&lt;br /&gt;
=== SoftPLC Status and Settings ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;SoftPLC Status&#039;&#039;&#039; can be monitored on the web interface:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Status.png|791px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The performance of the SoftPLC can be adjusted:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! CPU Share PLC !! processing time (1000 mixed instructions)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 50%  || apx. 360 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 33% || apx. 550 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 25%  || apx. 720 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 20%  || apx. 900 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 12%  || apx. 1800 µs&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Furthermore, the status of the &#039;&#039;&#039;SoftPLC Connections&#039;&#039;&#039; is available.:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Connections.png|769px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Server Function ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A S7 connection between the SoftPLC and the OPC UA Server must be established::&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SIMATIC Manager:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_S7_Connection_STEP7.png|836px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TIA:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Server_Connections_TIA.png|1261px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within the properties of the OPC Server at &amp;lt;&#039;&#039;&#039;General&#039;&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;&#039;S7&#039;&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;&#039;OPC tags&#039;&#039;&#039;&amp;gt; the OPC Tags can be selected:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Server_OPC_Variables.png|977px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now the configuration needs to be downloaded to the IBH Link UA:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Download_TIA.png|860px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The configuration is now completed and the tags from the &#039;&#039;&#039;SoftPLC&#039;&#039;&#039; within the IBH Link UA are available :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_OPC_Slot.png|527px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_UA_Client.png|1318px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Client Function ===&lt;br /&gt;
&lt;br /&gt;
==== Cyclic Read and Write ====&lt;br /&gt;
&lt;br /&gt;
The SoftPLC is able to read and write the OPC variables cyclically. &amp;lt;br/&amp;gt;The configuration will be done within the SFB 8 (USEND) and called during the warm start (OB100).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Parameter !! Declaration !! Data type !! Storage area !! description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| REQ || INPUT || BOOL || E, A, M, D, L || Not evaluated&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ID || INPUT ||WORD  ||M, D, Const. || Fixed value: 65400&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R_ID || INPUT || DWORD || E, A, M, D, L, Const. || Mode&amp;lt;br/&amp;gt;Low Word:&amp;lt;br/&amp;gt;0: Read(Variable as XML String)&amp;lt;br/&amp;gt;1: Write(Variable as XML String)&amp;lt;br/&amp;gt;2: Read(PLC Variable)&amp;lt;br/&amp;gt;3: Write(PLC Variable)&amp;lt;br/&amp;gt;4: Read(Special Variable)&amp;lt;br/&amp;gt;5: Write(Special Variable)&amp;lt;br/&amp;gt;6: Read(Server Variable)&amp;lt;br/&amp;gt;7: Write(Server Variable)&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;High Word:&amp;lt;br/&amp;gt;Sampling in milliseconds&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DONE || OUTPUT || BOOL || E, A, M, D, L || is not set&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ERROR || OUTPUT || BOOL || E, A, M, D, L ||ERROR=0:&amp;lt;br/&amp;gt;The parameters were passed correctly&amp;lt;br/&amp;gt;ERROR=1:&amp;lt;br/&amp;gt;The parameters were passed not correctly &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| STATUS || OUTPUT || WORD || E, A, M, D, L || is no set&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_1 || IN_OUT || ANY || D || Pointer to the OPC Variable. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_2 || IN_OUT || ANY || E, A, M, D || Pointer to the OPC Variable for the value of the OPC Variable. &amp;lt;br/&amp;gt;Allowed is Data Type BOOL, BYTE, CHAR, WORD, INT, DWORD, DINT, REAL, DATE, DATE_AND_TIME.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;:&amp;lt;br/&amp;gt;If the ANY pointer points to a DB, the DB must always be specified (f.i.: P# DB10.DBX5.0 Byte 0). &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_3 || IN_OUT || ANY || E, A, M, D || Pointer to the PLC Variable for the status of the Variable.&amp;lt;br/&amp;gt;Allowed is Data Type DWORD&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br/&amp;gt;If the ANY pointer points to a DB, the DB must always be specified (f.i.: P# DB10.DBX5.0 Byte 10).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD_4 || IN_OUT || ANY || D || Pointer to the PLC Variable for the Time Stamp.&amp;lt;br/&amp;gt;Allowed is Data Type DATE_AND_TIME.&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;lt;br/&amp;gt;If the ANY pointer points to a DB, the DB must always be specified (f.i.: P# DB10.DBX5.0 Byte 10).&lt;br /&gt;
&lt;br /&gt;
|}&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The OPC Variables are defined as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mode 0 &#039;&#039;&#039;and&#039;&#039;&#039; 1: ´ns=&amp;lt;Namespace&amp;gt;;s=&amp;lt;Identifier&amp;gt;&#039;&#039;&#039;´&lt;br /&gt;
&lt;br /&gt;
::or: &#039;&#039;&#039;ns=&amp;lt;Namespace&amp;gt;;i=&amp;lt;Numeric Identifier&amp;gt;&#039;&#039;&#039;´&lt;br /&gt;
&lt;br /&gt;
::All OPC Variables can be read using this mode. The IBH Link UA knows the following Namespaces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Namespace !! Area&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 0 || General OPC Server Variables&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 1, 2, 3, 5 || No evaluable variables&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 4 || All PLC specific OPC variables&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 6 || IBH Link UA Special Variables&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mode 2 &#039;&#039;&#039;and&#039;&#039;&#039; 3: ´&amp;lt;Identifier&amp;gt;´&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::The identifier is formed as follows:&amp;lt;br/&amp;gt;&#039;&#039;&#039;&amp;lt;Station name&amp;gt;.&amp;lt;PLC Name&amp;gt;.&amp;lt;GlobalVars&amp;gt;.&amp;lt;Variable name from Variables table&amp;gt;&#039;&#039;&#039;&amp;lt;br/&amp;gt;or:&amp;lt;br/&amp;gt;&#039;&#039;&#039;&amp;lt;Station name&amp;gt;.&amp;lt;PLC Name&amp;gt;.&amp;lt;Programs&amp;gt;.&amp;lt;Data block name&amp;gt;.&amp;lt;Variable name&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mode 4 &#039;&#039;&#039;and&#039;&#039;&#039; 5: &amp;lt;Numeric Identifier&amp;gt;&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::Number of the Special Variable from Namespace 6.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Modus 6 &#039;&#039;&#039;and&#039;&#039;&#039; 7: &amp;lt;Numeric Identifier&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
::Number of the Server Variable from Namespace 0.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Sample TIA Portal =====&lt;br /&gt;
&lt;br /&gt;
Create a function block for the client configuration:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Create_New_Block.png|688px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Config_Block.png|388px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The PLC Variable &#039;&#039;&#039;OutputVal&#039;&#039;&#039; will be written cyclically into the  OPC Variable &#039;&#039;&#039;S7-1500.S7-1500.GlobalVars.InputVal&#039;&#039;&#039;.&amp;lt;br/&amp;gt;The sampling rate is 16#00c8 or 200 milliseconds.&amp;lt;br/&amp;gt;The OPC Status is written in the same cycle as &#039;&#039;&#039;Output Val &#039;&#039;&#039; into the variable &#039;&#039;&#039;# Status_1 &#039;&#039;&#039; and the time stamp of the cycle into the variable &#039;&#039;&#039; # timestamp_1 &#039;&#039;&#039;.&amp;lt;br/&amp;gt;Now the configuration block must be called within OB100.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Server Bridge ====&lt;br /&gt;
&lt;br /&gt;
The basic procedure is described at [http://wiki.ibhsoftec.com/en/IBH_Link_UA:Client_functions IBH Link UA Client Functions].&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The server, between which a communication should be established, need to be defined. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First, the own server URL of the IBH Link UA is specified:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Discovery_Servers.png|1048px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Furthermore, the desired security level can be chosen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the variables of the SoftPLC can be selected for reading:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Select_Variables_To_Read.png|813px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and can be connected to a variable of another OPC UA Server:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_SoftPLC_Connect_Variables.png|764px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Instruction set===&lt;br /&gt;
&lt;br /&gt;
==== Bit logic instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Instruction !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| A ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| AND with a scan to &amp;quot;1&amp;quot;“&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| AN ||  || AND with a scan to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| O ||  || OR with scan to &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ON ||  || OR with scan to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| X ||  || Exclusive-OR with a scan to &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XN ||  || Exclusive-OR with a scan to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || I || of an input&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || Q || of an output&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || M || of a memory&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || L || of a local data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || T || of a timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || C || of a counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBX || of a data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIX || of an instant data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ==0 ||  || result equal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;0 ||  || result unequal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;0 ||  || result greater than zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=0 ||  || result greater or equal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;0 ||  || result less than zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=0 ||  || result less or equal zero&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| UO ||  || invalid result&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OV ||  || overflow&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OS ||  || overflow (saving)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BR ||  || binary result&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other boolean logic instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| A( ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| AND left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| AN( ||  || AND NOT left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| O( ||  || OR left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ON( ||  || OR NOT left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| X( ||  || Exclusive OR left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XN( ||  || Exclusive OR NOT left parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ) ||  || Right parenthesis&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| O ||  || OR-ing AND operations &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NOT ||  || Negate RLO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SET ||  || Set RLO to &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CLR ||  || Set RLO to &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SAVE ||  || Save RLO to the BR bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| = ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Assign value of RLO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| S ||  || Set&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R ||  || Reset&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FP ||  || Positive edge detection&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FN ||  || Negative edge detection&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || I || of an input bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || Q || of an output bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || M || of a memory bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || L || of a local data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBX || of a data bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIX || of a instance data bit&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Master Control Relay ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| MCRA ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Activate MCR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MCRD ||  || Deactivate MCR&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MCR( ||  || Open MCR zone&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| )MCR ||  || Close MCR zone&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Load / Transfer instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| L ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Load operand&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| T ||  || Transfer operand&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || IB || Input byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || IW || Input word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || ID || Input double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || QB || Output byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || QW || Output word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || QD || Output double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MB || Memory byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MW || Memory word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MD || Memory double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LB || Local data byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LW || Local data word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LD || Local data double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBB || Data block byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBW || Data block word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBD || Data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIB || Instance data block byte&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DIW || Instance data block word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DID || Instance data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || STW || Status word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || const || Load constant value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || #Pointer || Load pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || T || Timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LC || T || Timer (BCD coded)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || Z || Counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LC || Z || Counter (BCD coded)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DBNO || Data block number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DBLG || Data block length&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DINO || Instance data block number&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| L || DILG || Instance data block length&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Peripheral access instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Peripheral access is not possible with the integrated SoftPLC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Accumulator instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| PUSH ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Push accumulators upwards&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| POP ||  || Push accumulators downwards&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ENT ||  || Push accumulators (without A1) A2-&amp;gt;A3, A3-&amp;gt;A4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LEAVE ||  || Push accumulators (without A1) A4-&amp;gt;A3, A3-&amp;gt;A2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAK ||  || Change ACCU1 with ACCU2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CAW ||  || Change ACCU1 bytes 0 and 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CAD ||  || Change ACCU1 bytes 0 and 3, 1 and 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Shift and rotating instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| SLW ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 23em&amp;quot;| Shift ACCU1-L left (word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SLD ||  || Shift ACCU1 left (double word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SRW ||  || Shift ACCU1-L right (word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SRD ||  || Shift ACCU1 right (double word shift)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SSI ||  || Shift ACCU1-L right (word shift with sign)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SSD ||  || Shift ACCU1 right (double word shift with sign)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RLD ||  || Rotate ACCU1 left (double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RLDA ||  || Rotate ACCU1 left through CC1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RRDA ||  || Rotate ACCU1 right through CC1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RRD ||  || Rotate ACCU1 right (double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || const || Number of places to shift/rotate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || - || Number of places to shift/rotate located in ACCU2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Timer instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| SP ||style=&amp;quot;width: 5em&amp;quot;| T ||style=&amp;quot;width: 22em&amp;quot;| Start as impulse&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SE || T || Start as extended impulse&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SD || T || Start as ON-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SS || T || Start as saving ON-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SF || T || Start as OFF-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R || T || Reset timer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FR || T || Enable timer&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Counter instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| CU ||style=&amp;quot;width: 5em&amp;quot;| C ||style=&amp;quot;width: 22em&amp;quot;| Count up (increment)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CD || C || Count down (decrement)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| S || C || Set counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| R || C || Reset counter&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| FR || C || Enable counter&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Word instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| AW ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| AND ACCU1-L (AND word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| AD ||  || AND ACCU1 (AND double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OW ||  || OR ACCU1-L (OR word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OD ||  || OR ACCU1 (OR double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XOW ||  || Exclusive-OR ACCU (XOR word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| XOD ||  || Exclusive-OR ACCU (XOR double word)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || const || with a word or double word constant&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || - || with ACCU2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Arithmetic instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| ==I ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Integer values equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;I ||  || Integer values unequal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;I ||  || Integer values greater&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=I ||  || Integer values greater or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;I ||  || Integer values less&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=I ||  || Integer values less or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ==D ||  || Double integer values equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;D ||  || Double integer values unequal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;D ||  || Double integer values greater&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=D ||  || Double integer values greater or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;D ||  || Double integer values less&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=D ||  || Double integer values less or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ==R ||  || Real values equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;&amp;gt;R ||  || Real values unequal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;R ||  || Real values greater&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;gt;=R ||  || Real values greater or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;R ||  || Real values less&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;lt;=R ||  || Real values less or equal&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SIN ||  || Sine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| COS ||  || Cosine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAN ||  || Tangent of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ASIN ||  || Arcsine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ACOS ||  || Arccosine of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ATAN ||  || Arctangent of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SQR ||  || Square a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SQRT ||  || Square root a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| EXP ||  || e to the power of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LN ||  || Natural logarithm of a real value&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +I ||  || Integer addition&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| -I ||  || Integer subtraction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| *I ||  || Integer multiplication&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| /I ||  || Integer division&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +D ||  || Double-integer addition&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| -D ||  || Double-integer subtraction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| *D ||  || Double-integer multiplication&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| /D ||  || Double-integer division&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +R ||  || Real addition&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| -R ||  || Real subtraction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| *R ||  || Real multiplication&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| /R ||  || Real division&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| MOD ||  || Double integer division (modulo)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| + || const || Add a constant&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +P# || const || Add a pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DEC ||  || decrement ACCU1-LL (one byte)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| INC ||  || increment ACCU1-LL (one byte)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Data type conversion instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| ITD ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Convert integer to double integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ITB ||  || Convert integer to BCD&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DTB ||  || Convert double integer to BCD&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| DTR ||  || Convert double integer to real&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BTI ||  || Convert BCD to integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BTD ||  || Convert BCD to double integer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RND ||  || Convert real to double integer (round)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RND+ ||  || Convert real to double integer (round up)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| RND- ||  || Convert real to double integer (round down)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TRUNC ||  || Convert real to double integer (truncate)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| INVI ||  || Invert ACCU1-L (integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| INVD ||  || Invert ACCU1 (double integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NEGI ||  || Negate ACCU1-L (integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NEGD ||  || Negate ACCU1 (double integer)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NEGR ||  || Negate ACCU1 (real)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ABS ||  || Absolute value (real)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Jump instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| JU ||style=&amp;quot;width: 5em&amp;quot;| goal ||style=&amp;quot;width: 26em&amp;quot;| Jump unconditional&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JC || goal || Jump if RLO = 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JCB || goal || Jump if RLO = 1 (save RLO)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JCN || goal || Jump if RLO = 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JNB || goal || Jump if RLO = 0 (save RLO)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JBI || goal || Jump if BR = 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JNBI || goal || Jump if BR = 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JZ || goal || Jump if compare result = 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JN || goal || Jump if compare result != 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JP || goal || Jump if compare result &amp;gt; 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JPZ || goal || Jump if compare result &amp;gt;= 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JM || goal || Jump if compare result &amp;lt; 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JMZ || goal || Jump if compare result &amp;lt;= 0&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JUO || goal || Jump if compare result &amp;quot;Unordered Math Instruction&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JO || goal || Jump on overflow&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JOS || goal || Jump on saving overflow&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| JL || goal || Jump distributor&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LOOP || goal || Loop programming (decrement ACCU1-L and jump if != 0&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Block call instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| CALL FB ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 26em&amp;quot;| Unconditional call of an FB with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CALL FC ||  || Unconditional call of an FC with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CALL SFB ||  || Unconditional call of an SFB with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CALL SFC ||  || Unconditional call of an SFC with parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| UC FB ||  || Unconditional call of an FB without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CC FB ||  || Conditional call of an FB without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| UC FC ||  || Unconditional call of an FC without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CC FC ||  || Conditional call of an FC without parameter transfer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BEU ||  || End block unconditionally&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BEC ||  || End block conditionally (RLO = 1)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BE ||  || End block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OPN || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DB || Open data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DI || Open instance data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TDB ||  || Exchange data block registers&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Indirect addressing instructions ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| LAR1/LAR2 ||style=&amp;quot;width: 5em&amp;quot;|  ||style=&amp;quot;width: 22em&amp;quot;| Load AR1/AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MD || with memory double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LD || with local data double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBD || with data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DID || with instance data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR1 || - || Load AR1 with ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR2 || - || Load AR2 with ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR1 || AR2 || Load AR1 with AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR1 || P# || Load AR1 with pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| LAR2 || P# || Load AR2 with pointer&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR1/TAR2 ||  || Transfer in AR1/AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || MD || in memory double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || LD || in local data double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DBD || in data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || DID || in instance data block double word&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR1 || - || Transfer AR1 in ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR2 || - || Transfer AR2 in ACCU1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR1 || AR2 || Transfer AR1 in AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| TAR ||  || Swap AR1 with AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR1 ||  || Add ACCU1 to AR1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR2 ||  || Add ACCU1 to AR2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR1 || P# || Add pointer to AR1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| +AR2 || P# || Add pointer to AR2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Program display and null operation instructions====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Operation  !! Operand !! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| NOP ||style=&amp;quot;width: 5em&amp;quot;| 0 ||style=&amp;quot;width: 22em&amp;quot;| Null operation instruction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| NOP || 1 || Null operation instruction&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| BLD || const || Program display instruction (null operation)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integrated organisation blocks===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The organisation blocks, listed in the chart below, are executed, if they are programmed:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! OB no !! Short Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width:14em&amp;quot;| OB 1 ||style=&amp;quot;width:14em&amp;quot;| Main program&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 10 – OB 17 || Time alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 20 – OB 23 || Delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 30 – OB 38 || Time blocks (cyclic call)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 80 – OB 87 || Error blocks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 90 || Background execution&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 100/OB 101 || Warm or hot restart&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| OB 121/OB 122 || Programming faults&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integrated system functions===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All system functions (SFC) relevant for a Software PLC are integrated in &#039;&#039;S7-SoftPLC&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The chart below shows the available SFCs(in numeric listing)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! SFC no !! SF name !! Short Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width:7em&amp;quot;| SFC 0 ||style=&amp;quot;width:8em&amp;quot;| SET_CLK || Set system clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 1 || READ_CLK || Read system clock&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 20 || BLKMOV || Copy PLC-variable in target-area&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 21 || FILL || Preoccupy PLC-variable in target-area&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 22 || CREAT_DB || Create data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 23 || DEL_DB || Delete data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 24 || TEST_DB || Test attributes of a data block&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 25 || COMPRESS || Compress load memory&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 28 || SET_TINT || Set time alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 29 || CAN_TINT || Stop time alarm (do not execute)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 30 || ACT_TINT || Enable time alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 31 || QRY_TINT || Status of time alarm &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 32 || SRT_DINT || Start delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 33 || CAN_DINT || Stop delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 34 || QRY_DINT || Status query of delay alarm&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 36 || MSK_FLT || Mask a synchron error occurrence&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 37 || DMSK_FLT || Demask a synchron error occurrence&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 38 || READ_ERR || Read out the occurrence status register&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 39 || DIS_IRT || Locking the asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 40 || EN_IRT || Enable the asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 41 || DIS_AIRT || Delay high-priority asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 42 || EN_AIRT || Enable high-priority asynchron and alarm error processing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 43 || RE_TRIGR || Retrigger the Watchdog&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 46 || STP || CPU operating state STOP&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 51 || RDSYST || Read out system status list (SSL)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 64 || TIME_TCK || Timer Tick&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFC 81 || UBLKMOV || Block Move, that can not be stopped&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integrated system blocks===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The system blocks (SFB) relevant for a software PLC are integrated in &#039;&#039;S7-SoftPLC&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following system function blocks are supported:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! SFB no !! SFB name !! Short Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width:7em&amp;quot;| SFB 0 ||style=&amp;quot;width:7em&amp;quot;| CTU || Count up&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 1 || CTD || Count down&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 2 || CTUD || Count up and down&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 3 || TP || Generate pulse&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 4 || TON || Generate ON-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 5 || TOF || Generate OFF-delay&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 8 || USEND || OPC UA Client Configuration&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| SFB 32 || DRUM || Implement sequencer&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Technical Data===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Load memory ||5 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Main memory  || &amp;gt; 100 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Blocks || 16.384&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Flags (Bit)  || 131.072&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Timer  || 2048&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Counter  || 2048&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Digital I/O  || 32.768 Bit&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|  || processing times 1) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare PLC 50%  || apx. 360 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare PLC 33% || apx. 550 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare PLC 25%  || apx. 720 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare SPS 20%  || apx. 900 µs&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| CPU Chare SPS 12%  || apx. 1800 µs&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) 1024 mixed instructions (50% Binär, 50% Digital)&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=S5/S7_for_Windows:USB_Prommer_Driver&amp;diff=1568</id>
		<title>S5/S7 for Windows:USB Prommer Driver</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=S5/S7_for_Windows:USB_Prommer_Driver&amp;diff=1568"/>
		<updated>2014-05-15T14:22:39Z</updated>

		<summary type="html">&lt;p&gt;Joscha: /* Check whether the Siemens USB-Prommer driver is installed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Driver support for the USB-Prommer==&lt;br /&gt;
&lt;br /&gt;
S5/S7 for Windows ® supports the &#039;&#039;&#039;libusb driver&#039;&#039;&#039; which allows the operation of the [http://www.ibhsoftec.com/USB-S5S7-Prommer-S-Eng Siemens USB-Prommer] (6ES7 792-0AA00-0XA0) under current operating systems. &lt;br /&gt;
Depending on whether the original Siemens driver for the USB-Prommer is already installed on the PC, the libusb driver must be installed in two different ways.&lt;br /&gt;
&lt;br /&gt;
===Check whether the Siemens USB-Prommer driver is installed ===&lt;br /&gt;
&lt;br /&gt;
If the USB-Prommer is connected to the PC, check within the device manager whether the Siemens USB-Prommer driver is installed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Siemens driver for the USB-Prommer is &#039;&#039;already&#039;&#039; installed on the PC:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:System_with_driverr.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Siemens driver for the USB-Prommer is &#039;&#039;not&#039;&#039; installed on the PC:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:System_no_driverr.png]]&lt;br /&gt;
&lt;br /&gt;
==Installation of the libusb driver &#039;&#039;&#039;with&#039;&#039;&#039; already installed Siemens driver==&lt;br /&gt;
&lt;br /&gt;
In this case the  &#039;&#039;&#039;libusb-win32 filter driver&#039;&#039;&#039; must be installed. This allows a control of the USB prommer parallel to the already installed Siemens driver, without impairing its function.&lt;br /&gt;
&lt;br /&gt;
After the  start of the Setup the option &#039;&#039;&#039;Install a device filter&#039;&#039;&#039; must be chosen.&lt;br /&gt;
&lt;br /&gt;
[[Image:Libusb_filter_driver.png]]&lt;br /&gt;
&lt;br /&gt;
After installation the &#039;&#039;&#039;libusb-win32 filter installer&#039;&#039;&#039; needs to be started. Within this program the entry for the USB-Prommer must be selected and the button &#039;&#039;&#039;Install&#039;&#039;&#039; msut be pressed.&lt;br /&gt;
&lt;br /&gt;
[[Image:Libusb_device_selection.png]]&lt;br /&gt;
&lt;br /&gt;
The successful installation is indicated by the following message:&lt;br /&gt;
&lt;br /&gt;
[[Image:Libusb_success.png]]&lt;br /&gt;
&lt;br /&gt;
The dialog can be closed. The installation is completed and the USB-Prommer can be used within S5/S7 for Windows®.&lt;br /&gt;
&lt;br /&gt;
==Installation of the libusb driver &#039;&#039;&#039;without&#039;&#039;&#039; installed Siemens driver==&lt;br /&gt;
&lt;br /&gt;
In this case the &#039;&#039;&#039;ZAdik Device Treiber&#039;&#039;&#039; must be installed.&lt;br /&gt;
&lt;br /&gt;
When using the operating system &#039;&#039;&#039;Windows XP&#039;&#039;&#039; the setup with the file name&#039;&#039;&#039;zadig_xp_2.1.0.exe&#039;&#039;&#039; must be started.&lt;br /&gt;
When using the operating system &#039;&#039;&#039;VISTA, Windows 7 or Windows 8&#039;&#039;&#039; the Setup with the file name&#039;&#039;&#039;zadig_2.1.0.exe&#039;&#039;&#039; must be started.&lt;br /&gt;
&lt;br /&gt;
After installation the &#039;&#039;&#039;ZAdik Device Driver&#039;&#039;&#039; will be started. Within this program the entry for the USB-Prommer and the driver &#039;&#039;&#039;libsub-win32(v1.2.6.0)&#039;&#039;&#039;must be selected and the button &#039;&#039;&#039;Install&#039;&#039;&#039; msut be pressed.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;libsub-win32 (v1.2.6.0)&#039;&#039;&#039; must also be selected when using 64 bit operating systems!&lt;br /&gt;
&lt;br /&gt;
[[Image:Prommer driver.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The dialog can be closed. The installation is completed and the USB-Prommer can be used within S5/S7 for Windows®.&lt;br /&gt;
&lt;br /&gt;
==Using the Siemens driver without libusb driver==&lt;br /&gt;
&lt;br /&gt;
Caution: &lt;br /&gt;
The supplied driver (10/2007) can only be installed on 32-bit systems. &lt;br /&gt;
Newer versions of the driver only have support for S7 memory modules.&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBHNet:Projected_PLC-PLC_communication&amp;diff=1470</id>
		<title>IBHNet:Projected PLC-PLC communication</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBHNet:Projected_PLC-PLC_communication&amp;diff=1470"/>
		<updated>2013-07-15T12:17:34Z</updated>

		<summary type="html">&lt;p&gt;Joscha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Starting with firmware version 2.142 it is possible with the &#039;&#039;&#039;&#039;&#039;IBH Link S7++&#039;&#039;&#039;&#039;&#039; and the &#039;&#039;&#039;&#039;&#039;IBH Link S7++ HS&#039;&#039;&#039;&#039;&#039; to establish connections between multiple PLCs. Since only unprojected connections are possible via MPI&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt;, the &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039; offers the possibility to establish projected S7-Connections over Ethernet or the PROFIBUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:ibhlink_projektiert_netpro.jpg|frame|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To permit communication of PLCs through one or more &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039;, it must be entered as S7 station in NetPro&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; and the option &amp;amp;quot;Configuration with NetPro&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt;&amp;amp;quot; must be chosen in the &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039; configuration. Following data and type of station have to be used that the Siemens project is aware of the &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* MLFB: 6ES7 412-2EK06-0AB0 V6.0 in Rack 0, Slot 2&lt;br /&gt;
* MPI&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt;/Profibus address same as &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* IP address same as &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039; now permits for NetPro&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; to download hardware data, like it would with a real PLC station. The data will be automatically saved to flash during the STOP to RUN transition. After the hardware configuration is downloaded to the &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039;, PG or HMI stations now can reach any PLC, also in any subnet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As soon as projected communication is correctly set up, communication can be established over the function blocks listed in the table below:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width:10em&amp;quot;|S7-300&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt;&lt;br /&gt;
!style=&amp;quot;width:10em&amp;quot;|S7-400&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt;&lt;br /&gt;
!style=&amp;quot;width:10em&amp;quot;|Name&lt;br /&gt;
|-&lt;br /&gt;
|FB8&lt;br /&gt;
|SFB8&lt;br /&gt;
|USEND&lt;br /&gt;
|-&lt;br /&gt;
|FB9&lt;br /&gt;
|SFB9&lt;br /&gt;
|URCV&lt;br /&gt;
|-&lt;br /&gt;
|FB12&lt;br /&gt;
|SFB12&lt;br /&gt;
|BSEND&lt;br /&gt;
|-&lt;br /&gt;
|FB13&lt;br /&gt;
|SFB13&lt;br /&gt;
|BRCV&lt;br /&gt;
|-&lt;br /&gt;
|FB14&lt;br /&gt;
|SFB14&lt;br /&gt;
|GET&lt;br /&gt;
|-&lt;br /&gt;
|FB15&lt;br /&gt;
|SFB15&lt;br /&gt;
|PUT&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The various possibilities for projected communications between PLCs are shown in a PDF file. The files explaining the communication settings can be found in the installation folder. Sample projects can also be found there.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;hintergrundfarbe6&amp;quot;|&#039;&#039;&#039;Attention: With projected connections via RFC1006 it is not possible any more to communicate over unprojected connections. The &#039;&#039;IBHNet&#039;&#039; communication via the &#039;&#039;IBHNet&#039;&#039; driver is not influenced from this setting.&#039;&#039;&#039;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:SIMATIC%C2%AE_S5_for_Windows%C2%AE&amp;diff=1458</id>
		<title>IBHLink S7++:SIMATIC® S5 for Windows®</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:SIMATIC%C2%AE_S5_for_Windows%C2%AE&amp;diff=1458"/>
		<updated>2013-06-12T13:02:08Z</updated>

		<summary type="html">&lt;p&gt;Joscha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The text below describes the connection of &#039;&#039;&#039;[http://www.ibhsoftec.com/S5W-Eng S5 for Windows®]&#039;&#039;&#039; to a SIMATIC® S5 using the &#039;&#039;&#039;[http://www.ibhsoftec.com/IBH-Link-S7-PP-Eng IBHLink S7++]&#039;&#039;&#039; via SINEC L2.&lt;br /&gt;
&lt;br /&gt;
The PC is connected to the IBHLink S7++ via an Ethernet connection. The IBHLink S7++ itself is connected to a SIMATIC® S5 station on the SINEC L2 port. Communication parameters can be configured using the web interface or with the IBHNet configuration tool.&lt;br /&gt;
&lt;br /&gt;
In our sample the IP address of the IBH Link S7++ is set to &#039;&#039;&#039;192.168.0.156&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Software requirements ==&lt;br /&gt;
&lt;br /&gt;
* S5 for Windows® &amp;gt; V7.x&lt;br /&gt;
* IBH Link S7++ with firmware &amp;gt;= V1.52&lt;br /&gt;
&lt;br /&gt;
Within the online tree select &#039;&#039;&#039;&amp;lt;Network&amp;gt;&#039;&#039;&#039; and choose &#039;&#039;&#039;&amp;lt;New S5-SINEC-L2 Station..&amp;gt;&#039;&#039;&#039; using the right mouse button:&lt;br /&gt;
&lt;br /&gt;
[[Image:L2_New_Station.png|343px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:L2_Station_eng.png|451px]]&lt;br /&gt;
&lt;br /&gt;
Within the field &#039;&#039;&#039;&amp;lt;IP-Address&amp;gt;&#039;&#039;&#039; enter the IP-Address of the IBH Link S7++.&lt;br /&gt;
&lt;br /&gt;
Now the online connection to the selected SINEC L2 Station can be established:&lt;br /&gt;
&lt;br /&gt;
[[Image:L2_Station_eng.png|223px]]&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=S5/S7_for_Windows:S5_Programming_via_SINEC_L2&amp;diff=1457</id>
		<title>S5/S7 for Windows:S5 Programming via SINEC L2</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=S5/S7_for_Windows:S5_Programming_via_SINEC_L2&amp;diff=1457"/>
		<updated>2013-06-12T13:00:05Z</updated>

		<summary type="html">&lt;p&gt;Joscha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Establishing a connection to a SIMATIC® S5 PLC via SINEC L2/PROFIBUS using a modern PC ==&lt;br /&gt;
&lt;br /&gt;
Because of IT security issues, only PCs with current operating systems including latest OS security updates and virus scanner updates are allowed to be used in corporate networks. The usage of old PCs, that allowed programming via SINEC L2/PROFIBUS is often no longer permitted and therefore no more possible.&lt;br /&gt;
&lt;br /&gt;
In many production environments with old SIMATIC® S5 PLCs, often SINEC L2/PROFIBUS is used to communicate with the control level or scada via Ethernet. Since it is also possible to program the PLC via SINEC L2/PROFIBUS, this task must now be performed with modern PCs.&lt;br /&gt;
&lt;br /&gt;
Soft and Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* A PC with a standard ethernet network card.&lt;br /&gt;
&lt;br /&gt;
* Our &#039;&#039;&#039;[http://www.ibhsoftec.com/IBH-Link-S7-PP-Eng IBHLink S7++]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* Windows XP, VISTA, 7 or 8  (32-Bit or 64-Bit).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[http://www.ibhsoftec.com/S5W-Eng S5 for Windows®]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
First, a conversion of the SINEC L2/PROFIBUS network to modern twisted pair cabling with standard RJ45 connectors must be done. To do the physical media conversion, the Ethernet to PROFIBUS Gateway &#039;&#039;&#039;IBH Link S7++&#039;&#039;&#039; is used.&lt;br /&gt;
&lt;br /&gt;
Before plugging the IBH Link S7++ on PROFIBUS, the PROFIBUS parameters must be set up correctly. The actual settings of the parameters must be read out from the configuration of the used communication processor. For a S5 95U with PROFIBUS, the parameters can be found within the DB1. If a CP5431 is used, the COM package COM5430 delivers the required information.&lt;br /&gt;
&lt;br /&gt;
The parameters can be set in the &#039;&#039;&#039;IBH Link S7++&#039;&#039;&#039; with a standard webbrowser. Likewise, the bus parameters can also be configured with the IBHNet configuration tool.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IBH Link S7++ on the PROFIBUS connector of a S5 95U&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:IBHLink-S7-95u-profibus.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IBH Link S7++ on the PROFIBUS connector of a CP5431&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:IBHLink-S7-CP5431-profibus.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
The external 24 V power supply for the &#039;&#039;&#039;IBH Link S7++&#039;&#039;&#039; must be connected, when using it with a S5 PLC. .&lt;br /&gt;
&lt;br /&gt;
Within the online tree select &#039;&#039;&#039;&amp;lt;Network&amp;gt;&#039;&#039;&#039; and choose &#039;&#039;&#039;&amp;lt;New S5-SINEC-L2 Station..&amp;gt;&#039;&#039;&#039; using the right mosue button:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Setup of an SINEC-L2 connection&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:L2 Station eng.png‎]]&lt;br /&gt;
&lt;br /&gt;
This allows the programming via SINEC L2/PROFIBUS using the &#039;&#039;&#039;IBH Link S7++&#039;&#039;&#039;.&lt;br /&gt;
Details about the setup of the SINEC-L2 connection can be found at:&lt;br /&gt;
* [[IBHLink S7++:SIMATIC® S5 for Windows®|Access to a SIMATIC® S5 with &#039;&#039;S5 for Windows®&#039;&#039; via SINEC L2]]&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=S5/S7_for_Windows:S5_Programming_via_H1&amp;diff=1456</id>
		<title>S5/S7 for Windows:S5 Programming via H1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=S5/S7_for_Windows:S5_Programming_via_H1&amp;diff=1456"/>
		<updated>2013-06-12T12:46:19Z</updated>

		<summary type="html">&lt;p&gt;Joscha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Establishing a connection to a SIMATIC® S5 PLC via H1 using a modern PC ==&lt;br /&gt;
&lt;br /&gt;
Because of IT security issues, only PCs with current operating systems including latest OS security updates and virus scanner updates are allowed to be used in corporate networks. The usage of old PCs, that allowed programming via H1 is often no longer permitted and therefore no more possible.&lt;br /&gt;
&lt;br /&gt;
In many production environments with old SIMATIC® S5 PLCs, often H1 is used to communicate with the control level or scada via Ethernet. Since it is also possible to program the PLC via H1, this task must now be performed with modern PCs.&lt;br /&gt;
&lt;br /&gt;
Soft and Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* A PC with a standard ethernet network card.&lt;br /&gt;
&lt;br /&gt;
* A commercial RJ45 to BNC or AUI Media converter (Transceiver).&lt;br /&gt;
&lt;br /&gt;
[[Image:aui-bnc-mediaconverter.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
* Windows XP, VISTA, 7 or 8  (32-Bit or 64-Bit).&lt;br /&gt;
&lt;br /&gt;
* The Open Source driver WinPcap (http://www.winpcap.org) must be installed.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[http://www.ibhsoftec.com/S5W-Eng S5 for Windows®]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
First, a conversion of the H1 Ethernet network cabling to modern twisted pair cabling with standard RJ45 connectors must be done.&lt;br /&gt;
Commercially available media converters (transceiver) are used for this. These devices do the physical media conversion, BNC to RJ45 or even the 15-pin AUI interface to RJ45.&lt;br /&gt;
&lt;br /&gt;
Second, the PC must be able to send H1 Ethernet frames. This can be achieved with current operating systems by installing the open source driver WinPcap (http://www.winpcap.org).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AUI to BNC Media converter within the network&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:aui-bnc-converter-live.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
Within the Online tree select &amp;lt;Network&amp;gt; and choose &amp;lt;New S5-H1 Station..&amp;gt; using the right mouse button.&lt;br /&gt;
As H1 driver WinPcap must be selected.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;H1 Station settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:s5w-setup-h1-connection.png]]&lt;br /&gt;
&lt;br /&gt;
This allows the progrmming via H1. If a multiplexer is connected, it can also be selected within the dialog.&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=S7-PCI315:Storage_Behaviour&amp;diff=1407</id>
		<title>S7-PCI315:Storage Behaviour</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=S7-PCI315:Storage_Behaviour&amp;diff=1407"/>
		<updated>2013-03-04T15:17:48Z</updated>

		<summary type="html">&lt;p&gt;Joscha: Created page with &amp;quot;The S7-PCI315 has RAM memory to hold and execute the PLC program. The memory contents are buffered with the supplied battery, if the PC is switched off and the external 24V po...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The S7-PCI315 has RAM memory to hold and execute the PLC program. The memory contents are buffered with the supplied battery, if the PC is switched off and the external 24V power supply is disconnected. Further, the S7-PCI315 is equipped with internal flash memory, that keeps it&#039;s contents, independent from power supply. The internal flash memory holds the PLC program as binary file (S7.bin) and the S7-PCI315 firmware (S7PLC.NXF).&lt;br /&gt;
Applying an additional MicroSD card (optional) instead of the internal flash memory permits saving the PLC program on removable media. The firmware is always required from internal flash memory.&lt;br /&gt;
&lt;br /&gt;
The binary file can be read and written from/to the S7-PCI315 Flash memory with the Hilscher cifX Test tool. Access to the SD card with the cifX-Test-Tool is not possible. The binary file from SD card and internal flash memory are compatible.&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=S7-PCI315:Memory_Card&amp;diff=1406</id>
		<title>S7-PCI315:Memory Card</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=S7-PCI315:Memory_Card&amp;diff=1406"/>
		<updated>2013-03-04T15:16:08Z</updated>

		<summary type="html">&lt;p&gt;Joscha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
The &#039;&#039;S7-PCI315&#039;&#039; PLC device can be reset to factory settings with a microSD card and the base firmware on it.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* The memory card can have up to max. 4 GB storage capacity.&lt;br /&gt;
* The memory card must be formatted with the FAT16 format (no FAT32).&lt;br /&gt;
* The SDHC format is not supported.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
Copy all files from the directory &lt;br /&gt;
&lt;br /&gt;
C:\IBH softec GmbH\S7-PCI315\SD Image&lt;br /&gt;
&lt;br /&gt;
including the file STARTUP.INI and the directory BACKUP and all subdirectories onto an empty micro SD card to the card&#039;s root directory.&lt;br /&gt;
&lt;br /&gt;
== Procedure ==&lt;br /&gt;
&lt;br /&gt;
1. Have the SD card ready with the copied image.&lt;br /&gt;
&lt;br /&gt;
2. Power down the PC that carries the card. If used, switch off the external power supply.&lt;br /&gt;
&lt;br /&gt;
3. Insert the card into the SD card slot to the front of card.&lt;br /&gt;
&lt;br /&gt;
4. Re-Power the PC.&lt;br /&gt;
 &lt;br /&gt;
The device loads the base firmware and indicates this by the following states of the SYS LED: Fast change between green and yellow (for appr. 8 s), then yellow on (for appr. 10 s), then off for a short moment and finally it turns to green on.&lt;br /&gt;
&lt;br /&gt;
5. Remove the SD card from the SD card slot.&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=Main_Page&amp;diff=1405</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=Main_Page&amp;diff=1405"/>
		<updated>2013-03-04T15:15:32Z</updated>

		<summary type="html">&lt;p&gt;Joscha: /* S7-PCI315 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to the Wiki of IBHsoftec GmbH! [[http://www.ibhsoftec.com/ IBHsoftec GmbH]]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:Germany.png|link=http://wiki.ibhsoftec.com/de/Hauptseite]]&amp;lt;br /&amp;gt;&lt;br /&gt;
== S5/S7 for Windows ==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;1&amp;quot; class=&amp;quot;float-right&amp;quot;&amp;gt;&lt;br /&gt;
Image:10022.png|[http://www.ibhsoftec.com/S57W-Eng S5+S7 for Windows® Version 7]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
* [[S5/S7 for Windows:licensing|licensing]]&lt;br /&gt;
* [[S5/S7 for Windows:Handling of PLC backup archive files|Handling of PLC backup archive files xxx.arv]]&lt;br /&gt;
&lt;br /&gt;
== IBHLink S5++ ==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;1&amp;quot; class=&amp;quot;float-right&amp;quot;&amp;gt;&lt;br /&gt;
Image:20284.png|[http://www.ibhsoftec.com/IBH-Link-S5-PP-Eng IBHLink S5++]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
* [[IBHLink S5++:SIMATIC® S5 for Windows®|Access to a SIMATIC® S5 with &#039;&#039;S5 for Windows®&#039;&#039; without IBH Net driver]]&lt;br /&gt;
* [[IBHLink S5++:SIMATIC® S5 TIA Portal V11 WinCC flexible|Access to a SIMATIC® S5 with TIA Portal V11 WinCC flexible over IBHLink S5++]]&lt;br /&gt;
* [[IBHLink S5++:SIMATIC® S5 WinCC flexible|Access to a SIMATIC® S5 with WinCC flexible over IBHLink S5++]]&lt;br /&gt;
* [[IBHLink S5++:SIMATIC® S5 PLC PcVue|Access to a SIMATIC® S5 with PcVue over IBHLink S5++]]&lt;br /&gt;
* [[IBHLink S5++:SIMATIC® S5 Elipse SCADA|Access to a SIMATIC® S5 with Elipse SCADA over IBHLink S5++]]&lt;br /&gt;
* [[IBHLink S7++:LOGO! with IBHLink S5++|LOGO! with IBHLink S5++]]&lt;br /&gt;
&lt;br /&gt;
== IBHLink S7++ ==&lt;br /&gt;
All listet articles are avlid for the [http://www.ibhsoftec.com/IBH-Link-S7-PP-Eng IBHLink S7++] (bus connector format) and for the [http://www.ibhsoftec.com/IBH-Link-S7-PP-HS-Eng IBHLink S7++ HS] (din rail mount)&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;2&amp;quot; class=&amp;quot;float-right&amp;quot;&amp;gt;&lt;br /&gt;
Image:20266.gif|[http://www.ibhsoftec.com/IBH-Link-S7-PP-Eng IBHLink S7++]&lt;br /&gt;
Image:20268.png|[http://www.ibhsoftec.com/IBH-Link-S7-PP-HS-Eng IBHLink S7++ HS]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
* [[IBHLink S7++:SIMATIC® S5 for Windows®|Access to a SIMATIC® S5 with &#039;&#039;S5 for Windows®&#039;&#039; via SINEC L2]]&lt;br /&gt;
* [[IBHLink S7++:S7-300/S7-400 TIA Portal WinCC flexible|Access to S7-300/S7-400 with TIA Portal V11 WinCC flexible over IBHLink S7++]]&lt;br /&gt;
* [[IBHLink S7++:S7-300/S7-400 WinCC flexible|Access to S7-300/S7-400 with WinCC flexible over IBHLink S7++]]&lt;br /&gt;
* [[IBHLink S7++:S7-200 WinCC flexible|Access to S7-200 with WinCC flexible over IBHLink S7++]]&lt;br /&gt;
* [[IBHLink S7++:S7-300/S7-400 Elipse SCADA|Access to S7-300/S7-400 with Elipse SCADA over IBHLink S7++]]&lt;br /&gt;
* [[IBHLink S7++:S7-300/S7-400 PcVue|Access to S7-300/S7-400 with PcVue over IBHLink S7++]]&lt;br /&gt;
* [[IBHLink S7++:IBH Link S7++ with CommDTM|IBH Link S7++ with CommDTM]]&lt;br /&gt;
* [[IBHLink S7++:VEGASON IBHNetDTM|IBHNet DTM with PACTware]]&lt;br /&gt;
* [[IBHLink S7++:PLC-PLC communication|PLC-PLC communication]]&lt;br /&gt;
* [[IBHLink S7++:Time Synchronisation|Time Synchronisation]]&lt;br /&gt;
* [[IBHLink S7++:Time Synchronisation with NetPro|Time Synchronisation with NetPro]]&lt;br /&gt;
* [[IBHLink S7++:LOGO! with IBHLink S7++|LOGO! with IBHLink S7++]]&lt;br /&gt;
&lt;br /&gt;
== OPC Server ==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;1&amp;quot; class=&amp;quot;float-right&amp;quot;&amp;gt;&lt;br /&gt;
Image:1150.png|[http://www.ibhsoftec.com/OPC-Eng IBH OPC Server]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
* [[OPCServer:Overview|Overview]]&lt;br /&gt;
* [[OPCServer:Licensing|Licensing]]&lt;br /&gt;
* [[OPCServer:Server Configuration|Server Configuration]]&lt;br /&gt;
* [[OPCServer:Variable Syntax|Variable Syntax]]&lt;br /&gt;
* [[OPCServer:Optimization|Optimization]]&lt;br /&gt;
* [[OPCServer:DCOM Configuration|DCOM Configuration]]&lt;br /&gt;
* [[OPCServer:Operation with User rights|Operation with User rights]]&lt;br /&gt;
* [[OPCServer:Pro Tool Pro V6|Pro Tool Pro V6]]&lt;br /&gt;
* [[OPCServer:WinCC|WinCC]]&lt;br /&gt;
* [[OPCServer:WinCC Flexible|WinCC Flexible]]&lt;br /&gt;
* [[OPCServer:Create Variables with Intouch FS Gateway|Create Variables with Intouch FS Gateway]]&lt;br /&gt;
* [[OPCServer:Create Variables manually with Intouch|Create Variables manually with Intouch]]&lt;br /&gt;
* [[OPCServer:Create Variables with Intouch TagCreator|Create Variables with Intouch TagCreator]]&lt;br /&gt;
* [[OPCServer:HPI Scada|HPI Scada]]&lt;br /&gt;
* [[OPCServer:Variables from LOGO! RCE|Variables from LOGO! RCE]]&lt;br /&gt;
* [[OPCServer:H1 with OPC Server|H1 with OPC Server]]&lt;br /&gt;
&lt;br /&gt;
== S7-SoftPLC ==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;1&amp;quot; class=&amp;quot;float-right&amp;quot;&amp;gt;&lt;br /&gt;
Image:1302.png|[http://www.ibhsoftec.com/SoftPLC-Eng SoftPLC S7-416]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
* [[S7-SoftPLC:LOGO! with S7-SoftPLC|LOGO! with S7-SoftPLC]]&lt;br /&gt;
* Installation&lt;br /&gt;
** [[S7-SoftPLC:System requirements|System requirements]]&lt;br /&gt;
** [[S7-SoftPLC:Installing S7-SoftPLC|Installation]]&lt;br /&gt;
** [[S7-SoftPLC:Uninstalling S7-SoftPLC|Deinstallation]]&lt;br /&gt;
* Online&lt;br /&gt;
** [[S7-SoftPLC:S7-SoftPLC online functions|Functions]]&lt;br /&gt;
** [[S7-SoftPLC:Online with STEP®7|Online with STEP®7]]&lt;br /&gt;
** [[S7-SoftPLC:Online with S7 for Windows®|Online with S7 for Windows®]]&lt;br /&gt;
* [[S7-SoftPLC:Visualizations|Visualizations]]&lt;br /&gt;
** [[S7-SoftPLC:Using the IBH S7-SoftPLC with Intouch via RFC1006|Using with Intouch via RFC1006]]&lt;br /&gt;
* [[S7-SoftPLC:Data Interface|Data Interface]]&lt;br /&gt;
* User Interface&lt;br /&gt;
** [[S7-SoftPLC:Interface and Configuration|Interface and Configuration]]&lt;br /&gt;
** [[S7-SoftPLC:Classic View|Classic View]]&lt;br /&gt;
** [[S7-SoftPLC:Configuration View|Configuration View]]&lt;br /&gt;
* Menu&lt;br /&gt;
** [[S7-SoftPLC:File menu|File]]&lt;br /&gt;
** [[S7-SoftPLC:Edit menu|Edit]]&lt;br /&gt;
** [[S7-SoftPLC:View menu|View]]&lt;br /&gt;
** [[S7-SoftPLC:Help menu|Help]]&lt;br /&gt;
** [[S7-SoftPLC:Toolbar|Toolbar]]&lt;br /&gt;
** [[S7-SoftPLC:I/O monitor|I/O monitor]]&lt;br /&gt;
* Configuration&lt;br /&gt;
** CPU Parameters&lt;br /&gt;
*** [[S7-SoftPLC:CPU Parameters|User Interface]]&lt;br /&gt;
*** [[S7-SoftPLC:CPU Parameters of S7-SoftPLC|PLC43.INI]]&lt;br /&gt;
** Driver&lt;br /&gt;
*** [[S7-SoftPLC:Add/remove drivers|Add/remove drivers]]&lt;br /&gt;
*** [[S7-SoftPLC:Add/remove drivers to S7-SoftPLC|Add/remove drivers to S7-SoftPLC]]&lt;br /&gt;
** Addidata&lt;br /&gt;
*** [[S7-SoftPLC:ADDI-DATA configuration|Configuration]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuring the ADDI-DATA driver|Configuration of driver]]&lt;br /&gt;
*** [[S7-SoftPLC:ADDI-DATA driver for S7-SoftPLC|Driver for S7-SoftPLC]]&lt;br /&gt;
**Beckhoff TwinCAT I/O &lt;br /&gt;
*** [[S7-SoftPLC:Configuration TwinCAT I/O|Configuration]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuration TwinCAT I/O drivers|Configuration of drivers]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuration TwinCAT I/O with PLC43:INI|Configuration with PLC43.INI]]&lt;br /&gt;
*** [[S7-SoftPLC:S7-SoftPLC Service and TwinCat|S7-SoftPLC Service and TwinCat]]&lt;br /&gt;
**CIF 30/50/60&lt;br /&gt;
*** [[S7-SoftPLC:Basic configuration|Configuration]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuring the CIF-card with the SyCon System Configurator|Configuration with System Configurator]]&lt;br /&gt;
*** [[S7-SoftPLC:CIF 30/50/60 Settings|User Interface]]&lt;br /&gt;
*** [[S7-SoftPLC:CIF 30/50/60 settings of S7-SoftPLC|PLC43.INI]]&lt;br /&gt;
*** [[S7-SoftPLC:PROFIBUS® configuration via S7 for Windows®/STEP®7|PROFIBUS® configuration via S7 for Windows®/STEP®7]]&lt;br /&gt;
** cifX&lt;br /&gt;
*** [[S7-SoftPLC:cifX Basic configuration|Configuration]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuration of cifX card with SYCON.NET|Configuration with SYCON.NET]]&lt;br /&gt;
*** [[S7-SoftPLC:cifX User Interface|User Interface]]&lt;br /&gt;
*** [[S7-SoftPLC:cifX settings of IBHsoftec S7-SoftPLC|Settings of the IBHsoftec S7-SoftPLC]]&lt;br /&gt;
*** [[S7-SoftPLC:cifX PROFIBUS® configuration via S7 for Windows®/STEP®7|PROFIBUS® configuration via S7 for Windows®/STEP®7]]&lt;br /&gt;
** CP340/CP440&lt;br /&gt;
*** [[S7-SoftPLC:Configuring CP340/CP440 emulation|Emulation]]&lt;br /&gt;
*** [[S7-SoftPLC:Configure the CP340/CP440 emulation via user interface|User Interface]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuring CP340/440 emulation in PLC43.INI|PLC43.INI]]&lt;br /&gt;
** CP343/CP443 &lt;br /&gt;
*** [[S7-SoftPLC:Configuring CP343/CP443 emulation|Emulation]]&lt;br /&gt;
*** [[S7-SoftPLC:Configure the CP343/CP443 emulation via user interface|User Interface]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuring CP343/443 emulation in PLC43.INI|PLC43.INI]]&lt;br /&gt;
** I/O Port&lt;br /&gt;
*** [[S7-SoftPLC:Configuring PC hardware ports|Configuring PC hardware ports]]&lt;br /&gt;
*** [[S7-SoftPLC:Setting PC hardware port with user interface|User interface]]&lt;br /&gt;
*** [[S7-SoftPLC:Setting PC hardware ports with PLC43.INI|PLC43.INI]]&lt;br /&gt;
** Modbus TCP&lt;br /&gt;
*** [[S7-SoftPLC:Modbus TCP configuration|Configuration]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuring Modbus TCP with the user interface|User Interface]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuring Modbus TCP with PLC43.INI|PLC43.INI]]&lt;br /&gt;
** NVRAM&lt;br /&gt;
*** [[S7-SoftPLC:NVRAM configuration|Configuration]]&lt;br /&gt;
*** [[S7-SoftPLC:NVRAM configuration with the user interface|User Interface]]&lt;br /&gt;
*** [[S7-SoftPLC:NVRAM configuration with the PLC43.INI|PLC43.INI]]&lt;br /&gt;
** Softnet PN IO&lt;br /&gt;
*** [[S7-SoftPLC:Softnet PN IO configuration|Configuration]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuring SoftNet with the user interface|User Interface]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuring SoftNet PN IO with PLC43.INI|PLC43.INI]]&lt;br /&gt;
** User SFC&lt;br /&gt;
*** [[S7-SoftPLC:User SFC configuration|Configuration]]&lt;br /&gt;
*** [[S7-SoftPLC:Setting the User SFC&#039;s/FC&#039;s within the user interface|User Interface]]&lt;br /&gt;
*** [[S7-SoftPLC:Setting the User SFC&#039;s/FC&#039;s within the PLC43.INI|PLC43.INI]]&lt;br /&gt;
* [[S7-SoftPLC:Technical data|Technical data]]&lt;br /&gt;
** [[S7-SoftPLC:Instruction set|Instruction set]]&lt;br /&gt;
** [[S7-SoftPLC:STEP®7 Hardwareconfiguration|STEP®7 Hardwareconfiguration]]&lt;br /&gt;
** [[S7-SoftPLC:Diagnostic buffer entries|Diagnostic buffer entries]]&lt;br /&gt;
** [[S7-SoftPLC:Differences between S7-SoftPLC and Hardware-PLC|Differences]]&lt;br /&gt;
** [[S7-SoftPLC:AppStarter|AppStarter]]&lt;br /&gt;
** [[S7-SoftPLC:Zero modem cable|Zero modem cable]]&lt;br /&gt;
&lt;br /&gt;
== S7-PCI315 ==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;1&amp;quot; class=&amp;quot;float-right&amp;quot;&amp;gt;&lt;br /&gt;
Image:3100.png|[http://www.ibhsoftec.com/SoftPLC-Eng SoftPLC S7-416]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
* [[S7-PCI315:Documentation Overview|Documentation Overview]]&lt;br /&gt;
* [[S7-PCI315:Legal Notes|Legal Notes]]&lt;br /&gt;
* [[S7-PCI315:Licenses|Licenses]]&lt;br /&gt;
* [[S7-PCI315:Safety|Safety]]&lt;br /&gt;
* [[S7-PCI315:Description and Requirements|Description and Requirements]]&lt;br /&gt;
* [[S7-PCI315:Device Drawings|Device Drawings]]&lt;br /&gt;
* [[S7-PCI315:System Overview|System Overview]]&lt;br /&gt;
* [[S7-PCI315:Device Driver Setup|Device Driver Setup]]&lt;br /&gt;
* [[S7-PCI315:Firmware Update|Firmware Update]]&lt;br /&gt;
* [[S7-PCI315:USB driver installation|USB driver installation]]&lt;br /&gt;
* [[S7-PCI315:Install S7netPLCComm service|Install S7netPLCComm service]]&lt;br /&gt;
* [[S7-PCI315:Safety Advices|Safety Advices]]&lt;br /&gt;
* [[S7-PCI315:Installing Battery|Installing Battery]]&lt;br /&gt;
* [[S7-PCI315:Installing S7-PCI315 PLC|Installing S7-PCI315 PLC]]&lt;br /&gt;
* [[S7-PCI315:HMI/data access|HMI/data access]]&lt;br /&gt;
* [[S7-PCI315:S7netPLCComm service|S7netPLCComm service]]&lt;br /&gt;
* [[S7-PCI315:Service configuration|Service configuration]]&lt;br /&gt;
* [[S7-PCI315:Configuration user interface|Configuration user interface]]&lt;br /&gt;
* [[S7-PCI315:Configuration INI file|Configuration INI file]]&lt;br /&gt;
* [[S7-PCI315:WinCC Flexible local|WinCC Flexible local]]&lt;br /&gt;
* [[S7-PCI315:Programming|Programming]]&lt;br /&gt;
* [[S7-PCI315:Instruction set|Instruction set]]&lt;br /&gt;
* [[S7-PCI315:Integrated blocks|Integrated blocks]]&lt;br /&gt;
* [[S7-PCI315:Power Supply|Power Supply]]&lt;br /&gt;
* [[S7-PCI315:Reset Behaviour|Reset Behaviour]]&lt;br /&gt;
* [[S7-PCI315:RUN/STOP Switch|RUN/STOP Switch]]&lt;br /&gt;
* [[S7-PCI315:Battery|Battery]]&lt;br /&gt;
* [[S7-PCI315:Changing the Battery|Changing the Battery]]&lt;br /&gt;
* [[S7-PCI315:Battery Disposal|Battery Disposal]]&lt;br /&gt;
* [[S7-PCI315:LED|LED]]&lt;br /&gt;
* [[S7-PCI315:LED SYS|LED SYS]]&lt;br /&gt;
* [[S7-PCI315:LED APL|LED APL]]&lt;br /&gt;
* [[S7-PCI315:LED PROFIBUS DP-Master|LED PROFIBUS DP-Master]]&lt;br /&gt;
* [[S7-PCI315:Memory Card|Memory Card]]&lt;br /&gt;
* [[S7-PCI315:Storage Behaviour|Storage Behaviour]]&lt;br /&gt;
* [[S7-PCI315:Read State|Read State]]&lt;br /&gt;
* [[S7-PCI315:Dualport communication|Dualport communication]]&lt;br /&gt;
* [[S7-PCI315:Knowledge base|Knowledge base]]&lt;br /&gt;
* [[S7-PCI315:Troubleshooting|Troubleshooting]]&lt;br /&gt;
* [[S7-PCI315:Error Codes|Error Codes]]&lt;br /&gt;
* [[S7-PCI315:Technical Data|Technical Data]]&lt;br /&gt;
&lt;br /&gt;
== IBHNet ==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;3&amp;quot; class=&amp;quot;float-right&amp;quot;&amp;gt;&lt;br /&gt;
Image:20284.png|[http://www.ibhsoftec.com/IBH-Link-S5-PP-Eng IBHLink S5++]&lt;br /&gt;
Image:20266.gif|[http://www.ibhsoftec.com/IBH-Link-S7-PP-Eng IBHLink S7++]&lt;br /&gt;
Image:20268.png|[http://www.ibhsoftec.com/IBH-Link-S7-PP-HS-Eng IBHLink S7++ HS]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
*[[IBHNet:Introduction|Introduction]]&lt;br /&gt;
*[[IBHNet:System Requirements|System Requirements]]&lt;br /&gt;
*[[IBHNet:Installation|Installation]]&lt;br /&gt;
*[[IBHNet:Local Operation|Local Operation]]&lt;br /&gt;
*[[IBHNet:Operation in a local area network|Operation in a local area network]]&lt;br /&gt;
*[[IBHNet:Operation via the Internet|Operation via the Internet]]&lt;br /&gt;
*[[IBHNet:IBH Link S7|IBH Link S7]]&lt;br /&gt;
*[[IBHNet:IBH Link S5++|IBH Link S5++]]&lt;br /&gt;
*[[IBHNet:IBH Link S5++ with STEP®5|IBH Link S5++ with STEP®5]]&lt;br /&gt;
*[[IBHNet:Defining access names to identify the PLCs|Defining access names to identify the PLCs]]&lt;br /&gt;
*[[IBHNet:Settings within STEP®7|Settings within STEP®7]]&lt;br /&gt;
*[[IBHNet:Settings within STEP®7 without IBHNet driver|Settings within STEP®7 without IBHNet driver]]&lt;br /&gt;
*[[IBHNet:Settings within STEP®7 MicroWin starting with V3.1 SP2|Settings within STEP®7 MicroWin starting with V3.1 SP2]]&lt;br /&gt;
*[[IBHNet:Settings within TIA®|Settings within TIA®]]&lt;br /&gt;
*[[IBHNet:Settings within TIA® without IBHNet driver|Settings within TIA® without IBHNet driver]]&lt;br /&gt;
*[[IBHNet:Using IBHNet with WinCC|Using IBHNet with WinCC]]&lt;br /&gt;
*[[IBHNet:Using IBHNet with ProTool|Using IBHNet with ProTool]]&lt;br /&gt;
*[[IBHNet:Using IBHNet with WinCC Flexible|Using IBHNet with WinCC Flexible]]&lt;br /&gt;
*[[IBHNet:Using the IBH Link S5++ with Intouch|Using the IBH Link S5++ with Intouch]]&lt;br /&gt;
*[[IBHNet:Using the IBH Link S7++ with Intouch|Using the IBH Link S7++ with Intouch]]&lt;br /&gt;
*[[IBHNet:Accessing PLC variables|Accessing PLC variables]]&lt;br /&gt;
*[[IBHNet:Fetch/Write|Fetch/Write]]&lt;br /&gt;
*[[IBHNet:Unprojected PLC-PLC communication|Unprojected PLC-PLC communication]]&lt;br /&gt;
*[[IBHNet:Projected PLC-PLC communication|Projected PLC-PLC communication]]&lt;br /&gt;
*[[IBHNet:RFC1006 Communication IBH Link S7/S7Plus|RFC1006 Communication IBH Link S7/S7Plus]]&lt;br /&gt;
*[[IBHNet:RFC1006 Communication IBH Link S7++/S7++HS|RFC1006 Communication IBH Link S7++/S7++HS]]&lt;br /&gt;
*[[IBHNet:Troubleshooting|Troubleshooting]]&lt;br /&gt;
*[[IBHNet:Reset/Factory settings|Reset/Factory settings]]&lt;br /&gt;
*[[IBHNet:Technical Data IBH Link S7|Technical Data IBH Link S7]]&lt;br /&gt;
*[[IBHNet:Technical Data IBH Link S7 Plus|Technical Data IBH Link S7 Plus]]&lt;br /&gt;
*[[IBHNet:Technical Data IBH Link S7++/S7++ HS|Technical Data IBH Link S7++/S7++ HS]]&lt;br /&gt;
*[[IBHNet:Technical Data IBH Link S5++|Technical Data IBH Link S5++]]&lt;br /&gt;
*[[IBHNet:IBH Link History|IBH Link History]]&lt;br /&gt;
*[[IBHNet:Revisions|Revisions]]&lt;br /&gt;
&lt;br /&gt;
==IBH USB-S5-Adapter==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;2&amp;quot; class=&amp;quot;float-right&amp;quot;&amp;gt;&lt;br /&gt;
Image:IBH_USB_S5.gif|[http://www.ibhsoftec.com/IBH-USB-S5-Adapter-Eng IBH-USB-S5-Adapter]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
* [[IBH USB-S5-Adapter:SIMATIC® S5 for Windows®|Access to a SIMATIC® S5 with &#039;&#039;S5 for Windows®&#039;&#039;]]&lt;br /&gt;
* [[IBH USB-S5-Adapter:Maximum USB cable length|Maximum USB cable length]]&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBHNet:Using_the_IBH_Link_S7%2B%2B_with_Intouch&amp;diff=1404</id>
		<title>IBHNet:Using the IBH Link S7++ with Intouch</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBHNet:Using_the_IBH_Link_S7%2B%2B_with_Intouch&amp;diff=1404"/>
		<updated>2013-03-04T08:12:10Z</updated>

		<summary type="html">&lt;p&gt;Joscha: /* Using the IBH Link S7++ or IBH Link S7++ HS with Intouch via RFC1006 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the &#039;&#039;IBH Link S7++&#039;&#039; or &#039;&#039;IBH Link S7++ HS&#039;&#039; with Intouch via RFC1006 ==&lt;br /&gt;
&lt;br /&gt;
In order to use the RFC1006 function of the &#039;&#039;&#039;&#039;&#039;IBH Link S7++&#039;&#039;&#039;&#039;&#039; or &#039;&#039;&#039;&#039;&#039;IBH Link S7++ HS&#039;&#039;&#039;&#039;&#039; with Intouch, please follow the description step by step.&lt;br /&gt;
&lt;br /&gt;
* Start the System Management Console:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;lt;Start ⇒ Programs ⇒ Wonderware ⇒ System Management Console&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:DAserver1.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;As &amp;amp;lt;Network Address&amp;amp;gt; enter the IP Address of the &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| &amp;lt;Remote Rack No&amp;gt; = 0 || Rack Address of the PLC&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Remote Slot No&amp;gt; = 2 || MPI&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; Address of the PLC&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Connection Resource&amp;gt; = 2 || &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Then the Device Group needs to be entered (via this name the WW Client accesses the &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039;)&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:DAserver2.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Then the Wonderware Client needs to be configured:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;lt;Start ⇒ Programs ⇒ Wonderware Factory Suite ⇒ Common ⇒ WWClient&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:DAserver3.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:DAserver5.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The Field &amp;amp;lt;Node&amp;amp;gt; needs to be empty, as &amp;amp;lt;Topic&amp;amp;gt; the Device Groups Name will be used.&lt;br /&gt;
* After successful configuration, the desired items can be entered and be activated via the Button &amp;amp;lt;AdviseEX&amp;amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:DAserver6.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* With the activated SIDirect DA-Server, the configured items should appear in the Wonderware Client Connection Window with their current value:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:DAserver7.png|frame|none]]&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBHNet:Using_the_IBH_Link_S5%2B%2B_with_Intouch&amp;diff=1403</id>
		<title>IBHNet:Using the IBH Link S5++ with Intouch</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBHNet:Using_the_IBH_Link_S5%2B%2B_with_Intouch&amp;diff=1403"/>
		<updated>2013-03-04T08:11:08Z</updated>

		<summary type="html">&lt;p&gt;Joscha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using the &#039;&#039;IBH Link S5++&#039;&#039; with Intouch via RFC1006 ==&lt;br /&gt;
&lt;br /&gt;
In order to use the RFC1006 function of the &#039;&#039;&#039;&#039;&#039;IBH Link S5++&#039;&#039;&#039;&#039;&#039; with Intouch, please follow the description step by step.&lt;br /&gt;
&lt;br /&gt;
* Start the System Management Console:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;lt;Start ⇒ Programs ⇒ Wonderware ⇒ System Management Console&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:DAserver1.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;As &amp;amp;lt;Network Address&amp;amp;gt; enter the IP Address of the &#039;&#039;&#039;&#039;&#039;IBH Link S5++&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| &amp;lt;Remote Rack No&amp;gt; = 0 || Rack Address of the PLC&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Remote Slot No&amp;gt; = 2 || MPI&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; Address of the PLC &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;Connection Resource&amp;gt; = 2 || &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Then the Device Group needs to be entered (via this name the WW Client accesses the &#039;&#039;&#039;&#039;&#039;IBH Link S5++&#039;&#039;&#039;&#039;&#039;)&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:DAserver2.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Then the Wonderware Client needs to be configured:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;lt;Start ⇒ Programs ⇒ Wonderware Factory Suite ⇒ Common ⇒ WWClient&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:DAserver3.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:DAserver5.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The Field &amp;amp;lt;Node&amp;amp;gt; needs to be empty, as &amp;amp;lt;Topic&amp;amp;gt; the Device Groups Name will be used.&lt;br /&gt;
* After successful configuration, the desired items can be entered and be activated via the Button &amp;amp;lt;AdviseEX&amp;amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:DAserver6.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* With the activated SIDirect DA-Server, the configured items should appear in the Wonderware Client Connection Window with their current value:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:DAserver7.png|frame|none]]&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:PLC-PLC_communication&amp;diff=1402</id>
		<title>IBHLink S7++:PLC-PLC communication</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:PLC-PLC_communication&amp;diff=1402"/>
		<updated>2013-02-19T07:30:04Z</updated>

		<summary type="html">&lt;p&gt;Joscha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Ethernet to MPI / PROFIBUS==&lt;br /&gt;
[[Image:Ethernet_MPICP_diagram.png|thumb|400px|right]]&lt;br /&gt;
Requirements:&amp;lt;br&amp;gt;&lt;br /&gt;
- SIMATIC Manager&amp;lt;br&amp;gt;&lt;br /&gt;
- IBH Link S7++ / HS with Firmware &amp;gt;= 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU with MPI or PROFIBUS Interface&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU with Ethernet onboard or Ethernet CP. The Interface must support S7 connections. It can be checked within the hardware &lt;br /&gt;
properties: S7 connection active (&#039;&#039;&#039;Server&#039;&#039;&#039; means passive).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/english/Samples/Ethernet2MPI_eng.zip STEP®7 Sample: Ethernet to MPI/PROFIBUS]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Active:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPICPaktiv.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Passive:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPICPpassiv.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within NetPro the CPU must be connected with the Ethernet. An unspecified connection needs to be created:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connection.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To access several CPUs accordingly, several S7 connections need to be configured. The connection ID is relevant for the call of the FBs/SFBs. If the amount of CPUs exceeds the amount of possible S7 connections, Ethernet to PROFIBUS via PROFIBUS CP (Multiplexing) can be chosen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within the properties of the S7 connection the IP address of the IBH Links must be entered:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connection2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within the Address Details enter the MPI address of the destination CPU. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connection3.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The communication will be established usings the blocks FB14/FB15. There are different FB14/FB15 available. Depending if a CPU with onboard Ethernet or a CPU with Ethernet CP is used, the correct set of blocks must be chosen, otherwise there will be no data exchange.&amp;lt;br&amp;gt;&lt;br /&gt;
CPU with onboard Ethernet = Standard Library&amp;lt;br&amp;gt;&lt;br /&gt;
CPU with Ethernet CP = SIMATIC_NET_CP&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:FB14.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sample:&amp;lt;br&amp;gt;&lt;br /&gt;
      CALL  &amp;quot;GET&amp;quot; , DB14&lt;br /&gt;
       REQ   :=M0.0                     //Start reading with positive edge&lt;br /&gt;
       ID    :=W#16#1                   //S7 connection ID configured within NetPro&lt;br /&gt;
       NDR   :=M0.1                     //Job status &lt;br /&gt;
       ERROR :=M0.2                     //ERROR flag&lt;br /&gt;
       STATUS:=MW2                      //STATUS infomation(Siemens documentation)&lt;br /&gt;
       ADDR_1:=P#M 10.0 BYTE 20         //Source address connected CPU&lt;br /&gt;
       RD_1  :=P#M 10.0 BYTE 20         //Destination address local CPU&lt;br /&gt;
&lt;br /&gt;
Depending on the type of CPU the correct set of blocks, FB14/15 or SFB14/15 must be chosen. The final step is to tranfer the S7 program and the system data to the CPU.&lt;br /&gt;
&lt;br /&gt;
==Ethernet to PROFIBUS via PROFIBUS CP (Multiplexing)==&lt;br /&gt;
[[Image:S7_connection_CP_diagram.png|thumb|400px|right]]&lt;br /&gt;
Requirements:&amp;lt;br&amp;gt;&lt;br /&gt;
- SIMATIC Manager&amp;lt;br&amp;gt;&lt;br /&gt;
- IBH Link S7++/IBH Link S7++ HS with Firmware &amp;gt;= 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU with PROFIBUS CP&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU with Ethernet onboard or Ethernet CP. The Interface must support S7 connections. It can be checked within the hardware &lt;br /&gt;
properties: S7 connection active (&#039;&#039;&#039;Server&#039;&#039;&#039; means passive).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/english/Samples/Ethernet2ProfibusCP_eng.zip STEP®7 Sample: Ethernet to PROFIBUS via PROFIBUS-CP]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Active:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPICPaktiv.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Passive:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPICPpassiv.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within NetPro the CPU must be connected with the Ethernet. An unspecified connection needs to be created:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connection.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within the properties of the S7 connection the IP address of the IBH Links must be entered:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connection2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within the address details as Rack and Slot a special ID for IBH Link Routing must be entered: Rack 7, Slot 31&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connectionCP.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Establish connection via FB/SFB 15 (PUT)&amp;lt;br&amp;gt;&lt;br /&gt;
To establish a connection over a PROFIBUS-CP with an IBH Link S7++, more connection information is required, than NetPro permits to enter. For this reason the IBH Link S7++ can be set into the projected mode. That mode permits sending the required connection information with a call to the &amp;quot;PUT&amp;quot; block as a data structure. To set this mode, only a special ID must be entered in NetPro.&lt;br /&gt;
&lt;br /&gt;
Create OB1: &amp;lt;br&amp;gt;&lt;br /&gt;
Within the first network the SFB15 is called to handover the parameters. Within the second network the SFB15 for the data exchange is called.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:OB1.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CALL  &amp;quot;PUT&amp;quot; , DB15&lt;br /&gt;
       REQ   :=M0.0                     //Start reading with positive edge &lt;br /&gt;
       ID    :=W#16#1                   //S7 connection ID configured within NetPro&lt;br /&gt;
       DONE  :=M0.1                     //Job status &lt;br /&gt;
       ERROR :=M0.2                     //ERROR flag&lt;br /&gt;
       STATUS:=MW2                      //STATUS infomation(Siemens documentation)&lt;br /&gt;
       ADDR_1:=P#DB65535.DBX 224.0 BYTE 8    //IBH Link S7++ ID for PROFIBUS connection.&lt;br /&gt;
&lt;br /&gt;
With this ID the IBH Link S7++ gets the needed information for the connenction.&lt;br /&gt;
&lt;br /&gt;
       ADDR_2:=&lt;br /&gt;
       ADDR_3:=&lt;br /&gt;
       ADDR_4:=&lt;br /&gt;
       SD_1  :=&amp;quot;PLC_CONNECTION_RECORDS&amp;quot;.Connection[0]&lt;br /&gt;
       SD_2  :=&lt;br /&gt;
       SD_3  :=&lt;br /&gt;
       SD_4  :=&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PLC_CONNECTION_RECORDS&amp;quot; – Symbolic name of the DB, which contains the parameters for the connection.&lt;br /&gt;
Connection[0] – Pointer to the start address within the DB, which contains the parameters for the connection.&lt;br /&gt;
If the DB contains more than one connection, they can be selected via this parameter and access to several CPUs is possible.&lt;br /&gt;
&lt;br /&gt;
CALL  SFB   14 , DB14&lt;br /&gt;
       REQ   :=M10.0                    //Start reading with positive edge&lt;br /&gt;
       ID    :=W#16#1                   //S7 connection ID configured within NetPro&lt;br /&gt;
       NDR   :=M10.1                    //Job status&lt;br /&gt;
       ERROR :=M10.2                    //ERROR flag&lt;br /&gt;
       STATUS:=MW20                     //STATUS infomation(Siemens documentation)&lt;br /&gt;
       ADDR_1:=P#M 10.0 BYTE 20         //Source address connected CPU&lt;br /&gt;
       ADDR_2:=&lt;br /&gt;
       ADDR_3:=&lt;br /&gt;
       ADDR_4:=&lt;br /&gt;
       RD_1  :=P#M 10.0 BYTE 20         //Destination address local CPU&lt;br /&gt;
       RD_2  :=&lt;br /&gt;
       RD_3  :=&lt;br /&gt;
       RD_4  :=&lt;br /&gt;
&lt;br /&gt;
Depending on the type of CPU the correct set of blocks, FB14/15 or SFB14/15 must be chosen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A DB is needed, which contains the parameters for the connection.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:DB.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters MPI address, Slot- and Rack No. are used. Entering an IP address is not needed using this kind of connection. If several connections are used, it is recommended to use UDTs.&lt;br /&gt;
&lt;br /&gt;
==MPI – Ethernet – MPI without projected configuration / MPI – Ethernet/MPI – IBH Link S5++==&lt;br /&gt;
[[Image:S7connection_diagram.png|thumb|400px|right]]&lt;br /&gt;
[[Image:S7_connection_Multi_diagram.png|thumb|400px|right]]&lt;br /&gt;
[[Image:S7_connection_S5_diagram.png|thumb|400px|right]]&lt;br /&gt;
Requirements&amp;lt;br&amp;gt;&lt;br /&gt;
- SIMATIC Manager or &#039;&#039;&#039;[http://www.ibhsoftec.com/S7W-Eng S7 for Windows®]&#039;&#039;&#039; from IBHsoftec&amp;lt;br&amp;gt;&lt;br /&gt;
- 2 x IBH Link S7++/IBH Link S7++ HS with Firmware &amp;gt;= 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- The operating system of the CPU must contain the blocks XPUT and XGET (SFC67, SFC68). &lt;br /&gt;
The information, whether the CPU contains these blocks can be gathered from the Siemens CPU documentation. &lt;br /&gt;
&lt;br /&gt;
For this type of connection, a projected configuration with NetPro is not necessary. Within the PLC program, the blocks XPUT/XGET are called to establish a connection from one IBH Link S7 to the next IBH Link. For very comfortable configuration of the communication parameters, the blocks XPUT_IBH and XGET_IBH (developed by IBHsoftec) are available and can be found within the sample.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/english/Samples/MPI_IBHLink_IBHlink_MPI_eng.zip STEP®7 Sample: MPI – Ethernet – MPI without projected configuration]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[[Image:Block call.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CALL  FB    67 , DB67&lt;br /&gt;
       REQ         :=M10.0              //Start reading with positive edge&lt;br /&gt;
       DEST_ID     :=0                  //Pointer within parameter DB&lt;br /&gt;
       DB_PARA     :=100                //No. of parameter DB&lt;br /&gt;
       IBHLINK_ADDR:=B#16#0             //MPI Address source IBH Link&lt;br /&gt;
       SRC_ADDR    :=P#M 100.0 BYTE 20  //Location of data in the destination CPU&lt;br /&gt;
       DST_ADDR    :=P#M 100.0 BYTE 20  //Location of data in the local CPU&lt;br /&gt;
       RESULT      :=MW2                //STATUS infomation&lt;br /&gt;
       BUSY        :=M3.0               //Job status&lt;br /&gt;
The information for the IBH Link on how to reach the destination CPU are stored within the parameter DB. &lt;br /&gt;
&lt;br /&gt;
[[Image:DB_100.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rack and Slot No are 0 when using MPI. The parameters for S5 conenctions using the IBH Link S5++ are:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Destination IP address || IP address of the IBHLink S5++&lt;br /&gt;
|-&lt;br /&gt;
| Destination MPI address || 2&lt;br /&gt;
|-&lt;br /&gt;
| Destination Rack || 0&lt;br /&gt;
|-&lt;br /&gt;
| Destination Slot || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==MPI – Ethernet – MPI with S7 conection (projected) / MPI – Ethernet / MPI – IBH Link S5++==&lt;br /&gt;
[[Image:S7connection_diagram.png|thumb|400px|right]]&lt;br /&gt;
[[Image:S7_connection_Multi_CP_diagram.png|thumb|400px|right]]&lt;br /&gt;
[[Image:S7_connection_S5_diagram.png|thumb|400px|right]]&lt;br /&gt;
Requirements&amp;lt;br&amp;gt;&lt;br /&gt;
- SIMATIC Manager &lt;br /&gt;
- 2 x IBH Link S7++/IBH Link S7++ HS with Firmware &amp;gt;= 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU with MPI Interface&amp;lt;br&amp;gt;&lt;br /&gt;
- Interface has to support S7 connections&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/english/Samples/MPI_IBHLink_IBHlink_MPI_proj_eng.zip STEP®7 sample: MPI – Ethernet – MPI with S7 connection (projectet)]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within NetPro the CPU must be connected with the Ethernet. An unspecified connection needs to be created:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:S7connection_400.png]]&lt;br /&gt;
&lt;br /&gt;
Within the properties of the S7 connection the IP address of the IBH Links must be entered:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:S7connection_properties.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Establish connection via FB/SFB 15 (PUT)&amp;lt;br&amp;gt;&lt;br /&gt;
To establish a connection with an IBH Link S7++, more connection information is required, than NetPro permits to enter. For this reason the IBH Link S7++ can be set into the projected mode. That mode permits sending the required connection information with a call to the &amp;quot;PUT&amp;quot; block as a data structure. Another reason to use this connection is, if data needs to be exchanged with several CPU.&lt;br /&gt;
&lt;br /&gt;
Create OB1: &lt;br /&gt;
&lt;br /&gt;
Within the first network the SFB15 is called to handover the parameters. Within the second network the SFB15 for the data exchange is called.&lt;br /&gt;
[[Image:OB1.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CALL  &amp;quot;PUT&amp;quot; , DB15&lt;br /&gt;
       REQ   :=M0.0                     //Start reading with positive edge &lt;br /&gt;
       ID    :=W#16#1                   //S7 connection ID configured within NetPro&lt;br /&gt;
       DONE  :=M0.1                     //Job status &lt;br /&gt;
       ERROR :=M0.2                     //ERROR flag&lt;br /&gt;
       STATUS:=MW2                      //STATUS infomation(Siemens documentation)&lt;br /&gt;
       ADDR_1:=P#DB65535.DBX 224.0 BYTE 8    //IBH Link S7++ ID for PROFIBUS connection.&lt;br /&gt;
&lt;br /&gt;
With this ID the IBH Link S7++ gets the needed information for the connenction.&lt;br /&gt;
&lt;br /&gt;
       ADDR_2:=&lt;br /&gt;
       ADDR_3:=&lt;br /&gt;
       ADDR_4:=&lt;br /&gt;
       SD_1  :=&amp;quot;PLC_CONNECTION_RECORDS&amp;quot;.Connection[0]&lt;br /&gt;
       SD_2  :=&lt;br /&gt;
       SD_3  :=&lt;br /&gt;
       SD_4  :=&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PLC_CONNECTION_RECORDS&amp;quot; – Symbolic name of the DB, which contains the parameters for the connection.&lt;br /&gt;
Connection[0] – Pointer to the start address within the DB, which contains the parameters for the connection.&lt;br /&gt;
If the DB contains more than one connection, they can be selected via this parameter and access to several CPUs is possible.&lt;br /&gt;
&lt;br /&gt;
CALL  SFB   14 , DB14&lt;br /&gt;
       REQ   :=M10.0                    //Start reading with positive edge&lt;br /&gt;
       ID    :=W#16#1                   //S7 connection ID configured within NetPro&lt;br /&gt;
       NDR   :=M10.1                    //Job status&lt;br /&gt;
       ERROR :=M10.2                    //ERROR flag&lt;br /&gt;
       STATUS:=MW20                     //STATUS infomation(Siemens documentation)&lt;br /&gt;
       ADDR_1:=P#M 10.0 BYTE 20         //Source address connected CPU&lt;br /&gt;
       ADDR_2:=&lt;br /&gt;
       ADDR_3:=&lt;br /&gt;
       ADDR_4:=&lt;br /&gt;
       RD_1  :=P#M 10.0 BYTE 20         //Destination address local CPU&lt;br /&gt;
       RD_2  :=&lt;br /&gt;
       RD_3  :=&lt;br /&gt;
       RD_4  :=&lt;br /&gt;
&lt;br /&gt;
Depending on the type of CPU the correct set of blocks, FB14/15 or SFB14/15 must be chosen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A DB is needed, which contains the parameters for the connection.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:DB.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The parameters MPI address, Slot- and Rack No. are used. Entering an IP address is not needed using this kind of connection. If several connections are used, it is recommended to use UDTs. &lt;br /&gt;
&lt;br /&gt;
The parameters for S5 conenctions using the IBH Link S5++ are:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Destination IP address || IP address of the IBHLink S5++&lt;br /&gt;
|-&lt;br /&gt;
| Destination MPI address || 2&lt;br /&gt;
|-&lt;br /&gt;
| Destination Rack || 0&lt;br /&gt;
|-&lt;br /&gt;
| Destination Slot || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Connection via IBH Link in routing mode==&lt;br /&gt;
&lt;br /&gt;
Requirements&amp;lt;br&amp;gt;&lt;br /&gt;
- SIMATIC Manager &lt;br /&gt;
- IBH Link S7++/IBH Link S7++ HS with Firmware &amp;gt;= 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU with MPI/PROFIBUS Interface&amp;lt;br&amp;gt;&lt;br /&gt;
- Interface has to support S7 connections&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/english/Samples/Ethernet_PROFIBUS_eng.zip STEP®7 Sample: Connction via IBH Link in routing mode]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This kind of connection offers the possibility to exchange a large amount of data very fast - up to 64K. &lt;br /&gt;
&lt;br /&gt;
For the communication, the standard blocks FB/SFB 8/9 (USEND / URCV) and FB/SFB 12/13 (BSEND / BRCV) are used.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within the IBHNet settings the routing mode must be activated. This mode is available beginning with firmware version 2.142. &lt;br /&gt;
&lt;br /&gt;
With projected connections via RFC1006 it is not possible to communicate over unprojected connections any more! &lt;br /&gt;
&lt;br /&gt;
The normal IBHNet communication over port 1099 via the IBHNet driver is not influenced from this setting.&lt;br /&gt;
&lt;br /&gt;
[[Image:IBHLink_routing.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The IBHLink S7++ will be configured as a station within NetPro.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:IBH Link_as_Station.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
The following station must be selected:&amp;lt;br&amp;gt;&lt;br /&gt;
MLFB: 6ES7 412-2EK06-0AB0 V6.0  Rack 0, Slot 2&amp;lt;br&amp;gt;&lt;br /&gt;
MPI/PROFIBUS address of the IBHLink S7++&amp;lt;br&amp;gt;&lt;br /&gt;
IP Address of the IBHLink S7++&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration of the station within the hardwareconfigurator:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:IBH_Link_as_station_HWC.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within NetPro all corresponding CPUs besides the IBH Link station need to be configured. The S7 connection will be established from the real existing CPU via Ethernet to the IBH Link Station. In this case the real existing CPU is the active Partner.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Connection1.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Connection1_parameter.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The partners connection resource is given automatically and is relvant for the next step.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Connection1_address.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The IBH Link station establishes a S7 connection via PROFIBUS to the second real existing CPU. In this case, the IBH Link station is the active Partner. As local ID the automatically given ID from the step before must be entered (within the sample: 10).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Connection2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The connection status can be displayed within NetPro:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Connection_status.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This type of connection allows complex networking:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Connection_multi.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the connection to an IBH Link S5++, no dummy CPU needs to be configured within NetPro. It es enough to create an unspecified S7 connection via Ethernet. In this case, the partner IP address is the IP address of the IBH Link S5++. For communication, the blocks PUT/GET are chosen - SFB14/15.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:IBHLinkS5_address.png]]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:PLC-PLC_communication&amp;diff=1401</id>
		<title>IBHLink S7++:PLC-PLC communication</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:PLC-PLC_communication&amp;diff=1401"/>
		<updated>2013-02-19T07:22:47Z</updated>

		<summary type="html">&lt;p&gt;Joscha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Ethernet to MPI / PROFIBUS==&lt;br /&gt;
[[Image:Ethernet_MPICP_diagram.png|thumb|400px|right]]&lt;br /&gt;
Requirements:&amp;lt;br&amp;gt;&lt;br /&gt;
- SIMATIC Manager&amp;lt;br&amp;gt;&lt;br /&gt;
- IBH Link S7++ / HS with Firmware &amp;gt;= 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU with MPI or PROFIBUS Interface&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU with Ethernet onboard or Ethernet CP. The Interface must support S7 connections. It can be checked within the hardware &lt;br /&gt;
properties: S7 connection active (&#039;&#039;&#039;Server&#039;&#039;&#039; means passive).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/english/Samples/Ethernet2MPI_eng.zip STEP®7 Sample: Ethernet to MPI/PROFIBUS]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Active:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPICPaktiv.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Passive:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPICPpassiv.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within NetPro the CPU must be connected with the Ethernet. An unspecified connection needs to be created:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connection.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To access several CPUs accordingly, several S7 connections need to be configured. The connection ID is relevant for the call of the FBs/SFBs. If the amount of CPUs exceeds the amount of possible S7 connections, Ethernet to PROFIBUS via PROFIBUS CP (Multiplexing) can be chosen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within the properties of the S7 connection the IP address of the IBH Links must be entered:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connection2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within the Address Details enter the MPI address of the destination CPU. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connection3.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The communication will be established usings the blocks FB14/FB15. There are different FB14/FB15 available. Depending if a CPU with onboard Ethernet or a CPU with Ethernet CP is used, the correct set of blocks must be chosen, otherwise there will be no data exchange.&amp;lt;br&amp;gt;&lt;br /&gt;
CPU with onboard Ethernet = Standard Library&amp;lt;br&amp;gt;&lt;br /&gt;
CPU with Ethernet CP = SIMATIC_NET_CP&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:FB14.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sample:&amp;lt;br&amp;gt;&lt;br /&gt;
      CALL  &amp;quot;GET&amp;quot; , DB14&lt;br /&gt;
       REQ   :=M0.0                     //Start reading with positive edge&lt;br /&gt;
       ID    :=W#16#1                   //S7 connection ID configured within NetPro&lt;br /&gt;
       NDR   :=M0.1                     //Job status &lt;br /&gt;
       ERROR :=M0.2                     //ERROR flag&lt;br /&gt;
       STATUS:=MW2                      //STATUS infomation(Siemens documentation)&lt;br /&gt;
       ADDR_1:=P#M 10.0 BYTE 20         //Source address connected CPU&lt;br /&gt;
       RD_1  :=P#M 10.0 BYTE 20         //Destination address local CPU&lt;br /&gt;
&lt;br /&gt;
Depending on the type of CPU the correct set of blocks, FB14/15 or SFB14/15 must be chosen. The final step is to tranfer the S7 program and the system data to the CPU.&lt;br /&gt;
&lt;br /&gt;
==Ethernet to PROFIBUS via PROFIBUS CP (Multiplexing)==&lt;br /&gt;
[[Image:S7_connection_CP_diagram.png|thumb|400px|right]]&lt;br /&gt;
Requirements:&amp;lt;br&amp;gt;&lt;br /&gt;
- SIMATIC Manager&amp;lt;br&amp;gt;&lt;br /&gt;
- IBH Link S7++/IBH Link S7++ HS with Firmware &amp;gt;= 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU with PROFIBUS CP&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU with Ethernet onboard or Ethernet CP. The Interface must support S7 connections. It can be checked within the hardware &lt;br /&gt;
properties: S7 connection active (&#039;&#039;&#039;Server&#039;&#039;&#039; means passive).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/english/Samples/Ethernet2ProfibusCP_eng.zip STEP®7 Sample: Ethernet to PROFIBUS via PROFIBUS-CP]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Active:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPICPaktiv.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Passive:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPICPpassiv.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within NetPro the CPU must be connected with the Ethernet. An unspecified connection needs to be created:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connection.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within the properties of the S7 connection the IP address of the IBH Links must be entered:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connection2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within the address details as Rack and Slot a special ID for IBH Link Routing must be entered: Rack 7, Slot 31&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connectionCP.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Establish connection via FB/SFB 15 (PUT)&amp;lt;br&amp;gt;&lt;br /&gt;
To establish a connection over a PROFIBUS-CP with an IBH Link S7++, more connection information is required, than NetPro permits to enter. For this reason the IBH Link S7++ can be set into the projected mode. That mode permits sending the required connection information with a call to the &amp;quot;PUT&amp;quot; block as a data structure. To set this mode, only a special ID must be entered in NetPro.&lt;br /&gt;
&lt;br /&gt;
Create OB1: &amp;lt;br&amp;gt;&lt;br /&gt;
Within the first network the SFB15 is called to handover the parameters. Within the second network the SFB15 for the data exchange is called.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:OB1.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CALL  &amp;quot;PUT&amp;quot; , DB15&lt;br /&gt;
       REQ   :=M0.0                     //Start reading with positive edge &lt;br /&gt;
       ID    :=W#16#1                   //S7 connection ID configured within NetPro&lt;br /&gt;
       DONE  :=M0.1                     //Job status &lt;br /&gt;
       ERROR :=M0.2                     //ERROR flag&lt;br /&gt;
       STATUS:=MW2                      //STATUS infomation(Siemens documentation)&lt;br /&gt;
       ADDR_1:=P#DB65535.DBX 224.0 BYTE 8    //IBH Link S7++ ID for PROFIBUS connection.&lt;br /&gt;
&lt;br /&gt;
With this ID the IBH Link S7++ gets the needed information for the connenction.&lt;br /&gt;
&lt;br /&gt;
       ADDR_2:=&lt;br /&gt;
       ADDR_3:=&lt;br /&gt;
       ADDR_4:=&lt;br /&gt;
       SD_1  :=&amp;quot;PLC_CONNECTION_RECORDS&amp;quot;.Connection[0]&lt;br /&gt;
       SD_2  :=&lt;br /&gt;
       SD_3  :=&lt;br /&gt;
       SD_4  :=&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PLC_CONNECTION_RECORDS&amp;quot; – Symbolic name of the DB, which contains the parameters for the connection.&lt;br /&gt;
Connection[0] – Pointer to the start address within the DB, which contains the parameters for the connection.&lt;br /&gt;
If the DB contains more than one connection, they can be selected via this parameter and access to several CPUs is possible.&lt;br /&gt;
&lt;br /&gt;
CALL  SFB   14 , DB14&lt;br /&gt;
       REQ   :=M10.0                    //Start reading with positive edge&lt;br /&gt;
       ID    :=W#16#1                   //S7 connection ID configured within NetPro&lt;br /&gt;
       NDR   :=M10.1                    //Job status&lt;br /&gt;
       ERROR :=M10.2                    //ERROR flag&lt;br /&gt;
       STATUS:=MW20                     //STATUS infomation(Siemens documentation)&lt;br /&gt;
       ADDR_1:=P#M 10.0 BYTE 20         //Source address connected CPU&lt;br /&gt;
       ADDR_2:=&lt;br /&gt;
       ADDR_3:=&lt;br /&gt;
       ADDR_4:=&lt;br /&gt;
       RD_1  :=P#M 10.0 BYTE 20         //Destination address local CPU&lt;br /&gt;
       RD_2  :=&lt;br /&gt;
       RD_3  :=&lt;br /&gt;
       RD_4  :=&lt;br /&gt;
&lt;br /&gt;
Depending on the type of CPU the correct set of blocks, FB14/15 or SFB14/15 must be chosen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A DB is needed, which contains the parameters for the connection.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:DB.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters MPI address, Slot- and Rack No. are used. Entering an IP address is not needed using this kind of connection. If several connections are used, it is recommended to use UDTs.&lt;br /&gt;
&lt;br /&gt;
==MPI – Ethernet – MPI without projected configuration / MPI – Ethernet/MPI – IBH Link S5++==&lt;br /&gt;
[[Image:S7connection_diagram.png|thumb|400px|right]]&lt;br /&gt;
[[Image:S7_connection_Multi_diagram.png|thumb|400px|right]]&lt;br /&gt;
[[Image:S7_connection_S5_diagram.png|thumb|400px|right]]&lt;br /&gt;
Requirements&amp;lt;br&amp;gt;&lt;br /&gt;
- SIMATIC Manager or &#039;&#039;&#039;[http://www.ibhsoftec.com/S7W-Eng S7 for Windows®]&#039;&#039;&#039; from IBHsoftec&amp;lt;br&amp;gt;&lt;br /&gt;
- 2 x IBH Link S7++/IBH Link S7++ HS with Firmware &amp;gt;= 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- The operating system of the CPU must contain the blocks XPUT and XGET (SFC67, SFC68). &lt;br /&gt;
The information, whether the CPU contains these blocks can be gathered from the Siemens CPU documentation. &lt;br /&gt;
&lt;br /&gt;
For this type of connection, a projected configuration with NetPro is not necessary. Within the PLC program, the blocks XPUT/XGET are called to establish a connection from one IBH Link S7 to the next IBH Link. For very comfortable configuration of the communication parameters, the blocks XPUT_IBH and XGET_IBH (developed by IBHsoftec) are available and can be found within the sample.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/english/Samples/MPI_IBHLink_IBHlink_MPI_eng.zip STEP®7 Sample: MPI – Ethernet – MPI without projected configuration]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[[Image:Block call.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CALL  FB    67 , DB67&lt;br /&gt;
       REQ         :=M10.0              //Start reading with positive edge&lt;br /&gt;
       DEST_ID     :=0                  //Pointer within parameter DB&lt;br /&gt;
       DB_PARA     :=100                //No. of parameter DB&lt;br /&gt;
       IBHLINK_ADDR:=B#16#0             //MPI Address source IBH Link&lt;br /&gt;
       SRC_ADDR    :=P#M 100.0 BYTE 20  //Location of data in the destination CPU&lt;br /&gt;
       DST_ADDR    :=P#M 100.0 BYTE 20  //Location of data in the local CPU&lt;br /&gt;
       RESULT      :=MW2                //STATUS infomation&lt;br /&gt;
       BUSY        :=M3.0               //Job status&lt;br /&gt;
The information for the IBH Link on how to reach the destination CPU are stored within the parameter DB. &lt;br /&gt;
&lt;br /&gt;
[[Image:DB_100.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rack and Slot No are 0 when using MPI. The parameters for S5 conenctions using the IBH Link S5++ are:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Destination IP address || IP address of the IBHLink S5++&lt;br /&gt;
|-&lt;br /&gt;
| Destination MPI address || 2&lt;br /&gt;
|-&lt;br /&gt;
| Destination Rack || 0&lt;br /&gt;
|-&lt;br /&gt;
| Destination Slot || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==MPI – Ethernet – MPI with S7 conection (projected) / MPI – Ethernet / MPI – IBH Link S5++==&lt;br /&gt;
[[Image:S7connection_diagram.png|thumb|400px|right]]&lt;br /&gt;
[[Image:S7_connection_Multi_CP_diagram.png|thumb|400px|right]]&lt;br /&gt;
[[Image:S7_connection_S5_diagram.png|thumb|400px|right]]&lt;br /&gt;
Requirements&amp;lt;br&amp;gt;&lt;br /&gt;
- SIMATIC Manager &lt;br /&gt;
- 2 x IBH Link S7++/IBH Link S7++ HS with Firmware &amp;gt;= 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU with MPI Interface&amp;lt;br&amp;gt;&lt;br /&gt;
- Interface has to support S7 connections&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/english/Samples/MPI_IBHLink_IBHlink_MPI_proj_eng.zip STEP®7 sample: MPI – Ethernet – MPI with S7 connection (projectet)]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within NetPro the CPU must be connected with the Ethernet. An unspecified connection needs to be created:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:S7connection_400.png]]&lt;br /&gt;
&lt;br /&gt;
Within the properties of the S7 connection the IP address of the IBH Links must be entered:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:S7connection_properties.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Establish connection via FB/SFB 15 (PUT)&amp;lt;br&amp;gt;&lt;br /&gt;
To establish a connection with an IBH Link S7++, more connection information is required, than NetPro permits to enter. For this reason the IBH Link S7++ can be set into the projected mode. That mode permits sending the required connection information with a call to the &amp;quot;PUT&amp;quot; block as a data structure. Another reason to use this connection is, if data needs to be exchanged with several CPU.&lt;br /&gt;
&lt;br /&gt;
Create OB1: &lt;br /&gt;
&lt;br /&gt;
Within the first network the SFB15 is called to handover the parameters. Within the second network the SFB15 for the data exchange is called.&lt;br /&gt;
[[Image:OB1.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CALL  &amp;quot;PUT&amp;quot; , DB15&lt;br /&gt;
       REQ   :=M0.0                     //Start reading with positive edge &lt;br /&gt;
       ID    :=W#16#1                   //S7 connection ID configured within NetPro&lt;br /&gt;
       DONE  :=M0.1                     //Job status &lt;br /&gt;
       ERROR :=M0.2                     //ERROR flag&lt;br /&gt;
       STATUS:=MW2                      //STATUS infomation(Siemens documentation)&lt;br /&gt;
       ADDR_1:=P#DB65535.DBX 224.0 BYTE 8    //IBH Link S7++ ID for PROFIBUS connection.&lt;br /&gt;
&lt;br /&gt;
With this ID the IBH Link S7++ gets the needed information for the connenction.&lt;br /&gt;
&lt;br /&gt;
       ADDR_2:=&lt;br /&gt;
       ADDR_3:=&lt;br /&gt;
       ADDR_4:=&lt;br /&gt;
       SD_1  :=&amp;quot;PLC_CONNECTION_RECORDS&amp;quot;.Connection[0]&lt;br /&gt;
       SD_2  :=&lt;br /&gt;
       SD_3  :=&lt;br /&gt;
       SD_4  :=&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PLC_CONNECTION_RECORDS&amp;quot; – Symbolic name of the DB, which contains the parameters for the connection.&lt;br /&gt;
Connection[0] – Pointer to the start address within the DB, which contains the parameters for the connection.&lt;br /&gt;
If the DB contains more than one connection, they can be selected via this parameter and access to several CPUs is possible.&lt;br /&gt;
&lt;br /&gt;
CALL  SFB   14 , DB14&lt;br /&gt;
       REQ   :=M10.0                    //Start reading with positive edge&lt;br /&gt;
       ID    :=W#16#1                   //S7 connection ID configured within NetPro&lt;br /&gt;
       NDR   :=M10.1                    //Job status&lt;br /&gt;
       ERROR :=M10.2                    //ERROR flag&lt;br /&gt;
       STATUS:=MW20                     //STATUS infomation(Siemens documentation)&lt;br /&gt;
       ADDR_1:=P#M 10.0 BYTE 20         //Source address connected CPU&lt;br /&gt;
       ADDR_2:=&lt;br /&gt;
       ADDR_3:=&lt;br /&gt;
       ADDR_4:=&lt;br /&gt;
       RD_1  :=P#M 10.0 BYTE 20         //Destination address local CPU&lt;br /&gt;
       RD_2  :=&lt;br /&gt;
       RD_3  :=&lt;br /&gt;
       RD_4  :=&lt;br /&gt;
&lt;br /&gt;
Depending on the type of CPU the correct set of blocks, FB14/15 or SFB14/15 must be chosen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A DB is needed, which contains the parameters for the connection.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:DB.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The parameters MPI address, Slot- and Rack No. are used. Entering an IP address is not needed using this kind of connection. If several connections are used, it is recommended to use UDTs. &lt;br /&gt;
&lt;br /&gt;
The parameters for S5 conenctions using the IBH Link S5++ are:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Destination IP address || IP address of the IBHLink S5++&lt;br /&gt;
|-&lt;br /&gt;
| Destination MPI address || 2&lt;br /&gt;
|-&lt;br /&gt;
| Destination Rack || 0&lt;br /&gt;
|-&lt;br /&gt;
| Destination Slot || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Connection via IBH Link in routing mode==&lt;br /&gt;
&lt;br /&gt;
Requirements&amp;lt;br&amp;gt;&lt;br /&gt;
- SIMATIC Manager &lt;br /&gt;
- IBH Link S7++/IBH Link S7++ HS with Firmware &amp;gt;= 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU with MPI/PROFIBUS Interface&amp;lt;br&amp;gt;&lt;br /&gt;
- Interface has to support S7 connections&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/english/Samples/Ethernet_PROFIBUS_eng.zip STEP®7 Sample: Connction via IBH Link in routing mode]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This kind of connection offers the possibility to exchange a large amount of data very fast - up to 64K. &lt;br /&gt;
&lt;br /&gt;
For the communication, the standard blocks FB/SFB 8/9 (USEND / URCV) and FB/SFB 12/13 (BSEND / BRCV) are used.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within the IBHNet settings the routing mode must be activated. This mode is available beginning with firmware version 2.142. &lt;br /&gt;
&lt;br /&gt;
With projected connections via RFC1006 it is not possible to communicate over unprojected connections any more! &lt;br /&gt;
&lt;br /&gt;
The normal IBHNet communication over port 1099 via the IBHNet driver is not influenced from this setting.&lt;br /&gt;
&lt;br /&gt;
[[Image:IBHLink_routing.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The IBHLink S7++ will be configured as a station within NetPro.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:IBH Link_as_Station.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
The following station must be selected:&amp;lt;br&amp;gt;&lt;br /&gt;
MLFB: 6ES7 412-2EK06-0AB0 V6.0  Rack 0, Slot 2&amp;lt;br&amp;gt;&lt;br /&gt;
MPI/PROFIBUS address of the IBHLink S7++&amp;lt;br&amp;gt;&lt;br /&gt;
IP Address of the IBHLink S7++&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration of the station within the hardwareconfigurator:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:IBH_Link_as_station_HWC.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within NetPro all corresponding CPUs besides the IBH Link station need to be configured. The S7 connection will be established from the real existing CPU via Ethernet to the IBH Link Station. In this case the real existing CPU is the active Partner.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Connection1.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Connection1_parameter.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The partners connection resource is given automatically and is relvant for the next step.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Connection1_address.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The IBH Link station establishes a S7 connection via PROFIBUS to the second real existing CPU. In this case, the IBH Link station is the active Partner. As local ID the automatically given ID from the step before must be entered (within the sample: 10).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Connection2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The connection status can be displayed within NetPro:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Connection_status.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This type of connection allows ocmplex networking:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Connection_multi.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the connection to an IBH Link S5++, no dummy CPU needs to be configured within NetPro. It es enough to create an unspecified S7 connection via Ethernet. In this case, the partner IP address is the IP address of the IBH Link S5++. For communication, the blocks PUT/GET are chosen - SFB14/15.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:IBHLinkS5_address.png]]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:PLC-PLC_communication&amp;diff=1353</id>
		<title>IBHLink S7++:PLC-PLC communication</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:PLC-PLC_communication&amp;diff=1353"/>
		<updated>2013-02-18T08:54:01Z</updated>

		<summary type="html">&lt;p&gt;Joscha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Ethernet to MPI / PROFIBUS==&lt;br /&gt;
[[Image:Ethernet_MPICP_diagram.png|thumb|400px|right]]&lt;br /&gt;
Requirements:&amp;lt;br&amp;gt;&lt;br /&gt;
- SIMATIC Manager&amp;lt;br&amp;gt;&lt;br /&gt;
- IBH Link S7++ / HS with Firmware &amp;gt;= 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU with MPI or PROFIBUS Interface&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU with Ethernet onboard or Ethernet CP. The Interface must support S7 connections. It can be checked within the hardware &lt;br /&gt;
properties: S7 connection active (&#039;&#039;&#039;Server&#039;&#039;&#039; means passive).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/english/Samples/Ethernet2MPI_eng.zip STEP®7 Sample: Ethernet to MPI/PROFIBUS]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Active:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPICPaktiv.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Passive:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPICPpassiv.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within NetPro the CPU must be connected with the Ethernet. An unspecified connection needs to be created:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connection.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To access several CPUs accordingly, several S7 connections need to be configured. The connection ID is relevant for the call of the FBs/SFBs. If the amount of CPUs exceeds the amount of possible S7 connections, Ethernet to PROFIBUS via PROFIBUS CP (Multiplexing) can be chosen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within the properties of the S7 connection the IP address of the IBH Links must be entered:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connection2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within the Address Details enter the MPI address of the destination CPU. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connection3.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The communication will be established usings the blocks FB14/FB15. There are different FB14/FB15 available. Depending if a CPU with onboard Ethernet or a CPU with Ethernet CP is used, the correct set of blocks must be chosen, otherwise there will be no data exchange.&amp;lt;br&amp;gt;&lt;br /&gt;
CPU with onboard Ethernet = Standard Library&amp;lt;br&amp;gt;&lt;br /&gt;
CPU with Ethernet CP = SIMATIC_NET_CP&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:FB14.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sample:&amp;lt;br&amp;gt;&lt;br /&gt;
      CALL  &amp;quot;GET&amp;quot; , DB14&lt;br /&gt;
       REQ   :=M0.0                     //Start reading with positive edge&lt;br /&gt;
       ID    :=W#16#1                   //S7 connection ID configured within NetPro&lt;br /&gt;
       NDR   :=M0.1                     //Job status &lt;br /&gt;
       ERROR :=M0.2                     //ERROR flag&lt;br /&gt;
       STATUS:=MW2                      //STATUS infomation(Siemens documentation)&lt;br /&gt;
       ADDR_1:=P#M 10.0 BYTE 20         //Source address connected CPU&lt;br /&gt;
       RD_1  :=P#M 10.0 BYTE 20         //Destination address local CPU&lt;br /&gt;
&lt;br /&gt;
Depending on the type of CPU the correct set of blocks, FB14/15 or SFB14/15 must be chosen. The final step is to tranfer the S7 program and the system data to the CPU.&lt;br /&gt;
&lt;br /&gt;
==Ethernet to PROFIBUS via PROFIBUS CP (Multiplexing)==&lt;br /&gt;
[[Image:S7_connection_CP_diagram.png|thumb|400px|right]]&lt;br /&gt;
Requirements:&amp;lt;br&amp;gt;&lt;br /&gt;
- SIMATIC Manager&amp;lt;br&amp;gt;&lt;br /&gt;
- IBH Link S7++/IBH Link S7++ HS with Firmware &amp;gt;= 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU with PROFIBUS CP&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU with Ethernet onboard or Ethernet CP. The Interface must support S7 connections. It can be checked within the hardware &lt;br /&gt;
properties: S7 connection active (&#039;&#039;&#039;Server&#039;&#039;&#039; means passive).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/english/Samples/Ethernet2ProfibusCP_eng.zip STEP®7 Sample: Ethernet to PROFIBUS via PROFIBUS-CP]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Active:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPICPaktiv.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Passive:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPICPpassiv.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within NetPro the CPU must be connected with the Ethernet. An unspecified connection needs to be created:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connection.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within the properties of the S7 connection the IP address of the IBH Links must be entered:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connection2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within the address details as Rack and Slot a special ID for IBH Link Routing must be entered: Rack 7, Slot 31&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connectionCP.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Establish connection via FB/SFB 15 (PUT)&amp;lt;br&amp;gt;&lt;br /&gt;
To establish a connection over a PROFIBUS-CP with an IBH Link S7++, more connection information is required, than NetPro permits to enter. For this reason the IBH Link S7++ can be set into the projected mode. That mode permits sending the required connection information with a call to the &amp;quot;PUT&amp;quot; block as a data structure. To set this mode, only a special ID must be entered in NetPro.&lt;br /&gt;
&lt;br /&gt;
Create OB1: &amp;lt;br&amp;gt;&lt;br /&gt;
Within the first network the SFB15 is called to handover the parameters. Within the second network the SFB15 for the data exchange is called.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:OB1.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CALL  &amp;quot;PUT&amp;quot; , DB15&lt;br /&gt;
       REQ   :=M0.0                     //Start reading with positive edge &lt;br /&gt;
       ID    :=W#16#1                   //S7 connection ID configured within NetPro&lt;br /&gt;
       DONE  :=M0.1                     //Job status &lt;br /&gt;
       ERROR :=M0.2                     //ERROR flag&lt;br /&gt;
       STATUS:=MW2                      //STATUS infomation(Siemens documentation)&lt;br /&gt;
       ADDR_1:=P#DB65535.DBX 224.0 BYTE 8    //IBH Link S7++ ID for PROFIBUS connection.&lt;br /&gt;
&lt;br /&gt;
With this ID the IBH Link S7++ gets the needed information for the connenction.&lt;br /&gt;
&lt;br /&gt;
       ADDR_2:=&lt;br /&gt;
       ADDR_3:=&lt;br /&gt;
       ADDR_4:=&lt;br /&gt;
       SD_1  :=&amp;quot;PLC_CONNECTION_RECORDS&amp;quot;.Connection[0]&lt;br /&gt;
       SD_2  :=&lt;br /&gt;
       SD_3  :=&lt;br /&gt;
       SD_4  :=&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PLC_CONNECTION_RECORDS&amp;quot; – Symbolic name of the DB, which contains the parameters for the connection.&lt;br /&gt;
Connection[0] – Pointer to the start address within the DB, which contains the parameters for the connection.&lt;br /&gt;
If the DB contains more than one connection, they can be selected via this parameter and access to several CPUs is possible.&lt;br /&gt;
&lt;br /&gt;
CALL  SFB   14 , DB14&lt;br /&gt;
       REQ   :=M10.0                    //Start reading with positive edge&lt;br /&gt;
       ID    :=W#16#1                   //S7 connection ID configured within NetPro&lt;br /&gt;
       NDR   :=M10.1                    //Job status&lt;br /&gt;
       ERROR :=M10.2                    //ERROR flag&lt;br /&gt;
       STATUS:=MW20                     //STATUS infomation(Siemens documentation)&lt;br /&gt;
       ADDR_1:=P#M 10.0 BYTE 20         //Source address connected CPU&lt;br /&gt;
       ADDR_2:=&lt;br /&gt;
       ADDR_3:=&lt;br /&gt;
       ADDR_4:=&lt;br /&gt;
       RD_1  :=P#M 10.0 BYTE 20         //Destination address local CPU&lt;br /&gt;
       RD_2  :=&lt;br /&gt;
       RD_3  :=&lt;br /&gt;
       RD_4  :=&lt;br /&gt;
&lt;br /&gt;
Depending on the type of CPU the correct set of blocks, FB14/15 or SFB14/15 must be chosen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A DB is needed, which contains the parameters for the connection.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:DB.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters MPI address, Slot- and Rack No. are used. Entering an IP address is not needed using this kind of connection. If several connections are used, it is recommended to use UDTs.&lt;br /&gt;
&lt;br /&gt;
==MPI – Ethernet – MPI without projected configuration / MPI – Ethernet/MPI – IBH Link S5++==&lt;br /&gt;
[[Image:S7connection_diagram.png|thumb|400px|right]]&lt;br /&gt;
[[Image:S7_connection_Multi_diagram.png|thumb|400px|right]]&lt;br /&gt;
[[Image:S7_connection_S5_diagram.png|thumb|400px|right]]&lt;br /&gt;
Requirements&amp;lt;br&amp;gt;&lt;br /&gt;
- SIMATIC Manager or &#039;&#039;&#039;[http://www.ibhsoftec.com/S7W-Eng S7 for Windows®]&#039;&#039;&#039; from IBHsoftec&amp;lt;br&amp;gt;&lt;br /&gt;
- 2 x IBH Link S7++/IBH Link S7++ HS with Firmware &amp;gt;= 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- The operating system of the CPU must contain the blocks XPUT and XGET (SFC67, SFC68). &lt;br /&gt;
The information, whether the CPU contains these blocks can be gathered from the Siemens CPU documentation. &lt;br /&gt;
&lt;br /&gt;
For this type of connection, a projected configuration with NetPro is not necessary. Within the PLC program, the blocks XPUT/XGET are called to establish a connection from one IBH Link S7 to the next IBH Link. For very comfortable configuration of the communication parameters, the blocks XPUT_IBH and XGET_IBH (developed by IBHsoftec) are available and can be found within the sample.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/english/Samples/MPI_IBHLink_IBHlink_MPI_eng.zip STEP®7 Sample: MPI – Ethernet – MPI without projected configuration]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[[Image:Block call.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CALL  FB    67 , DB67&lt;br /&gt;
       REQ         :=M10.0              //Start reading with positive edge&lt;br /&gt;
       DEST_ID     :=0                  //Pointer within parameter DB&lt;br /&gt;
       DB_PARA     :=100                //No. of parameter DB&lt;br /&gt;
       IBHLINK_ADDR:=B#16#0             //MPI Address source IBH Link&lt;br /&gt;
       SRC_ADDR    :=P#M 100.0 BYTE 20  //Location of data in the destination CPU&lt;br /&gt;
       DST_ADDR    :=P#M 100.0 BYTE 20  //Location of data in the local CPU&lt;br /&gt;
       RESULT      :=MW2                //STATUS infomation&lt;br /&gt;
       BUSY        :=M3.0               //Job status&lt;br /&gt;
The information for the IBH Link on how to reach the destination CPU are stored within the parameter DB. &lt;br /&gt;
&lt;br /&gt;
[[Image:DB_100.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rack and Slot No are 0 when using MPI. The parameters for S5 conenctions using the IBH Link S5++ are:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Destination IP address || IP address of the IBHLink S5++&lt;br /&gt;
|-&lt;br /&gt;
| Destination MPI address || 2&lt;br /&gt;
|-&lt;br /&gt;
| Destination Rack || 0&lt;br /&gt;
|-&lt;br /&gt;
| Destination Slot || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==MPI – Ethernet – MPI with S7 conection (projected) / MPI – Ethernet / MPI – IBH Link S5++==&lt;br /&gt;
[[Image:S7connection_diagram.png|thumb|400px|right]]&lt;br /&gt;
[[Image:S7_connection_Multi_CP_diagram.png|thumb|400px|right]]&lt;br /&gt;
[[Image:S7_connection_S5_diagram.png|thumb|400px|right]]&lt;br /&gt;
Requirements&amp;lt;br&amp;gt;&lt;br /&gt;
- SIMATIC Manager or &#039;&#039;&#039;[http://www.ibhsoftec.com/S7W-Eng S7 for Windows®]&#039;&#039;&#039; from IBHsoftec&amp;lt;br&amp;gt;&lt;br /&gt;
- 2 x IBH Link S7++/IBH Link S7++ HS with Firmware &amp;gt;= 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU mit MPI Schnistelle&amp;lt;br&amp;gt;&lt;br /&gt;
- Schnittstelle muss S7-Verbindungen unterstützen&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/german/Beispiele/MPI_IBHLink_IBHlink_MPI_proj.zip STEP®7 Beispiel: MPI – Ethernet – MPI mit S7-Verbindung (Projektiert)]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In NetPro muss die CPU mit einem Industrial Ethernet verbunden werden. Es wird eine unspezifizierte S7-Verbindung benötigt:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:S7Verbindung600px.png]]&lt;br /&gt;
&lt;br /&gt;
In den Eigenschaften der S7-Verbindung muss die MPI-Adresse des Quell-IBH Links angegeben werden:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:S7Verbindung2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verbindungsaufbau per FB/SFB 15 (PUT)&amp;lt;br&amp;gt;&lt;br /&gt;
Da beim Verbindungsaufbau mit einem IBH Link S7++ mehr Verbindungsinformationen benötigt werden, als in NetPro angegeben werden können, kann der IBH Link S7++ mit einer speziellen Kennung in einen Modus versetzt werden, in dem er die benötigten Verbindungsparameter mit einem Aufruf des Bausteins &amp;quot;PUT&amp;quot; als Datenstruktur übergeben bekommt. Ein weiterer Grund für die Verwendung dieser Verbindung ist, wenn Sie Daten mit mehreren Ziel-CPUs austauschen möchten.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OB1 erstellen&amp;lt;br&amp;gt;&lt;br /&gt;
Im ersten Netzwerk wird der Baustein SFB15 zur Parameterübergabe aufgerufen. Im zweiten Netzwerk wird der SFB14/15 für den Datenaustausch aufgerufen.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:OB1.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CALL  &amp;quot;PUT&amp;quot; , DB15&lt;br /&gt;
       REQ   :=M0.0                     //Lesevorgang bei steigender Flanke &lt;br /&gt;
       ID    :=W#16#1                   //S7-Verbindungs ID wie in NetPro projektiert&lt;br /&gt;
       DONE  :=M0.1                     //Schreibvorgang abgeschlossen&lt;br /&gt;
       ERROR :=M0.2                     //Fehlerbit&lt;br /&gt;
       STATUS:=MW2                      //Statuswort (siehe Dokumentation Siemens)&lt;br /&gt;
       ADDR_1:=P#DB65535.DBX 224.0 BYTE 8    //IBH Link S7++ Kennung für PROFIBUS-Verbindungsaufbau.&lt;br /&gt;
&lt;br /&gt;
Der IBH Link S7++ bekommt mit dieser Kennung den Verbindungsaufbau mitgeteilt.&lt;br /&gt;
&lt;br /&gt;
       ADDR_2:=&lt;br /&gt;
       ADDR_3:=&lt;br /&gt;
       ADDR_4:=&lt;br /&gt;
       SD_1  :=&amp;quot;PLC_CONNECTION_RECORDS&amp;quot;.Connection[0]&lt;br /&gt;
       SD_2  :=&lt;br /&gt;
       SD_3  :=&lt;br /&gt;
       SD_4  :=&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PLC_CONNECTION_RECORDS&amp;quot; – Symbolischer Name des DBs welcher die Verbindungsparameter enthält.&lt;br /&gt;
Connection[0] – Zeiger auf die gewünschte Start Adresse im DB welcher die Verbindungsparameter enthält. Enthält der DB meherere Verbindungen, können sie über diesen Parameter ausgewählt werden und somit auf verschiedene CPUs zugreifen.&lt;br /&gt;
&lt;br /&gt;
CALL  SFB   14 , DB14&lt;br /&gt;
       REQ   :=M10.0                    //Lesevorgang bei steigender Flanke starten&lt;br /&gt;
       ID    :=W#16#1                   //S7-Verbindungs ID wie in NetPro projektiert&lt;br /&gt;
       NDR   :=M10.1                    //Lesevorgang abgeschlossen&lt;br /&gt;
       ERROR :=M10.2                    //Fehlerbit&lt;br /&gt;
       STATUS:=MW20                     //Statuswort (siehe Dokumentation Siemens)&lt;br /&gt;
       ADDR_1:=P#M 10.0 BYTE 20         //zu lesende Daten entfernte CPU&lt;br /&gt;
       ADDR_2:=&lt;br /&gt;
       ADDR_3:=&lt;br /&gt;
       ADDR_4:=&lt;br /&gt;
       RD_1  :=P#M 10.0 BYTE 20         //zu schreibende Daten lokale CPU&lt;br /&gt;
       RD_2  :=&lt;br /&gt;
       RD_3  :=&lt;br /&gt;
       RD_4  :=&lt;br /&gt;
&lt;br /&gt;
Abhängig von der verwendeten CPU müssen die passenden Bausteine FB14/15 oder SFB14/15 verwendet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es wird ein DB benötigt, welcher die Verbindungsparameter enthält.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:DB.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es werden die Parameter MPI-Adresse, Slot- und Racknummer verwendet. Eine Angabe der IP Adresse ist bei dieser Verbindung ist nicht nötig. Bei mehreren Verbindungen empfiehlt es sich, mit UDTs zu arbeiten. &lt;br /&gt;
&lt;br /&gt;
Bei S5 Verbindungen folgende Parameter für den IBH Link S5++ verwenden:&amp;lt;br&amp;gt;&lt;br /&gt;
Ziel-IP-Adresse: IP-Adresse des IBHLink S5++&amp;lt;br&amp;gt;&lt;br /&gt;
Ziel-MPI-Adresse: 2&amp;lt;br&amp;gt;&lt;br /&gt;
Ziel-Rack: 0&amp;lt;br&amp;gt;&lt;br /&gt;
Ziel-Steckplatz: 0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connection via IBH Link Mode: Configuration via NetPro ==&lt;br /&gt;
&lt;br /&gt;
Voraussetungen&amp;lt;br&amp;gt;&lt;br /&gt;
- Simatic Manager&amp;lt;br&amp;gt;&lt;br /&gt;
- IBH Link S7++ / HS ab Firmware 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- Schnittstelle muss S7-Verbindungen unterstützen&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/german/Beispiele/Ethernet_PROFIBUS.zip STEP®7 Beispiel: Verbindung über IBH Link im Projektierten Modus]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Diese Verbindungsvariante hat den Vorteil das Große Datenmengen schnell ausgetauscht werden können - bis zu 64K. Für die Kommunikation werden die Standardbausteine FB/SFB 8/9  (USEND / URCV) und FB/SFB 12/13 (BSEND / BRCV).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Routing-Modus muss in IBHLink S7++ aktiviert sein. Dieser Modus ist ab Firmware Version 2.142 verfügbar. In diesem Modus sind keine unprojektierte Verbindungen über RFC1006 mehr möglich! Verbindungen über den IBHNet-Treiber funktionieren weiterhin.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IBH Link.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der IBHLink S7++ wird in NetPro als eine Station angelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:IBH Link als Station.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
Folgende Baugruppe muss vrwendet werden:&amp;lt;br&amp;gt;&lt;br /&gt;
MLFB: 6ES7 412-2EK06-0AB0 V6.0 in Rack 0, Steckplatz 2&amp;lt;br&amp;gt;&lt;br /&gt;
MPI/Profibusadresse wie IBHLink S7++&amp;lt;br&amp;gt;&lt;br /&gt;
IP-Adresse von IBHLink S7++&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Station im Hardwarekonfigurator:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:IBH_Link_als_Station_HWK.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In NetPro müssen neben der IBH Link Station auch alle CPUs angelegt werden, mit denen kommuniziert werden soll. Die S7-Verbindung wird von der tatsächlichen CPU über Ethernet zur IBH Link Station aufgebaut. Hierbei ist die tatsächliche CPU der aktive Teilnehmer.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:Verbindung1.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Verbindung1Parameter.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Partner-Verbindungsresource wird automatisch vergeben und ist für den nächsten Schritt relevant.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Verbindung1Details.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IBH Link Station baut nun eine S7-Verbindung über Profibus zur zweiten tatsächlichen CPU auf. Hierbei ist die IBH Link Station der aktive Teilnehmer. Als lokale Verbindungs-ID wird hier nun die im vorherigen Schritt automatisch zugewiesene Verbindungsresource (im Beispiel: 10) angegeben.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Verbindung2px800.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Verbindungsstatus kann direkt in NetPro angezeigt werden:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Verbindungsstatus aktivieren.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dieser Verbindungsvariante sind komplexe Vernetzungen möglich:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:VerbindungMulti.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Verbindung zu einem IBH Link S5++ muss keine Dummy-CPU in NetPro angelegt werden. Es reicht aus, lediglich eine unspezifizierte S7-Verbindung über Ethernet einzurichten. Die Partner-IP-Adresse ist in diesem Fall die IP-Adresse des IBH Link S5++. Zur Kommunikation müssen die Bausteine PUT/GET verwendet werden - SFB14/15.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:VerbindungS5px800.png]]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:PLC-PLC_communication&amp;diff=1306</id>
		<title>IBHLink S7++:PLC-PLC communication</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:PLC-PLC_communication&amp;diff=1306"/>
		<updated>2013-02-13T16:08:54Z</updated>

		<summary type="html">&lt;p&gt;Joscha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Ethernet to MPI / PROFIBUS==&lt;br /&gt;
[[Image:EthernetMPICPschema.png|thumb|400px|right]]&lt;br /&gt;
Requirements:&amp;lt;br&amp;gt;&lt;br /&gt;
- SIMATIC Manager&amp;lt;br&amp;gt;&lt;br /&gt;
- IBH Link S7++ / HS with Firmware &amp;gt;= 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU with MPI or PROFIBUS Interface&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU with Ethernet onboard or Ethernet CP. The Interface must support S7 connections. It can be checked within the hardware &lt;br /&gt;
properties: S7 connection active (&#039;&#039;&#039;Server&#039;&#039;&#039; means passive).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/english/Samples/Ethernet2MPI_eng.zip STEP®7 Sample: Ethernet to MPI/PROFIBUS]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Active:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPICPaktiv.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Passive:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPICPpassiv.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within NetPro the CPU must be connected with the Ethernet. An unspecified connection needs to be created:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connection.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To access several CPUs accordingly, several S7 connections need to be configured. The connection ID is relevant for the call of the FBs/SFBs. If the amount of CPUs exceeds the amount of possible S7 connections, Ethernet to PROFIBUS via PROFIBUS CP (Multiplexing) can be chosen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within the properties of the S7 connection the IP address of the IBH Links must be entered:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connection2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Within the Address Details enter the MPI address of the destination CPU. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:EthernetMPIS7connection3.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The communication will be established usings the blocks FB14/FB15. There are different FB14/FB15 available. Depending if a CPU with onboard Ethernet or a CPU with Ethernet CP is used, the correct set of blocks must be chosen, otherwise there will be no data exchange.&amp;lt;br&amp;gt;&lt;br /&gt;
CPU with onboard Ethernet = Standard Library&amp;lt;br&amp;gt;&lt;br /&gt;
CPU with Ethernet CP = SIMATIC_NET_CP&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:FB14.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sample:&amp;lt;br&amp;gt;&lt;br /&gt;
      CALL  &amp;quot;GET&amp;quot; , DB14&lt;br /&gt;
       REQ   :=M0.0                     //Start reading with positive edge&lt;br /&gt;
       ID    :=W#16#1                   //S7 connection ID configured within NetPro&lt;br /&gt;
       NDR   :=M0.1                     //Job status &lt;br /&gt;
       ERROR :=M0.2                     //ERROR flag&lt;br /&gt;
       STATUS:=MW2                      //STATUS infomation(Siemens documentation)&lt;br /&gt;
       ADDR_1:=P#M 10.0 BYTE 20         //Source address connected CPU&lt;br /&gt;
       RD_1  :=P#M 10.0 BYTE 20         //Destination address local CPU&lt;br /&gt;
&lt;br /&gt;
Depending on the type of CPU the correct set of blocks, FB14/15 or SFB14/15 must be chosen. The final step is to tranfer the S7 program and the system data to the CPU.&lt;br /&gt;
&lt;br /&gt;
==Ethernet to PROFIBUS via PROFIBUS CP (Multiplexing)==&lt;br /&gt;
[[Image:EthernetMPIS7VerbindungCPSchema.png|thumb|400px|right]]&lt;br /&gt;
Voraussetzungen&amp;lt;br&amp;gt;&lt;br /&gt;
- Simatic Manager&amp;lt;br&amp;gt;&lt;br /&gt;
- IBH Link S7++ / HS ab Firmware 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU mit PROFIBUS-CP&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU mit Ethernetschnitstelle oder Ethernet CP; Die Schnittstelle muss S7-Verbindungen unterstützen. Zu erkennen an folgenden &lt;br /&gt;
:Eigenschaften: S7-Verbindung aktiv (Server bedeutet passiv).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/german/Beispiele/Ethernet2ProfibusCP.zip STEP®7 Beispiel: Ethernet nach PROFIBUS über PROFIBUS-CP]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Aktiv:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:EthernetMPICPaktiv.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Passiv:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:EthernetMPICPpassiv.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In NetPro muss die CPU mit einem Industrial Ethernet verbunden werden. Es wird eine unspezifizierte S7-Verbindung benötigt:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:EthernetMPIS7Verbindung.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In den Eigenschaften der S7-Verbindung muss die IP-Adresse des IBH Links angegeben werden:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:EthernetMPIS7Verbindung2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In den Adressendeteils muss die Rack- und Steckplatznummer eine spezielle IBH Link Routing Kennung angegeben werden: Rack 7, Steckplatz 31&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:EthernetMPIS7VerbindungCP.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verbindungsaufbau per FB/SFB 15 (PUT)&amp;lt;br&amp;gt;&lt;br /&gt;
Da beim Verbindungsaufbau mit einem IBH Link S7++ über einen PROFIBUS-CP mehr Verbindungsinformationen benötigt werden, als in NetPro angegeben werden können, kann der IBH Link S7++ mit einer speziellen Kennung in einen Modus versetzt werden, in dem er die benötigten Verbindungsparameter mit einem Aufruf des Bausteins &amp;quot;PUT&amp;quot; als Datenstruktur übergeben bekommt. Diese Verbindung eignet sich auch für den Datenaustausch mit mehreren Ziel-CPUs, selbst wenn die Ethernet-CPU von sich aus keine ausreichensde Anzahl an S7-Verbindungen aufbauen kann.&lt;br /&gt;
&lt;br /&gt;
OB1 erstellen&amp;lt;br&amp;gt;&lt;br /&gt;
Im ersten Netzwerk wird der Baustein SFB15 zur Parameterübergabe aufgerufen. Im zweiten Netzwerk wird der SFB14/15 für den Datenaustausch aufgerufen.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:OB1.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CALL  &amp;quot;PUT&amp;quot; , DB15&lt;br /&gt;
       REQ   :=M0.0                     //Lesevorgang bei steigender Flanke &lt;br /&gt;
       ID    :=W#16#1                   //S7-Verbindungs ID wie in NetPro projektiert&lt;br /&gt;
       DONE  :=M0.1                     //Schreibvorgang abgeschlossen&lt;br /&gt;
       ERROR :=M0.2                     //Fehlerbit&lt;br /&gt;
       STATUS:=MW2                      //Statuswort (siehe Dokumentation Siemens)&lt;br /&gt;
       ADDR_1:=P#DB65535.DBX 224.0 BYTE 8    //IBH Link S7++ Kennung für PROFIBUS-Verbindungsaufbau.&lt;br /&gt;
&lt;br /&gt;
Der IBH Link S7++ bekommt mit dieser Kennung den Verbindungsaufbau mitgeteilt.&lt;br /&gt;
&lt;br /&gt;
       ADDR_2:=&lt;br /&gt;
       ADDR_3:=&lt;br /&gt;
       ADDR_4:=&lt;br /&gt;
       SD_1  :=&amp;quot;PLC_CONNECTION_RECORDS&amp;quot;.Connection[0]&lt;br /&gt;
       SD_2  :=&lt;br /&gt;
       SD_3  :=&lt;br /&gt;
       SD_4  :=&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PLC_CONNECTION_RECORDS&amp;quot; – Symbolischer Name des DBs welcher die Verbindungsparameter enthält.&lt;br /&gt;
Connection[0] – Zeiger auf die gewünschte Start Adresse im DB welcher die Verbindungsparameter enthält. Enthält der DB mehrere Verbindungen, können sie über diesen Parameter ausgewählt werden und somit auf verschiedene CPUs zugreifen.&lt;br /&gt;
&lt;br /&gt;
CALL  SFB   14 , DB14&lt;br /&gt;
       REQ   :=M10.0                    //Lesevorgang bei steigender Flanke starte&lt;br /&gt;
       ID    :=W#16#1                   //S7-Verbindungs ID wie in NetPro projektiert&lt;br /&gt;
       NDR   :=M10.1                    //Lesevorgang abgeschlossen&lt;br /&gt;
       ERROR :=M10.2                    //Fehlerbit&lt;br /&gt;
       STATUS:=MW20                     //Statuswort (siehe Dokumentation Siemens)&lt;br /&gt;
       ADDR_1:=P#M 10.0 BYTE 20         // zu lesende Daten entferte CPU&lt;br /&gt;
       ADDR_2:=&lt;br /&gt;
       ADDR_3:=&lt;br /&gt;
       ADDR_4:=&lt;br /&gt;
       RD_1  :=P#M 10.0 BYTE 20         //zu schreibende Daten lokale CPU&lt;br /&gt;
       RD_2  :=&lt;br /&gt;
       RD_3  :=&lt;br /&gt;
       RD_4  :=&lt;br /&gt;
&lt;br /&gt;
Abhängig von der verwendeten CPU müssen die passenden Bausteine FB14/15 oder SFB14/15 verwendet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es wird ein DB benötigt, welcher die Verbindungsparameter enthält.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:DB.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es werden die Parameter MPI-Adresse, Slot- und Racknummer verwendet. Eine Angabe der IP Adresse ist bei dieser Art der Verbindung ist nicht nötig. Bei mehreren Verbindungen empfiehlt es sich mit UDTs zu arbeiten.&lt;br /&gt;
&lt;br /&gt;
==MPI – Ethernet – MPI without projected configuration / MPI – Ethernet / MPI – IBH Link S5++==&lt;br /&gt;
[[Image:S7VerbindungSchema.png|thumb|400px|right]]&lt;br /&gt;
[[Image:S7VerbindungMultiSchema.png|thumb|400px|right]]&lt;br /&gt;
[[Image:S7VerbindungS5Schema.png|thumb|400px|right]]&lt;br /&gt;
Voraussetungen&amp;lt;br&amp;gt;&lt;br /&gt;
- Simatic Manager oder S7 für Windows von IBHsoftec&amp;lt;br&amp;gt;&lt;br /&gt;
- 2 x IBH Link S7++ / HS ab Firmware 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU muss die Bausteine XPUT und XGET (SFC67, SFC 68) enthalten. Ob eine CPU die Bausteine enthält, ist in der Siemens Dokumentation zur entsprechenden CPU ersichtlich. Für diese Verbindung ist keine Projektierung nötig. Die Bausteine XPUT / XGET werden im SPS Programm aufgerufen und bauen dadurch die Verbindung von einem IBH Link S7 zu einem andern IBH Link auf. Für eine komfortable Konfiguration der Kommunikationsparameter sind die von IBHsoftec entwickelten Baustein XPUT_IBH und XGET_IBH verfügbar.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/german/Beispiele/MPI_IBHLink_IBHlink_MPI.zip STEP®7 Beispiel: MPI – Ethernet – MPI ohne Projektierung]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[[Datei:Block call.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CALL  FB    67 , DB67&lt;br /&gt;
       REQ         :=M10.0              //Start Lesevorgang&lt;br /&gt;
       DEST_ID     :=0                  //Zeiger im Parameter DB&lt;br /&gt;
       DB_PARA     :=100                //Nr. des Parameter DBs&lt;br /&gt;
       IBHLINK_ADDR:=B#16#0             //MPI Adresse Quell IBH Link&lt;br /&gt;
       SRC_ADDR    :=P#M 100.0 BYTE 20  //zu lesende Daten entfernte CPU&lt;br /&gt;
       DST_ADDR    :=P#M 100.0 BYTE 20  //zu schreibende Daten lokale CPU&lt;br /&gt;
       RESULT      :=MW2                //Statuswort&lt;br /&gt;
       BUSY        :=M3.0               //Lesevorgang in Arbeit&lt;br /&gt;
Die Verbindungsdaten des IBH Links der Quell CPU werden in einem DB hinterlegt. &lt;br /&gt;
&lt;br /&gt;
[[Datei:Db.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rack und Slot Nummer sind bei MPI 0. Bei S5 Verbindungen folgende Parameter für den IBH Link S5++ verwenden:&amp;lt;br&amp;gt;&lt;br /&gt;
Ziel-IP-Adresse: IP-Adresse des IBHLink S5++&amp;lt;br&amp;gt;&lt;br /&gt;
Ziel-MPI-Adresse: 2&amp;lt;br&amp;gt;&lt;br /&gt;
Ziel-Rack: 0&amp;lt;br&amp;gt;&lt;br /&gt;
Ziel-Steckplatz: 0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MPI – Ethernet – MPI with S7 conection (projected) / MPI – Ethernet / MPI – IBH Link S5++==&lt;br /&gt;
[[Image:S7VerbindungSchema.png|thumb|400px|right]]&lt;br /&gt;
[[Image:S7VerbindungMultiCPSchema.png|thumb|400px|right]]&lt;br /&gt;
[[Image:S7VerbindungS5Schema.png|thumb|400px|right]]&lt;br /&gt;
Voraussetzungen&amp;lt;br&amp;gt;&lt;br /&gt;
- Simatic Manager&amp;lt;br&amp;gt;&lt;br /&gt;
- 2 x IBH Link S7++ / HS ab Firmware 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- CPU mit MPI Schnistelle&amp;lt;br&amp;gt;&lt;br /&gt;
- Schnittstelle muss S7-Verbindungen unterstützen&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/german/Beispiele/MPI_IBHLink_IBHlink_MPI_proj.zip STEP®7 Beispiel: MPI – Ethernet – MPI mit S7-Verbindung (Projektiert)]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In NetPro muss die CPU mit einem Industrial Ethernet verbunden werden. Es wird eine unspezifizierte S7-Verbindung benötigt:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:S7Verbindung600px.png]]&lt;br /&gt;
&lt;br /&gt;
In den Eigenschaften der S7-Verbindung muss die MPI-Adresse des Quell-IBH Links angegeben werden:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:S7Verbindung2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verbindungsaufbau per FB/SFB 15 (PUT)&amp;lt;br&amp;gt;&lt;br /&gt;
Da beim Verbindungsaufbau mit einem IBH Link S7++ mehr Verbindungsinformationen benötigt werden, als in NetPro angegeben werden können, kann der IBH Link S7++ mit einer speziellen Kennung in einen Modus versetzt werden, in dem er die benötigten Verbindungsparameter mit einem Aufruf des Bausteins &amp;quot;PUT&amp;quot; als Datenstruktur übergeben bekommt. Ein weiterer Grund für die Verwendung dieser Verbindung ist, wenn Sie Daten mit mehreren Ziel-CPUs austauschen möchten.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OB1 erstellen&amp;lt;br&amp;gt;&lt;br /&gt;
Im ersten Netzwerk wird der Baustein SFB15 zur Parameterübergabe aufgerufen. Im zweiten Netzwerk wird der SFB14/15 für den Datenaustausch aufgerufen.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:OB1.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CALL  &amp;quot;PUT&amp;quot; , DB15&lt;br /&gt;
       REQ   :=M0.0                     //Lesevorgang bei steigender Flanke &lt;br /&gt;
       ID    :=W#16#1                   //S7-Verbindungs ID wie in NetPro projektiert&lt;br /&gt;
       DONE  :=M0.1                     //Schreibvorgang abgeschlossen&lt;br /&gt;
       ERROR :=M0.2                     //Fehlerbit&lt;br /&gt;
       STATUS:=MW2                      //Statuswort (siehe Dokumentation Siemens)&lt;br /&gt;
       ADDR_1:=P#DB65535.DBX 224.0 BYTE 8    //IBH Link S7++ Kennung für PROFIBUS-Verbindungsaufbau.&lt;br /&gt;
&lt;br /&gt;
Der IBH Link S7++ bekommt mit dieser Kennung den Verbindungsaufbau mitgeteilt.&lt;br /&gt;
&lt;br /&gt;
       ADDR_2:=&lt;br /&gt;
       ADDR_3:=&lt;br /&gt;
       ADDR_4:=&lt;br /&gt;
       SD_1  :=&amp;quot;PLC_CONNECTION_RECORDS&amp;quot;.Connection[0]&lt;br /&gt;
       SD_2  :=&lt;br /&gt;
       SD_3  :=&lt;br /&gt;
       SD_4  :=&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PLC_CONNECTION_RECORDS&amp;quot; – Symbolischer Name des DBs welcher die Verbindungsparameter enthält.&lt;br /&gt;
Connection[0] – Zeiger auf die gewünschte Start Adresse im DB welcher die Verbindungsparameter enthält. Enthält der DB meherere Verbindungen, können sie über diesen Parameter ausgewählt werden und somit auf verschiedene CPUs zugreifen.&lt;br /&gt;
&lt;br /&gt;
CALL  SFB   14 , DB14&lt;br /&gt;
       REQ   :=M10.0                    //Lesevorgang bei steigender Flanke starten&lt;br /&gt;
       ID    :=W#16#1                   //S7-Verbindungs ID wie in NetPro projektiert&lt;br /&gt;
       NDR   :=M10.1                    //Lesevorgang abgeschlossen&lt;br /&gt;
       ERROR :=M10.2                    //Fehlerbit&lt;br /&gt;
       STATUS:=MW20                     //Statuswort (siehe Dokumentation Siemens)&lt;br /&gt;
       ADDR_1:=P#M 10.0 BYTE 20         //zu lesende Daten entfernte CPU&lt;br /&gt;
       ADDR_2:=&lt;br /&gt;
       ADDR_3:=&lt;br /&gt;
       ADDR_4:=&lt;br /&gt;
       RD_1  :=P#M 10.0 BYTE 20         //zu schreibende Daten lokale CPU&lt;br /&gt;
       RD_2  :=&lt;br /&gt;
       RD_3  :=&lt;br /&gt;
       RD_4  :=&lt;br /&gt;
&lt;br /&gt;
Abhängig von der verwendeten CPU müssen die passenden Bausteine FB14/15 oder SFB14/15 verwendet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es wird ein DB benötigt, welcher die Verbindungsparameter enthält.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:DB.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es werden die Parameter MPI-Adresse, Slot- und Racknummer verwendet. Eine Angabe der IP Adresse ist bei dieser Verbindung ist nicht nötig. Bei mehreren Verbindungen empfiehlt es sich, mit UDTs zu arbeiten. &lt;br /&gt;
&lt;br /&gt;
Bei S5 Verbindungen folgende Parameter für den IBH Link S5++ verwenden:&amp;lt;br&amp;gt;&lt;br /&gt;
Ziel-IP-Adresse: IP-Adresse des IBHLink S5++&amp;lt;br&amp;gt;&lt;br /&gt;
Ziel-MPI-Adresse: 2&amp;lt;br&amp;gt;&lt;br /&gt;
Ziel-Rack: 0&amp;lt;br&amp;gt;&lt;br /&gt;
Ziel-Steckplatz: 0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connection via IBH Link Mode: Configuration via NetPro ==&lt;br /&gt;
&lt;br /&gt;
Voraussetungen&amp;lt;br&amp;gt;&lt;br /&gt;
- Simatic Manager&amp;lt;br&amp;gt;&lt;br /&gt;
- IBH Link S7++ / HS ab Firmware 2.142&amp;lt;br&amp;gt;&lt;br /&gt;
- Schnittstelle muss S7-Verbindungen unterstützen&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download: [http://download.ibhsoftec.com/german/Beispiele/Ethernet_PROFIBUS.zip STEP®7 Beispiel: Verbindung über IBH Link im Projektierten Modus]&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Diese Verbindungsvariante hat den Vorteil das Große Datenmengen schnell ausgetauscht werden können - bis zu 64K. Für die Kommunikation werden die Standardbausteine FB/SFB 8/9  (USEND / URCV) und FB/SFB 12/13 (BSEND / BRCV).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Routing-Modus muss in IBHLink S7++ aktiviert sein. Dieser Modus ist ab Firmware Version 2.142 verfügbar. In diesem Modus sind keine unprojektierte Verbindungen über RFC1006 mehr möglich! Verbindungen über den IBHNet-Treiber funktionieren weiterhin.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IBH Link.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der IBHLink S7++ wird in NetPro als eine Station angelegt.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:IBH Link als Station.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
Folgende Baugruppe muss vrwendet werden:&amp;lt;br&amp;gt;&lt;br /&gt;
MLFB: 6ES7 412-2EK06-0AB0 V6.0 in Rack 0, Steckplatz 2&amp;lt;br&amp;gt;&lt;br /&gt;
MPI/Profibusadresse wie IBHLink S7++&amp;lt;br&amp;gt;&lt;br /&gt;
IP-Adresse von IBHLink S7++&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Konfiguration der Station im Hardwarekonfigurator:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:IBH_Link_als_Station_HWK.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In NetPro müssen neben der IBH Link Station auch alle CPUs angelegt werden, mit denen kommuniziert werden soll. Die S7-Verbindung wird von der tatsächlichen CPU über Ethernet zur IBH Link Station aufgebaut. Hierbei ist die tatsächliche CPU der aktive Teilnehmer.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:Verbindung1.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Verbindung1Parameter.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Partner-Verbindungsresource wird automatisch vergeben und ist für den nächsten Schritt relevant.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Verbindung1Details.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die IBH Link Station baut nun eine S7-Verbindung über Profibus zur zweiten tatsächlichen CPU auf. Hierbei ist die IBH Link Station der aktive Teilnehmer. Als lokale Verbindungs-ID wird hier nun die im vorherigen Schritt automatisch zugewiesene Verbindungsresource (im Beispiel: 10) angegeben.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Verbindung2px800.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Verbindungsstatus kann direkt in NetPro angezeigt werden:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Verbindungsstatus aktivieren.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dieser Verbindungsvariante sind komplexe Vernetzungen möglich:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:VerbindungMulti.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für eine Verbindung zu einem IBH Link S5++ muss keine Dummy-CPU in NetPro angelegt werden. Es reicht aus, lediglich eine unspezifizierte S7-Verbindung über Ethernet einzurichten. Die Partner-IP-Adresse ist in diesem Fall die IP-Adresse des IBH Link S5++. Zur Kommunikation müssen die Bausteine PUT/GET verwendet werden - SFB14/15.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:VerbindungS5px800.png]]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=S5/S7_for_Windows:Handling_of_PLC_backup_archive_files&amp;diff=1282</id>
		<title>S5/S7 for Windows:Handling of PLC backup archive files</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=S5/S7_for_Windows:Handling_of_PLC_backup_archive_files&amp;diff=1282"/>
		<updated>2013-02-08T15:12:29Z</updated>

		<summary type="html">&lt;p&gt;Joscha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Creating a project from PLC backup archive files &#039;&#039;&#039;xxx.arv&#039;&#039;&#039; with &#039;&#039;&#039;[http://www.ibhsoftec.com/S5W-Eng S5 for Windows®]&#039;&#039;&#039; or  &#039;&#039;&#039;[http://www.ibhsoftec.com/57W-Eng S7 for Windows®]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The text below describes, how a project can be created with S5 for Windows®, if only a PLC backup archive file is available. For S7 PLCs with S7 for Windows® the procedure is similar.&lt;br /&gt;
==Handling==&lt;br /&gt;
The description how to make a &#039;&#039;&#039;PLC backup&#039;&#039;&#039; can be found within the &amp;lt;&#039;&#039;&#039;S5 for Windows® - Getting started&#039;&#039;&#039;&amp;gt; manual at page 52:&lt;br /&gt;
&lt;br /&gt;
[[Image:Getting_started.png|437px]]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Anyway, if only a &#039;&#039;&#039;xxx.arv&#039;&#039;&#039; file is available, a project can be generated this way:&lt;br /&gt;
&lt;br /&gt;
Establish a connection to the Internal S5 PLC Simulation:&lt;br /&gt;
&lt;br /&gt;
[[Image:Internal_S5_Sim.png|359px]]&lt;br /&gt;
&lt;br /&gt;
By clicking on:&lt;br /&gt;
&lt;br /&gt;
[[Image:Restore_online_blocks.png|380px]]&lt;br /&gt;
&lt;br /&gt;
the archive file can be selected:&lt;br /&gt;
&lt;br /&gt;
[[Image:Select_archive.png|541px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Clear_reset.png|489px]]&lt;br /&gt;
&lt;br /&gt;
After that all blocks are transferred to the Internal S5 PLC Simulation:&lt;br /&gt;
&lt;br /&gt;
[[Image:Onilne_block_list.png|505px]]&lt;br /&gt;
&lt;br /&gt;
Now a new STEP®5 project can be created:&lt;br /&gt;
&lt;br /&gt;
[[Image:New_Step5_Project.png|508px]]&lt;br /&gt;
&lt;br /&gt;
By marking at least one block with the PLC Block List all blocks can be transferred to the PC:&lt;br /&gt;
&lt;br /&gt;
[[Image:Transfer_Blocks.png|684px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:PC_Blocklist.png|909px]]&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=OPCServer:Overview&amp;diff=1253</id>
		<title>OPCServer:Overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=OPCServer:Overview&amp;diff=1253"/>
		<updated>2013-02-01T11:11:08Z</updated>

		<summary type="html">&lt;p&gt;Joscha: /* IBHsoftec GmbH OPC Server V4.x */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== IBH&#039;&#039;softec&#039;&#039; GmbH OPC Server V4.x ==&lt;br /&gt;
&lt;br /&gt;
The IBH OPC Server permits OPC client applications like SCADA systems, to connect to PLCs of the Siemens SIMATIC® S5 and the SIMATIC® S7 series. It is also possible to access data simultaneously from several PLC Controls. Even a mixed S5 and S7 operation is possible. All modern SCADA systems are usually designed to be an OPC client.&lt;br /&gt;
&lt;br /&gt;
PLCs may be accessed via the following protocols:&lt;br /&gt;
&lt;br /&gt;
* SIMATIC® S5:&lt;br /&gt;
* AS511 serial / USB&lt;br /&gt;
* IBHLink S5 TCP/IP and IBHLink S5++ TCP/IP&lt;br /&gt;
* IBHsoftec SoftPLC internal und external&lt;br /&gt;
* TCP/IP with Siemens and INAT protocol&lt;br /&gt;
* H1 with the OpenSource driver WinPcap&lt;br /&gt;
* SINEC L2 over an IBH Link S7++ (HS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SIMATIC® S7-300/400:&lt;br /&gt;
* MPI Adaptor serial / USB&lt;br /&gt;
* IBHLink S7 / IBHLink Plus / IBHLink S7++&lt;br /&gt;
* S7 TCP/IP to a CP343/443&lt;br /&gt;
* SimaticNet® (Set PG/PC Interface)&lt;br /&gt;
* IBHsoftec SoftPLC internal and external&lt;br /&gt;
* H1 with the OpenSource driver WinPcap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SIMATIC® S7-200:&lt;br /&gt;
* PPI Adaptor serial / USB&lt;br /&gt;
* IBHLink S7 / IBHLink Plus / IBHLink S7++&lt;br /&gt;
* S7 TCP/IP to a CP243&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SIMATIC® S7-1200:&lt;br /&gt;
* S7 TCP/IP to the integrated CP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* LOGO!® (RCE versions)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The configuration of the Server is performed via the OPCEditor. A shortcut is installed on your PC.&lt;br /&gt;
&lt;br /&gt;
One of the special features of the &#039;&#039;&#039;&#039;&#039;IBH OPC Server&#039;&#039;&#039;&#039;&#039; is to allow direct use of the absolute PLC Variables without declaration. It is also possible to use symbolic addressing as defined in the PLC program (Symbolic Table). Even variables used in S7 Data Blocks can be accessed via the &#039;&#039;&#039;&#039;&#039;IBH OPC Server&#039;&#039;&#039;&#039;&#039; with their symbolic names. These features eliminate the need of double declarations. To do so, the PLC program is assigned with the &#039;&#039;&#039;&#039;&#039;IBH OPCEditor&#039;&#039;&#039;&#039;&#039; to the PLCName and the required variables are selected within the user interface.&lt;br /&gt;
&lt;br /&gt;
[[Server Configuration|Server Configuration]]&lt;br /&gt;
&lt;br /&gt;
[[Variable Syntax|Variable Syntax]]&lt;br /&gt;
&lt;br /&gt;
For symbolic addresses, PLC programs in following formats may be used.&lt;br /&gt;
&lt;br /&gt;
* SIMATIC® S5 (.S5D)&lt;br /&gt;
* SIMATIC® S7 (.S7P)&lt;br /&gt;
* S5/S7 for Windows® project (.S5P)&lt;br /&gt;
* S5/S7 for Windows® program file (.S5)&lt;br /&gt;
* Symbolic table (.SEQ)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simatic, S7-200, S7-300, S7-400, WinCC, are trademarks of  Siemens AG.&lt;br /&gt;
&lt;br /&gt;
Windows, Visual Basic, Visual C und ActiveX are trademarks of Microsoft Corporation.&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=OPCServer:H1_with_OPC_Server&amp;diff=1252</id>
		<title>OPCServer:H1 with OPC Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=OPCServer:H1_with_OPC_Server&amp;diff=1252"/>
		<updated>2013-02-01T11:08:45Z</updated>

		<summary type="html">&lt;p&gt;Joscha: Created page with &amp;quot;== IBH OPC Server with Siemens S5 and S7 CPs over H1 ==  Starting with Version V4.12 of the IBH OPC Server the H1 communication uses the Open Source driver WinPcap. It can be ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== IBH OPC Server with Siemens S5 and S7 CPs over H1 ==&lt;br /&gt;
&lt;br /&gt;
Starting with Version V4.12 of the IBH OPC Server the H1 communication uses the Open Source driver WinPcap. It can be downloaded from [http://www.winpcap.org http://www.winpcap.org] free of charge and must be installed for H1 communication. Alternatively WinPcap may also be installed with the OpenSource Network Analyzer Wireshark [http://www.wireshark.org http://www.wireshark.org]. For diagnostic purposes it may be helpful to have Wireshark available.&lt;br /&gt;
  &lt;br /&gt;
H1 is a connectionless Ethernet I communication. The communication partners are identified by their MAC addresses. Care must be taken, that there are only unique addresses in the network. The default address, the Siemens hardware configuration uses, when inserting a CP is 08-00-06-01-00-00. It must be altered to a unique address in the network.&lt;br /&gt;
  &lt;br /&gt;
Because of the connectionless Ethernet I communication, H1 drivers cannot decide, whether received packets were bound for them. For this reason, only one active H1 driver must exist on the PC running the IBH OPC Server. H1 drivers of other manufacturers must either be inactive or be uninstalled.&lt;br /&gt;
  &lt;br /&gt;
The existence of other, active drivers can be determined with Wireshark. A typical sequence is, that a successful &amp;quot;Connection Confirm &amp;lt;CC&amp;gt;&amp;quot; from the CP will be answered by the PC immidiately with a &amp;quot;Disconnect Request &amp;lt;DR&amp;gt;&amp;quot;, instead of starting to send data &amp;quot;Data&amp;quot;.&lt;br /&gt;
  &lt;br /&gt;
Prerequisites to verify:&lt;br /&gt;
&lt;br /&gt;
* WinPcap must be installed.&lt;br /&gt;
* Other H1 drivers must be inactive or uninstalled.&lt;br /&gt;
* Network MAC addresss must be unique.&lt;br /&gt;
* The connection between PLC and CP (for S5: Monkey Swing) must work.&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=Main_Page&amp;diff=1251</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=Main_Page&amp;diff=1251"/>
		<updated>2013-02-01T11:02:15Z</updated>

		<summary type="html">&lt;p&gt;Joscha: /* OPC Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to the Wiki of IBHsoftec GmbH! [[http://www.ibhsoftec.com/ IBHsoftec GmbH]]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:Germany.png|link=http://wiki.ibhsoftec.com/de/Hauptseite]]&amp;lt;br /&amp;gt;&lt;br /&gt;
== S5/S7 for Windows ==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;1&amp;quot; class=&amp;quot;float-right&amp;quot;&amp;gt;&lt;br /&gt;
Image:10022.png|[http://www.ibhsoftec.com/S57W-Eng S5+S7 for Windows® Version 7]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
* [[S5/S7 for Windows:licensing|licensing]]&lt;br /&gt;
&lt;br /&gt;
== IBHLink S5++ ==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;1&amp;quot; class=&amp;quot;float-right&amp;quot;&amp;gt;&lt;br /&gt;
Image:20284.png|[http://www.ibhsoftec.com/IBH-Link-S5-PP-Eng IBHLink S5++]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
* [[IBHLink S5++:SIMATIC® S5 for Windows®|Access to a SIMATIC® S5 with &#039;&#039;S5 for Windows®&#039;&#039; without IBH Net driver]]&lt;br /&gt;
* [[IBHLink S5++:SIMATIC® S5 TIA Portal V11 WinCC flexible|Access to a SIMATIC® S5 with TIA Portal V11 WinCC flexible over IBHLink S5++]]&lt;br /&gt;
* [[IBHLink S5++:SIMATIC® S5 WinCC flexible|Access to a SIMATIC® S5 with WinCC flexible over IBHLink S5++]]&lt;br /&gt;
* [[IBHLink S5++:SIMATIC® S5 PLC PcVue|Access to a SIMATIC® S5 with PcVue over IBHLink S5++]]&lt;br /&gt;
* [[IBHLink S5++:SIMATIC® S5 Elipse SCADA|Access to a SIMATIC® S5 with Elipse SCADA over IBHLink S5++]]&lt;br /&gt;
* [[IBHLink S7++:LOGO! with IBHLink S5++|LOGO! with IBHLink S5++]]&lt;br /&gt;
&lt;br /&gt;
== IBHLink S7++ ==&lt;br /&gt;
All listet articles are avlid for the [http://www.ibhsoftec.com/IBH-Link-S7-PP-Eng IBHLink S7++] (bus connector format) and for the [http://www.ibhsoftec.com/IBH-Link-S7-PP-HS-Eng IBHLink S7++ HS] (din rail mount)&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;2&amp;quot; class=&amp;quot;float-right&amp;quot;&amp;gt;&lt;br /&gt;
Image:20266.gif|[http://www.ibhsoftec.com/IBH-Link-S7-PP-Eng IBHLink S7++]&lt;br /&gt;
Image:20268.png|[http://www.ibhsoftec.com/IBH-Link-S7-PP-HS-Eng IBHLink S7++ HS]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
* [[IBHLink S7++:SIMATIC® S5 for Windows®|Access to a SIMATIC® S5 with &#039;&#039;S5 for Windows®&#039;&#039; via SINEC L2]]&lt;br /&gt;
* [[IBHLink S7++:S7-300/S7-400 TIA Portal WinCC flexible|Access to S7-300/S7-400 with TIA Portal V11 WinCC flexible over IBHLink S7++]]&lt;br /&gt;
* [[IBHLink S7++:S7-300/S7-400 WinCC flexible|Access to S7-300/S7-400 with WinCC flexible over IBHLink S7++]]&lt;br /&gt;
* [[IBHLink S7++:S7-200 WinCC flexible|Access to S7-200 with WinCC flexible over IBHLink S7++]]&lt;br /&gt;
* [[IBHLink S7++:S7-300/S7-400 Elipse SCADA|Access to S7-300/S7-400 with Elipse SCADA over IBHLink S7++]]&lt;br /&gt;
* [[IBHLink S7++:S7-300/S7-400 PcVue|Access to S7-300/S7-400 with PcVue over IBHLink S7++]]&lt;br /&gt;
* [[IBHLink S7++:IBH Link S7++ with CommDTM|IBH Link S7++ with CommDTM]]&lt;br /&gt;
* [[IBHLink S7++:VEGASON IBHNetDTM|IBHNet DTM with PACTware]]&lt;br /&gt;
* [[IBHLink S7++:Time Synchronisation|Time Synchronisation]]&lt;br /&gt;
* [[IBHLink S7++:Time Synchronisation with NetPro|Time Synchronisation with NetPro]]&lt;br /&gt;
* [[IBHLink S7++:LOGO! with IBHLink S7++|LOGO! with IBHLink S7++]]&lt;br /&gt;
&lt;br /&gt;
== OPC Server ==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;1&amp;quot; class=&amp;quot;float-right&amp;quot;&amp;gt;&lt;br /&gt;
Image:1150.png|[http://www.ibhsoftec.com/OPC-Eng IBH OPC Server]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
* [[OPCServer:Overview|Overview]]&lt;br /&gt;
* [[OPCServer:Licensing|Licensing]]&lt;br /&gt;
* [[OPCServer:Server Configuration|Server Configuration]]&lt;br /&gt;
* [[OPCServer:Variable Syntax|Variable Syntax]]&lt;br /&gt;
* [[OPCServer:Optimization|Optimization]]&lt;br /&gt;
* [[OPCServer:DCOM Configuration|DCOM Configuration]]&lt;br /&gt;
* [[OPCServer:Operation with User rights|Operation with User rights]]&lt;br /&gt;
* [[OPCServer:Pro Tool Pro V6|Pro Tool Pro V6]]&lt;br /&gt;
* [[OPCServer:WinCC|WinCC]]&lt;br /&gt;
* [[OPCServer:WinCC Flexible|WinCC Flexible]]&lt;br /&gt;
* [[OPCServer:Create Variables with Intouch FS Gateway|Create Variables with Intouch FS Gateway]]&lt;br /&gt;
* [[OPCServer:Create Variables manually with Intouch|Create Variables manually with Intouch]]&lt;br /&gt;
* [[OPCServer:Create Variables with Intouch TagCreator|Create Variables with Intouch TagCreator]]&lt;br /&gt;
* [[OPCServer:HPI Scada|HPI Scada]]&lt;br /&gt;
* [[OPCServer:Variables from LOGO! RCE|Variables from LOGO! RCE]]&lt;br /&gt;
* [[OPCServer:H1 with OPC Server|H1 with OPC Server]]&lt;br /&gt;
&lt;br /&gt;
== S7-SoftPLC ==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;1&amp;quot; class=&amp;quot;float-right&amp;quot;&amp;gt;&lt;br /&gt;
Image:1302.png|[http://www.ibhsoftec.com/SoftPLC-Eng SoftPLC S7-416]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
* [[S7-SoftPLC:LOGO! with S7-SoftPLC|LOGO! with S7-SoftPLC]]&lt;br /&gt;
* Installation&lt;br /&gt;
** [[S7-SoftPLC:System requirements|System requirements]]&lt;br /&gt;
** [[S7-SoftPLC:Installing S7-SoftPLC|Installation]]&lt;br /&gt;
** [[S7-SoftPLC:Uninstalling S7-SoftPLC|Deinstallation]]&lt;br /&gt;
* Online&lt;br /&gt;
** [[S7-SoftPLC:S7-SoftPLC online functions|Functions]]&lt;br /&gt;
** [[S7-SoftPLC:Online with STEP®7|Online with STEP®7]]&lt;br /&gt;
** [[S7-SoftPLC:Online with S7 for Windows®|Online with S7 for Windows®]]&lt;br /&gt;
* [[S7-SoftPLC:Visualizations|Visualizations]]&lt;br /&gt;
** [[S7-SoftPLC:Using the IBH S7-SoftPLC with Intouch via RFC1006|Using with Intouch via RFC1006]]&lt;br /&gt;
* [[S7-SoftPLC:Data Interface|Data Interface]]&lt;br /&gt;
* User Interface&lt;br /&gt;
** [[S7-SoftPLC:Interface and Configuration|Interface and Configuration]]&lt;br /&gt;
** [[S7-SoftPLC:Classic View|Classic View]]&lt;br /&gt;
** [[S7-SoftPLC:Configuration View|Configuration View]]&lt;br /&gt;
* Menu&lt;br /&gt;
** [[S7-SoftPLC:File menu|File]]&lt;br /&gt;
** [[S7-SoftPLC:Edit menu|Edit]]&lt;br /&gt;
** [[S7-SoftPLC:View menu|View]]&lt;br /&gt;
** [[S7-SoftPLC:Help menu|Help]]&lt;br /&gt;
** [[S7-SoftPLC:Toolbar|Toolbar]]&lt;br /&gt;
** [[S7-SoftPLC:I/O monitor|I/O monitor]]&lt;br /&gt;
* Configuration&lt;br /&gt;
** CPU Parameters&lt;br /&gt;
*** [[S7-SoftPLC:CPU Parameters|User Interface]]&lt;br /&gt;
*** [[S7-SoftPLC:CPU Parameters of S7-SoftPLC|PLC43.INI]]&lt;br /&gt;
** Driver&lt;br /&gt;
*** [[S7-SoftPLC:Add/remove drivers|Add/remove drivers]]&lt;br /&gt;
*** [[S7-SoftPLC:Add/remove drivers to S7-SoftPLC|Add/remove drivers to S7-SoftPLC]]&lt;br /&gt;
** Addidata&lt;br /&gt;
*** [[S7-SoftPLC:ADDI-DATA configuration|Configuration]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuring the ADDI-DATA driver|Configuration of driver]]&lt;br /&gt;
*** [[S7-SoftPLC:ADDI-DATA driver for S7-SoftPLC|Driver for S7-SoftPLC]]&lt;br /&gt;
**Beckhoff TwinCAT I/O &lt;br /&gt;
*** [[S7-SoftPLC:Configuration TwinCAT I/O|Configuration]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuration TwinCAT I/O drivers|Configuration of drivers]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuration TwinCAT I/O with PLC43:INI|Configuration with PLC43.INI]]&lt;br /&gt;
*** [[S7-SoftPLC:S7-SoftPLC Service and TwinCat|S7-SoftPLC Service and TwinCat]]&lt;br /&gt;
**CIF 30/50/60&lt;br /&gt;
*** [[S7-SoftPLC:Basic configuration|Configuration]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuring the CIF-card with the SyCon System Configurator|Configuration with System Configurator]]&lt;br /&gt;
*** [[S7-SoftPLC:CIF 30/50/60 Settings|User Interface]]&lt;br /&gt;
*** [[S7-SoftPLC:CIF 30/50/60 settings of S7-SoftPLC|PLC43.INI]]&lt;br /&gt;
*** [[S7-SoftPLC:PROFIBUS® configuration via S7 for Windows®/STEP®7|PROFIBUS® configuration via S7 for Windows®/STEP®7]]&lt;br /&gt;
** cifX&lt;br /&gt;
*** [[S7-SoftPLC:cifX Basic configuration|Configuration]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuration of cifX card with SYCON.NET|Configuration with SYCON.NET]]&lt;br /&gt;
*** [[S7-SoftPLC:cifX User Interface|User Interface]]&lt;br /&gt;
*** [[S7-SoftPLC:cifX settings of IBHsoftec S7-SoftPLC|Settings of the IBHsoftec S7-SoftPLC]]&lt;br /&gt;
*** [[S7-SoftPLC:cifX PROFIBUS® configuration via S7 for Windows®/STEP®7|PROFIBUS® configuration via S7 for Windows®/STEP®7]]&lt;br /&gt;
** CP340/CP440&lt;br /&gt;
*** [[S7-SoftPLC:Configuring CP340/CP440 emulation|Emulation]]&lt;br /&gt;
*** [[S7-SoftPLC:Configure the CP340/CP440 emulation via user interface|User Interface]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuring CP340/440 emulation in PLC43.INI|PLC43.INI]]&lt;br /&gt;
** CP343/CP443 &lt;br /&gt;
*** [[S7-SoftPLC:Configuring CP343/CP443 emulation|Emulation]]&lt;br /&gt;
*** [[S7-SoftPLC:Configure the CP343/CP443 emulation via user interface|User Interface]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuring CP343/443 emulation in PLC43.INI|PLC43.INI]]&lt;br /&gt;
** I/O Port&lt;br /&gt;
*** [[S7-SoftPLC:Configuring PC hardware ports|Configuring PC hardware ports]]&lt;br /&gt;
*** [[S7-SoftPLC:Setting PC hardware port with user interface|User interface]]&lt;br /&gt;
*** [[S7-SoftPLC:Setting PC hardware ports with PLC43.INI|PLC43.INI]]&lt;br /&gt;
** Modbus TCP&lt;br /&gt;
*** [[S7-SoftPLC:Modbus TCP configuration|Configuration]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuring Modbus TCP with the user interface|User Interface]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuring Modbus TCP with PLC43.INI|PLC43.INI]]&lt;br /&gt;
** NVRAM&lt;br /&gt;
*** [[S7-SoftPLC:NVRAM configuration|Configuration]]&lt;br /&gt;
*** [[S7-SoftPLC:NVRAM configuration with the user interface|User Interface]]&lt;br /&gt;
*** [[S7-SoftPLC:NVRAM configuration with the PLC43.INI|PLC43.INI]]&lt;br /&gt;
** Softnet PN IO&lt;br /&gt;
*** [[S7-SoftPLC:Softnet PN IO configuration|Configuration]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuring SoftNet with the user interface|User Interface]]&lt;br /&gt;
*** [[S7-SoftPLC:Configuring SoftNet PN IO with PLC43.INI|PLC43.INI]]&lt;br /&gt;
** User SFC&lt;br /&gt;
*** [[S7-SoftPLC:User SFC configuration|Configuration]]&lt;br /&gt;
*** [[S7-SoftPLC:Setting the User SFC&#039;s/FC&#039;s within the user interface|User Interface]]&lt;br /&gt;
*** [[S7-SoftPLC:Setting the User SFC&#039;s/FC&#039;s within the PLC43.INI|PLC43.INI]]&lt;br /&gt;
* [[S7-SoftPLC:Technical data|Technical data]]&lt;br /&gt;
** [[S7-SoftPLC:Instruction set|Instruction set]]&lt;br /&gt;
** [[S7-SoftPLC:STEP®7 Hardwareconfiguration|STEP®7 Hardwareconfiguration]]&lt;br /&gt;
** [[S7-SoftPLC:Diagnostic buffer entries|Diagnostic buffer entries]]&lt;br /&gt;
** [[S7-SoftPLC:Differences between S7-SoftPLC and Hardware-PLC|Differences]]&lt;br /&gt;
** [[S7-SoftPLC:AppStarter|AppStarter]]&lt;br /&gt;
** [[S7-SoftPLC:Zero modem cable|Zero modem cable]]&lt;br /&gt;
&lt;br /&gt;
== S7-PCI315 ==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;1&amp;quot; class=&amp;quot;float-right&amp;quot;&amp;gt;&lt;br /&gt;
Image:3100.png|[http://www.ibhsoftec.com/SoftPLC-Eng SoftPLC S7-416]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
* [[S7-PCI315:Documentation Overview|Documentation Overview]]&lt;br /&gt;
* [[S7-PCI315:Legal Notes|Legal Notes]]&lt;br /&gt;
* [[S7-PCI315:Licenses|Licenses]]&lt;br /&gt;
* [[S7-PCI315:Safety|Safety]]&lt;br /&gt;
* [[S7-PCI315:Description and Requirements|Description and Requirements]]&lt;br /&gt;
* [[S7-PCI315:Device Drawings|Device Drawings]]&lt;br /&gt;
* [[S7-PCI315:System Overview|System Overview]]&lt;br /&gt;
* [[S7-PCI315:Device Driver Setup|Device Driver Setup]]&lt;br /&gt;
* [[S7-PCI315:Firmware Update|Firmware Update]]&lt;br /&gt;
* [[S7-PCI315:USB driver installation|USB driver installation]]&lt;br /&gt;
* [[S7-PCI315:Install S7netPLCComm service|Install S7netPLCComm service]]&lt;br /&gt;
* [[S7-PCI315:Safety Advices|Safety Advices]]&lt;br /&gt;
* [[S7-PCI315:Installing Battery|Installing Battery]]&lt;br /&gt;
* [[S7-PCI315:Installing S7-PCI315 PLC|Installing S7-PCI315 PLC]]&lt;br /&gt;
* [[S7-PCI315:HMI/data access|HMI/data access]]&lt;br /&gt;
* [[S7-PCI315:S7netPLCComm service|S7netPLCComm service]]&lt;br /&gt;
* [[S7-PCI315:Service configuration|Service configuration]]&lt;br /&gt;
* [[S7-PCI315:Configuration user interface|Configuration user interface]]&lt;br /&gt;
* [[S7-PCI315:Configuration INI file|Configuration INI file]]&lt;br /&gt;
* [[S7-PCI315:WinCC Flexible local|WinCC Flexible local]]&lt;br /&gt;
* [[S7-PCI315:Programming|Programming]]&lt;br /&gt;
* [[S7-PCI315:Instruction set|Instruction set]]&lt;br /&gt;
* [[S7-PCI315:Integrated blocks|Integrated blocks]]&lt;br /&gt;
* [[S7-PCI315:Power Supply|Power Supply]]&lt;br /&gt;
* [[S7-PCI315:Reset Behaviour|Reset Behaviour]]&lt;br /&gt;
* [[S7-PCI315:RUN/STOP Switch|RUN/STOP Switch]]&lt;br /&gt;
* [[S7-PCI315:Battery|Battery]]&lt;br /&gt;
* [[S7-PCI315:Changing the Battery|Changing the Battery]]&lt;br /&gt;
* [[S7-PCI315:Battery Disposal|Battery Disposal]]&lt;br /&gt;
* [[S7-PCI315:LED|LED]]&lt;br /&gt;
* [[S7-PCI315:LED SYS|LED SYS]]&lt;br /&gt;
* [[S7-PCI315:LED APL|LED APL]]&lt;br /&gt;
* [[S7-PCI315:LED PROFIBUS DP-Master|LED PROFIBUS DP-Master]]&lt;br /&gt;
* [[S7-PCI315:Memory Card|Memory Card]]&lt;br /&gt;
* [[S7-PCI315:Read State|Read State]]&lt;br /&gt;
* [[S7-PCI315:Dualport communication|Dualport communication]]&lt;br /&gt;
* [[S7-PCI315:Knowledge base|Knowledge base]]&lt;br /&gt;
* [[S7-PCI315:Troubleshooting|Troubleshooting]]&lt;br /&gt;
* [[S7-PCI315:Error Codes|Error Codes]]&lt;br /&gt;
* [[S7-PCI315:Technical Data|Technical Data]]&lt;br /&gt;
&lt;br /&gt;
== IBHNet ==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;3&amp;quot; class=&amp;quot;float-right&amp;quot;&amp;gt;&lt;br /&gt;
Image:20284.png|[http://www.ibhsoftec.com/IBH-Link-S5-PP-Eng IBHLink S5++]&lt;br /&gt;
Image:20266.gif|[http://www.ibhsoftec.com/IBH-Link-S7-PP-Eng IBHLink S7++]&lt;br /&gt;
Image:20268.png|[http://www.ibhsoftec.com/IBH-Link-S7-PP-HS-Eng IBHLink S7++ HS]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
*[[IBHNet:Introduction|Introduction]]&lt;br /&gt;
*[[IBHNet:System Requirements|System Requirements]]&lt;br /&gt;
*[[IBHNet:Installation|Installation]]&lt;br /&gt;
*[[IBHNet:Local Operation|Local Operation]]&lt;br /&gt;
*[[IBHNet:Operation in a local area network|Operation in a local area network]]&lt;br /&gt;
*[[IBHNet:Operation via the Internet|Operation via the Internet]]&lt;br /&gt;
*[[IBHNet:IBH Link S7|IBH Link S7]]&lt;br /&gt;
*[[IBHNet:IBH Link S5++|IBH Link S5++]]&lt;br /&gt;
*[[IBHNet:IBH Link S5++ with STEP®5|IBH Link S5++ with STEP®5]]&lt;br /&gt;
*[[IBHNet:Defining access names to identify the PLCs|Defining access names to identify the PLCs]]&lt;br /&gt;
*[[IBHNet:Settings within STEP®7|Settings within STEP®7]]&lt;br /&gt;
*[[IBHNet:Settings within STEP®7 without IBHNet driver|Settings within STEP®7 without IBHNet driver]]&lt;br /&gt;
*[[IBHNet:Settings within STEP®7 MicroWin starting with V3.1 SP2|Settings within STEP®7 MicroWin starting with V3.1 SP2]]&lt;br /&gt;
*[[IBHNet:Settings within TIA®|Settings within TIA®]]&lt;br /&gt;
*[[IBHNet:Settings within TIA® without IBHNet driver|Settings within TIA® without IBHNet driver]]&lt;br /&gt;
*[[IBHNet:Using IBHNet with WinCC|Using IBHNet with WinCC]]&lt;br /&gt;
*[[IBHNet:Using IBHNet with ProTool|Using IBHNet with ProTool]]&lt;br /&gt;
*[[IBHNet:Using IBHNet with WinCC Flexible|Using IBHNet with WinCC Flexible]]&lt;br /&gt;
*[[IBHNet:Using the IBH Link S5++ with Intouch|Using the IBH Link S5++ with Intouch]]&lt;br /&gt;
*[[IBHNet:Using the IBH Link S7++ with Intouch|Using the IBH Link S7++ with Intouch]]&lt;br /&gt;
*[[IBHNet:Accessing PLC variables|Accessing PLC variables]]&lt;br /&gt;
*[[IBHNet:Fetch/Write|Fetch/Write]]&lt;br /&gt;
*[[IBHNet:Unprojected PLC-PLC communication|Unprojected PLC-PLC communication]]&lt;br /&gt;
*[[IBHNet:Projected PLC-PLC communication|Projected PLC-PLC communication]]&lt;br /&gt;
*[[IBHNet:RFC1006 Communication IBH Link S7/S7Plus|RFC1006 Communication IBH Link S7/S7Plus]]&lt;br /&gt;
*[[IBHNet:RFC1006 Communication IBH Link S7++/S7++HS|RFC1006 Communication IBH Link S7++/S7++HS]]&lt;br /&gt;
*[[IBHNet:Troubleshooting|Troubleshooting]]&lt;br /&gt;
*[[IBHNet:Reset/Factory settings|Reset/Factory settings]]&lt;br /&gt;
*[[IBHNet:Technical Data IBH Link S7|Technical Data IBH Link S7]]&lt;br /&gt;
*[[IBHNet:Technical Data IBH Link S7 Plus|Technical Data IBH Link S7 Plus]]&lt;br /&gt;
*[[IBHNet:Technical Data IBH Link S7++/S7++ HS|Technical Data IBH Link S7++/S7++ HS]]&lt;br /&gt;
*[[IBHNet:Technical Data IBH Link S5++|Technical Data IBH Link S5++]]&lt;br /&gt;
*[[IBHNet:IBH Link History|IBH Link History]]&lt;br /&gt;
*[[IBHNet:Revisions|Revisions]]&lt;br /&gt;
&lt;br /&gt;
==IBH USB-S5-Adapter==&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;2&amp;quot; class=&amp;quot;float-right&amp;quot;&amp;gt;&lt;br /&gt;
Image:IBH_USB_S5.gif|[http://www.ibhsoftec.com/IBH-USB-S5-Adapter-Eng IBH-USB-S5-Adapter]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
* [[IBH USB-S5-Adapter:SIMATIC® S5 for Windows®|Access to a SIMATIC® S5 with &#039;&#039;S5 for Windows®&#039;&#039;]]&lt;br /&gt;
* [[IBH USB-S5-Adapter:Maximum USB cable length|Maximum USB cable length]]&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:LOGO!_with_IBHLink_S7%2B%2B&amp;diff=1250</id>
		<title>IBHLink S7++:LOGO! with IBHLink S7++</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:LOGO!_with_IBHLink_S7%2B%2B&amp;diff=1250"/>
		<updated>2013-01-29T09:51:35Z</updated>

		<summary type="html">&lt;p&gt;Joscha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== S7 Connection from Siemens LOGO! (RCE version) to a S7 PLC  via [http://www.ibhsoftec.com/IBH-Link-S7-PP-Eng IBHLink S7++] or [http://www.ibhsoftec.com/IBH-Link-S7-PP-HS-Eng IBHLink S7++ HS]==&lt;br /&gt;
&lt;br /&gt;
The RCE versions of Siemens LOGO! are equiped with an Ethernet port and support S7 connections via Ethernet. This allows a data communication between LOGO! and a S7-PLC via IBH Link S7++. Process data can be exchanged between both PLCs.&lt;br /&gt;
Below is the decription, how to setup the LOGO! for data communication with the IBH Link S7++.&lt;br /&gt;
&lt;br /&gt;
== Communikation ==&lt;br /&gt;
&lt;br /&gt;
The communication with the LOGO! will be established over S7 connections. The LOGO! can read and write from following data areas of the S7 PLC via IBH Link S7++:&lt;br /&gt;
&lt;br /&gt;
* Inputs&lt;br /&gt;
&lt;br /&gt;
* Outputs&lt;br /&gt;
&lt;br /&gt;
* Flags&lt;br /&gt;
&lt;br /&gt;
* Contents of data blocks.&lt;br /&gt;
&lt;br /&gt;
== Settings of the LOGO! via Display ==&lt;br /&gt;
&lt;br /&gt;
First of all, the LOGO! must be accessible via Ethernet. After that, an IP address can be set with the LOGO! Soft Comfort software. Maybe the IP address of the PC needs to be changed, so that the LOGO! and the PC are within the same subnet.&lt;br /&gt;
The current address of LOGO! is shown on the display.&lt;br /&gt;
&lt;br /&gt;
* With &amp;lt;ESC&amp;gt; you&#039;ll get to the settings.&lt;br /&gt;
&lt;br /&gt;
* Scroll down until &amp;lt;network&amp;gt; appears.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;OK&amp;gt;  &#039;IP address&#039;. &amp;lt;OK&amp;gt; The current address is shown.&lt;br /&gt;
&lt;br /&gt;
== Settings within the LOGO!Soft Comfort software ==&lt;br /&gt;
&lt;br /&gt;
Within the LOGO!Soft Comfort software setup the IP address of the PLC via &amp;quot;Tools - Transfer - Configure Network Address&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-setaddr-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
After that, the LOGO! must be configured to establish Client connections to other stations.&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;Tools - Ethernet Connections&amp;quot; a new connection can be added.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-connections-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
With a double click on the connection, it can be configured.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-softsps-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
A Client connection must be selected. The settings for the TSAPs are local &#039;20.00&#039; and remote &#039;01.nn&#039;. &#039;nn&#039; stands for the MPI address of the S7 PLC. The syntax is Hexadecimal, which means &#039;01.15&#039; stands for the address 21, &#039;01.02&#039; for the address 2. As operations, read and write are available. The local variables relate to the internal simulated DB1. The syntax for variables from the local DB is VBn, for the remote partner is S7 Syntax.&lt;br /&gt;
&lt;br /&gt;
To exchange variables with the DB1, the DB must be created. Via &amp;quot;Tools - Parameter VM Mapping&amp;quot; the elements of the program can be selcted, which should be mapped within the DB1.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-db1-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
Sometimes, the LOGO! Soft Comfort software needs to be restarted after changing the connections, to tranfer the changes to the LOGO!&lt;br /&gt;
&lt;br /&gt;
== Access with IBHNet object ==&lt;br /&gt;
&lt;br /&gt;
Beginning with IBHNet V1.49 it is possible to access the LOGO! via &#039;RFC1006&#039;. The MPI Address for the function &#039;Connect()&#039; is 128, for &#039;Connect_DP()&#039; it is the Slot 128. As variables, Inputs, Outputs, Flags, the DB1 and the Order No. can be selected.&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:LOGO!_with_IBHLink_S7%2B%2B&amp;diff=1249</id>
		<title>IBHLink S7++:LOGO! with IBHLink S7++</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:LOGO!_with_IBHLink_S7%2B%2B&amp;diff=1249"/>
		<updated>2013-01-29T09:44:10Z</updated>

		<summary type="html">&lt;p&gt;Joscha: /* Settings of the LOGO! via Display */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== S7 Connection from Siemens LOGO! (RCE version) to a S7 PLC  via [http://www.ibhsoftec.com/IBH-Link-S7-PP-Eng IBHLink S7++] or [http://www.ibhsoftec.com/IBH-Link-S7-PP-HS-Eng IBHLink S7++ HS]==&lt;br /&gt;
&lt;br /&gt;
The RCE versions from Siemens LOGO! are equiped with an Ethernet port and support S7 connections via Ethernet. This allows a data communication between LOGO! and a S7-PLC via IBH Link S7++. Process data can be exchanged between both PLC.&lt;br /&gt;
Below there is the decription how to setup the LOGO! for data communication with the IBH Link S7++.&lt;br /&gt;
&lt;br /&gt;
== Communikation ==&lt;br /&gt;
&lt;br /&gt;
The communikation with the LOGO! will be established over S7 connections. The LOGO! can read and write from following data areas of the S7 PLC via IBH Link S7++:&lt;br /&gt;
&lt;br /&gt;
* Inputs&lt;br /&gt;
&lt;br /&gt;
* Outputs&lt;br /&gt;
&lt;br /&gt;
* Flags&lt;br /&gt;
&lt;br /&gt;
* Content of data blocks.&lt;br /&gt;
&lt;br /&gt;
== Settings of the LOGO! via Display ==&lt;br /&gt;
&lt;br /&gt;
First of all the LOGO! must be accessible via Ethernet. After that, an IP address can be set with the LOGO! Soft Comfort software. Maybe the IP address of the PC neds to be changed, so that the LOGO! and the PC are within the same subnet.&lt;br /&gt;
The current address of LOGO! is shown on the display.&lt;br /&gt;
&lt;br /&gt;
* With &amp;lt;ESC&amp;gt; you&#039;ll get to the settings.&lt;br /&gt;
&lt;br /&gt;
* Scroll down until &amp;lt;network&amp;gt; appears.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;OK&amp;gt;  &#039;IP address&#039;. &amp;lt;OK&amp;gt; The current address is shown.&lt;br /&gt;
&lt;br /&gt;
== Settings within the LOGO!Soft Comfort software ==&lt;br /&gt;
&lt;br /&gt;
Within the LOGO!Soft Comfort software setup the IP address of the PLC via &amp;quot;Tools - Transfer - Configure Network Address&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-setaddr-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
Afte that the LOGO! must be configured, to establish Client connections to other stations.&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;Tools - Ethernet Connections&amp;quot; a new connection can be added.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-connections-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
With a double click on the connection, it can be configured.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-softsps-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
A Client connection must be selected. The settings for the TSAPs are local &#039;20.00&#039; and remote &#039;01.nn&#039;. &#039;nn&#039; stands for the MPI address of the S7 PLC, . The syntax is Hexadecimal, which means &#039;01.15&#039; stands for the address 21, &#039;01.02&#039; for the address 2. As operations, read and write are available. The local variables relate to the intern simulated DB1. The syntax for variables from the local DB is VBn, for the remote partner is S7 Syntax.&lt;br /&gt;
&lt;br /&gt;
To exchange variables with the DB1, the DB must be created. Via &amp;quot;Tools - Parameter VM Mapping&amp;quot; the elements of the program can be selcted, which should be mapped within the DB1.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-db1-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
Sometimes, the LOGO! Soft Comfort software needs to be restarted after changing the connections, to tranfer the changes to the LOGO!&lt;br /&gt;
&lt;br /&gt;
== Access with IBHNet object ==&lt;br /&gt;
&lt;br /&gt;
Beginning with IBHNet V1.49 it is possible to access the LOGO! via &#039;RFC1006&#039;. Die zu verwendende MPI-Adresse bei der Funktion &#039;Connect()&#039; is 128, bei &#039;Connect_DP()&#039; ist es der Steckplatz 128. As variables Inputs, Outputs, Flags, the DB1 and the Order No. can be selected.&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:LOGO!_with_IBHLink_S7%2B%2B&amp;diff=1248</id>
		<title>IBHLink S7++:LOGO! with IBHLink S7++</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:LOGO!_with_IBHLink_S7%2B%2B&amp;diff=1248"/>
		<updated>2013-01-29T09:42:54Z</updated>

		<summary type="html">&lt;p&gt;Joscha: /* Settings within the LOGO!Soft Comfort software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== S7 Connection from Siemens LOGO! (RCE version) to a S7 PLC  via [http://www.ibhsoftec.com/IBH-Link-S7-PP-Eng IBHLink S7++] or [http://www.ibhsoftec.com/IBH-Link-S7-PP-HS-Eng IBHLink S7++ HS]==&lt;br /&gt;
&lt;br /&gt;
The RCE versions from Siemens LOGO! are equiped with an Ethernet port and support S7 connections via Ethernet. This allows a data communication between LOGO! and a S7-PLC via IBH Link S7++. Process data can be exchanged between both PLC.&lt;br /&gt;
Below there is the decription how to setup the LOGO! for data communication with the IBH Link S7++.&lt;br /&gt;
&lt;br /&gt;
== Communikation ==&lt;br /&gt;
&lt;br /&gt;
The communikation with the LOGO! will be established over S7 connections. The LOGO! can read and write from following data areas of the S7 PLC via IBH Link S7++:&lt;br /&gt;
&lt;br /&gt;
* Inputs&lt;br /&gt;
&lt;br /&gt;
* Outputs&lt;br /&gt;
&lt;br /&gt;
* Flags&lt;br /&gt;
&lt;br /&gt;
* Content of data blocks.&lt;br /&gt;
&lt;br /&gt;
== Settings of the LOGO! via Display ==&lt;br /&gt;
&lt;br /&gt;
First of all the LOGO! must be accessible via Ethernet. After that, an IP addrees can be set with the LOGO! Soft Comfort software. Maybe the IP address of the PC neds to be changed, so that the LOGO! and the PC are with the same subnet.&lt;br /&gt;
The currwent address of LOGO! is shown on the display.&lt;br /&gt;
&lt;br /&gt;
* With &amp;lt;ESC&amp;gt; you&#039;ll get to the settings.&lt;br /&gt;
&lt;br /&gt;
* Scroll down until &amp;lt;network&amp;gt; appears.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;OK&amp;gt;  &#039;IP address&#039;. &amp;lt;OK&amp;gt; The current adress is shown.&lt;br /&gt;
&lt;br /&gt;
== Settings within the LOGO!Soft Comfort software ==&lt;br /&gt;
&lt;br /&gt;
Within the LOGO!Soft Comfort software setup the IP address of the PLC via &amp;quot;Tools - Transfer - Configure Network Address&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-setaddr-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
Afte that the LOGO! must be configured, to establish Client connections to other stations.&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;Tools - Ethernet Connections&amp;quot; a new connection can be added.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-connections-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
With a double click on the connection, it can be configured.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-softsps-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
A Client connection must be selected. The settings for the TSAPs are local &#039;20.00&#039; and remote &#039;01.nn&#039;. &#039;nn&#039; stands for the MPI address of the S7 PLC, . The syntax is Hexadecimal, which means &#039;01.15&#039; stands for the address 21, &#039;01.02&#039; for the address 2. As operations, read and write are available. The local variables relate to the intern simulated DB1. The syntax for variables from the local DB is VBn, for the remote partner is S7 Syntax.&lt;br /&gt;
&lt;br /&gt;
To exchange variables with the DB1, the DB must be created. Via &amp;quot;Tools - Parameter VM Mapping&amp;quot; the elements of the program can be selcted, which should be mapped within the DB1.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-db1-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
Sometimes, the LOGO! Soft Comfort software needs to be restarted after changing the connections, to tranfer the changes to the LOGO!&lt;br /&gt;
&lt;br /&gt;
== Access with IBHNet object ==&lt;br /&gt;
&lt;br /&gt;
Beginning with IBHNet V1.49 it is possible to access the LOGO! via &#039;RFC1006&#039;. Die zu verwendende MPI-Adresse bei der Funktion &#039;Connect()&#039; is 128, bei &#039;Connect_DP()&#039; ist es der Steckplatz 128. As variables Inputs, Outputs, Flags, the DB1 and the Order No. can be selected.&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:LOGO!_with_IBHLink_S7%2B%2B&amp;diff=1247</id>
		<title>IBHLink S7++:LOGO! with IBHLink S7++</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:LOGO!_with_IBHLink_S7%2B%2B&amp;diff=1247"/>
		<updated>2013-01-29T09:41:31Z</updated>

		<summary type="html">&lt;p&gt;Joscha: /* Settings within the LOGO!Soft Comfort software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== S7 Connection from Siemens LOGO! (RCE version) to a S7 PLC  via [http://www.ibhsoftec.com/IBH-Link-S7-PP-Eng IBHLink S7++] or [http://www.ibhsoftec.com/IBH-Link-S7-PP-HS-Eng IBHLink S7++ HS]==&lt;br /&gt;
&lt;br /&gt;
The RCE versions from Siemens LOGO! are equiped with an Ethernet port and support S7 connections via Ethernet. This allows a data communication between LOGO! and a S7-PLC via IBH Link S7++. Process data can be exchanged between both PLC.&lt;br /&gt;
Below there is the decription how to setup the LOGO! for data communication with the IBH Link S7++.&lt;br /&gt;
&lt;br /&gt;
== Communikation ==&lt;br /&gt;
&lt;br /&gt;
The communikation with the LOGO! will be established over S7 connections. The LOGO! can read and write from following data areas of the S7 PLC via IBH Link S7++:&lt;br /&gt;
&lt;br /&gt;
* Inputs&lt;br /&gt;
&lt;br /&gt;
* Outputs&lt;br /&gt;
&lt;br /&gt;
* Flags&lt;br /&gt;
&lt;br /&gt;
* Content of data blocks.&lt;br /&gt;
&lt;br /&gt;
== Settings of the LOGO! via Display ==&lt;br /&gt;
&lt;br /&gt;
First of all the LOGO! must be accessible via Ethernet. After that, an IP addrees can be set with the LOGO! Soft Comfort software. Maybe the IP address of the PC neds to be changed, so that the LOGO! and the PC are with the same subnet.&lt;br /&gt;
The currwent address of LOGO! is shown on the display.&lt;br /&gt;
&lt;br /&gt;
* With &amp;lt;ESC&amp;gt; you&#039;ll get to the settings.&lt;br /&gt;
&lt;br /&gt;
* Scroll down until &amp;lt;network&amp;gt; appears.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;OK&amp;gt;  &#039;IP address&#039;. &amp;lt;OK&amp;gt; The current adress is shown.&lt;br /&gt;
&lt;br /&gt;
== Settings within the LOGO!Soft Comfort software ==&lt;br /&gt;
&lt;br /&gt;
Within the LOGO!Soft Comfort software setup the IP address of the PLC via &amp;quot;Tools - Transfer - Configure Network Address&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-setaddr-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
Afte that the LOGO! must be configured, to establish Client connections to other stations.&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;Tools - Ethernet Connections&amp;quot; a new connection can be added.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-connections-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
With a double click on the connection, it can be configured.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-softsps-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
A Client connection must be selected. The settings for the TSAPs are local &#039;20.00&#039; and remote &#039;01.nn&#039;. &#039;nn&#039; stands for the MPI address of the S7 PLC, . The syntax is Hexadecimal, which menas &#039;01.15&#039; stands for the address 21, &#039;01.02&#039; for the address 2. As operations, read and write are available. The local variables relate to the intern simulated DB1. The syntax for variables from the local DB is VBn, for the remote partner is S7 Syntax.&lt;br /&gt;
&lt;br /&gt;
To exchange variables with the DB1, the DB must be created. Via &amp;quot;Tools - Parameter VM Mapping&amp;quot; the elements of the program can be selcted, which should be mapped within the DB1.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-db1-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
Sometimes, the LOGO! Soft Comfort software needs to be restarted after changing the connections, to tranfer the changes to the LOGO!&lt;br /&gt;
&lt;br /&gt;
== Access with IBHNet object ==&lt;br /&gt;
&lt;br /&gt;
Beginning with IBHNet V1.49 it is possible to access the LOGO! via &#039;RFC1006&#039;. Die zu verwendende MPI-Adresse bei der Funktion &#039;Connect()&#039; is 128, bei &#039;Connect_DP()&#039; ist es der Steckplatz 128. As variables Inputs, Outputs, Flags, the DB1 and the Order No. can be selected.&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:LOGO!_with_IBHLink_S7%2B%2B&amp;diff=1246</id>
		<title>IBHLink S7++:LOGO! with IBHLink S7++</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:LOGO!_with_IBHLink_S7%2B%2B&amp;diff=1246"/>
		<updated>2013-01-29T09:39:27Z</updated>

		<summary type="html">&lt;p&gt;Joscha: /* Settings of the LOGO! via Display */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== S7 Connection from Siemens LOGO! (RCE version) to a S7 PLC  via [http://www.ibhsoftec.com/IBH-Link-S7-PP-Eng IBHLink S7++] or [http://www.ibhsoftec.com/IBH-Link-S7-PP-HS-Eng IBHLink S7++ HS]==&lt;br /&gt;
&lt;br /&gt;
The RCE versions from Siemens LOGO! are equiped with an Ethernet port and support S7 connections via Ethernet. This allows a data communication between LOGO! and a S7-PLC via IBH Link S7++. Process data can be exchanged between both PLC.&lt;br /&gt;
Below there is the decription how to setup the LOGO! for data communication with the IBH Link S7++.&lt;br /&gt;
&lt;br /&gt;
== Communikation ==&lt;br /&gt;
&lt;br /&gt;
The communikation with the LOGO! will be established over S7 connections. The LOGO! can read and write from following data areas of the S7 PLC via IBH Link S7++:&lt;br /&gt;
&lt;br /&gt;
* Inputs&lt;br /&gt;
&lt;br /&gt;
* Outputs&lt;br /&gt;
&lt;br /&gt;
* Flags&lt;br /&gt;
&lt;br /&gt;
* Content of data blocks.&lt;br /&gt;
&lt;br /&gt;
== Settings of the LOGO! via Display ==&lt;br /&gt;
&lt;br /&gt;
First of all the LOGO! must be accessible via Ethernet. After that, an IP addrees can be set with the LOGO! Soft Comfort software. Maybe the IP address of the PC neds to be changed, so that the LOGO! and the PC are with the same subnet.&lt;br /&gt;
The currwent address of LOGO! is shown on the display.&lt;br /&gt;
&lt;br /&gt;
* With &amp;lt;ESC&amp;gt; you&#039;ll get to the settings.&lt;br /&gt;
&lt;br /&gt;
* Scroll down until &amp;lt;network&amp;gt; appears.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;OK&amp;gt;  &#039;IP address&#039;. &amp;lt;OK&amp;gt; The current adress is shown.&lt;br /&gt;
&lt;br /&gt;
== Settings within the LOGO!Soft Comfort software ==&lt;br /&gt;
&lt;br /&gt;
Within the LOGO!Soft Comfort software setup the IP address of the PLC via &amp;quot;Tools - Transfer - Configure Network Address&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-setaddr-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
Afte that the LOGO! must be configured, to build up Client connections to other stations.&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;Tools - Ethernet Connections&amp;quot; a new connection can be added.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-connections-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
With a double click one the connection it can be configured.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-softsps-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
A Client connection must be selected. The settings for the TSAPs are local &#039;20.00&#039; and remote &#039;01.nn&#039;. &#039;nn&#039; stands for the MPI address of the S7 PLC, . The syntax is Hexadecimal, which menas &#039;01.15&#039; stands for the address 21, &#039;01.02&#039; for the address 2. As operations read and write are available. The local variables relate to the intern simulated DB1. The syntax for variables from the local DB is VBn, for the remote partner is S7 Syntax.&lt;br /&gt;
&lt;br /&gt;
To exchange variables with the DB1, the DB must be created. Via &amp;quot;Tools - Parameter VM Mapping&amp;quot; the elements of the program can be selcted, which should be mapped within the DB1.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-db1-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
Some times the LOGO! Soft Comfort software needs to be restarted after changing the connections, to tranfer the changes to the LOGO!&lt;br /&gt;
&lt;br /&gt;
== Access with IBHNet object ==&lt;br /&gt;
&lt;br /&gt;
Beginning with IBHNet V1.49 it is possible to access the LOGO! via &#039;RFC1006&#039;. Die zu verwendende MPI-Adresse bei der Funktion &#039;Connect()&#039; is 128, bei &#039;Connect_DP()&#039; ist es der Steckplatz 128. As variables Inputs, Outputs, Flags, the DB1 and the Order No. can be selected.&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:LOGO!_with_IBHLink_S7%2B%2B&amp;diff=1245</id>
		<title>IBHLink S7++:LOGO! with IBHLink S7++</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBHLink_S7%2B%2B:LOGO!_with_IBHLink_S7%2B%2B&amp;diff=1245"/>
		<updated>2013-01-29T09:38:26Z</updated>

		<summary type="html">&lt;p&gt;Joscha: /* Communikation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== S7 Connection from Siemens LOGO! (RCE version) to a S7 PLC  via [http://www.ibhsoftec.com/IBH-Link-S7-PP-Eng IBHLink S7++] or [http://www.ibhsoftec.com/IBH-Link-S7-PP-HS-Eng IBHLink S7++ HS]==&lt;br /&gt;
&lt;br /&gt;
The RCE versions from Siemens LOGO! are equiped with an Ethernet port and support S7 connections via Ethernet. This allows a data communication between LOGO! and a S7-PLC via IBH Link S7++. Process data can be exchanged between both PLC.&lt;br /&gt;
Below there is the decription how to setup the LOGO! for data communication with the IBH Link S7++.&lt;br /&gt;
&lt;br /&gt;
== Communikation ==&lt;br /&gt;
&lt;br /&gt;
The communikation with the LOGO! will be established over S7 connections. The LOGO! can read and write from following data areas of the S7 PLC via IBH Link S7++:&lt;br /&gt;
&lt;br /&gt;
* Inputs&lt;br /&gt;
&lt;br /&gt;
* Outputs&lt;br /&gt;
&lt;br /&gt;
* Flags&lt;br /&gt;
&lt;br /&gt;
* Content of data blocks.&lt;br /&gt;
&lt;br /&gt;
== Settings of the LOGO! via Display ==&lt;br /&gt;
&lt;br /&gt;
First of all the LOGO! must be reachable via Ethernet. After that an IP addrees can be set with the LOGO! Soft Comfort software. Maybe the IP address of the PC neds to be changed, so that the LOGO! and the PC are with the same subnet.&lt;br /&gt;
The currwent address of LOGO! is shown on the display.&lt;br /&gt;
&lt;br /&gt;
* With &amp;lt;ESC&amp;gt; you&#039;ll get to the settings.&lt;br /&gt;
&lt;br /&gt;
* Scroll down until &amp;lt;network&amp;gt; appears.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;OK&amp;gt;  &#039;IP address&#039;. &amp;lt;OK&amp;gt; The current adress is shown.&lt;br /&gt;
&lt;br /&gt;
== Settings within the LOGO!Soft Comfort software ==&lt;br /&gt;
&lt;br /&gt;
Within the LOGO!Soft Comfort software setup the IP address of the PLC via &amp;quot;Tools - Transfer - Configure Network Address&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-setaddr-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
Afte that the LOGO! must be configured, to build up Client connections to other stations.&lt;br /&gt;
&lt;br /&gt;
Via &amp;quot;Tools - Ethernet Connections&amp;quot; a new connection can be added.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-connections-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
With a double click one the connection it can be configured.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-softsps-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
A Client connection must be selected. The settings for the TSAPs are local &#039;20.00&#039; and remote &#039;01.nn&#039;. &#039;nn&#039; stands for the MPI address of the S7 PLC, . The syntax is Hexadecimal, which menas &#039;01.15&#039; stands for the address 21, &#039;01.02&#039; for the address 2. As operations read and write are available. The local variables relate to the intern simulated DB1. The syntax for variables from the local DB is VBn, for the remote partner is S7 Syntax.&lt;br /&gt;
&lt;br /&gt;
To exchange variables with the DB1, the DB must be created. Via &amp;quot;Tools - Parameter VM Mapping&amp;quot; the elements of the program can be selcted, which should be mapped within the DB1.&lt;br /&gt;
&lt;br /&gt;
[[Image:logo-comfort-db1-eng.png|none]]&lt;br /&gt;
&lt;br /&gt;
Some times the LOGO! Soft Comfort software needs to be restarted after changing the connections, to tranfer the changes to the LOGO!&lt;br /&gt;
&lt;br /&gt;
== Access with IBHNet object ==&lt;br /&gt;
&lt;br /&gt;
Beginning with IBHNet V1.49 it is possible to access the LOGO! via &#039;RFC1006&#039;. Die zu verwendende MPI-Adresse bei der Funktion &#039;Connect()&#039; is 128, bei &#039;Connect_DP()&#039; ist es der Steckplatz 128. As variables Inputs, Outputs, Flags, the DB1 and the Order No. can be selected.&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBHNet:Troubleshooting&amp;diff=818</id>
		<title>IBHNet:Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBHNet:Troubleshooting&amp;diff=818"/>
		<updated>2012-12-04T15:44:54Z</updated>

		<summary type="html">&lt;p&gt;Joscha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; The property dialogs will not show in the Simatic&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; Manager:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Make sure, that you had administrative rights during installation. After the installation, the PC &#039;&#039;&#039;must&#039;&#039;&#039; be restarted. Make sure to have at least version 5.1 of the Simatic&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; Manager.&amp;lt;br /&amp;gt;&lt;br /&gt;
Run the MS-DOS prompt and go to the installation folder of the &#039;&#039;&#039;&#039;&#039;IBHNet&#039;&#039;&#039;&#039;&#039; driver, normally \WINNT\SYSTEM32 or \WINDOWS\SYSTEM32. Type the following commands:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Regsvr32.exe ibh_Netpd.dll&lt;br /&gt;
* Regsvr32.exe ibh_Netpdl.dll&lt;br /&gt;
* Regsvr32.exe ibh_Netpdldp.dll&lt;br /&gt;
* Regsvr32.exe ibh_Netpdlppi.dll&lt;br /&gt;
* Regsvr32.exe ibh_Netspl.dll&lt;br /&gt;
* Regsvr32.exe ibhnet.dll&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As result a message box should show &amp;amp;quot;Dll Register Server Succeeded&amp;amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Run the program IBH_Netpcom.exe with the option –RegServer.&amp;lt;br /&amp;gt;&lt;br /&gt;
Example: C:\Winnt\System32 ⇒ IBH_NETPCOM.EXE -RegServer&amp;lt;br /&amp;gt;&lt;br /&gt;
No error message should appear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; Does the IBHNet driver work with older versions of Windows&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; 95 or  Windows&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; NT4?&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; No. The IBHNet driver is built with Microsoft Visual Studio 2005. Microsoft doesen´t support these operating systems any more with their current compilers. Our Support can supply IBHNet version 1.25, which was the last version that worked with these operating systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; When accessing a PLC, I get an error message.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Make sure, that the IP address is correctly entered in the driver settings. If a &#039;&#039;&#039;&#039;&#039;SoftPLC&#039;&#039;&#039;&#039;&#039; is used, make sure to have TCP/IP selected in the SoftPLC dialog box. With the command PING &amp;amp;lt;IP address&amp;amp;gt; from the MS-DOS prompt, verify that the &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039; respectively the PC that holds the &#039;&#039;&#039;&#039;&#039;SoftPLC&#039;&#039;&#039;&#039;&#039; can be reached via the Ethernet network.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; When using a &#039;&#039;&#039;&#039;&#039;SoftPLC&#039;&#039;&#039;&#039;&#039;, no Stations are displayed in the Simatic&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; Manager.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Make sure to have TCP/IP selected in the &#039;&#039;&#039;&#039;&#039;SoftPLC&#039;&#039;&#039;&#039;&#039; dialog box. Altering the settings require a restart of the &#039;&#039;&#039;&#039;&#039;SoftPLC&#039;&#039;&#039;&#039;&#039; to apply the settings. If no changes are applied, probably the file PLC43.INI in the installation folder of the &#039;&#039;&#039;&#039;&#039;SoftPLC&#039;&#039;&#039;&#039;&#039; is write protected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; The driver &#039;&#039;&#039;&#039;&#039;IBHNet&#039;&#039;&#039;&#039;&#039; does not show in the properties dialog &amp;amp;quot;Set PG/PC interface&amp;amp;quot; of the STEP7&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; software.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Install the driver for the serial adaptor &amp;amp;quot;PC-Adaptor (MPI)&amp;amp;quot;, since this adaptor pre-installs basic functions required by the &#039;&#039;&#039;&#039;&#039;IBHNet&#039;&#039;&#039;&#039;&#039; driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; In the properties dialog of the STEP7&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; software, the no properties for the &#039;&#039;&#039;&#039;&#039;IBHNet&#039;&#039;&#039;&#039;&#039; can be opened:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; During the installation pathnames have been used, that do not match the MS-DOS 8.3 convention. The name of the installation path must not have spaces and/or other special characters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; During the transfer with ProTool I get the message &amp;amp;quot;Server is busy&amp;amp;quot;, and it looks as if ProTool hangs.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; The timeout for the &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039; is set to a too high value. If the timeout is &amp;amp;gt; 4 seconds, this message may show up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; The adaptor is connected to the profibus, but there are no online functions possible.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Verify the timing parameters for the Profibus in the Step&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt;7 project. Look at the properties of your profibus and write down the timing parameters. Enter the values read from the Step&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt;7 project in the &amp;amp;quot;advanced&amp;amp;quot; section of the baudrate settings for the &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039; adaptor. If there is still no online communication possible, increase the parameter &amp;amp;quot;Ttr&amp;amp;quot; (Target Rotation Time) as well in the &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039; and on the CPU by means.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q:&#039;&#039;&#039; Searching for &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039; does not find the connected &#039;&#039;&#039;&#039;&#039;IBH Links&#039;&#039;&#039;&#039;&#039; and/or trying to connect to the &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039; does not work.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Finding the &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039; is made via the UDP ports 25383 and 25384, the connection itself is made through TCP port 1099. A firewall may block the required ports for searching and/or connecting. Open the required ports in the firewall or deactivate the firewall.&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBHNet:Defining_access_names_to_identify_the_PLCs&amp;diff=817</id>
		<title>IBHNet:Defining access names to identify the PLCs</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBHNet:Defining_access_names_to_identify_the_PLCs&amp;diff=817"/>
		<updated>2012-12-04T15:43:58Z</updated>

		<summary type="html">&lt;p&gt;Joscha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
By defining a symbolic name for the PLC, it is not necessary to always remember the IP addresses of the CPU. In the next step, we will assign the &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039; IP address to a symbolic name for the PLC.&lt;br /&gt;
&lt;br /&gt;
From &amp;amp;quot;Start ⇒ Programs ⇒ IBHNet&amp;amp;quot; run the program &amp;amp;quot;Administrate IBHNet stations&amp;amp;quot;. The screen as shown below will be displayed:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:image012.jpg|frame|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the list, existing stations can be selected. If &amp;amp;quot;Change Station&amp;amp;quot; is clicked, changes can be applied to definitions of already existing stations. The buttons &amp;amp;quot;IBH Link S7&amp;amp;quot; and &amp;amp;quot;IBH Link S5&amp;amp;quot; will lead to the &#039;&#039;&#039;&#039;&#039;IBH Link S7&#039;&#039;&#039;&#039;&#039; respectively the &#039;&#039;&#039;&#039;&#039;IBH Link S5&#039;&#039;&#039;&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
We assume, that no station has yet been defined. Click &amp;amp;quot;New Station&amp;amp;quot; to define a new symbolic name. The dialog below will appear:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:image013.jpg|frame|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enter the IP address of an &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039; or a S7-PLC. The correct device type must be selected. Enter a time for a connection timeout. For Step7 a time about 2000 ms has approved, for ProTool CS 4000 ms, for ProTool RT or OPC Servers use 1000 ms. For an S7-300/400 or OP it needs to be chosen, whether the &#039;&#039;&#039;&#039;&#039;IBH Link S7&#039;&#039;&#039;&#039;&#039; is connected to the MPI&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; or Profibus interface. For the S7-200 the PPI interface needs to be selected.&amp;lt;br /&amp;gt;&lt;br /&gt;
If the &#039;&#039;&#039;&#039;&#039;IBH Link&#039;&#039;&#039;&#039;&#039; is used with Step&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt;7 in a profibus network, the profibus parameters can also be dynamically taken from the project. Therefore it is required, that the  PU is networked with the profibus. Assign IBHNet(Profibus) as S7ONLINE Access of the PU and set it active.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Type a unique name for the PLC and click &amp;amp;quot;Apply&amp;amp;quot;. The dialog will close upon clicking &amp;amp;quot;OK&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If &amp;amp;quot;IBH Link S5&amp;amp;quot; is selected, the &amp;amp;quot;Advanced connection settings&amp;amp;quot; will change. Of course the &#039;&#039;&#039;&#039;&#039;IBH Link S5&#039;&#039;&#039;&#039;&#039; can not be used for S7-PG-functions. With the IBHNet drivers it is only possible to read/write data in an S5-PLC via IBHNet object using Delphi, VisualBasic a.s.o.. For using PG functions with S5 software separate drivers are supplied with the &#039;&#039;&#039;&#039;&#039;IBH Link S5&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:image014.jpg|frame|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enter the port in the field &amp;amp;quot;S5-PG-Port&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A valid licence need to be entered in order to use the &#039;&#039;&#039;&#039;&#039;IBH Link S5&#039;&#039;&#039;&#039;&#039;. The licence information is supplied with the &#039;&#039;&#039;&#039;&#039;IBH Link S5&#039;&#039;&#039;&#039;&#039;. To enter the licence information press &amp;amp;quot;Enter registration&amp;amp;quot;. It will open the following dialog:&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Attention:&#039;&#039;&#039; Minimum requirements are at least default user rights to complete this step successfully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:image015.jpg|frame|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enter your name and company. In the field &amp;amp;quot;Serial number&amp;amp;quot; enter the serial number of the &#039;&#039;&#039;&#039;&#039;IBH Link S5&#039;&#039;&#039;&#039;&#039; in the following format: &amp;amp;quot;S5L-XXXXXX-XXXX&amp;amp;quot;. Then enter the PIN supplied with your &#039;&#039;&#039;&#039;&#039;IBH Link S5&#039;&#039;&#039;&#039;&#039;. If you do not have a valid serial number and/or PIN code, please contact our support.&amp;lt;br /&amp;gt;&lt;br /&gt;
If all information is correct, &amp;amp;quot;Add licence&amp;amp;quot; will activate itself. To apply your registrations press this button.&amp;lt;br /&amp;gt;&lt;br /&gt;
Attention: Every serial number can be entered only once.&amp;lt;br /&amp;gt;&lt;br /&gt;
With a click on &amp;amp;quot;Exit&amp;amp;quot; all entered changes are committed, if the dialog is closed by pressing &amp;amp;quot;[x]&amp;amp;quot; all changes are lost. The &#039;&#039;&#039;&#039;&#039;IBH Link S5++&#039;&#039;&#039;&#039;&#039; don&#039;t need a license.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By clicking &amp;amp;quot;Language&amp;amp;quot; in the &amp;amp;quot;IBH Network settings&amp;amp;quot; window, the user interface language can be chosen.&amp;lt;br /&amp;gt;&lt;br /&gt;
The software needs to be restarted to apply the changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:image016.jpg|frame|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After all names for the PLC have been defined, these can be chosen by selecting the symbolic name, since the IP address is assigned to that name. The dialog below shows, how to select a PLC from STEP&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt;7.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:image017.jpg|frame|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Depending on the software, the configuration dialogues may be different. Please read the corresponding manual for details.&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBHNet:Accessing_PLC_variables&amp;diff=689</id>
		<title>IBHNet:Accessing PLC variables</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBHNet:Accessing_PLC_variables&amp;diff=689"/>
		<updated>2012-09-24T06:36:30Z</updated>

		<summary type="html">&lt;p&gt;Joscha: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Accessing PLC variables ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;&#039;&#039;IBHNet&#039;&#039;&#039;&#039;&#039; network driver ships with an object, which allows access to variables of the PLC. This COM-Server can be used in any programming language, such as VisualBasic, Delphi a.s.o..&lt;br /&gt;
&lt;br /&gt;
Its interface name is IIIBHnet. In VisualBasic for instance, it is presented as IBHNet 1.0 Type Library from the menu &amp;amp;quot;Project – References&amp;amp;quot;. The RFC1006 protocol should be always used to read and write variables, if possible. Only obsolete devices may require other protocols. To access variables from the PLC the methods and properties listed below are available:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! &#039;&#039;&#039;Functions of the Interface IIIBHnet&#039;&#039;&#039;&lt;br /&gt;
!style=&amp;quot;width: 5em&amp;quot; align=&amp;quot;center&amp;quot;| S5 &lt;br /&gt;
!style=&amp;quot;width: 5em&amp;quot; align=&amp;quot;center&amp;quot;| S7 &amp;lt;br/&amp;gt; 300/400 &lt;br /&gt;
!style=&amp;quot;width: 5em&amp;quot; align=&amp;quot;center&amp;quot;| SoftSPS &amp;lt;br/&amp;gt; and &amp;lt;br/&amp;gt; S7-CX &lt;br /&gt;
!style=&amp;quot;width: 5em&amp;quot; align=&amp;quot;center&amp;quot;| S7 &amp;lt;br/&amp;gt; 200&lt;br /&gt;
|-&lt;br /&gt;
|Search first configured station&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT FirstStation(BSTR* pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;pVal: First Station found&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, if no station exists, S_FALSE is returned.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Search further configured stations&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT NextStation(BSTR* pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;pVal: Station name&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK&amp;lt;br /&amp;gt;If no further station exists, S_FALSE is returned.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Set up PLC connection&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT Connect([in, string] BSTR Station,[in] long MPIAdr)&#039;&#039;&#039;&amp;lt;br /&amp;gt;Station: Station Name&amp;lt;br /&amp;gt;MPIAdr: MPI Addrerss&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL or the sequence number if failed.&amp;lt;br /&amp;gt;The function Connect_DP of the interface IIIBHNet3 should be preferred to set up a connection, because it returns always an exception in programming languages like VisualBasic or C#, if failed.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|PLC Disconnect&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT Disconnect()&#039;&#039;&#039;&amp;lt;br /&amp;gt;Parameters: None&amp;lt;br /&amp;gt;Return Value: Always S_OK.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Reads a single value from the PLC&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT ReadVal(long typ, long nr, long DBNr, long size, long *val)&#039;&#039;&#039;&amp;lt;br /&amp;gt;typ : &#039;E&#039; = Input = 69d, &#039;A&#039; Output = 65d, &#039;M&#039; Flags = 77d, &#039;D&#039; Datablock = 68d&amp;lt;br /&amp;gt;nr: Start offset for Input/Output/Flags, for D the start offset within the DB&amp;lt;br /&amp;gt;DBNr: Datablock number for typ = &#039;D&#039; (68d), for Input/Output/Flags 0&amp;lt;br /&amp;gt;size: 0..7 = The bit number within the byte read, 8 = Byte, 16 = Word, 32 = Doubleword&amp;lt;br /&amp;gt;val: The value read from the PLC&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC does not exist or is too small.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Reads an array of values from the PLC&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT ReadVals(long typ, long nr, long DBNr, long size, SAFEARRAY(unsigned char) vals)&#039;&#039;&#039;&amp;lt;br /&amp;gt;typ: &#039;E&#039; = Input = 69d, &#039;A&#039; Output = 65d, &#039;M&#039; Flags = 77d, &#039;D&#039; Datablock = 68d&amp;lt;br /&amp;gt;nr: Start offset for Input/Output/Flags, for D the start offset within the DB&amp;lt;br /&amp;gt;DBNr: Datablock number for typ = &#039;D&#039; (68d), for Input/Output/Flags 0&amp;lt;br /&amp;gt;size: Number of Bytes to read&amp;lt;br /&amp;gt;vals: The array with the values read from the PLC&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC does not exist or is too small.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;ReadVals returns the data in a SAFEARRAY from type Byte. DotNetReadVals returns the data in a VARIANT variable, that contains a SAFEARRAY of type Byte. In the .Net languages the vals parameter is an object. If the destination area in the PLC does nor exist or is too small, the PLC reports this to the driver and the function will return E_INVALIDARG. The connection to the PLC stays established. For this type of error there is no need do disconnect from the PLC.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Writes a single value from the PLC&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT WriteVal(long typ, long nr, long DBNr, long size, long val)&#039;&#039;&#039;&amp;lt;br /&amp;gt;typ: &#039;E&#039; = Input = 69d, &#039;A&#039; Output = 65d, &#039;M&#039; Flags = 77d, &#039;D&#039; Datablock = 68d&amp;lt;br /&amp;gt;nr: Start offset for Input/Output/Flags, for D the start offset within the DB&amp;lt;br /&amp;gt;DBNr: Datablock number for typ = &#039;D&#039; (68d), for Input/Output/Flags 0&amp;lt;br /&amp;gt;size: 0..7 = The bit number within the byte read, 8 = Byte, 16 = Word, 32 = Doubleword&amp;lt;br /&amp;gt;val: The value to be written to the PLC&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC does not exist or is too small.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Writes an array of values to the PLC&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT WriteVals(long typ, long nr, long DBNr, long size,SAFEARRAY(unsigned char) vals)&#039;&#039;&#039;&amp;lt;br /&amp;gt;typ: &#039;E&#039; = Input = 69d, &#039;A&#039; Output = 65d, &#039;M&#039; Flags = 77d, &#039;D&#039; Datablock = 68d&amp;lt;br /&amp;gt;nr: Start offset for Input/Output/Flags, for D the start offset within the DB&amp;lt;br /&amp;gt;DBNr: Datablock number for typ = &#039;D&#039; (68d), for Input/Output/Flags 0&amp;lt;br /&amp;gt;size: Number of Bytes to read&amp;lt;br /&amp;gt;vals: The array with the values to write to the PLC&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC does not exist or is too small.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;WriteVals passes the data in a SAFEARRAY from type Byte. DotNetWriteVals passes the data in a VARIANT variable, that contains a SAFEARRAY of type Byte. In the .Net languages the vals parameter is an object. If the destination area in the PLC does nor exist or is too small, the PLC reports this to the driver and the function will return E_INVALIDARG. The connection to the PLC stays established. For this type of error there is no need do disconnect from the PLC.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Writes the .bin file of the SoftPLC, containing the PLC Program.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_Store()&#039;&#039;&#039;&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Reads the .bin file of the SoftPLC, containing the PLC Program.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_Restore()&#039;&#039;&#039;&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;!-- x--&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Properties of the interface IIIBHnet&#039;&#039;&#039;&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| S5 &lt;br /&gt;
!align=&amp;quot;center&amp;quot;| S7 &amp;lt;br/&amp;gt; 300/400 &lt;br /&gt;
!align=&amp;quot;center&amp;quot;| SoftSPS &amp;lt;br/&amp;gt; and &amp;lt;br/&amp;gt; S7-CX &lt;br /&gt;
!align=&amp;quot;center&amp;quot;| S7 &amp;lt;br/&amp;gt; 200&lt;br /&gt;
|-&lt;br /&gt;
|Reads the operational state of the PLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_Run([out, retval] BOOL *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;pVal: TRUE = Run, FALSE = Stop&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Reads the revision of the SoftPLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_Version([out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;pVal: reports the revision.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Reads the number of cyles of the SoftPLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_Cycles([out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;pVal: reports the current count.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Switches the PLC to Stop mode.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_Stop([in] BOOL newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;The parameter newVal is reserved and must be always FALSE.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Warm Restart of the PLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_Run_OB100([in] BOOL newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;The parameter newVal is reserved and must be always TRUE.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Hot Restart of the PLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_Run_OB101([in] BOOL newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;The parameter newVal is reserved and must be always TRUE.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Terminates the SoftPLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_Terminate([in] BOOL newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;The parameter newVal is reserved and must be always FALSE.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Reads the serial number of the SoftPLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_SerialNr([out, retval] BSTR *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;pVal: returns the serial number.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Reads the user name of the SoftPLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_Name([out, retval] BSTR *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;pVal: returns the user name.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Reads the company name of the SoftPLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_Firma([out, retval] BSTR *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;pVal returns the company name.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Reads the order number of the PLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_Mlfb([out, retval] BSTR *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;pVal: returns the company name.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Reads the current scan cycle time of the SoftPLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_CycleAct([out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;pVal returns the cycle time.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Reads the minimum scan cycle time of the SoftPLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_CycleMin([out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;pVal: returns the minimum cycle time.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Reads the maximum scan cycle time of the SoftPLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_CycleMax([out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;pVal returns the maximum cycle time.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Reads the maximum jitter of the SoftPLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_JitterMax([out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;pVal: returns the maximum jitter.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Reads the current jitter of the SoftPLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_JitterAct([out, retval] long *pVal))&#039;&#039;&#039;&amp;lt;br /&amp;gt;pVal: returns the current jitter.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Starts the SoftPLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_Load([in] long newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;newVal: 0 = As Process, 1 = As Service, 2 = As AutoStart Service, 3 = As DemandStart Service.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Path to the configuration file PLC43.ini of the SoftPLC.&amp;lt;br /&amp;gt; &#039;&#039;&#039;HRESULT PLC_InitPath([out, retval] BSTR *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;pVal: returns the path.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Reads the SoftPLCs memory size.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_MemTotal([out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;pVal: returns the memory size.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Reads the SoftPLCs free memory size.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT PLC_MemFree([out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;pVal: returns the free memory size.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Get configured station by index.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT Station(long Nr, [out, retval] BSTR* pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;Nr: Station index&amp;lt;br /&amp;gt;pVal: If the station is not found, an empty name name is returned. Return Value: Successful operation returns S_OK, if the station does not exist, S_FALSE is returned.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;!-- x--&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Properties for PLC variable access&#039;&#039;&#039;&lt;br /&gt;
Each of the functions listed below initiates a full read respectively write sequence with the PLC. It should be mentioned that reading or writing entire arrays of variables take only a negligible amount of time longer than reading/writing single variables. For this reason, it should be considered to collect all data in a single area of the PLC. This way complete array can be read/written, which may dramatically increase performance.&lt;br /&gt;
&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| S5 &lt;br /&gt;
!align=&amp;quot;center&amp;quot;| S7 &amp;lt;br/&amp;gt; 300/400 &lt;br /&gt;
!align=&amp;quot;center&amp;quot;| SoftSPS &amp;lt;br/&amp;gt; and &amp;lt;br/&amp;gt; S7-CX &lt;br /&gt;
!align=&amp;quot;center&amp;quot;| S7 &amp;lt;br/&amp;gt; 200&lt;br /&gt;
|-&lt;br /&gt;
|Reads a flag doubleword&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT MD(long nr, [out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the flag doubleword&amp;lt;br /&amp;gt;pVal: Read value&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Writes a flag doubleword&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT MD(long nr, [in] long newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the flag doubleword&amp;lt;br /&amp;gt;newVal: Value to write&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Reads a flag word&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT MW(long nr, [out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the flag word&amp;lt;br /&amp;gt;pVal: Read value&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Writes a flag word&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT MW(long nr, [in] long newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the flag word&amp;lt;br /&amp;gt;newVal: Value to write&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Reads a flag byte&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT MB(long nr, [out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the flag byte &amp;lt;br /&amp;gt;pVal: Read value&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Writes a flag byte&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT MB(long nr, [in] long newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the flag byte&amp;lt;br /&amp;gt;newVal: Value to write&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Reads a flag&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT M(long nr,long bit, [out, retval] BOOL *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the flag byte&amp;lt;br /&amp;gt;bit: Bit number in the flag byte&amp;lt;br /&amp;gt;pVal: Read value&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small. &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Writes a flag&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT M(long nr,long bit, [in] BOOL newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the flag byte&amp;lt;br /&amp;gt;bit: Bit number in the flag byte&amp;lt;br /&amp;gt;newVal: Value to write &amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Reads a input doubleword&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT ED(long nr, [out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the input doubleword&amp;lt;br /&amp;gt;pVal: Read value&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Writes a input doubleword&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT ED(long nr, [in] long newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the input doubleword&amp;lt;br /&amp;gt;newVal: Value to write&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Reads a input word&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT EW(long nr, [out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the input word&amp;lt;br /&amp;gt;pVal: Read value&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Writes a input word&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT EW(long nr, [in] long newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the input word&amp;lt;br /&amp;gt;newVal: Value to write&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Reads a input byte&amp;lt;br /&amp;gt;&#039;&#039;&#039;EB(long nr, [out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the input byte&amp;lt;br /&amp;gt;pVal: Read value&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Writes a input byte&amp;lt;br /&amp;gt;&#039;&#039;&#039;EB(long nr, [in] long newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the input byte&amp;lt;br /&amp;gt;newVal: Value to write&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Reads an input&amp;lt;br /&amp;gt;&#039;&#039;&#039;E(long nr,long bit, [out, retval] BOOL *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the input byte&amp;lt;br /&amp;gt;bit: Bit number in the input byte&amp;lt;br /&amp;gt;pVal: Read value&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Writes an input&amp;lt;br /&amp;gt;&#039;&#039;&#039;E(long nr,long bit, [in] BOOL newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the input byte&amp;lt;br /&amp;gt;bit: Bit number in the input byte&amp;lt;br /&amp;gt;newVal: Value to write&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Reads a output doubleword&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT AD(long nr, [out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the output doubleword&amp;lt;br /&amp;gt;pVal: Read value&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Writes a output doubleword&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT AD(long nr, [in] long newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the output doubleword&amp;lt;br /&amp;gt;newVal: Value to write&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Reads a output word&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT AW(long nr, [out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the output word&amp;lt;br /&amp;gt;pVal: Read value&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Writes a output word&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT AW(long nr, [in] long newVal&#039;&#039;&#039;)&amp;lt;br /&amp;gt;nr: Number of the output word&amp;lt;br /&amp;gt;newVal: Value to write&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Reads a output byte&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT AB(long nr, [out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the output byte&amp;lt;br /&amp;gt;pVal: Read value&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Writes a output byte&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT AB(long nr, [in] long newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the output byte&amp;lt;br /&amp;gt;newVal: Value to write&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Reads an output&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT A(long nr,long bit, [out, retval] BOOL *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the output byte&amp;lt;br /&amp;gt;bit: Bit number in the output byte&amp;lt;br /&amp;gt;pVal: Read value&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Writes an output&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT A(long nr,long bit, [in] BOOL newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;nr: Number of the output byte&amp;lt;br /&amp;gt;bit: Bit number in the output byte&amp;lt;br /&amp;gt;newVal: Value to write&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC is too small.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Reads a data doubleword&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT DD(long DBNr,long nr, [out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;DBNr: Number of the data block&amp;lt;br /&amp;gt;nr: Byte offset within the data block&amp;lt;br /&amp;gt;pVal: Read value&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC does not exist or is too small.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Writes a data doubleword&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT DD(long DBNr,long nr, [in] long newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;DBNr: Number of the data block&amp;lt;br /&amp;gt;nr: Byte offset within the data block&amp;lt;br /&amp;gt;newVal: Value to write&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC does not exist or is too small.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Reads a data word&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT DW(long DBNr,long nr, [out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;DBNr: Number of the data block&amp;lt;br /&amp;gt;nr: Byte offset within the data block&amp;lt;br /&amp;gt;pVal: Read value&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC does not exist or is too small.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Writes a data word&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT DW(long DBNr,long nr, [in] long newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;DBNr: Number of the data block&amp;lt;br /&amp;gt;nr: Byte offset within the data block&amp;lt;br /&amp;gt;newVal: Value to write&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC does not exist or is too small.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Reads a data byte&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT DB(long DBNr,long nr, [out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;DBNr: Number of the data block&amp;lt;br /&amp;gt;nr: Byte offset within the data block&amp;lt;br /&amp;gt;pVal: Read value&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC does not exist or is too small.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Writes a data byte&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT DB(long DBNr,long nr, [in] long newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;DBNr: Number of the data block&amp;lt;br /&amp;gt;nr: Byte offset within the data block&amp;lt;br /&amp;gt;newVal: Value to write&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC does not exist or is too small.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Reads a data bit&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT D(long DBNr,long nr,long bit, [out, retval] BOOL *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;DBNr: Number of the data block&amp;lt;br /&amp;gt;nr: Byte offset within the data block&amp;lt;br /&amp;gt;bit: Bit number within the data byte&amp;lt;br /&amp;gt;pVal: Read value&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC does not exist or is too small.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Writes a data bit&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT D(long DBNr,long nr,long bit, [in] BOOL newVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;DBNr: Number of the data block&amp;lt;br /&amp;gt;nr: Byte offset within the data block&amp;lt;br /&amp;gt;bit: Bit number within the data byte&amp;lt;br /&amp;gt;newVal: Value to write&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC does not exist or is too small.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;!-- x--&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;System Functions of the Interface IIIBHnet2&#039;&#039;&#039;&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| S5 &lt;br /&gt;
!align=&amp;quot;center&amp;quot;| S7 &amp;lt;br/&amp;gt; 300/400 &lt;br /&gt;
!align=&amp;quot;center&amp;quot;| SoftSPS &amp;lt;br/&amp;gt; and &amp;lt;br/&amp;gt; S7-CX &lt;br /&gt;
!align=&amp;quot;center&amp;quot;| S7 &amp;lt;br/&amp;gt; 200&lt;br /&gt;
|-&lt;br /&gt;
|Reboot of the IBH Link.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT ResetDevice(BSTR device)&#039;&#039;&#039;&amp;lt;br /&amp;gt;device: Station name.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected module does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Reads the key switch position of the PLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT Key_Position([out, retval] long *pVal)&#039;&#039;&#039;&amp;lt;br /&amp;gt;pVal: returns the key switch position.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Reads the available nodes on the bus.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT LifeList(BSTR device, VARIANT * lifelist)&#039;&#039;&#039;&amp;lt;br /&amp;gt;lifelist: contains a list with the nodes.&amp;lt;br /&amp;gt;0x30 = Active, 0x20 = Active Ready, 0x10 = Not existing, 0x00 = Passive&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Reads the System Status Lists (SSL) from the PLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT SZ_List(long SZL_ID, long INDEX, VARIANT * SZ_List)&#039;&#039;&#039;&amp;lt;br /&amp;gt;For more information please consult the Siemens dokumentation for the SFC51. Installation folder: C:\Program Files\Siemens\Dokumentation\English\STEP 7 - System and Standard Functions for S7-300 and S7-400 Chapter: System Status Lists (SSL).&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors. E_NOTIMPL will be returned, if the connected PLC does not support the function.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Terminates the driver IBH_NetPcom.exe.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT TerminateDriver()&#039;&#039;&#039;&amp;lt;br /&amp;gt;Return Value: Always S_OK.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;For the Protocols RFC1006, API or 1200 irrelevant.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;!-- x--&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Advanced functions and .NET of the Interface IIIBHnet3&#039;&#039;&#039;&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| S5 &lt;br /&gt;
!align=&amp;quot;center&amp;quot;| S7 &amp;lt;br/&amp;gt; 300/400 &lt;br /&gt;
!align=&amp;quot;center&amp;quot;| SoftSPS &amp;lt;br/&amp;gt; and &amp;lt;br/&amp;gt; S7-CX &lt;br /&gt;
!align=&amp;quot;center&amp;quot;| S7 &amp;lt;br/&amp;gt; 200&lt;br /&gt;
|-&lt;br /&gt;
|Set up PLC connection.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT Connect_DP(BSTR Station, long DPAdr, long Rack, long Slot)&#039;&#039;&#039;&amp;lt;br /&amp;gt;Station: Station name&amp;lt;br /&amp;gt;DPAdr: MPI&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; or Profibus address&amp;lt;br /&amp;gt;Rack: Rack number (normally 0)&amp;lt;br /&amp;gt;Slot: Slot number. For MPI normally 0, for Profibus the slot number of the CPU inside the rack.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL if failed.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;The function Connect_DP of the interface IIIBHNet3 should be preferred to set up a connection, because it returns always an exception in programming languages like VisualBasic or C#, if failed.&amp;lt;br /&amp;gt;If the protocol RFC1006 is chosen in the IBHNet station, the parameter DPAdr is irrelevant. For connections to a Siemens CP, only the parameters Rack and Slot are regarded. With an IBH Link S7++, the MPI/Profibusaddress is a combination from the lower 5 Bit of the parameter Slot and the lower 3 Bit of the parameter Rack.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Set up a routed PLC connection to a PLC in a MPI/Profibus subnet, if the CPU supports it.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT Subnet_Connect_DP(BSTR Station, long MPIStart, long MPIZiel, long RackZiel, long SlotZiel, long Subnet_HH, long Subnet_LL)&#039;&#039;&#039;&amp;lt;br /&amp;gt;Station: Station name&amp;lt;br /&amp;gt;MPIStart: MPI&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; or Profibus address, the IBH Link is connected to.&amp;lt;br /&amp;gt;MPIZiel: Destination MPI&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; or Profibus address inside the subnet.&amp;lt;br /&amp;gt;RackZiel: Destination rack number in the subnet (normally 0).&amp;lt;br /&amp;gt;SlotZiel: Destination slot number in the subnet (normally 2).&amp;lt;br /&amp;gt;Subnet_HH: Subnet ID HighWord, from Project.&amp;lt;br /&amp;gt;Subnet_LL: Subnet ID LowWord, from Project.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL if failed.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;The function Connect_DP of the interface IIIBHNet3 should be preferred to set up a connection, because it returns always an exception in programming languages like VisualBasic or C#, if failed.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Set up a routed PLC connection to a PLC in a TCP/IP subnet, if the CPU supports it.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT Subnet_Connect_IP(BSTR Station, long MPIStart, BSTR IPZiel, long RackZiel, long SlotZiel, long Subnet_HH, long Subnet_LL)&#039;&#039;&#039;&amp;lt;br /&amp;gt;Station: Station name&amp;lt;br /&amp;gt;MPIStart: MPI&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; or Profibus address, the IBH Link is connected to.&amp;lt;br /&amp;gt;IPZiel: Destination TCP/IP address inside the subnet.&amp;lt;br /&amp;gt;RackZiel: Destination rack number in the subnet (normally 0).&amp;lt;br /&amp;gt;SlotZiel: Destination slot number in the subnet (normally 2).&amp;lt;br /&amp;gt;Subnet_HH: Subnet ID HighWord, from Project.&amp;lt;br /&amp;gt;Subnet_LL: Subnet ID LowWord, from Project.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL if failed.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;The function Connect_DP of the interface IIIBHNet3 should be preferred to set up a connection, because it returns always an exception in programming languages like VisualBasic or C#, if failed.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Set up a routed PLC connection to a PLC in a H1 subnet, if the CPU supports it.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT SubnetConnectH1(BSTR Station, long MPIStart, BSTR H1Ziel, long RackZiel, long SlotZiel, long Subnet_HH, long Subnet_LL)&#039;&#039;&#039;&amp;lt;br /&amp;gt;Station: Station name&amp;lt;br /&amp;gt;MPIStart: MPI&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; or Profibus address, the IBH Link is connected to.&amp;lt;br /&amp;gt;H1Ziel: Destination H1 address inside the subnet.&amp;lt;br /&amp;gt;RackZiel: Destination rack number in the subnet (normally 0).&amp;lt;br /&amp;gt;SlotZiel: Destination slot number in the subnet (normally 2).&amp;lt;br /&amp;gt;Subnet_HH: Subnet ID HighWord, from Project.&amp;lt;br /&amp;gt;Subnet_LL: Subnet ID LowWord, from Project.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL if failed.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;The function Connect_DP of the interface IIIBHNet3 should be preferred to set up a connection, because it returns always an exception in programming languages like VisualBasic or C#, if failed.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| - &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Reads the raw contents of a datablock from the PLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT ReadDB(long DBNr, VARIANT*DB, long * Len)&#039;&#039;&#039;&amp;lt;br /&amp;gt;DBNr: Data block number&amp;lt;br /&amp;gt;DB: VARIANT variable, that contains a SAFEARRAY of type Byte containing the block.&amp;lt;br /&amp;gt;Len: Block length&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_INVALIDARG if the datablock does not exist.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;To use this function, detailled internal knowledge of S7 blocks is required. For legal reasons this information can not be published by IBHsoftec.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Writes the raw contents of a datablock to a PLC.&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT WriteDB(long DBNr, VARIANT DB, long Len)&#039;&#039;&#039;&amp;lt;br /&amp;gt;DBNr: Data block number&amp;lt;br /&amp;gt;DB: VARIANT variable, that contains a SAFEARRAY of type Byte containing the block.&amp;lt;br /&amp;gt;Len: Block length&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_INVALIDARG if the datablock does not exist. &amp;lt;br /&amp;gt;To use this function, detailled internal knowledge of S7 blocks is required. For legal reasons this information can not be published by IBHsoftec.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|-&lt;br /&gt;
|Reads an array of values from the PLC&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT DotNetReadVals(long typ, long nr, long DBNr, long size, VARIANT * vals)&#039;&#039;&#039;&amp;lt;br /&amp;gt;typ: &#039;E&#039; = Input = 69d, &#039;A&#039; Output = 65d, &#039;M&#039; Flags = 77d, &#039;D&#039; Datablock = 68d&amp;lt;br /&amp;gt;nr: Start offset for Input/Output/Flags, for D the start offset within the DB&amp;lt;br /&amp;gt;DBNr: Datablock number for typ = &#039;D&#039; (68d), for Input/Output/Flags 0&amp;lt;br /&amp;gt;size: Number of Bytes to read&amp;lt;br /&amp;gt;vals: VARIANT variable, that contains a SAFEARRAY of type Byte containing the values read from the PLC.&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC does not exist or is too small.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;In the .Net languages the vals parameter is an object. If the destination area in the PLC does nor exist or is too small, the PLC reports this to the driver and the function will return E_INVALIDARG. The connection to the PLC stays established. For this type of error there is no need do disconnect from the PLC.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|Writes an array of values to the PLC&amp;lt;br /&amp;gt;&#039;&#039;&#039;HRESULT DotNetWriteVals(long typ, long nr, long DBNr, long size, VARIANT vals)&#039;&#039;&#039;&amp;lt;br /&amp;gt;typ: &#039;E&#039; = Input = 69d, &#039;A&#039; Output = 65d, &#039;M&#039; Flags = 77d, &#039;D&#039; Datablock = 68d&amp;lt;br /&amp;gt;nr: Start offset for Input/Output/Flags, for D the start offset within the DB&amp;lt;br /&amp;gt;DBNr: Datablock number for typ = &#039;D&#039; (68d), for Input/Output/Flags 0&amp;lt;br /&amp;gt;size: Number of Bytes to read&amp;lt;br /&amp;gt;vals: VARIANT variable, that contains a SAFEARRAY of type Byte with the values to write to the PLC&amp;lt;br /&amp;gt;Return Value: Successful operation returns S_OK, E_FAIL on Errors, E_ABORT if the PLC denies access or E_INVALIDARG if the desination Area in the PLC does not exist or is too small.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;DotNetWriteVals passes the data in a VARIANT variable, that contains a SAFEARRAY of type Byte. In the .Net languages the vals parameter is an object. If the destination area in the PLC does nor exist or is too small, the PLC reports this to the driver and the function will return E_INVALIDARG. The connection to the PLC stays established. For this type of error there is no need do disconnect from the PLC.&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X &lt;br /&gt;
|align=&amp;quot;center&amp;quot;| X&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
In the installation folder of the &#039;&#039;&#039;&#039;&#039;IBHNet&#039;&#039;&#039;&#039;&#039; driver, samples for Visual Basic 6 can be found. The samples are commented. Samples for other programming languages will follow. Contact our product support to ask for more samples.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|class=&amp;quot;hintergrundfarbe5&amp;quot;|&#039;&#039;&#039;Attention: If multiple threads need to access the same IBHNet object, the access functions to the IBHNet object need to be locked from each other. Suitable mechanisms are for instance Critical Sections, Semaphores or Mutexes. A simple locking with variables is not suitable to securely avoid race conditions.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Following error codes will be returned:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Errorcode&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|netpcomv.CreateInstance failed&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|netpcomv.MPI_open failed&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|netpcomv.MPI_ConnRequest failed&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|connection request to SoftPlc failed&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|netpcomv.MPI_close failed&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If accessing a variable fails, still an exception will be raised.&lt;br /&gt;
&lt;br /&gt;
It is also possible to access the LOGO! RCE versions via RFC1006. In this case the MPI address 128 has to be used in the function Connect(), for Connect_DP() the slot 128 has to be used. MPI address and rack need to be 0. The possible variables are inputs, outputs, flags, the DB1 and the order number.&lt;/div&gt;</summary>
		<author><name>Joscha</name></author>
	</entry>
</feed>