<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to MCP23017 als Ausgang konfigurieren</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/8a6a09a000/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/8a6a09a000/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/8a6a09a000/</id><updated>2023-01-13T13:35:36.772000Z</updated><subtitle>Recent posts to MCP23017 als Ausgang konfigurieren</subtitle><entry><title>MCP23017 als Ausgang konfigurieren</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/8a6a09a000/?limit=25#2d58" rel="alternate"/><published>2023-01-13T13:35:36.772000Z</published><updated>2023-01-13T13:35:36.772000Z</updated><author><name>laruso</name><uri>https://forge.codesys.com/u/laruso/</uri></author><id>https://forge.codesys.com56bbfc5cce311a6f7c22433b50cebf748c40c90c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Ich habe eine Lösung für das Problem "die Ausgänge werden nicht gesetzt, bevor nicht ein Dump über die Linux Shell ausgeführt wurde":&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Schnell und einfach: Ändere die vorkonfigurierten Werte der Bibliothek nach den Bedürfnissen ab. Benutze 16#FF ffür Eingänge und 16#00 für Ausgänge:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;IO_A&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BYTE&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="n"&gt;FF&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;IO_B&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BYTE&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="n"&gt;FF&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;Etwas gebräuchlicher: Reinitialisiere die Port Konfiguration auf Anfrage. Füge diesen Code in der Bibliothek der Case Struktur des FB hinzu:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;IF&lt;/span&gt; &lt;span class="n"&gt;REINIT&lt;/span&gt; &lt;span class="n"&gt;THEN&lt;/span&gt;
        &lt;span class="n"&gt;_iState&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;END_IF&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Zusätzlich muss die Reinitialisierung der Port Konfiguration angefragt/angestoßen werden, nachdem das Gerät betriebsbereit (operational) ist. Und wenn man möchte kann man die Polarität der Eingänge und ob Port A/B mit Eingängen oder Ausgängen konfiguriert werden soll, zur Laufzeit ändern. Füge diesen Code oder Teile davon zu deinem Projekt hinzu:&lt;br/&gt;
Deklaration:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;RTRIG_operational&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;R_TRIG&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;xInitialized&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;xReinitialze&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;xSwitchIO&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;xSwitchIO_old&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;xInputPolarity&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;xInputPolarity_old&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;Button_1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;Button_2&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;Button_3&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;Button_4&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;Button_5&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;Button_6&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;Button_7&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;Button_8&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;Rele_1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;Rele_2&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;Rele_3&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;Rele_4&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;Rele_5&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;Rele_6&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;Rele_7&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;Rele_8&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Code:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;RTRIG_operational&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;CLK&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Operational&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

&lt;span class="nt"&gt;IF&lt;/span&gt; &lt;span class="nt"&gt;NOT&lt;/span&gt; &lt;span class="nt"&gt;xInitialized&lt;/span&gt; &lt;span class="nt"&gt;AND&lt;/span&gt; &lt;span class="nt"&gt;RTRIG_operational&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Q&lt;/span&gt; &lt;span class="nt"&gt;THEN&lt;/span&gt;
    &lt;span class="nt"&gt;xReinitialze&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;TRUE&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;xInitialized&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;TRUE&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="nt"&gt;END_IF&lt;/span&gt;

&lt;span class="nt"&gt;IF&lt;/span&gt; &lt;span class="nt"&gt;xSwitchIO&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;xSwitchIO_old&lt;/span&gt; &lt;span class="nt"&gt;THEN&lt;/span&gt;
    &lt;span class="nt"&gt;xReinitialze&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;TRUE&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;xSwitchIO_old&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;xSwitchIO&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="nt"&gt;END_IF&lt;/span&gt;

&lt;span class="nt"&gt;IF&lt;/span&gt; &lt;span class="nt"&gt;xInputPolarity&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;xInputPolarity_old&lt;/span&gt; &lt;span class="nt"&gt;THEN&lt;/span&gt;
    &lt;span class="nt"&gt;xReinitialze&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;TRUE&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;xInputPolarity_old&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;xInputPolarity&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="nt"&gt;END_IF&lt;/span&gt;

