<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Stefan2 I2C library examples</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/db69df90e5/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Runtime/thread/db69df90e5/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Runtime/thread/db69df90e5/</id><updated>2020-02-27T16:47:51.055000Z</updated><subtitle>Recent posts to Stefan2 I2C library examples</subtitle><entry><title>Stefan2 I2C library examples</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/db69df90e5/?limit=25#b154" rel="alternate"/><published>2020-02-27T16:47:51.055000Z</published><updated>2020-02-27T16:47:51.055000Z</updated><author><name>Stefan2</name><uri>https://forge.codesys.com/u/stefan2/</uri></author><id>https://forge.codesys.com6b801a914101e3c34e7651607dc1817bde99eb6f</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi Pawel,&lt;/p&gt;
&lt;p&gt;sure I know this…    &lt;/p&gt;
&lt;p&gt;The eeprom works assyncron call it like this:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;   &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;SysSem&lt;/span&gt;.&lt;span class="nv"&gt;SysSemEnter&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;hSem&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;PARAM_DATA&lt;/span&gt;.&lt;span class="nv"&gt;DATA_EEPROM&lt;/span&gt;.&lt;span class="nv"&gt;SEMAPHORE&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;SysSem&lt;/span&gt;.&lt;span class="nv"&gt;Errors&lt;/span&gt;.&lt;span class="nv"&gt;ERR_OK&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
      &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;PARAM_DATA&lt;/span&gt;.&lt;span class="nv"&gt;DATA_EEPROM&lt;/span&gt;.&lt;span class="nv"&gt;FB_NO_IN&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
         &lt;span class="nv"&gt;PARAM_DATA&lt;/span&gt;.&lt;span class="nv"&gt;DATA_EEPROM&lt;/span&gt;.&lt;span class="nv"&gt;FB_NO_IN&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;PARAMETER_NO&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="nv"&gt;PARAM_DATA&lt;/span&gt;.&lt;span class="nv"&gt;DATA_EEPROM&lt;/span&gt;.&lt;span class="nv"&gt;WRITE_VALUE&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;TRUE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="nv"&gt;PARAM_DATA&lt;/span&gt;.&lt;span class="nv"&gt;DATA_EEPROM&lt;/span&gt;.&lt;span class="nv"&gt;VALUE_IN&lt;/span&gt;.&lt;span class="nv"&gt;LWORD_T&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;PARAM&lt;/span&gt;.&lt;span class="nv"&gt;LWORD_T&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
         &lt;span class="nv"&gt;PARAM_DATA&lt;/span&gt;.&lt;span class="nv"&gt;DATA_EEPROM&lt;/span&gt;.&lt;span class="nv"&gt;ADDRESS_VALUE&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;GET_PAGE_ADRESS_EEPROM&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;DATA&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;PARAM_DATA&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;END_IF&lt;/span&gt;   
   &lt;span class="nv"&gt;END_IF&lt;/span&gt;
   &lt;span class="nv"&gt;SysSem&lt;/span&gt;.&lt;span class="nv"&gt;SysSemLeave&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;hSem&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;PARAM_DATA&lt;/span&gt;.&lt;span class="nv"&gt;DATA_EEPROM&lt;/span&gt;.&lt;span class="nv"&gt;SEMAPHORE&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;try to use the device as no multiplex in device config.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;PARAM_DATA&lt;/span&gt;.&lt;span class="nv"&gt;DATA_EEPROM&lt;/span&gt;.&lt;span class="nv"&gt;FB_NO_IN&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;

