<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Two serial devices in parallel</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/c2ab61f4c8/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Runtime/thread/c2ab61f4c8/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Runtime/thread/c2ab61f4c8/</id><updated>2020-02-27T17:44:31.782000Z</updated><subtitle>Recent posts to Two serial devices in parallel</subtitle><entry><title>Two serial devices in parallel</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/c2ab61f4c8/?limit=25#71cd" rel="alternate"/><published>2020-02-27T17:44:31.782000Z</published><updated>2020-02-27T17:44:31.782000Z</updated><author><name>eschwellinger</name><uri>https://forge.codesys.com/u/eschwellinger/</uri></author><id>https://forge.codesys.com3258a30b34d93d749e75135487cbe35f1ea2759f</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;you could remove this line, make no sense.&lt;br/&gt;
portnum := COM.SysCom.SYS_COMPORT1;&lt;/p&gt;
&lt;p&gt;only:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span&gt;&lt;span&gt;[SysCom]&lt;/span&gt;&lt;/span&gt;Linux.Devicefile=/dev/ttyO&lt;/strong&gt;&lt;br/&gt;
is needed.&lt;/p&gt;
&lt;p&gt;BR&lt;br/&gt;
Edwin&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Two serial devices in parallel</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/c2ab61f4c8/?limit=25#3ffb" rel="alternate"/><published>2020-02-27T17:44:28.701000Z</published><updated>2020-02-27T17:44:28.701000Z</updated><author><name>GiorgioT</name><uri>https://forge.codesys.com/u/giorgiot/</uri></author><id>https://forge.codesys.com3e1e4120c57eed5d20481639f8ab468c5da4235d</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;It works like a charm now. I used udiPort 3 and 5 as you suggested!&lt;/p&gt;
&lt;p&gt;Leaving the CODESYSControl.cfg unchanged as i wrote it in my last post, The mapping between tty and COM in codesys is of the type: ttyOx -&amp;gt; COM(x+1), isn't it ? Hence, why must the udiPort be equal to 1,  if i use only one uart port (e.g. ttyO2)  ? What is the meaning of ```&lt;/p&gt;
&lt;p&gt;portnum := COM.SysCom.SYS_COMPORT1;&lt;/p&gt;
&lt;p&gt;``` in  CODESYSControl.cfg when two or more ports are used ?&lt;/p&gt;
&lt;p&gt;Sorry to bother you with all these questions but i'd like to understand better how the serial mapping works. It may be also useful to others.&lt;/p&gt;
&lt;p&gt;Thank you.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Two serial devices in parallel</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/c2ab61f4c8/?limit=25#a523" rel="alternate"/><published>2020-02-27T17:44:27.644000Z</published><updated>2020-02-27T17:44:27.644000Z</updated><author><name>eschwellinger</name><uri>https://forge.codesys.com/u/eschwellinger/</uri></author><id>https://forge.codesys.com65020fb36e9a379518430621f70db60089b034da</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;hi,&lt;br/&gt;
have you tried&lt;br/&gt;
FirstSerialLine(      slMode:= SL_READWRITE,       udiPort:= 3, //ttyO2&lt;br/&gt;
and &lt;br/&gt;
FirstSerialLine(      slMode:= SL_READWRITE,       udiPort:= 5, //ttyO4&lt;/p&gt;
&lt;p&gt;another one posibility is to set symbolic links for your ports... in Linux.&lt;/p&gt;
&lt;p&gt;BR&lt;br/&gt;
Edwin&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Two serial devices in parallel</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/c2ab61f4c8/?limit=25#829c" rel="alternate"/><published>2020-02-27T17:44:24.694000Z</published><updated>2020-02-27T17:44:24.694000Z</updated><author><name>GiorgioT</name><uri>https://forge.codesys.com/u/giorgiot/</uri></author><id>https://forge.codesys.com7c8246665669220e49ec7b4e228138bae6736d6e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I'm struggling to figure out a way to communicate with two serial devices in codesys v3.5 SP9 + BBB rev C.&lt;/p&gt;
&lt;p&gt;I use both uart2(ttyO2) and uart4(ttyO4) ports.  I can successfully communicate using only one uart port by appending the following line in /etc/CODESYSControl.cfg:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;[SysCom]&lt;/span&gt;
&lt;span class="na"&gt;Linux.Devicefile&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/dev/ttyO&lt;/span&gt;
&lt;span class="na"&gt;portnum :&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;COM.SysCom.SYS_COMPORT1;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;I use the example project available in the store: SerialComWithVisu with the following call to the FB Serial_Line&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;FirstSerialLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;slMode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;SL_READWRITE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;udiPort&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;tty02&lt;/span&gt; &lt;span class="o"&gt;???&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;udiBaudrate&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;115200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;paParity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;COM&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PARITY&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;NONE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;sbStopBits&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;COM&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;STOPBIT&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ONESTOPBIT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;udiByteSize&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Everything works fine. I can write and read out of ttyO2.&lt;/p&gt;
&lt;p&gt;Then i added the uart4 (ttyO4). I wired Tx4 -&amp;gt; Rx2 and Tx2 -&amp;gt;Rx4. I tested the communication with a python script and i was able to read and write from both serial devices.&lt;/p&gt;
&lt;p&gt;Following the thread &lt;a class="" href="http://forum.codesys.com/viewtopic.php?f=21&amp;amp;t=5699&amp;amp;start=15" rel="nofollow"&gt;http://forum.codesys.com/viewtopic.php?f=21&amp;amp;t=5699&amp;amp;start=15&lt;/a&gt;, i left unchanged the CODESYSControl.cfg and i added a second call to the FB setting 2 as COM2&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;SecondSerialLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;slMode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;SL_READWRITE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;udiPort&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;udiBaudrate&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;115200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;paParity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;COM&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PARITY&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;NONE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;sbStopBits&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;COM&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;STOPBIT&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ONESTOPBIT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;udiByteSize&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Both ports udiPort 1 and 2 open with no errors and the write function returns successfully. The read function instead always returns empty string. Moreover if i execute ```&lt;/p&gt;
&lt;p&gt;cat /dev/ttyO2 or 4 &lt;/p&gt;
&lt;p&gt;``` no output is returned as no one is actually writing in that file. I tried to change the udiPort value but ANY value i type gives the same result. &lt;br/&gt;
What is the right way to handle two serial devices in parallel in codesys ?? Should i edit the CODESYSControl.cfg file to declare the second port too ? if yes, how ?&lt;/p&gt;
&lt;p&gt;Thank you.&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>