<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Generic</title><link>https://forge.codesys.com/drv/io-drivers/doc/Generic/</link><description>Recent changes to Generic</description><language>en</language><lastBuildDate>Wed, 20 Aug 2025 18:30:04 -0000</lastBuildDate><atom:link href="https://forge.codesys.com/drv/io-drivers/doc/Generic/feed" rel="self" type="application/rss+xml"></atom:link><item><title>Discussion for Generic page</title><link>https://forge.codesys.com/drv/io-drivers/doc/Generic/?limit=25&amp;page=1#bf9f</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I am looking for a devdesc.xml for a driver, such as the Modbus driver, where the number of I/O's can be defined via a value in the parameter tab. &lt;br/&gt;
In short, the array size of the I/O mapping not as predefined constant, but rather as a variable.&lt;br/&gt;
Could you help me with this?&lt;/p&gt;
&lt;p&gt;Thank you in advance.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">juanp</dc:creator><pubDate>Wed, 20 Aug 2025 18:30:04 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com2a190a4c7cb8e322fd1dae65afad583e3ddad902</guid></item><item><title>Discussion for Generic page</title><link>https://forge.codesys.com/drv/io-drivers/doc/Generic/?limit=25&amp;page=1#e866</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hi, Ingo!&lt;br/&gt;
Im very glad to see this page and your work. But I cant understand many of things.&lt;br/&gt;
For example: in the IoDrvFb: &lt;code&gt;cDriverName&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;In the device description I see only libname, and Device name, what the drivername ?:) and many other fields I dont know what to set and how to start tesing them and what for my attention the first time.&lt;/p&gt;
&lt;p&gt;And other fields in the iodrv system libs. Where I can learn this? I need to understand every step, every field in the xml and in the Fbs. Thanks you!&lt;/p&gt;
&lt;p&gt;And what are u thinking about book of codesys that written by Gary Pratt? Is there information I need about system libs and drivers?&lt;/p&gt;
&lt;p&gt;Thank you :)&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">wbj0t</dc:creator><pubDate>Thu, 25 Jan 2024 11:03:31 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com09a3dfbf69ef20b3630f96722254b6ea0c89f53d</guid></item><item><title>Discussion for Generic page</title><link>https://forge.codesys.com/drv/io-drivers/doc/Generic/?limit=25&amp;page=1#5b51/285c/c381/d690</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hi everybody,&lt;br/&gt;
As I did not still findout a proper answer for my question no.3 above, it would  be highly appreciated if anybody can answer my question. For reference I repeated my question as bellow:&lt;/p&gt;
&lt;p&gt;In case of any problem in device or driver (for example disconnecting or cable unplug) How could I send errors to the codesys? What is the best practice to handle such a situation?&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">alimans</dc:creator><pubDate>Thu, 02 Nov 2023 11:02:29 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.comada9eaa6b69821c5b2fcbb636f6539299aa63b70</guid></item><item><title>Discussion for Generic page</title><link>https://forge.codesys.com/drv/io-drivers/doc/Generic/?limit=25&amp;page=1#5b51/285c/c381</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Thank you for your kind respond, Ingo! &lt;/p&gt;
&lt;p&gt;1- The "IoConfigLateInit" trick got the job done! But, still for some functions like "IoDrvWriteParameter" I could not place break point.&lt;/p&gt;
&lt;p&gt;2- Regarding the page, as you set it correctly, I mean pages like EtherCAT and so on. A sample page for this you can find as attachment. So how could I write a plugin and use it in my IO Driver? Because my device uses several configuration and also has some diagnostic register that would be perfect if I could show them to the user in a designed UI.&lt;/p&gt;
&lt;p&gt;Thank you again for your instructions!&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">alimans</dc:creator><pubDate>Thu, 21 Sep 2023 12:51:33 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.comd29514ac060dd7f3793ee298a362a698f294377a</guid></item><item><title>Discussion for Generic page</title><link>https://forge.codesys.com/drv/io-drivers/doc/Generic/?limit=25&amp;page=1#5b51/285c</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hi Alimans,&lt;br/&gt;
thanks for the feedback!&lt;/p&gt;
&lt;p&gt;1) To debug, you can easily set the compiler define "IoConfigLateInit". That will instruct our device object to execute the Init code of your driver in the first Task-Cycle. This way, you can easily set a breakpoint in your library and debug it.&lt;br/&gt;
2) Which pages to you mean in detail? Most of them are just coming from specific configurator plugins. So when you see the configuration pages in EtherCAT or Profinet or s.th., those are developed specifically for this fieldbus.&lt;/p&gt;
&lt;p&gt;Cheers,&lt;br/&gt;
Ingo&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ingo</dc:creator><pubDate>Thu, 21 Sep 2023 05:53:24 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.comee2314029cdd949dd89672b4f6697ab7d076e31b</guid></item><item><title>Discussion for Generic page</title><link>https://forge.codesys.com/drv/io-drivers/doc/Generic/?limit=25&amp;page=1#5b51</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hi Ingo,&lt;br/&gt;
Thank you for your nice introduction. I have created a library successfully based on your prepared templates and now, I have following questions:&lt;br/&gt;
1- How could I possibly debug my developed FB library that implementing the I/O driver interface library. This also can help me to check the data that are going back and forth between device description and the FB library to know better how things are working and which other options I have.&lt;br/&gt;
2- I found out that some other device drivers have more tab pages in Codesys (comparing to default 4 tab pages in for example IoDrvFB), how could I generate and configure data in these pages?&lt;br/&gt;
Thank you in advance for your kind answer.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">alimans</dc:creator><pubDate>Sun, 17 Sep 2023 20:17:18 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.coma266b1f2658836671093e0da06846742455bde93</guid></item><item><title>Generic modified by i-campbell</title><link>https://forge.codesys.com/drv/io-drivers/doc/Generic/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v17
+++ v18
@@ -29,7 +29,7 @@
 That the device can be uniquely identified in the device repository on every computer in the world, we need to maintain a few IDs. Please register the ID, which you will be using in the [Device Database](/drv/io-drivers/database).

 * Device Type: Either use the matching one from the templates, or use 8000.