``` &lt;span class="nv"&gt;shows&lt;/span&gt; &lt;span class="nv"&gt;that&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;EEPROM&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;read&lt;/span&gt; &lt;span class="nv"&gt;to&lt;/span&gt; &lt;span class="nv"&gt;recive&lt;/span&gt; &lt;span class="nv"&gt;new&lt;/span&gt; &lt;span class="nv"&gt;command&lt;/span&gt;.

&lt;span class="nv"&gt;FB_NO_IN&lt;/span&gt; &lt;span class="nv"&gt;can&lt;/span&gt; &lt;span class="nv"&gt;be&lt;/span&gt; &lt;span class="nv"&gt;any&lt;/span&gt; &lt;span class="nv"&gt;UNIQUE&lt;/span&gt; &lt;span class="nv"&gt;number&lt;/span&gt; &lt;span class="nv"&gt;on&lt;/span&gt; &lt;span class="nv"&gt;your&lt;/span&gt; &lt;span class="nv"&gt;PLC&lt;/span&gt; &lt;span class="nv"&gt;this&lt;/span&gt; &lt;span class="nv"&gt;number&lt;/span&gt; &lt;span class="nv"&gt;shows&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;write&lt;/span&gt; &lt;span class="nv"&gt;or&lt;/span&gt; &lt;span class="nv"&gt;reciving&lt;/span&gt; &lt;span class="nv"&gt;FB&lt;/span&gt; &lt;span class="nv"&gt;that&lt;/span&gt; &lt;span class="nv"&gt;data&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nv"&gt;this&lt;/span&gt; &lt;span class="nv"&gt;FB&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;avalible&lt;/span&gt;. &lt;span class="nv"&gt;I&lt;/span&gt; &lt;span class="nv"&gt;create&lt;/span&gt; &lt;span class="nv"&gt;thos&lt;/span&gt; &lt;span class="nv"&gt;Nums&lt;/span&gt; &lt;span class="nv"&gt;by&lt;/span&gt; &lt;span class="nv"&gt;call&lt;/span&gt; 
&lt;span class="o"&gt;&amp;gt;**&lt;/span&gt;&lt;span class="nv"&gt;Zitat&lt;/span&gt;:&lt;span class="o"&gt;**&lt;/span&gt;
&lt;span class="nv"&gt;DB_IN_OUT&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;.&lt;span class="nv"&gt;FB_NO_AUTO&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;DB_IN_OUT&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;.&lt;span class="nv"&gt;FB_NO_AUTO&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;


&lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;each&lt;/span&gt; &lt;span class="nv"&gt;FB&lt;/span&gt;
&lt;span class="nv"&gt;and&lt;/span&gt; &lt;span class="nv"&gt;reset&lt;/span&gt; &lt;span class="nv"&gt;them&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;on&lt;/span&gt; &lt;span class="nv"&gt;FB&lt;/span&gt; &lt;span class="nv"&gt;like&lt;/span&gt;:
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;DB_IN_OUT.FB_NO_AUTO := 0;//reset FB number&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;IF DATA_EEPROM.FB_NO_OUT = PARAMETER_NO THEN&lt;br/&gt;
   //got my request back&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;shows&lt;/span&gt; &lt;span class="nv"&gt;that&lt;/span&gt; &lt;span class="nv"&gt;data&lt;/span&gt; &lt;span class="nv"&gt;from&lt;/span&gt; &lt;span class="nv"&gt;eeprom&lt;/span&gt; &lt;span class="nv"&gt;is&lt;/span&gt; &lt;span class="nv"&gt;avalible&lt;/span&gt;.

&lt;span class="k"&gt;then&lt;/span&gt; &lt;span class="nv"&gt;you&lt;/span&gt; &lt;span class="nv"&gt;can&lt;/span&gt; &lt;span class="nv"&gt;receive&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;data&lt;/span&gt; &lt;span class="nv"&gt;like&lt;/span&gt; &lt;span class="nv"&gt;this&lt;/span&gt;:
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;IF DATA_EEPROM.FB_NO_OUT = PARAMETER_NO THEN&lt;br/&gt;
   //got my request back   &lt;br/&gt;
   //get value&lt;br/&gt;
   VALUE_FROM_EEPROM.LWORD_T := DATA_EEPROM.VALUE_OUT.LWORD_T;&lt;br/&gt;
&lt;br/&gt;
   DATA_EEPROM.FB_NO_OUT := 0;//delete response&lt;br/&gt;
   LOAD_VALUE_FROM_EEPROM := FALSE;//delete request&lt;br/&gt;
END_IF&lt;/p&gt;
&lt;p&gt;```&lt;/p&gt;
&lt;p&gt;I think I have to make a god example too.&lt;/p&gt;
&lt;p&gt;BR Stefan&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Stefan2 I2C library examples</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/db69df90e5/?limit=25#2c00" rel="alternate"/><published>2020-02-27T16:47:50.146000Z</published><updated>2020-02-27T16:47:50.146000Z</updated><author><name>pawel3410</name><uri>https://forge.codesys.com/u/pawel3410/</uri></author><id>https://forge.codesys.comf730b1ceb9169e429e26b701059106fef9852f0c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello. &lt;/p&gt;
&lt;p&gt;Does anyone have any examples how to use devices from this library?&lt;br/&gt;
Especially how to use 24C512?&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>