<?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=Michael</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=Michael"/>
	<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=Special:Contributions/Michael"/>
	<updated>2026-05-13T21:39:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBH_Link_UA:Technical_data&amp;diff=2037</id>
		<title>IBH Link UA:Technical data</title>
		<link rel="alternate" type="text/html" href="https://wiki.ibhsoftec.com/en/index.php?title=IBH_Link_UA:Technical_data&amp;diff=2037"/>
		<updated>2019-09-13T10:43:25Z</updated>

		<summary type="html">&lt;p&gt;Michael: /* Technical Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Features: ==&lt;br /&gt;
&lt;br /&gt;
* OPC UA Server for easy connection to MES, ERP and SAP systems and visualizations&lt;br /&gt;
&lt;br /&gt;
* OPC UA Client functions for S7 PLC to connect to external OPC UA server systems&lt;br /&gt;
&lt;br /&gt;
* 4 Ethernet Ports with Firewall -&amp;gt; clean separation of machine and supervision level&lt;br /&gt;
&lt;br /&gt;
* Scalable security levels through exchange of digitally signed certificates&lt;br /&gt;
&lt;br /&gt;
* Connection to S7-PLCs over S7 TCP/IP or IBH Link S7++&lt;br /&gt;
&lt;br /&gt;
* Connection to S5-PLCs over IBH Link S5++&lt;br /&gt;
&lt;br /&gt;
* Comfortable configuration with Siemens STEP7 or the TIA Portal -&amp;gt; no need for other special software&lt;br /&gt;
&lt;br /&gt;
* Administration via web browser&lt;br /&gt;
&lt;br /&gt;
== Rail mount ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;IBH Link UA&#039;&#039;&#039; is designed for DIN rail mounting:&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_rail_mount.png|600px]]&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
The administration can be made with an recent web browser over the Ethernet port 1 by using the host name http://&#039;&#039;&#039;ibhlinkua_&amp;lt;serial number&amp;gt;&#039;&#039;&#039; (f.i.http://&#039;&#039;&#039;ibhlinkua_0001170&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
or over the ports 2-4 by entering the default IP Address &#039;&#039;&#039;192.168.1.14&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
No other tools are required.&lt;br /&gt;
&lt;br /&gt;
Default IP Address configuration:&lt;br /&gt;
&lt;br /&gt;
Port 1: &#039;&#039;&#039;DHCP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Port 2-4: &#039;&#039;&#039;192.168.1.14&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Default Login:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;admin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Ethernet Interface==&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_ports_eng.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ethernet pin out of the RJ45 female connector:&lt;br /&gt;
&lt;br /&gt;
[[Image:RJ45.png|220px]]&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! Pin !! Signal !! Meaning&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 5em&amp;quot;| 1 ||style=&amp;quot;width: 5em&amp;quot;| TD+ || Receive Data +&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 2 || TD- || Receive Data -&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 3 || RD+ || Transmit Data +&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 4 || n.c. || not used&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 5 || n.c. || not used&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 6 || RD- || Transmit Data -&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 7 || n.c. || not used&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| 8 || n.c. || not used&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ethernet Connection Data ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;width: 14em&amp;quot;| Topology || Star Topology&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Medium || 4 x 2 Twisted Pair copper cable Cat 3 (10 MBit/s), Cat 5 (100 MBit/s)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Length of cable || 100m to the Device or to the next Hub and Switch respectively&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Transmission rate || 10 MBit/s / 100 MBit/s&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Technical Data==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:left&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Component / Revision&lt;br /&gt;
|IBH Link UA Revision 1&lt;br /&gt;
|IBH Link UA Revision 2 Single Core&lt;br /&gt;
|IBH Link UA Revision 2 Quad Core&lt;br /&gt;
|-&lt;br /&gt;
|Processor&lt;br /&gt;
|Texas Instruments Sitara AM335x&lt;br /&gt;
|NXP Semiconductor i.MX 6 Single&lt;br /&gt;
|NXP Semiconductor i.MX 6 Quad&lt;br /&gt;
|-&lt;br /&gt;
|Architecture&lt;br /&gt;
|ARM&amp;lt;sup&amp;gt;&amp;amp;reg;&amp;lt;/sup&amp;gt;v7 Cortex&amp;lt;sup&amp;gt;TM&amp;lt;/sup&amp;gt;-A8&lt;br /&gt;
|ARM&amp;lt;sup&amp;gt;&amp;amp;reg;&amp;lt;/sup&amp;gt;v7 Cortex&amp;lt;sup&amp;gt;TM&amp;lt;/sup&amp;gt;-A9&lt;br /&gt;
|ARM&amp;lt;sup&amp;gt;&amp;amp;reg;&amp;lt;/sup&amp;gt;v7 Cortex&amp;lt;sup&amp;gt;TM&amp;lt;/sup&amp;gt;-A9&lt;br /&gt;
|-&lt;br /&gt;
|Clock frequency&lt;br /&gt;
|1 GHz&lt;br /&gt;
|1 GHz&lt;br /&gt;
|4x1 GHz&lt;br /&gt;
|-&lt;br /&gt;
|Total memory&lt;br /&gt;
|512 MB&lt;br /&gt;
|512 MB&lt;br /&gt;
|2 GB&lt;br /&gt;
|-&lt;br /&gt;
|Free memory&lt;br /&gt;
|approx. 400 MB&lt;br /&gt;
|approx. 384 MB&lt;br /&gt;
|approx. 1920 MB&lt;br /&gt;
|-&lt;br /&gt;
|Mirrored system&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Storage&lt;br /&gt;
|512 MB Nand&lt;br /&gt;
|4 GB eMMC&lt;br /&gt;
|4 GB eMMC&lt;br /&gt;
|-&lt;br /&gt;
|Bootable from SD card&lt;br /&gt;
|No&lt;br /&gt;
|Yes&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Open SD card image available&lt;br /&gt;
|No&lt;br /&gt;
|No&lt;br /&gt;
|Yes&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;
! Ethernet Interface ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Transmission rate || 10 / 100 MBit/s&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Interface || max. 100 Base-TX potential free&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Connector || RJ45-Buchse&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;
! Operating temperature ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Vertical mounted || 0°C...+60°C&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Horizontal mounted || 0°C...+40°C&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Electric voltage:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:ATTENTION.png|64px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The IBH Link UA requires a 12 - 36V DC power supply. Higher voltages may destroy the device. Pay attention to polarity.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_Link_UA_24V.png|200px]]&lt;br /&gt;
&lt;br /&gt;
Power supply: &#039;&#039;&#039;24VDC / 0,2A&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The typical power consumption of the IBH Link UA is 2,8 Watt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dimensions (in millimeters):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:IBH_link_UA_dimensions.png|500px]]&lt;/div&gt;</summary>
		<author><name>Michael</name></author>
	</entry>
	<entry>
		<id>https://wiki.ibhsoftec.com/en/index.php?title=IBH_Link_UA:Integrated_S7_SoftPLC&amp;diff=1922</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=1922"/>
		<updated>2016-09-20T15:25:23Z</updated>

		<summary type="html">&lt;p&gt;Michael: /* Cyclic Read and Write */&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 || 0x0000 on success, 0x8090 on error.&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;
==== 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>Michael</name></author>
	</entry>
</feed>