-* VendorID: Use 0004, as this is reserved for all public domain drivers
+* VendorID: Use 0003, as this is reserved for all public domain drivers
 * DeviceID: Use a unique one, which you added to the [Device Database](/drv/io-drivers/database)
 * Version: You are free with that, but you should always increase it when you make changes to the device description

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">i-campbell</dc:creator><pubDate>Wed, 29 Sep 2021 09:22:03 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com04cf4e9e5f0f9a2bc2f631dda7c6fcb8760a36eb</guid></item><item><title>Generic modified by Ingo</title><link>https://forge.codesys.com/drv/io-drivers/doc/Generic/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v16
+++ v17
@@ -274,6 +274,12 @@
           &amp;lt;default&amp;gt;0&amp;lt;/default&amp;gt;
           &amp;lt;name name="local:DWIN"&amp;gt;DWORD Input&amp;lt;/name&amp;gt;
           &amp;lt;description name="local:DWIN.Desc"&amp;gt;DWORD Input&amp;lt;/description&amp;gt;
+          &amp;lt;defaultmapping&amp;gt;
+              &amp;lt;element name="Byte0"&amp;gt;Byte0&amp;lt;/element&amp;gt;
+              &amp;lt;element name="Byte1"&amp;gt;Byte1&amp;lt;/element&amp;gt;
+              &amp;lt;element name="Byte2"&amp;gt;Byte2&amp;lt;/element&amp;gt;
+              &amp;lt;element name="Byte3"&amp;gt;Byte3&amp;lt;/element&amp;gt;
+          &amp;lt;/defaultmapping&amp;gt;
         
 ~~~

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ingo</dc:creator><pubDate>Tue, 23 Mar 2021 15:50:15 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.comff733075ad109e049ec43f90bcb2f84d70026568</guid></item><item><title>Generic modified by Ingo</title><link>https://forge.codesys.com/drv/io-drivers/doc/Generic/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v15
+++ v16
@@ -356,6 +356,22 @@
         
 ~~~

