<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to modbus from serial to tcp</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/fadb300250/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Runtime/thread/fadb300250/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Runtime/thread/fadb300250/</id><updated>2020-02-27T15:51:42.479000Z</updated><subtitle>Recent posts to modbus from serial to tcp</subtitle><entry><title>modbus from serial to tcp</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/fadb300250/?limit=25#8458" rel="alternate"/><published>2020-02-27T15:51:42.479000Z</published><updated>2020-02-27T15:51:42.479000Z</updated><author><name>tonverra</name><uri>https://forge.codesys.com/u/tonverra/</uri></author><id>https://forge.codesys.com5ce0b83d3d3123be4e948a5feb1248eb55ab94a9</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Depending on what board you use on the arduino, you could check out Mudbus. This has worked great for me in the past.&lt;/p&gt;
&lt;p&gt;I used it to make a custom library for a Uno using Wifi shield and another for the Yun. &lt;a class="" href="http://www.verra.biz/free-downloads" rel="nofollow"&gt;http://www.verra.biz/free-downloads&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you need more help, I think you are better of posting it on the arduino forums&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>modbus from serial to tcp</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/fadb300250/?limit=25#23fa" rel="alternate"/><published>2020-02-27T15:51:41.491000Z</published><updated>2020-02-27T15:51:41.491000Z</updated><author><name>alverman</name><uri>https://forge.codesys.com/u/alverman/</uri></author><id>https://forge.codesys.comb071d9df6a14aacb69050988424d8e49b9757cf2</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Good morning,&lt;br/&gt;
In the enclosed place the code I use to control arduino (control) via codesys with mdbusrtu protocol.&lt;br/&gt;
Everything works perfectly!&lt;br/&gt;
Now I wanted to ask you how to modify this code to work on modbus tcp slave.&lt;br/&gt;
I found much code on the internet but it made me no confusion.&lt;br/&gt;
Could you help me?&lt;/p&gt;
&lt;p&gt;Thank you, Alberto&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;\#&lt;span class="k"&gt;include&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nv"&gt;Controllino&lt;/span&gt;.&lt;span class="nv"&gt;h&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;  &lt;span class="cm"&gt;/* Usage of CONTROLLINO library allows you to use CONTROLLINO_xx aliases in your sketch. */&lt;/span&gt;
\#&lt;span class="k"&gt;include&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nv"&gt;ModbusRtu&lt;/span&gt;.&lt;span class="nv"&gt;h&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
\#&lt;span class="nv"&gt;define&lt;/span&gt; &lt;span class="nv"&gt;ID&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
&lt;span class="nv"&gt;Modbus&lt;/span&gt; &lt;span class="nv"&gt;slave&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ID&lt;/span&gt;, &lt;span class="mi"&gt;0&lt;/span&gt;, &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;; // this is slave ID and RS-232 or USB-FTDI&lt;/span&gt;
&lt;span class="nv"&gt;int8_t&lt;/span&gt; &lt;span class="nv"&gt;state&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;data&lt;/span&gt; &lt;span class="nv"&gt;array&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nv"&gt;modbus&lt;/span&gt; &lt;span class="nv"&gt;network&lt;/span&gt; &lt;span class="nv"&gt;sharing&lt;/span&gt;
&lt;span class="nv"&gt;uint16_t&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;9&lt;/span&gt;]&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;void&lt;/span&gt; &lt;span class="nv"&gt;setup&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt; {
  &lt;span class="nv"&gt;io_setup&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;&lt;span class="c1"&gt;; // I/O settings&lt;/span&gt;
  &lt;span class="nv"&gt;slave&lt;/span&gt;.&lt;span class="nv"&gt;begin&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="mi"&gt;38400&lt;/span&gt; &lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
}
&lt;span class="nv"&gt;void&lt;/span&gt; &lt;span class="k"&gt;loop&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt; {
  &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;poll&lt;/span&gt; &lt;span class="nv"&gt;messages&lt;/span&gt;
  &lt;span class="nv"&gt;state&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;slave&lt;/span&gt;.&lt;span class="nv"&gt;poll&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;, &lt;span class="mi"&gt;9&lt;/span&gt; &lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;io_poll&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
} 
&lt;span class="nv"&gt;void&lt;/span&gt; &lt;span class="nv"&gt;io_setup&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt; {
  &lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;Set&lt;/span&gt; &lt;span class="nv"&gt;digital&lt;/span&gt; &lt;span class="nv"&gt;out&lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_R0&lt;/span&gt;, &lt;span class="nv"&gt;OUTPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;; // next to the digital output screw terminal &lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_R1&lt;/span&gt;, &lt;span class="nv"&gt;OUTPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;; // next to the digital output screw terminal&lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_R2&lt;/span&gt;, &lt;span class="nv"&gt;OUTPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;; // next to the digital output screw terminal&lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_R3&lt;/span&gt;, &lt;span class="nv"&gt;OUTPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;; // next to the digital output screw terminal&lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_R4&lt;/span&gt;, &lt;span class="nv"&gt;OUTPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;; // next to the digital output screw terminal&lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_R5&lt;/span&gt;, &lt;span class="nv"&gt;OUTPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;; // next to the digital output screw terminal&lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_R6&lt;/span&gt;, &lt;span class="nv"&gt;OUTPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;; // next to the digital output screw terminal&lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_R7&lt;/span&gt;, &lt;span class="nv"&gt;OUTPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;; // next to the digital output screw terminal&lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_R8&lt;/span&gt;, &lt;span class="nv"&gt;OUTPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;; // next to the digital output screw terminal&lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_R9&lt;/span&gt;, &lt;span class="nv"&gt;OUTPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;; // next to the digital output screw terminal&lt;/span&gt;
  &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;Set&lt;/span&gt; &lt;span class="nv"&gt;analog&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;used&lt;/span&gt; &lt;span class="nv"&gt;as&lt;/span&gt; &lt;span class="nv"&gt;digital&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A0&lt;/span&gt;, &lt;span class="nv"&gt;INPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;  // next to the analog input screw terminal&lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A1&lt;/span&gt;, &lt;span class="nv"&gt;INPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;  // next to the analog input screw terminal&lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A2&lt;/span&gt;, &lt;span class="nv"&gt;INPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;  // next to the analog input screw terminal&lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A3&lt;/span&gt;, &lt;span class="nv"&gt;INPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;  // next to the analog input screw terminal&lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A4&lt;/span&gt;, &lt;span class="nv"&gt;INPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;  // next to the analog input screw terminal&lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A5&lt;/span&gt;, &lt;span class="nv"&gt;INPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;  // next to the analog input screw terminal&lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A6&lt;/span&gt;, &lt;span class="nv"&gt;INPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;  // next to the analog input screw terminal&lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A7&lt;/span&gt;, &lt;span class="nv"&gt;INPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;  // next to the analog input screw terminal&lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A8&lt;/span&gt;, &lt;span class="nv"&gt;INPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;  // next to the analog input screw terminal&lt;/span&gt;
  &lt;span class="nv"&gt;pinMode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A9&lt;/span&gt;, &lt;span class="nv"&gt;INPUT&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;  // next to the analog input screw terminal&lt;/span&gt;
}
&lt;span class="nv"&gt;void&lt;/span&gt; &lt;span class="nv"&gt;io_poll&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt; {
  &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;get&lt;/span&gt; &lt;span class="nv"&gt;analog&lt;/span&gt; &lt;span class="nv"&gt;inputs&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;]
  &lt;span class="nv"&gt;bitWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;], &lt;span class="mi"&gt;0&lt;/span&gt;, &lt;span class="nv"&gt;digitalRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A0&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;bitWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;], &lt;span class="mi"&gt;1&lt;/span&gt;, &lt;span class="nv"&gt;digitalRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A1&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;bitWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;], &lt;span class="mi"&gt;2&lt;/span&gt;, &lt;span class="nv"&gt;digitalRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A2&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;bitWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;], &lt;span class="mi"&gt;3&lt;/span&gt;, &lt;span class="nv"&gt;digitalRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A3&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;bitWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;], &lt;span class="mi"&gt;4&lt;/span&gt;, &lt;span class="nv"&gt;digitalRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A4&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;bitWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;], &lt;span class="mi"&gt;5&lt;/span&gt;, &lt;span class="nv"&gt;digitalRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A5&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;bitWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;], &lt;span class="mi"&gt;6&lt;/span&gt;, &lt;span class="nv"&gt;digitalRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A6&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;bitWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;], &lt;span class="mi"&gt;7&lt;/span&gt;, &lt;span class="nv"&gt;digitalRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A7&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;bitWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;], &lt;span class="mi"&gt;8&lt;/span&gt;, &lt;span class="nv"&gt;digitalRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A8&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;bitWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;], &lt;span class="mi"&gt;9&lt;/span&gt;, &lt;span class="nv"&gt;digitalRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_A9&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;bitWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;], &lt;span class="mi"&gt;10&lt;/span&gt;, &lt;span class="nv"&gt;digitalRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_IN0&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="nv"&gt;bitWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;0&lt;/span&gt;], &lt;span class="mi"&gt;11&lt;/span&gt;, &lt;span class="nv"&gt;digitalRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;CONTROLLINO_IN1&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;set&lt;/span&gt; &lt;span class="nv"&gt;digital&lt;/span&gt; &lt;span class="nv"&gt;outputs&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;]
  &lt;span class="nv"&gt;digitalWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;CONTROLLINO_R0&lt;/span&gt;, &lt;span class="nv"&gt;bitRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;], &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;digitalWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;CONTROLLINO_R1&lt;/span&gt;, &lt;span class="nv"&gt;bitRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;], &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;digitalWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;CONTROLLINO_R2&lt;/span&gt;, &lt;span class="nv"&gt;bitRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;], &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;digitalWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;CONTROLLINO_R3&lt;/span&gt;, &lt;span class="nv"&gt;bitRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;], &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;digitalWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;CONTROLLINO_R4&lt;/span&gt;, &lt;span class="nv"&gt;bitRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;], &lt;span class="mi"&gt;4&lt;/span&gt; &lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;digitalWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;CONTROLLINO_R5&lt;/span&gt;, &lt;span class="nv"&gt;bitRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;], &lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;digitalWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;CONTROLLINO_R6&lt;/span&gt;, &lt;span class="nv"&gt;bitRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;], &lt;span class="mi"&gt;6&lt;/span&gt; &lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;digitalWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;CONTROLLINO_R7&lt;/span&gt;, &lt;span class="nv"&gt;bitRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;], &lt;span class="mi"&gt;7&lt;/span&gt; &lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;digitalWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;CONTROLLINO_R8&lt;/span&gt;, &lt;span class="nv"&gt;bitRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;], &lt;span class="mi"&gt;8&lt;/span&gt; &lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;digitalWrite&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;CONTROLLINO_R9&lt;/span&gt;, &lt;span class="nv"&gt;bitRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;], &lt;span class="mi"&gt;9&lt;/span&gt; &lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;diagnose&lt;/span&gt; &lt;span class="nv"&gt;communication&lt;/span&gt;
  &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;6&lt;/span&gt;] &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;slave&lt;/span&gt;.&lt;span class="nv"&gt;getInCnt&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;7&lt;/span&gt;] &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;slave&lt;/span&gt;.&lt;span class="nv"&gt;getOutCnt&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;au16data&lt;/span&gt;[&lt;span class="mi"&gt;8&lt;/span&gt;] &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;slave&lt;/span&gt;.&lt;span class="nv"&gt;getErrCnt&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;/div&gt;</summary></entry></feed>