&lt;span class="nt"&gt;IF&lt;/span&gt; &lt;span class="nt"&gt;xReinitialze&lt;/span&gt; &lt;span class="nt"&gt;THEN&lt;/span&gt;
    &lt;span class="nt"&gt;IF&lt;/span&gt; &lt;span class="nt"&gt;NOT&lt;/span&gt; &lt;span class="nt"&gt;xSwitchIO&lt;/span&gt; &lt;span class="nt"&gt;THEN&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IO_A&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;16&lt;/span&gt;&lt;span class="p"&gt;#&lt;/span&gt;&lt;span class="nn"&gt;FF&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nt"&gt;Input&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IO_B&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;16&lt;/span&gt;&lt;span class="p"&gt;#&lt;/span&gt;&lt;span class="nn"&gt;00&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nt"&gt;Output&lt;/span&gt;
    &lt;span class="nt"&gt;ELSE&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IO_A&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;16&lt;/span&gt;&lt;span class="p"&gt;#&lt;/span&gt;&lt;span class="nn"&gt;00&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nt"&gt;Output&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IO_B&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;16&lt;/span&gt;&lt;span class="p"&gt;#&lt;/span&gt;&lt;span class="nn"&gt;FF&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nt"&gt;Input&lt;/span&gt;
    &lt;span class="nt"&gt;END_IF&lt;/span&gt;
    &lt;span class="nt"&gt;IF&lt;/span&gt; &lt;span class="nt"&gt;NOT&lt;/span&gt; &lt;span class="nt"&gt;xInputPolarity&lt;/span&gt; &lt;span class="nt"&gt;THEN&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IPOL_A&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;16&lt;/span&gt;&lt;span class="p"&gt;#&lt;/span&gt;&lt;span class="nn"&gt;00&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;   &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nt"&gt;Same&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IPOL_B&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;16&lt;/span&gt;&lt;span class="p"&gt;#&lt;/span&gt;&lt;span class="nn"&gt;00&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;   &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nt"&gt;Same&lt;/span&gt;
    &lt;span class="nt"&gt;ELSE&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IPOL_A&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;16&lt;/span&gt;&lt;span class="p"&gt;#&lt;/span&gt;&lt;span class="nn"&gt;FF&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;   &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nt"&gt;Opposite&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IPOL_B&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;16&lt;/span&gt;&lt;span class="p"&gt;#&lt;/span&gt;&lt;span class="nn"&gt;FF&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;   &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nt"&gt;Opposite&lt;/span&gt;
    &lt;span class="nt"&gt;END_IF&lt;/span&gt;
    &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;REINIT&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;TRUE&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;xReinitialze&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;FALSE&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="nt"&gt;END_IF&lt;/span&gt;

&lt;span class="nt"&gt;IF&lt;/span&gt; &lt;span class="nt"&gt;NOT&lt;/span&gt; &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;REINIT&lt;/span&gt; &lt;span class="nt"&gt;THEN&lt;/span&gt;
    &lt;span class="nt"&gt;IF&lt;/span&gt; &lt;span class="nt"&gt;NOT&lt;/span&gt; &lt;span class="nt"&gt;xSwitchIO&lt;/span&gt; &lt;span class="nt"&gt;THEN&lt;/span&gt;
        &lt;span class="nt"&gt;Button_1&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IN_A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;Button_2&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IN_A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;1&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;Button_3&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IN_A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;2&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;Button_4&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IN_A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;3&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;Button_5&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IN_A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;4&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;Button_6&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IN_A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;5&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;Button_7&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IN_A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;6&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;Button_8&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IN_A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;7&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;OUT_B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;0&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;Rele_1&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;OUT_B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;1&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;Rele_2&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;OUT_B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;2&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;Rele_3&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;OUT_B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;3&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;Rele_4&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;OUT_B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;4&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;Rele_5&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;OUT_B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;5&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;Rele_6&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;OUT_B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;6&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;Rele_7&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;OUT_B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;7&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;Rele_8&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;ELSE&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;OUT_A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;0&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;Rele_1&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;OUT_A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;1&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;Rele_2&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;OUT_A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;2&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;Rele_3&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;OUT_A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;3&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;Rele_4&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;OUT_A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;4&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;Rele_5&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;OUT_A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;5&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;Rele_6&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;OUT_A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;6&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;Rele_7&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;OUT_A&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;7&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;Rele_8&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

        &lt;span class="nt"&gt;Button_1&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IN_B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;Button_2&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IN_B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;1&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;Button_3&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IN_B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;2&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;Button_4&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IN_B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;3&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;Button_5&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IN_B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;4&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;Button_6&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IN_B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;5&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;Button_7&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IN_B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;6&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nt"&gt;Button_8&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;MCP23017&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IN_B&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;7&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;END_IF&lt;/span&gt;