+### Arrays
+***IEC:***
+~~~ST
+abyBuffer : ARRAY [0..10] OF BYTE;
+~~~
+
+***DevDesc:***
+~~~xml
+&amp;lt;arraytype name="myArray" basetype="std:BYTE"&amp;gt;
+    &amp;lt;firstdimension&amp;gt;
+        &amp;lt;lowerborder&amp;gt;0&amp;lt;/lowerborder&amp;gt;
+        &amp;lt;upperborder&amp;gt;10&amp;lt;/upperborder&amp;gt;
+    &amp;lt;/firstdimension&amp;gt;
+&amp;lt;/arraytype&amp;gt;
+~~~
+
 # Driver Interface
 Please always start with a template, when you start writing a driver. This will give you a good skeleton of your driver. Anyway, this chapter contains a few basic informations about specific interface functions.

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ingo</dc:creator><pubDate>Mon, 29 Jun 2020 06:57:59 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.comdc149129422919d9fe9a97797adc5aebad700594</guid></item><item><title>Generic modified by Ingo</title><link>https://forge.codesys.com/drv/io-drivers/doc/Generic/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v14
+++ v15
@@ -248,20 +248,101 @@
 **DevDesc:**

 ~~~xml
+  &amp;lt;types namespace="local"&amp;gt;
+   &amp;lt;structtype name="Channel4Byte"&amp;gt;
+      &amp;lt;component identifier="Byte0" type="std:BYTE"&amp;gt;
+        &amp;lt;default&amp;gt;
+        &amp;lt;visiblename name="local:Byte0"&amp;gt;Byte0&amp;lt;/visiblename&amp;gt;
+      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
+      &amp;lt;component identifier="Byte1" type="std:BYTE"&amp;gt;
+        &amp;lt;default&amp;gt;
+        &amp;lt;visiblename name="local:Byte1"&amp;gt;Byte1&amp;lt;/visiblename&amp;gt;
+      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
+      &amp;lt;component identifier="Byte2" type="std:BYTE"&amp;gt;
+        &amp;lt;default&amp;gt;
+        &amp;lt;visiblename name="local:Byte2"&amp;gt;Byte2&amp;lt;/visiblename&amp;gt;
+      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
+      &amp;lt;component identifier="Byte3" type="std:BYTE"&amp;gt;
+        &amp;lt;default&amp;gt;
+        &amp;lt;visiblename name="local:Byte3"&amp;gt;Byte3&amp;lt;/visiblename&amp;gt;
+      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
+    &amp;lt;/structtype&amp;gt;
+    &amp;lt;/types&amp;gt;
+    ...
+        &amp;lt;parameter type="local:Channel4Byte" parameterid="1000"&amp;gt;
+          &amp;lt;attributes download="true" offlineaccess="write" functional="false" channel="input" onlineaccess="readwrite"&amp;gt;
+          &amp;lt;default&amp;gt;0&amp;lt;/default&amp;gt;
+          &amp;lt;name name="local:DWIN"&amp;gt;DWORD Input&amp;lt;/name&amp;gt;
+          &amp;lt;description name="local:DWIN.Desc"&amp;gt;DWORD Input&amp;lt;/description&amp;gt;
+        &amp;lt;/attributes&amp;gt;&amp;lt;/parameter&amp;gt;
+~~~
+
+### Bit Channels
+
+**IEC:**
+
+~~~
+TYPE DUT :
+STRUCT
+   BYTE1 : BYTE;
+   BYTE2 : BYTE;
+   BYTE3 : BYTE;
+   BYTE4 : BYTE;
+END_STRUCT
+END_TYPE
+~~~
+
+**DevDesc:**
+
+~~~xml
+    &amp;lt;bitfieldtype name="Bitfield" basetype="std:BYTE"&amp;gt;
+      &amp;lt;component identifier="Bit0" type="std:BOOL"&amp;gt;
+        &amp;lt;default&amp;gt;
+        &amp;lt;visiblename name="local:Bitfield.Bit0"&amp;gt;Bit0&amp;lt;/visiblename&amp;gt;
+      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
+      &amp;lt;component identifier="Bit1" type="std:BOOL"&amp;gt;
+        &amp;lt;default&amp;gt;
+        &amp;lt;visiblename name="local:Bitfield.Bit1"&amp;gt;Bit1&amp;lt;/visiblename&amp;gt;
+      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
+      &amp;lt;component identifier="Bit2" type="std:BOOL"&amp;gt;
+        &amp;lt;default&amp;gt;
+        &amp;lt;visiblename name="local:Bitfield.Bit2"&amp;gt;Bit2&amp;lt;/visiblename&amp;gt;
+      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
+      &amp;lt;component identifier="Bit3" type="std:BOOL"&amp;gt;
+        &amp;lt;default&amp;gt;
+        &amp;lt;visiblename name="local:Bitfield.Bit3"&amp;gt;Bit3&amp;lt;/visiblename&amp;gt;
+      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
+      &amp;lt;component identifier="Bit4" type="std:BOOL"&amp;gt;
+        &amp;lt;default&amp;gt;
+        &amp;lt;visiblename name="local:Bitfield.Bit4"&amp;gt;Bit4&amp;lt;/visiblename&amp;gt;
+      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
+      &amp;lt;component identifier="Bit5" type="std:BOOL"&amp;gt;
+        &amp;lt;default&amp;gt;
+        &amp;lt;visiblename name="local:Bitfield.Bit5"&amp;gt;Bit5&amp;lt;/visiblename&amp;gt;
+      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
+      &amp;lt;component identifier="Bit6" type="std:BOOL"&amp;gt;
+        &amp;lt;default&amp;gt;
+        &amp;lt;visiblename name="local:Bitfield.Bit6"&amp;gt;Bit6&amp;lt;/visiblename&amp;gt;
+      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
+      &amp;lt;component identifier="Bit7" type="std:BOOL"&amp;gt;
+        &amp;lt;default&amp;gt;
+        &amp;lt;visiblename name="local:Bitfield.Bit7"&amp;gt;Bit7&amp;lt;/visiblename&amp;gt;
+      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
+    &amp;lt;/bitfieldtype&amp;gt;
    &amp;lt;structtype name="local:Channel4Byte"&amp;gt;
-      &amp;lt;component identifier="Byte0" type="std:BYTE"&amp;gt;
+      &amp;lt;component identifier="Byte0" type="local:Bitfield"&amp;gt;
         &amp;lt;default&amp;gt;
         &amp;lt;visiblename name="local:Byte0"&amp;gt;Byte0&amp;lt;/visiblename&amp;gt;
       &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
-      &amp;lt;component identifier="Byte1" type="std:BYTE"&amp;gt;
+      &amp;lt;component identifier="Byte1" type="local:Bitfield"&amp;gt;
         &amp;lt;default&amp;gt;
         &amp;lt;visiblename name="local:Byte1"&amp;gt;Byte1&amp;lt;/visiblename&amp;gt;
       &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
-      &amp;lt;component identifier="Byte2" type="std:BYTE"&amp;gt;
+      &amp;lt;component identifier="Byte2" type="local:Bitfield"&amp;gt;
         &amp;lt;default&amp;gt;
         &amp;lt;visiblename name="local:Byte2"&amp;gt;Byte2&amp;lt;/visiblename&amp;gt;
       &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
-      &amp;lt;component identifier="Byte3" type="std:BYTE"&amp;gt;
+      &amp;lt;component identifier="Byte3" type="local:Bitfield"&amp;gt;
         &amp;lt;default&amp;gt;
         &amp;lt;visiblename name="local:Byte3"&amp;gt;Byte3&amp;lt;/visiblename&amp;gt;
       &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
@@ -275,85 +356,6 @@
         
 ~~~