&lt;span class="nt"&gt;END_IF&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Ich habe das positiv getestet mit der alten Bibliothek (gepostet von eschwellinger am 2021-11-27 &lt;a href="https://forge.codesys.com/forge/talk/Runtime/thread/8981ce928a/?page=1&amp;amp;limit=25#1cc1"&gt;https://forge.codesys.com/forge/talk/Runtime/thread/8981ce928a/?page=1&amp;amp;limit=25#1cc1&lt;/a&gt;) und mit der neuen Bibliothek (gepostet von elconfa at 2019-01-10 &lt;a href="https://forge.codesys.com/forge/talk/Runtime/thread/a2dd4dd45f/#774c"&gt;https://forge.codesys.com/forge/talk/Runtime/thread/a2dd4dd45f/#774c&lt;/a&gt;). Letztlich habe ich die neue Biliothek so erweitert, dass die Umschaltung der Polarität der Eingänge mit einer Variablen gesteuert wird:&lt;br/&gt;
Deklaration:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;IPOL_A&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BYTE&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// Port A configuration: 0=same/1=opposite (INPUT POLARITY PORT REGISTER)&lt;/span&gt;
&lt;span class="n"&gt;IPOL_B&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;BYTE&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// Port B configuration: 0=same/1=opposite (INPUT POLARITY PORT REGISTER)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Code:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="err"&gt;STATE := STATE AND write8(16#02,IPOL_A);    //  IPOL: INPUT POLARITY PORT REGISTER&lt;/span&gt;
&lt;span class="err"&gt;                        //      1=GPIO register bit reflects the opposite logic state of the input pin.&lt;/span&gt;
&lt;span class="err"&gt;                        //      0=GPIO register bit reflects the same logic state of the input pin.&lt;/span&gt;
&lt;span class="err"&gt;STATE := STATE AND write8(16#03,IPOL_B);    //  IPOL: INPUT POLARITY PORT REGISTER&lt;/span&gt;
&lt;span class="err"&gt;                        //      1=GPIO register bit reflects the opposite logic state of the input pin.&lt;/span&gt;
&lt;span class="err"&gt;                        //      0=GPIO register bit reflects the same logic state of the input pin.&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>MCP23017 als Ausgang konfigurieren</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/8a6a09a000/?limit=25#3d5f" rel="alternate"/><published>2023-01-10T16:00:33.518000Z</published><updated>2023-01-10T16:00:33.518000Z</updated><author><name>laruso</name><uri>https://forge.codesys.com/u/laruso/</uri></author><id>https://forge.codesys.comcff91624c2c50eec1253a4b3f8da62922560d4f9</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo ,&lt;/p&gt;
&lt;p&gt;ich habe leider das gleiche Problem wenn ich das Gerät "MCP23017 IO Expansion Board" an einem BeagleBone Black betreiben möchte. Die Eingänge werden in CODESYS sofort erkannt. Die Ausgänge schalten nachdem sie in CODESYS geändert werden erst dann, wenn per linux shell einmal "i2cdump -y 2 0x27" ausgeführt wurde (die Adresse meines Boards ist ohne Veränderung 0x27 und nicht 0x20). Danach schalten sie bei jeder Änderung in CODESYS.&lt;/p&gt;
&lt;p&gt;Benutzt habe ich die Gerätebeschreibungsdatei und die Bibliothek von eschwellinger.&lt;br/&gt;
Quelle: &lt;a href="https://forge.codesys.com/forge/talk/Runtime/thread/8981ce928a/?page=1&amp;amp;limit=25#1cc1"&gt;https://forge.codesys.com/forge/talk/Runtime/thread/8981ce928a/?page=1&amp;amp;limit=25#1cc1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Im Programm verwende ich den Code von elconfa:~~~&lt;br/&gt;
MCP23017_1.IO_A := 16#FF; //Input&lt;br/&gt;
MCP23017_1.IO_B := 16#00; //Output&lt;/p&gt;
&lt;p&gt;Button_1 := MCP23017_1.IN_A.0;&lt;br/&gt;
Button_2 := MCP23017_1.IN_A.1;&lt;br/&gt;
Button_3 := MCP23017_1.IN_A.2;&lt;br/&gt;
Button_4 := MCP23017_1.IN_A.3;&lt;br/&gt;
Button_5 := MCP23017_1.IN_A.4;&lt;br/&gt;
Button_6 := MCP23017_1.IN_A.5;&lt;br/&gt;
Button_7 := MCP23017_1.IN_A.6;&lt;br/&gt;
Button_8 := MCP23017_1.IN_A.7;&lt;/p&gt;
&lt;p&gt;MCP23017_1.OUT_B.0 := Rele_1;&lt;br/&gt;
MCP23017_1.OUT_B.1 := Rele_2;&lt;br/&gt;
MCP23017_1.OUT_B.2 := Rele_3;&lt;br/&gt;
MCP23017_1.OUT_B.3 := Rele_4;&lt;br/&gt;
MCP23017_1.OUT_B.4 := Rele_5;&lt;br/&gt;
MCP23017_1.OUT_B.5 := Rele_6;&lt;br/&gt;
MCP23017_1.OUT_B.6 := Rele_7;&lt;br/&gt;
MCP23017_1.OUT_B.7 := Rele_8;&lt;br/&gt;
~~~&lt;br/&gt;
Quelle: &lt;a href="https://forge.codesys.com/forge/talk/Runtime/thread/d10648ca06/#1323"&gt;https://forge.codesys.com/forge/talk/Runtime/thread/d10648ca06/#1323&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Eine Lösung scheint hierfür leider noch nicht beschrieben zu sein.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>MCP23017 als Ausgang konfigurieren</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/8a6a09a000/?limit=25#e1fe" rel="alternate"/><published>2020-02-28T03:20:47.450000Z</published><updated>2020-02-28T03:20:47.450000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.com2e0e6d35bc64aa5443a73685dbdb81fc3bf4bfa8</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; *&lt;em&gt;michi&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Hallo,&lt;/p&gt;
&lt;p&gt;hört sich unterm Strich so an, als würde Codesys deinen I2C nicht korrekt initialisieren, bzw. funktioniert nur der erste Teilnehmer nicht, oder beide, oder nur der zweite als Ausgang?!&lt;br/&gt;
Mit dem I2cdump machst du unterm Strich nichts anderes, als ein Register lesen vom MCP23007. Es wäre wesentlich einfacher, wenn der Quellcode von deinem MCP23007 hier abgebildet wäre. Ich vermute, dass hier deine Ansteuerung in der Lib nicht korrekt ist. Was ich mir vorstellen könnte, das mit dem i2cdump die Adresse "irgendwie" gesetzt wird und du darüber Zugriff hast. Bei Stop, bzw. Reset ist diese natürlich dann 0. Das Codeschnippsl  von dir ist an der Stelle nicht aussagekräftig...&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>MCP23017 als Ausgang konfigurieren</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/8a6a09a000/?limit=25#2452" rel="alternate"/><published>2020-02-28T03:20:45.527000Z</published><updated>2020-02-28T03:20:45.527000Z</updated><author><name>JJoe</name><uri>https://forge.codesys.com/u/jjoe/</uri></author><id>https://forge.codesys.com9fe494d1bc340b3722c49e677145bf7d3e05519b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo Michi,&lt;br/&gt;
vielen Dank für deine schnelle Antwort.&lt;br/&gt;
Das Codesys Programm funktioniert so wie es programmiert ist. Aber nur dann, nachdem ich in einem Raspberry Terminal den Befehl i2cdump -y 1 0x24 durchgeführt habe. Und nur solange, bis ich das Codesys Programm stoppe. &lt;br/&gt;
Viele Grüße&lt;br/&gt;
JJoe&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>MCP23017 als Ausgang konfigurieren</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/8a6a09a000/?limit=25#94b4" rel="alternate"/><published>2020-02-28T03:20:40.103000Z</published><updated>2020-02-28T03:20:40.103000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.comf25aa23cbdde5a9f0d5702e5755b138a9ec52412</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; *&lt;em&gt;michi&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Hallo JJoe,&lt;/p&gt;
&lt;p&gt;so wie ich das verstehe, schreibst du in jedem Zyklus die Konfiguration an MCP raus. Ich vermute IO_B ist bei der Register 01. &lt;br/&gt;
Die Konfiguration reicht, wenn diese einmalig gesetzt wird. Des weiteren empfiehlt es sich (wer mag) den geschriebenen Befehl erneut einzulesen, um sicher zu stellen, dass hier der korrekte Initialisierungswert übertragen wurde. By the Way... du mappst den Eingang direkt auf den Ausgang. Versuche erstmals dies mit einer Boolschen Variable. Um einzugrenzen ob dein Eingang nicht übertragen wird oder der Ausgang ein Problem hat.&lt;/p&gt;
&lt;p&gt;Gruß&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>MCP23017 als Ausgang konfigurieren</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/8a6a09a000/?limit=25#63cc" rel="alternate"/><published>2020-02-28T03:20:38.186000Z</published><updated>2020-02-28T03:20:38.186000Z</updated><author><name>JJoe</name><uri>https://forge.codesys.com/u/jjoe/</uri></author><id>https://forge.codesys.com7fe6b25226281699e001ef05ca78df33631bb792</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;In einem Lehrertrainingsprojekt der deutschen Entwicklungszusammenarbeit wird der Raspberry PI 2 B mit Codesys V3.5 Sp14 eingesetzt. Neben einem Horter&amp;amp;Kalb digitalem Eingangsmodul wird auch ein MCP23017 verwendet. Der Baustein soll die benötigten digitalen Ausgänge zur Verfügung stellen. Das kleine Testprogramm (Bild 1) funktioniert nur, wenn ich vorher ein i2cdump dausgeführt habe und auch nur solange ich in Codesys das Programm nicht gestoppt habe. Nach dem erneuten Start muss ich wieder ein i2cdump durchführen, bevor er Ausgang reagiert.&lt;br/&gt;
Die Testprogramme, die ich im Forum gefunden habe funktionieren bei mir auch nicht.&lt;/p&gt;
&lt;p&gt;P.S. Ein Testprogramm in Phyton funktioniert problemlos, so dass ich davon ausgehe, dass kein Hardwarefehler vorliegt. Der Raspberry ist auch komplett aktualisiert.&lt;/p&gt;
&lt;p&gt;Ich hoffe, dass jemand im Forum eine Lösung meines Problems hat und bedanke mich schon einmal im Voraus.&lt;/p&gt;
&lt;p&gt;&lt;img alt="IMG: 2.jpg" rel="nofollow" src="https://forum-de.codesys.com//download/file.php?id=2184"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="IMG: 1.jpg" rel="nofollow" src="https://forum-de.codesys.com//download/file.php?id=2183"/&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>