-### Bit Channels
-
-**IEC:**
-
-~~~
-TYPE DUT :
-STRUCT
-   BYTE1 : BYTE;
-   BYTE2 : BYTE;
-   BYTE3 : BYTE;
-   BYTE4 : BYTE;
-END_STRUCT
-END_TYPE
-~~~
-
-**DevDesc:**
-
-~~~xml
-    &amp;lt;bitfieldtype name="Bitfield" basetype="std:BYTE"&amp;gt;
-      &amp;lt;component identifier="Bit0" type="std:BOOL"&amp;gt;
-        &amp;lt;default&amp;gt;
-        &amp;lt;visiblename name="local:Bitfield.Bit0"&amp;gt;Bit0&amp;lt;/visiblename&amp;gt;
-      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
-      &amp;lt;component identifier="Bit1" type="std:BOOL"&amp;gt;
-        &amp;lt;default&amp;gt;
-        &amp;lt;visiblename name="local:Bitfield.Bit1"&amp;gt;Bit1&amp;lt;/visiblename&amp;gt;
-      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
-      &amp;lt;component identifier="Bit2" type="std:BOOL"&amp;gt;
-        &amp;lt;default&amp;gt;
-        &amp;lt;visiblename name="local:Bitfield.Bit2"&amp;gt;Bit2&amp;lt;/visiblename&amp;gt;
-      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
-      &amp;lt;component identifier="Bit3" type="std:BOOL"&amp;gt;
-        &amp;lt;default&amp;gt;
-        &amp;lt;visiblename name="local:Bitfield.Bit3"&amp;gt;Bit3&amp;lt;/visiblename&amp;gt;
-      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
-      &amp;lt;component identifier="Bit4" type="std:BOOL"&amp;gt;
-        &amp;lt;default&amp;gt;
-        &amp;lt;visiblename name="local:Bitfield.Bit4"&amp;gt;Bit4&amp;lt;/visiblename&amp;gt;
-      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
-      &amp;lt;component identifier="Bit5" type="std:BOOL"&amp;gt;
-        &amp;lt;default&amp;gt;
-        &amp;lt;visiblename name="local:Bitfield.Bit5"&amp;gt;Bit5&amp;lt;/visiblename&amp;gt;
-      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
-      &amp;lt;component identifier="Bit6" type="std:BOOL"&amp;gt;
-        &amp;lt;default&amp;gt;
-        &amp;lt;visiblename name="local:Bitfield.Bit6"&amp;gt;Bit6&amp;lt;/visiblename&amp;gt;
-      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
-      &amp;lt;component identifier="Bit7" type="std:BOOL"&amp;gt;
-        &amp;lt;default&amp;gt;
-        &amp;lt;visiblename name="local:Bitfield.Bit7"&amp;gt;Bit7&amp;lt;/visiblename&amp;gt;
-      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
-    &amp;lt;/bitfieldtype&amp;gt;
-   &amp;lt;structtype name="local:Channel4Byte"&amp;gt;
-      &amp;lt;component identifier="Byte0" type="local:Bitfield"&amp;gt;
-        &amp;lt;default&amp;gt;
-        &amp;lt;visiblename name="local:Byte0"&amp;gt;Byte0&amp;lt;/visiblename&amp;gt;
-      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
-      &amp;lt;component identifier="Byte1" type="local:Bitfield"&amp;gt;
-        &amp;lt;default&amp;gt;
-        &amp;lt;visiblename name="local:Byte1"&amp;gt;Byte1&amp;lt;/visiblename&amp;gt;
-      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
-      &amp;lt;component identifier="Byte2" type="local:Bitfield"&amp;gt;
-        &amp;lt;default&amp;gt;
-        &amp;lt;visiblename name="local:Byte2"&amp;gt;Byte2&amp;lt;/visiblename&amp;gt;
-      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
-      &amp;lt;component identifier="Byte3" type="local:Bitfield"&amp;gt;
-        &amp;lt;default&amp;gt;
-        &amp;lt;visiblename name="local:Byte3"&amp;gt;Byte3&amp;lt;/visiblename&amp;gt;
-      &amp;lt;/default&amp;gt;&amp;lt;/component&amp;gt;
-    &amp;lt;/structtype&amp;gt;
-    ...
-        &amp;lt;parameter type="local:Channel4Byte" parameterid="1000"&amp;gt;
-          &amp;lt;attributes download="true" offlineaccess="write" functional="false" channel="input" onlineaccess="readwrite"&amp;gt;
-          &amp;lt;default&amp;gt;0&amp;lt;/default&amp;gt;
-          &amp;lt;name name="local:DWIN"&amp;gt;DWORD Input&amp;lt;/name&amp;gt;
-          &amp;lt;description name="local:DWIN.Desc"&amp;gt;DWORD Input&amp;lt;/description&amp;gt;
-        &amp;lt;/attributes&amp;gt;&amp;lt;/parameter&amp;gt;
-~~~
-
 # Driver Interface
 Please always start with a template, when you start writing a driver. This will give you a good skeleton of your driver. Anyway, this chapter contains a few basic informations about specific interface functions.

&amp;lt;/component&amp;gt;&amp;lt;/component&amp;gt;&amp;lt;/component&amp;gt;&amp;lt;/component&amp;gt;&amp;lt;/structtype&amp;gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ingo</dc:creator><pubDate>Fri, 13 Mar 2020 07:28:41 -0000</pubDate><guid isPermaLink="false">https://forge.codesys.com33e945ec775d6fff33303363461782dd046d3596</guid></item></channel></rss>