<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-5300851025513941016</atom:id><lastBuildDate>Fri, 01 Nov 2024 10:33:13 +0000</lastBuildDate><category>PLC</category><category>Interfacing</category><category>Automation and Control</category><category>DCS</category><category>Scada</category><category>Modbus</category><category>Power</category><title>PLC &amp;amp; Control</title><description>All about PLC, Industrial Automation, Process Control and Instrumentation</description><link>http://plcontrol.blogspot.com/</link><managingEditor>noreply@blogger.com (Unknown)</managingEditor><generator>Blogger</generator><openSearch:totalResults>65</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-8304311334181451478</guid><pubDate>Sat, 02 May 2009 14:24:00 +0000</pubDate><atom:updated>2009-11-11T10:22:44.322+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PLC</category><title>Average of Analog Input</title><description>&lt;p&gt;Description :&lt;/p&gt;
&lt;p&gt;This &lt;strong&gt;Siemens 200 PLCs&#39;s &lt;/strong&gt;file is going to create a rolling average for the last 100 scans worth of an analog input.&lt;/p&gt;
&lt;p&gt;File Details :&lt;/p&gt;
&lt;p&gt;File Type: .zip&lt;/p&gt;
&lt;p&gt;File Size:2.27 Kb&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://forums.mrplc.com/index.php?download=117&quot;&gt;Download Now&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;More Info :&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please  Visit  &lt;a href=&quot;http://plc2u.com/index.php/plc-code/s7200/average-of-analog-input&quot;&gt;http://plc2u.com/index.php/plc-code/s7200/average-of-analog-input&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description><link>http://plcontrol.blogspot.com/2009/05/average-of-analog-input.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-5714903271727677342</guid><pubDate>Sat, 02 May 2009 14:17:00 +0000</pubDate><atom:updated>2009-11-11T10:26:24.131+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PLC</category><title>Daylight Savings Time for S7-200</title><description>&lt;p&gt;Description :&lt;/p&gt;
&lt;p&gt;This is a sample program how to demonstrate making the &lt;strong&gt;PLC&lt;/strong&gt; adjust the clock for daylight savings time automatically. It is done with an &lt;strong&gt;S7-200&lt;/strong&gt;, but the logic sould be similar for any &lt;strong&gt;PLC&lt;/strong&gt; from any vendor.&lt;/p&gt;
&lt;p&gt;It&#39;s written with &lt;strong&gt;Step 7-MicroWIN&lt;/strong&gt;/32&lt;/p&gt;
&lt;p&gt;File Details :&lt;/p&gt;
&lt;p&gt;File Type: .zip&lt;/p&gt;
&lt;p&gt;File Size 7.84 Kb&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://forums.mrplc.com/index.php?download=194&quot;&gt;Download Now&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;More Info:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please Visit &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal; &quot;&gt;&lt;a href=&quot;http://plc2u.com/index.php/plc-code/s7200/daylight-savings-time-for-s7-200&quot;&gt;http://plc2u.com/index.php/plc-code/s7200/daylight-savings-time-for-s7-200&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;
&lt;/span&gt;&lt;/p&gt;</description><link>http://plcontrol.blogspot.com/2009/05/daylight-savings-time-for-s7-200.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-6587608942962557108</guid><pubDate>Sat, 02 May 2009 14:12:00 +0000</pubDate><atom:updated>2009-11-11T10:33:26.613+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PLC</category><title>Remanent On-delay Timer for Siemens S7 300/400</title><description>&lt;p&gt;&lt;strong&gt;Remanent On-delay Timer for Siemens S7 300/400&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;-The attached FC makes standard PLC timers
remanent.&lt;/p&gt;

&lt;p&gt;-The timers are started, stopped and reset via
digital inputs.&lt;/p&gt;

&lt;p&gt;-The the remaining time can be monitored in the
program.&lt;/p&gt;

&lt;p&gt;File Details :&lt;/p&gt;
&lt;p&gt;File Type: .zip&lt;/p&gt;
&lt;p&gt;File Size 222.35 Kb&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://forums.mrplc.com/index.php?download=466&quot;&gt;Download Now&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please visit us at &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal; &quot;&gt;&lt;a href=&quot;http://plc2u.com/index.php/plc-code/s7300400/remanent-on-delay-timer-for-siemens-s7-300400&quot;&gt;http://plc2u.com/index.php/plc-code/s7300400/remanent-on-delay-timer-for-siemens-s7-300400&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description><link>http://plcontrol.blogspot.com/2009/05/remanent-on-delay-timer-for-siemens-s7.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-6741877305808786955</guid><pubDate>Sat, 02 May 2009 13:54:00 +0000</pubDate><atom:updated>2009-11-11T10:34:30.819+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PLC</category><title>S7-200 Tips &amp; Tricks Complete 8/2003</title><description>&lt;p&gt;&lt;strong&gt;PLC Sample Code&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Description:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Complete archive of Tips and Tricks for S7-200&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;File details:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;File Type: .zip&lt;/p&gt;
&lt;p&gt;File Size 25.63 Mb&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://forums.mrplc.com/index.php?download=699&quot;&gt;Download Now&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please visit us at &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal; &quot;&gt;&lt;a href=&quot;http://plc2u.com/index.php/plc-code/s7200/s7-200-tips-a-tricks-complete&quot;&gt;http://plc2u.com/index.php/plc-code/s7200/s7-200-tips-a-tricks-complete&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description><link>http://plcontrol.blogspot.com/2009/05/s7-200-tips-tricks-complete-82003.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-990687429196722712</guid><pubDate>Sat, 25 Apr 2009 07:15:00 +0000</pubDate><atom:updated>2009-11-11T10:36:30.172+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PLC</category><title>PLCs Versus Other Types of Controls</title><description>&lt;p align=&quot;justify&quot;&gt;A PLC is not the alone best for authoritative a process. Sticking with alone basal relays may be of a account depending aloft your application. Yet, on the added hand, a computer ability be the way to go. The PLC vs. PC agitation has been activity on for a continued time. More generally admitting it doesn&#39;t appear bottomward to an &quot;either or&quot; bearings but involves a mix of technologies.
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
&lt;/p&gt;
&lt;h3&gt;PLC vs Relay&lt;/h3&gt;
&lt;div class=&quot;image&quot;&gt;  &lt;img src=&quot;http://www.plcdev.com/files/plcdev/images/relay_small.jpg&quot; alt=&quot;Relay small&quot; title=&quot;Relay small&quot; hspace=&quot;10&quot; width=&quot;43&quot; height=&quot;70&quot; align=&quot;left&quot; /&gt;&lt;/div&gt;
&lt;p align=&quot;justify&quot;&gt;When I first started programming PLCs it was still ambiguous if a PLC was all-important over aloof broadcast control. With PLC prices activity down, admeasurement shrinking, and achievement of PLCs convalescent over the years this has become beneath of a battle. Yet the designer has to ask themselves if a PLC is absolutely abstract for their application. Some questions should be asked.
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Is there a need for flexibility in control logic changes?  Will there be frequent control logic changes?  Will there be a need for rapid modification?&lt;/strong&gt;
A lot companies believe they will never change a design but more often then not ideas and goals do change and modifications will need to be made.  Do you want to do that in hardware (relays) or software (PLC)?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Must similar control logic be used on different machines? &lt;/strong&gt;
It&#39;s so much easier to download a program then build another panel.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Is downtime a concern?&lt;/strong&gt;
Any change or troubleshooting on a relay system means the system might have to go offline.  Changes in a PLC can often be made online with no downtime.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Are space requirements important?&lt;/strong&gt;
Based on the number of relays a PLC can be a real space saver.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Are increased capability and output required?&lt;/strong&gt;
PLCs can be faster then their mechanical counterparts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Are there data collection and communications required?&lt;/strong&gt;
Only possible with a PLC or computer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What are the overall costs?&lt;/strong&gt;
There&#39;s a certain price point comparison but in these days it&#39;s very low in favor of a PLC.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Is there a need for flexibility in control logic changes?  Will there be frequent control logic changes?  Will there be a need for rapid modification?&lt;/strong&gt;
A lot companies believe they will never change a design but more often then not ideas and goals do change and modifications will need to be made.  Do you want to do that in hardware (relays) or software (PLC)?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Must similar control logic be used on different machines? &lt;/strong&gt;
It&#39;s so much easier to download a program then build another panel.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Is there a need for future growth?&lt;/strong&gt;
A PLC can easily accept a new module in a slot or get an expansion base.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Is there a need for high reliability?&lt;/strong&gt;
PLCs are seen as more robust over individual components.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Is downtime a concern?&lt;/strong&gt;
Any change or troubleshooting on a relay system means the system might have to go offline.  Changes in a PLC can often be made online with no downtime.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Are space requirements important?&lt;/strong&gt;
Based on the number of relays a PLC can be a real space saver.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Are increased capability and output required?&lt;/strong&gt;
PLCs can be faster then their mechanical counterparts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Are there data collection and communications required?&lt;/strong&gt;
Only possible with a PLC or computer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What are the overall costs?&lt;/strong&gt;
There&#39;s a certain price point comparison but in these days it&#39;s very low in favor of a PLC.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;PLC vs. Dedicated Controller
&lt;/h3&gt;
&lt;div class=&quot;image&quot;&gt;  &lt;img src=&quot;http://www.plcdev.com/files/plcdev/images/controller_dedicated.jpg&quot; alt=&quot;Controller dedicated&quot; title=&quot;Controller dedicated&quot; hspace=&quot;10&quot; width=&quot;58&quot; height=&quot;70&quot; align=&quot;left&quot; /&gt;&lt;/div&gt;
&lt;p&gt; A dedicated controller is a single instrument that is dedicated to controlling one parameter such as a &lt;a class=&quot;glossary-term&quot; href=&quot;http://www.blogger.com/glossary/1#term49&quot;&gt; title=&quot;Acronym for &lt;strong&gt;P&lt;/strong&gt;roportional, &lt;strong&gt;I&lt;/strong&gt;ntegral, &lt;strong&gt;D&lt;/strong&gt;erivative. Control algorithm that is used to closely control processes such as temperature, mixture, position, and velocity. The proportional portion takes care of the magnitude of the error. The derivative compensates for the rate of error change. The integral takes care of small errors over time.&quot;&gt;PID&lt;/a&gt; controller measuring a temperature for heating control.  They have the advantages of an all in one package, typically with display and buttons.  This can be a very good thing to use in simple applications.  A PLC these days can compete price wise and functionally with these controllers especially if you more then one controller is needed.  PLCs offer a greater degree of flexibility too because the can be programmed to handle all sorts of different scenarios.&lt;/p&gt;
&lt;h3&gt;PLC vs. PC (Personal Computers)
&lt;/h3&gt;
&lt;div class=&quot;image&quot;&gt;  &lt;img src=&quot;http://www.plcdev.com/files/plcdev/images/computer_small.gif&quot; alt=&quot;Computer small&quot; title=&quot;Computer small&quot; hspace=&quot;10&quot; width=&quot;60&quot; height=&quot;60&quot; align=&quot;left&quot; /&gt;&lt;/div&gt;
&lt;p&gt; The PLC vs. PC debate has been going on for years and I&#39;m not going to attempt to give the definitive answer.  They both have their pros and cons.  What often happens is that the two are used for their strengths in different parts of the factory. &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;















































&lt;table border=&quot;1&quot; cellpadding=&quot;5&quot; width=&quot;520&quot; align=&quot;center&quot; style=&quot;border-width: 1px&quot;&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;tbody&gt;&lt;tr valign=&quot;top&quot; style=&quot;background-color: #aeecae&quot;&gt;&lt;td&gt;Â &lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;PLC&lt;/strong&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;PC &lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot;&gt;&lt;td style=&quot;background-color: #99ccff&quot;&gt;&lt;strong&gt;Environment &lt;/strong&gt;&lt;/td&gt;&lt;td&gt;The PLC was specifically designed for harsh conditions with electrical noise, magnetic fields, vibration, extreme temperatures or humidity.&lt;/td&gt;&lt;td&gt;Common PCs are not designed for harsh environments.  Industrial PCs are available but cost more. &lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot;&gt;&lt;td style=&quot;background-color: #99ccff&quot;&gt;&lt;strong&gt;Ease of Use &lt;/strong&gt;&lt;/td&gt;&lt;td&gt;By design PLCs are friendlier to technicians since they are in ladder logic and have easy connections. &lt;/td&gt;&lt;td&gt;Operating systems like Windows are common.  Connecting I/O to the PC is not always as easy.&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot;&gt;&lt;td style=&quot;background-color: #99ccff&quot;&gt;&lt;strong&gt;Flexibility &lt;/strong&gt;&lt;/td&gt;&lt;td&gt;PLCs in rack form are easy to exchange and add parts.  They are designed for modularity and expansion.&lt;/td&gt;&lt;td&gt;Typical PCs are limited by the number of cards they can accommodate and are not easily expandable. &lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot;&gt;&lt;td style=&quot;background-color: #99ccff&quot;&gt;&lt;strong&gt;Speed &lt;/strong&gt;&lt;/td&gt;&lt;td&gt;PLCs execute a single program in sequential order.  The have better ability to handle events in real time.&lt;/td&gt;&lt;td&gt;PCs, by design, are meant to handle simultaneous tasks.  They have difficulty handling real time events.&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot;&gt;&lt;td style=&quot;background-color: #99ccff&quot;&gt;&lt;strong&gt;Reliability &lt;/strong&gt;&lt;/td&gt;&lt;td&gt;A PLC never crashes over long periods of time.  (&quot;Never&quot; may not be the right word but its close enough to be true.) &lt;/td&gt;&lt;td&gt;A PC locking up and crashing is frequent. &lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot;&gt;&lt;td style=&quot;background-color: #99ccff&quot;&gt;&lt;strong&gt;Programming languages &lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Languages are typically fixed to ladder logic, function block or structured text.&lt;/td&gt;&lt;td&gt;A PC is very flexible and powerful in what to use for programming. &lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot;&gt;&lt;td style=&quot;background-color: #99ccff&quot;&gt;&lt;strong&gt;Data management &lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Memory is limited in its ability to store a lot of data. &lt;/td&gt;&lt;td&gt;This is where the PC excels because of it&#39;s hard drive.  Any long term data storage, history and trending is best done on a PC. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;background-color: #99ccff&quot;&gt; &lt;strong&gt;Cost&lt;/strong&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;Just too hard to compare pricing with so many variables like I/O counts, hardware needed, programming software, etc. &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Hybrids of PLC/PCs are common now (e.g. &lt;a href=&quot;http://web4.automationdirect.com/adc/Overview/Catalog/PLC_Hardware/DirectLogic_205/WinPLC&quot;&gt;WinPLC&lt;/a&gt;).  This type of hardware tries to mix the two platforms using the strengths of both.  So the &lt;a class=&quot;glossary-term&quot; href=&quot;http://www.blogger.com/glossary/1#term157&quot;&gt;&lt;acronym title=&quot;The Central Processing Unit also refered to as the Processor.  The part of the PLC that runs and interprets the code.&quot;&gt;CPU&lt;/acronym&gt;&lt;/a&gt; might be able to run Windows &lt;a class=&quot;glossary-term&quot; href=&quot;http://www.blogger.com/glossary/1#term148&quot;&gt;&lt;acronym title=&quot;An approval given to a product that conforms to the standards of the European Common Union.&quot;&gt;CE&lt;/acronym&gt;&lt;/a&gt; or Linux in a rack that can accept common I/O modules.&lt;/p&gt;
&lt;h3&gt;Off the Shelf vs. Build Your Own
&lt;/h3&gt;
&lt;div class=&quot;image&quot;&gt;  &lt;img src=&quot;http://www.plcdev.com/files/plcdev/images/plc_custom.jpg&quot; alt=&quot;PLC custom board&quot; title=&quot;PLC custom board&quot; hspace=&quot;10&quot; width=&quot;125&quot; height=&quot;60&quot; align=&quot;left&quot; /&gt;&lt;/div&gt;
&lt;p&gt; For some manufacturers the choice these days is coming down to buy a PLC or make your own.  The benefits of PLCs have become so widely known that manufacturers looking to cut cost can engineer their own solutions and build them more cost effectively.  An example of this is the Divelbiss &quot;&lt;a href=&quot;http://www.divelbiss.com/products/plc_solutions/plconachip/plconchip.asp&quot;&gt;PLC on a Chip&lt;/a&gt;&quot; with the accompanying &lt;a href=&quot;http://www.divelbiss.com/products/software/EZ-Ladder/ezladder-overview.asp&quot;&gt;EZ LADDER programming software&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please visit us a&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;t &lt;/span&gt; &lt;a href=&quot;http://plc2u.com/index.php/plc-article/plc/plc-vs-other-type-of-control&quot;&gt;http://plc2u.com/index.php/plc-article/plc/plc-vs-other-type-of-control&lt;/a&gt;&lt;/p&gt;</description><link>http://plcontrol.blogspot.com/2009/04/plcs-versus-other-types-of-controls.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-3160829776918707925</guid><pubDate>Sat, 25 Apr 2009 04:19:00 +0000</pubDate><atom:updated>2009-11-11T10:40:21.392+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PLC</category><title>Repair PLC</title><description>&lt;div class=&quot;image&quot;&gt;&lt;img src=&quot;http://www.plcdev.com/files/plcdev/images/bad-card.jpg&quot; alt=&quot;PLC Repair Bad Card&quot; title=&quot;PLC Repair Bad Card&quot; hspace=&quot;10&quot; width=&quot;112&quot; height=&quot;212&quot; align=&quot;left&quot; /&gt;&lt;/div&gt;
&lt;p align=&quot;justify&quot;&gt;It’s inevitable.  Left on your board is an old PLC agenda with a chicken post-it agenda on it that artlessly says, “Bad Card”.  So you assay it out and abiding abundant article is mysteriously amiss with the cyberbanking audacity of this big-ticket little device.  Your aggregation may accept some action for abortion assay and backup parts, but, added generally than not, there’s a chiffonier or drawer about with a lot of bad parts, bashed with cryptic adhesive notes, that you don’t accept the affection to bandy out.  As those genitalia get added numerous, adored and cher it makes faculty to analysis into companies that specialize in PLC repair.
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please visit us at  &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal; &quot;&gt;&lt;a href=&quot;http://plc2u.com/index.php/plc-article/plc/repair-plc&quot;&gt;http://plc2u.com/index.php/plc-article/plc/repair-plc&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
&lt;/p&gt;
&lt;h3&gt;PLC Repair Companies&lt;/h3&gt;
&lt;p align=&quot;justify&quot;&gt;There are absolutely a few companies whose capital business focus is electronics adjustment including PLC boards.  Some of them are alike absolutely PLC accouterments accompanying but best additionally account drives, DCS accessories and added ascendancy devices.  Not alone will they adjustment PLC genitalia but they additionally accept a ample accumulation of surplus (new in box) and refurbished genitalia for replacement.  This abnormally becomes important in earlier bequest systems.  Alike admitting genitalia can be upwards of thirty years old they still abutment aliment on the brand of Allen Bradley PLC-2/PLC-3, Modicon 484/584, Siemens S5/S7 and Texas Instruments 500/505.  PLC adjustment companies action the experience, assets and the abstruse libraries of schematics and manuals that would contrarily be adamantine to appear by.
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
&lt;/p&gt;&lt;h3&gt;Am I a Candidate?&lt;/h3&gt;
&lt;p align=&quot;justify&quot;&gt;Basically any aggregation complex in PLCs can account from PLC repair.  Mid-size to ample factories are archetypal candidates but arrangement integrators and resellers additionally apprehend the advantages.  The charge for bound controls, minimum blow and acid costs accomplish PLC adjustment needful for all sorts of industries from packaging, aliment processing, pharmaceutical, automotive and so on.
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
If you assignment in an earlier bulb you apperceive how able-bodied a PLC can be alive year afterwards year.  You additionally apperceive as a artisan that your accessories will eventually fail.  It’s not a amount of “if” but “when” and that’s back you’ll charge adjustment services.  One of the problems is that the amount of advance is aloof not account it back it comes to factoring in removing the old system, programming the fresh one, installing hardware, alive out the bugs and acquirements how to use the fresh system.  Having a reliable adjustment account ensures that you can accumulate the arrangement active at basal cost.
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;How Much Can I Save?&lt;/h3&gt;
&lt;p align=&quot;justify&quot;&gt;First of all, it doesn’t amount annihilation to acquisition out how abundant the accident will be in dollars.  The majority of the PLC adjustment companies do not allegation annihilation for ciphering a adjustment cost.  You would alone be out the amount of shipping.
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
Second of all, there are no accuse for time and materials.  A archetypal adjustment account has a database of genitalia and their costs.  These companies accept been about for awhile and accept accumulated the ability of archetypal genitalia that go bad and accordingly accept a abject amount for repairs.
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
The basal band is that it should amount you no added the 50% of the amount of new.  Greg Carter of Radwell International says, “We alarm an account ‘Beyond Economical Repair’ aback the amount of genitalia and activity beat 45% of affairs new.  We try to accomplish adjustment a actual adorable advantage --- 73% of items are angry about in 5 canicule or less.”  Aback I asked Willy Williamson of Electrical South about a aphorism of deride he said, “Repairs should about not amount added again 50% of the amount of a fresh archetype of the aforementioned allotment number.  If you run into instances area you apperceive a fresh one can be bought for beneath than the quoted adjustment price, allocution to your sales representative.”
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
If a allotment is accounted as un-repairable, as a aback up, these companies action refurbished or surplus genitalia at cogent savings.  Bill Zalot, President of TEK Supply says, “In best cases if a assemblage is un-repairable for any reason, we are able to accommodate a backup for the chump at a amount alone hardly added than adjustment cost.”  These surplus or repaired genitalia are additionally acceptable avenues to accomplish abiding you accept a aback up on your shelf for emergency situations.
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
&lt;/p&gt;
&lt;h3&gt;What about Quality?&lt;/h3&gt;
Of advance acclimation a allotment may not be as reliable as affairs a cast fresh one. The added acceptable adjustment companies admitting booty a abundant accord of pride in their assignment and ensure a affection repair. A acceptable adjustment aggregation will action a assurance on the allotment or alike the accomplished PLC. It seems the about assurance runs for one year but they can differ. It’s important to pay absorption to the assurance and analyze it to what others are offering.


It’s additionally account allurement about their testing and analysis procedures. Make abiding they accept the adeptness to put the allotment in a arbor to absolutely exercise it afore sending it aback to you. How important is this? “We go to abundant lengths to absolutely exercise the PLCs we repair. We use analysis programs to absolutely exercise the memories and functions of the PLC. We absolutely don’t appetite to see it appear aback as a warranty. We additionally adopt to accumulate our barter advancing aback to us with added repairs, and acceptable affection is a above contributor to abiding relationships”, said Willy Williamson of Electrical South.</description><link>http://plcontrol.blogspot.com/2009/04/repair-plc.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-2360254971581087592</guid><pubDate>Sat, 25 Apr 2009 04:11:00 +0000</pubDate><atom:updated>2009-11-11T10:43:47.125+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PLC</category><title>Siemens SIMATIC Step 7 Programmer&#39;s Handbook</title><description>&lt;p align=&quot;justify&quot;&gt;This handbook is a accumulating of programming overviews, notes, helps, bluff bedding and whatever that can advice you (and me) affairs a Siemens PLC.
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
&lt;/p&gt;
&lt;ul class=&quot;menu&quot;&gt;&lt;li class=&quot;leaf&quot;&gt;&lt;a href=&quot;http://www.blogger.com/siemens_website_quick_links&quot;&gt;Siemens Website Quick Links&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;leaf&quot;&gt;&lt;a href=&quot;http://www.blogger.com/review_of_siemens_simatic_step_7_lite_programming_software&quot;&gt;Review of Siemens SIMATIC Step 7 Lite Programming Software&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;collapsed&quot;&gt;&lt;a href=&quot;http://www.blogger.com/step_7_connecting_downloading_and_uploading&quot;&gt;Step 7 Connecting, Downloading and Uploading&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;leaf&quot;&gt;&lt;a href=&quot;http://www.blogger.com/step_7_lite_professional_differences&quot;&gt;Step 7 Lite, Step 7 and Step 7 Professional Differences&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;leaf&quot;&gt;&lt;a href=&quot;http://www.blogger.com/the_case_of_the_missing_simatic_step_7_documentation&quot;&gt;The Case of the Missing SIMATIC Step 7 Documentation&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;leaf&quot;&gt;&lt;a href=&quot;http://www.blogger.com/s7_library_functions&quot;&gt;S7 Library Functions&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;leaf&quot;&gt;&lt;a href=&quot;http://www.blogger.com/siemens_technical_terms&quot;&gt;Siemens Technical Terms&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;leaf&quot;&gt;&lt;a href=&quot;http://www.blogger.com/step_7_elementary_data_types&quot;&gt;Step 7 Elementary Data Types&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;leaf&quot;&gt;&lt;a href=&quot;http://www.blogger.com/symbol_table_allowed_addresses_and_data_types&quot;&gt;Symbol Table Allowed Addresses and Data Types&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;leaf&quot;&gt;&lt;a href=&quot;http://www.blogger.com/statement_list_stl_cheat_sheets&quot;&gt;Statement List (STL) Cheat Sheets&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;leaf&quot;&gt;&lt;a href=&quot;http://www.blogger.com/connecting_ifix_scada_siemens_s7_using_tcpip&quot;&gt;Connecting IFIX SCADA to Siemens S7 using TCP/IP&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;page-links clear-block&quot;&gt;&lt;a href=&quot;http://www.blogger.com/siemens_website_quick_links&quot; class=&quot;page-next&quot; title=&quot;Go to next page&quot;&gt;Siemens Website Quick Links ›&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;page-links clear-block&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please visit us at&lt;/span&gt;  &lt;a href=&quot;http://plc2u.com/index.php/plc-article/plc/siemens-simatic-step-7-programmers-handbook&quot;&gt;http://plc2u.com/index.php/plc-article/plc/siemens-simatic-step-7-programmers-handbook&lt;/a&gt;&lt;/div&gt;</description><link>http://plcontrol.blogspot.com/2009/04/siemens-simatic-step-7-programmers.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-5424102766585578782</guid><pubDate>Sat, 25 Apr 2009 03:50:00 +0000</pubDate><atom:updated>2009-11-11T14:24:27.308+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PLC</category><title>User Defined Data Types (UDTs) and OOP</title><description>&lt;p align=&quot;justify&quot;&gt;For years now, Object Oriented Programming archetype (or OOP) has been a frequently acclimated programming practice, and has of advance begin its way into automated automation as well.
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
In the beggarly time, best PLC manufacturers accept begin agency to accomplish the programmers activity easier by introducing User Defined Types or UDTs. The name says it all; it is a ‘type’ that you, the programmer, can ascertain all by yourself. This agency that your programming ambiance will not alone accept the approved integers (INT) and Booleans (BOOL), but could additionally accept a ‘VALVE’ blazon or a ‘MOTOR’ type.
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
I can’t allege for added brands of PLC’s, but the Allen Bradley ControlLogix alternation of PLC’s, calm with RSLogix 5000 programming software, makes it actual accessible to assignment with these UDTs, and back the addition of RSLogix adaptation 17 beforehand this year, it is now alike accessible to adapt your UDTs while online with a active system.
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
The Controller Organizer has a binder alleged Data Types &gt; User-Defined with all the UDTs in the project.
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.plcdev.com/files/plcdev/images/RSL5000_UDT_001.gif&quot; width=&quot;203&quot; height=&quot;212&quot; alt=&quot;programmable logic controllers,plc,plc control,scada systems,hmi automation,modbus io,ethernet rs485,rs232 ethernet,industrial automation,as511,siemens,allen-bradley&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;I am of the assessment that every PLC affairs should await heavily on UDTs to advance readability, and if you are an OOP adept, it can be a abundant advice to adapt your classes.
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
Let’s go over the fundamentals of OOP for a little bit:
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Classes: Classes define the abstract characteristics and behavior of an object. For example, a simple ‘VALVE’ class would have the characteristics (or &lt;em&gt;attributes&lt;/em&gt;) that it can be open or closed (the &lt;strong&gt;things it can be&lt;/strong&gt;), and as far as behavior goes, it could have the &lt;em&gt;methods&lt;/em&gt; ‘to open’ and ‘to close’ (the &lt;strong&gt;things it can do&lt;/strong&gt;)&lt;/li&gt;
&lt;li&gt;Objects: An object is an instance (occurrence) of a class. In our example, there could be a Valve_001 and a Valve_002, which are both instances of the class ‘VALVE’, with the same attributes and methods.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Of course the definition of OOP goes a lot further than this. There is a very understandable explanation here: &lt;a name=&quot;Wikipedia OOP&quot; id=&quot;Wikipedia OOP&quot; href=&quot;http://en.wikipedia.org/wiki/Object-oriented_programming#Fundamental_concepts&quot;&gt;http://en.wikipedia.org/wiki/Object-oriented_programming#Fundamental_concepts&lt;/a&gt;  for those who would like to read more. For now, let’s leave it at this, and see how we can apply this to an industrial environment.&lt;/p&gt;
&lt;p&gt;If you look at a valve as an object in a typical industrial automation environment, you should note the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It has inputs and outputs that are specific for the object (proximity switches and solenoids).&lt;/li&gt;
&lt;li&gt;It can be either ‘open’ or ‘closed’&lt;/li&gt;
&lt;li&gt;You can tell it to go ‘open’ or ‘close’.&lt;/li&gt;
&lt;li&gt;It could have an alarm timer, that would tell us if the valve did not open or close in a given time period after a command.&lt;/li&gt;
&lt;li&gt;It might have interlocks, which allow the valve to open or close under certain conditions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p align=&quot;justify&quot;&gt;A UDT for this class, would fit all these backdrop and methods in one simple type. But, as always, we can apprehend added complications of the chic ‘VALVE’ during the ability of a project. To be as adjustable as possible, I awful acclaim the convenance of nesting UDT’s, which will become bright forth the way.
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
Let’s alpha with defining our class, and accumulate in apperception that it will accept to be calmly attainable for aliment bodies or added programmers.
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
If we alpha at the I/O end, the best adjustment is to actualize sub-classes alleged VALVE_IN and VALVE_OUT, which will accommodate our I/O.
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
The afterward archetype uses RSLogix5000 V16. First, actualize the sub-classes. From the File card baddest New Component &gt; Tag. The afterward chat box appears to actualize and adapt the associates of the UDT.
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.plcdev.com/files/plcdev/images/RSL5000_UDT_002.png&quot; width=&quot;500&quot; height=&quot;338&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.plcdev.com/files/plcdev/images/RSL5000_UDT_003.png&quot; width=&quot;500&quot; height=&quot;338&quot; alt=&quot;programmable logic controllers,plc,plc control,scada systems,hmi automation,modbus io,ethernet rs485,rs232 ethernet,industrial automation,as511,siemens,allen-bradley&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;As you see, I am accustomed to booty the types I aloof created as the abstracts blazon in this UDT. The absolute advantage of this affection will become bright if you actualize a article alleged Valve001 of the blazon VALVE, and attending at the article in the ‘monitor tags’ window:
&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.plcdev.com/files/plcdev/images/RSL5000_UDT_005.png&quot; width=&quot;509&quot; height=&quot;208&quot; alt=&quot;programmable logic controllers,plc,plc control,scada systems,hmi automation,modbus io,ethernet rs485,rs232 ethernet,industrial automation,as511,siemens,allen-bradley&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Wow! Just by creating a new tag of the type VALVE, it gets all these I/O points right away, and referenced in the program:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.plcdev.com/files/plcdev/images/RSL5000_UDT_006.png&quot; width=&quot;472&quot; height=&quot;102&quot; alt=&quot;programmable logic controllers,plc,plc control,scada systems,hmi automation,modbus io,ethernet rs485,rs232 ethernet,industrial automation,as511,siemens,allen-bradley&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Of course, going further with this concept, everything for a valve can be included in one object. Allow me to skip some steps, and show you a possible final result:&lt;/p&gt;
&lt;p&gt;The ‘VALVE’ class is now contained in a UDT called VALVE, which looks like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.plcdev.com/files/plcdev/images/RSL5000_UDT_007.png&quot; width=&quot;520&quot; height=&quot;663&quot; alt=&quot;programmable logic controllers,plc,plc control,scada systems,hmi automation,modbus io,ethernet rs485,rs232 ethernet,industrial automation,as511,siemens,allen-bradley&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;As you see, the class VALVE now consists of the sub-classes VALVE_IN, VALVE_OUT, VALVE_TIMER, VALVE_STATUS, etc.&lt;/p&gt;
&lt;p&gt;And an instance of this class, the object Valve001, would look like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.plcdev.com/files/plcdev/images/RSL5000_UDT_008.png&quot; width=&quot;475&quot; height=&quot;488&quot; alt=&quot;programmable logic controllers,plc,plc control,scada systems,hmi automation,modbus io,ethernet rs485,rs232 ethernet,industrial automation,as511,siemens,allen-bradley&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;While adding stuff to my class, I did not have to re-create the object Valve001. RSLogix updated it for me, so all the properties and methods are available in my program.&lt;/p&gt;
&lt;p&gt;Now, let’s say you’re working on this project with a couple hundred valves, and the customer decides to go with a different type of valve, that also has an analog input, that tells us the exact position of the valve. All we have to do is modify our VALVE_IN sub-class to add this to every instance of the type VALVE:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.plcdev.com/files/plcdev/images/RSL5000_UDT_009.png&quot; width=&quot;517&quot; height=&quot;320&quot; alt=&quot;programmable logic controllers,plc,plc control,scada systems,hmi automation,modbus io,ethernet rs485,rs232 ethernet,industrial automation,as511,siemens,allen-bradley&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Of course, you would still have to write code to tell your program what to do with that information, but that is also the reason why PLC programmers still have a job.&lt;/p&gt;
&lt;p&gt;For somebody that is not familiar with your program, it might be confusing to look at all your UDT’s. We just made eight UDT’s for one simple valve class! But remember, you only have to do this during the design phase. Once you have a solid design for all your classes (and made sure their names are self-explanatory), you will never have to look at your UDT folder again, and creating a new instance will be a breeze.&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please visit us at&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 102, 255);&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://plc2u.com/index.php/plc-article/plc/user-defined-data-types-udts-and-oop&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 102, 255);&quot;&gt;http://plc2u.com/index.php/plc-article/plc/user-defined-data-types-udts-and-oop&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</description><link>http://plcontrol.blogspot.com/2009/04/user-defined-data-types-udts-and-oop.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-2410851282640553020</guid><pubDate>Sun, 05 Apr 2009 07:54:00 +0000</pubDate><atom:updated>2009-11-11T14:36:11.370+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PLC</category><title>How to Symbol Program with Allen Bradley RS Logix 500- Part III</title><description>&lt;p&gt;NFPA 79 2002 Edition reference
&lt;/p&gt;&lt;p&gt;Table E.1 Device and Component Designations

ABE Alarm or Annunciator Bell

ABU Alarm or Annunciator Buzzer

AH Alarm or Annunciator Horn

AM Ammeter

AT Autotransformer

CAP Capacitor

CB Circuit Breaker

CI Circuit Interrupter

CNC Computerized Numerical Controller

CON Contractor

COs Cable-Operated (Emergency) Switch

CPU Central Processing Unit

CR Control Relay

CRA Control Relay, Automatic

CRH Control Relay, Manual

CRL Control Relay, Latch

CRM Control Relay, Master

CRT Cathode Ray Tube, Monitor or Video Display Unit

CRU Control Relay, Unlatch

CS Cam Switch

CT Current Transformer

CTR Counter

D Diode

DISC Disconnect Switch

DISP Display

DR Drive

EMO Emergency (Machine) Off Device

END Encoder

ESTOP Emergency Stop

FLD Field

FLS Flow Switch

FS Float Switch

FTS Foot Switch

FU Fuse

GEN Generator

GRD, GND Ground

GUI Graphical User Interface

HM Hour Meter

HTR Heating Element

IC Integrated Circuit

INST Instrument

IOL Instantaneous Overload

I/O Input/Output Device

L Inductor

LED Light Emitting Diode

LS Limit Switch

LT Pilot Light

LVDT Linear Variable Differential Transformer

M Motor Starter

MD Motion Detector

MF Motor Starter - Forward

MG Motor Generator

MR Motor Starter - Reverse

MTR Motor

OIT Operator Interface Terminal

OL Overload Relay

PB Pushbutton

PBL Pushbutton, Illuminated

PC Personal Computer

PCB Printed Circuit Board

PEC Photoelectric Device

PL Plug

PLC Programmable Logic Controller

POT Potentiometer

PRS Proximity Switch

PS Pressure Switch

PWS Power Supply

Q Transistor

QTM Thermistor

REC Rectifier

RECP Receptacle

RES Resistor

RH Rheostat

S Switch

SCR Silicon Controlled Rectifier

SOL Solenoid

SNSR Sensor

SS Selector Switch

SSL Selector Switch, Illuminated

SSR Solid State Relay

ST Saturable Transformer

SUP Suppressor

SYN Synchro or Resolver

T Transformer

TACH Tachometer Generator

TAS Temperature-Actuated Switch

TB Terminal Block

T/C Thermocouple

TR Timer Relay

TSDR Transducer

TWS Thumbwheel Switch

V Electronic Tube

VAR Varistor

VM Voltmeter

VR Voltage Regulator

VS Vacuum Switch

WLT Worklight

WM Wattmeter

X Reactor

ZSS Zero Speed Switch&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please visit us at&lt;/span&gt;  &lt;a href=&quot;http://plc2u.com/index.php/plc-article/plc/how-to-symbol-program-with-allen-bradley-rs-logix-500&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 102, 255);&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;http://plc2u.com/index.php/plc-article/plc/how-to-symbol-program-with-allen-bradley-rs-logix-500&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</description><link>http://plcontrol.blogspot.com/2009/04/how-to-symbol-program-with-allen_7401.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-4398338155066494241</guid><pubDate>Sun, 05 Apr 2009 07:46:00 +0000</pubDate><atom:updated>2009-04-05T14:53:36.709+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PLC</category><title>How to Symbol Program with Allen Bradley RS Logix 500-Part II</title><description>&lt;p&gt;
Your symbols will start to pop up in a quick pick list. Arrow down to find your proximity switch if you can&#39;t remember it, or better yet keep typing it all out and press enter when done. Viola! You&#39;ve just typed your first symbol program.
&lt;p&gt;
&lt;img alt=&quot;programmable logic control,plc,plcs,plc control,automation,scada,hmi,modbus,4-20 mA,ABB,Siemens&quot; src=&quot;http://www.mrplc.com/kb/Image/Image/ce-ab-symbols5.jpg&quot; /&gt;
&lt;p&gt;
Other symbols programming tips I can offer is a grouping of symbol names such as STATION 1 could mean S1. If you are state logic programming, you might remember a station more so by its function. Let&#39;s say you have a station on some automation that presses a part assembly together. I would call all the internal bits by &amp;quot;PRESS&amp;quot; to indicate all these bits that begin with PRESS have the same functionally with my press station.
&lt;p&gt;
&lt;img alt=&quot;programmable logic control,plc,plcs,plc control,automation,scada,hmi,modbus,4-20 mA,ABB,Siemens&quot; src=&quot;http://www.mrplc.com/kb/Image/Image/ce-ab-symbols6.jpg&quot; /&gt;
&lt;p&gt;
The fun doesn&#39;t stop there. Can&#39;t remember which control relay enables the fast speed index? Just type CR to bring up the list of all your control relays.
&lt;p&gt;
&lt;img alt=&quot;programmable logic control,plc,plcs,plc control,automation,scada,hmi,modbus,4-20 mA,ABB,Siemens&quot; src=&quot;http://www.mrplc.com/kb/Image/Image/ce-ab-symbols7.jpg&quot; /&gt;
&lt;p&gt;
How about when you are creating bits that transfer information from your Panel View to your PLC? You could also group all those symbol names together with a PV.
&lt;p&gt;
&lt;img alt=&quot;programmable logic control,plc,plcs,plc control,automation,scada,hmi,modbus,4-20 mA,ABB,Siemens&quot; src=&quot;http://www.mrplc.com/kb/Image/Image/ce-ab-symbols8.jpg&quot; /&gt;
I hope you can see based on the samples shown that trying to memorize your program by the address names is pretty tough. Giving each of your symbols a name and you should be able to program faster than before. Group your symbols names to speed up symbol searches. Come up with your own &amp;quot;short hand&amp;quot; that you can remember easily or use the NPFA chart for some ideas.</description><link>http://plcontrol.blogspot.com/2009/04/how-to-symbol-program-with-allen_05.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-6053766496049607613</guid><pubDate>Sun, 05 Apr 2009 07:03:00 +0000</pubDate><atom:updated>2009-04-05T14:29:14.423+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PLC</category><title>How to Symbol Program with Allen Bradley RS Logix 500 - Part I</title><description>&lt;p&gt;Symbols are used in RS Logix to identify a bit or memory area of a &lt;strong&gt;PLC&lt;/strong&gt; by a name that you can more easily remember. See if you can see the symbols in this screen shot:
&lt;p&gt;
&lt;img alt=&quot;programmable logic control,plc,plcs,plc control,automation,scada,hmi,modbus,4-20 mA,ABB,Siemens&quot; src=&quot;http://www.mrplc.com/kb/Image/Image/ce-ab-symbols1.jpg&quot; /&gt;
&lt;p&gt;
If you haven&#39;t found them by now, they are the descriptions in GREEN.
&lt;p&gt;
AUTO_MODE, RUNNING, POWER_ON, ALL_HOME, INDEX_ON_STAT, etc...
&lt;p&gt;
RS Logix makes it extremely easy to use symbols in your program. When you enter a new instruction with a question prompt, you can start typing your symbol name and a pop out window will start narrowing your search down to the symbol you have already created in the database. Notice I said &quot;already created&quot;. That means it would be a good idea if you made up all your symbols ahead of time using the spread sheet template downloadable &lt;a href=&quot;http://forums.mrplc.com/index.php?download=131&quot;&gt;here&lt;/a&gt;
&lt;p&gt;
&lt;img alt=&quot;programmable logic control,plc,plcs,plc control,automation,scada,hmi,modbus,4-20 mA,ABB,Siemens&quot; src=&quot;http://www.mrplc.com/kb/Image/Image/ce-ab-symbols2.jpg&quot; /&gt;
&lt;p&gt;
That&#39;s ok that you can&#39;t do them all before you start. Just keep creating them on the fly with terms or &quot;short hand&quot; that you can remember. Here are some tips for common short hand naming that I use myself.
&lt;p&gt;
When I am programming a hardware device such as a proximity switch or a photoeye input, I use the NFPA&#39;s Table E.1 Device and Component Designations as guidance to name all my hardware I/O. Below is a list of codes at the end of this article. This bascially means if I have a proximity switch connected to I:1.0/14 I could give it the symbol name
&lt;p&gt;
PRS_TRANSFER_EXT
&lt;p&gt;
&lt;img alt=&quot;programmable logic control,plc,plcs,plc control,automation,scada,hmi,modbus,4-20 mA,ABB,Siemens&quot; src=&quot;http://www.mrplc.com/kb/Image/Image/ce-ab-symbols3.jpg&quot; /&gt;
&lt;p&gt;
PRS comes from the NFPA table which means &quot;Proximity Switch
TRANSFER means that this prox is connected to a transfer device of some sort
EXT means that the direction the prox is detecting is
You aren&#39;t required to use the NFPA&#39;s component designation, but this will give you some bases to start if you need ideas. More recently I have tried to trim my own symbols to the first two letters so I can drill down my symbol list very quickly in RS Logix. I&#39;ve changed my own personal preference to PX for Proximity Switch. So if I enter an instruction in a rung, I can just type two letters &quot;PX&quot; at the question mark and low an behold EVERY SINGLE proximity switch on my automation system will come up in my list to choose from.
&lt;p&gt;
&lt;img alt=&quot;&quot; src=&quot;http://www.mrplc.com/kb/Image/Image/ce-ab-symbols4.jpg&quot; /&gt;&lt;/p&gt;</description><link>http://plcontrol.blogspot.com/2009/04/how-to-symbol-program-with-allen.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-4853090278395165784</guid><pubDate>Sun, 05 Apr 2009 00:02:00 +0000</pubDate><atom:updated>2009-04-05T07:15:32.792+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Interfacing</category><title>In View 2706-P42C w/Ethernet IP ASCII Example Code</title><description>&lt;table cellspacing=&quot;&#39;1&#39;&quot; cellpadding=&quot;&#39;3&#39;&quot; width=&quot;&#39;100%&#39;&quot; align=&quot;&#39;center&#39;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;&#39;formsubtitle&#39;&quot; align=&quot;&#39;center&#39;&quot; width=&quot;&#39;60%&#39;&quot;&gt;File Information&lt;/td&gt;&lt;td class=&quot;&#39;formsubtitle&#39;&quot; align=&quot;&#39;center&#39;&quot; width=&quot;&#39;40%&#39;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;&#39;row2&#39;&quot; valign=&quot;&#39;top&#39;&quot; align=&quot;&#39;center&#39;&quot; width=&quot;&#39;60%&#39;&quot;&gt;&lt;div class=&quot;&#39;borderwrap&#39;&quot;&gt;&lt;table cellspacing=&quot;&#39;1&#39;&quot; cellpadding=&quot;&#39;0&#39;&quot; width=&quot;&#39;100%&#39;&quot; align=&quot;&#39;center&#39;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;&#39;row2&#39;&quot; width=&quot;&#39;30%&#39;&quot;&gt;&lt;b&gt;Name:&lt;/b&gt;&lt;/td&gt;&lt;td class=&quot;&#39;row2&#39;&quot; width=&quot;&#39;70%&#39;&quot;&gt;InView 2706-P42C w/Ethernet IP ASCII Example Code&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;&#39;row2&#39;&quot; width=&quot;&#39;30%&#39;&quot;&gt;&lt;b&gt;Author:&lt;/b&gt;&lt;/td&gt;&lt;td class=&quot;&#39;row2&#39;&quot; width=&quot;&#39;70%&#39;&quot;&gt;&lt;a href=&quot;http://www.blogger.com/&quot; width=&quot;&#39;30%&#39;&quot; showuser=&quot;&quot;&gt;chakorules&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;&quot;&gt;&lt;b&gt;Submitted By:&lt;/b&gt;&lt;/td&gt;&lt;td class=&quot;&#39;row2&#39;&quot; width=&quot;&#39;70%&#39;&quot;&gt;&lt;a href=&quot;http://www.blogger.com/&quot; width=&quot;&#39;30%&#39;&quot; showuser=&quot;&quot;&gt;chakorules&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;&quot;&gt;&lt;b&gt;Submitted:&lt;/b&gt;&lt;/td&gt;&lt;td class=&quot;&#39;row2&#39;&quot; width=&quot;&#39;70%&#39;&quot;&gt;Wed, Mar 18 2009 10:40 am &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;&#39;row2&#39;&quot; width=&quot;&#39;30%&#39;&quot;&gt;&lt;b&gt;Views:&lt;/b&gt;&lt;/td&gt;&lt;td class=&quot;&#39;row2&#39;&quot; width=&quot;&#39;70%&#39;&quot;&gt;218&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;&#39;row2&#39;&quot; width=&quot;&#39;30%&#39;&quot;&gt;&lt;b&gt;Downloads:&lt;/b&gt;&lt;/td&gt;&lt;td class=&quot;&#39;row2&#39;&quot; width=&quot;&#39;70%&#39;&quot;&gt;60&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;a href=&quot;http://forums.mrplc.com/index.php?download=846&quot;&gt;Download File&lt;/a&gt;&lt;/p&gt;</description><link>http://plcontrol.blogspot.com/2009/04/in-view-2706-p42c-wethernet-ip-ascii.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-172672624862914452</guid><pubDate>Thu, 26 Mar 2009 04:27:00 +0000</pubDate><atom:updated>2009-11-11T14:42:32.279+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Interfacing</category><title>Serial UART</title><description>&lt;h1 id=&quot;intr&quot;&gt;Serial UART, an introduction&lt;/h1&gt;

&lt;p&gt;

An &lt;strong&gt;UART&lt;/strong&gt;, &lt;em&gt;universal asynchronous receiver / transmitter&lt;/em&gt; is responsible for
performing the main task in serial communications with computers. The device
changes incomming parallel information to serial data which can be sent
on a communication line. A second &lt;strong&gt;UART&lt;/strong&gt; can be used to receive the information.
The &lt;strong&gt;UART&lt;/strong&gt; performs all the tasks, timing, parity checking, etc. needed for
the communication. The only extra devices attached are line driver chips
capable of transforming the &lt;strong&gt;TTL&lt;/strong&gt; level signals to line voltages and vice versa.

&lt;/p&gt;&lt;p&gt;

To use the &lt;strong&gt;UART&lt;/strong&gt; in different environments, registers are accessible to
set or review the communication parameters. Setable parameters are for
example the communication speed, the type of parity check, and
the way incomming information is signalled to the running software.

&lt;/p&gt;&lt;p&gt;

&lt;/p&gt;&lt;h2 id=&quot;type&quot;&gt;Serial UART types&lt;/h2&gt;

&lt;p&gt;

Serial communication on PC compatibles started with the &lt;strong&gt;8250&lt;/strong&gt; &lt;strong&gt;UART&lt;/strong&gt; in the
&lt;strong&gt;IBM XT&lt;/strong&gt;. In the years after, new family members were introduced like the
&lt;strong&gt;8250A&lt;/strong&gt; and &lt;strong&gt;8250B&lt;/strong&gt; revisions and the
&lt;strong&gt;16450&lt;/strong&gt;. The last one was first implemented
in the &lt;strong&gt;AT&lt;/strong&gt;. The higher bus speed in this computer could not be reached
by the &lt;strong&gt;8250&lt;/strong&gt; series.
The differences between these first &lt;strong&gt;UART&lt;/strong&gt; series were rather minor.
The most important property changed with each new release was the
maximum allowed speed at the processor bus side.

&lt;/p&gt;&lt;p&gt;

The &lt;strong&gt;16450&lt;/strong&gt; was capable of handling a communication speed of 38.4 kbs without
problems. The demand for higher speeds led to the development of newer
series which would be able to release the main processor from some of
its tasks. The main problem with the original series was the need to perform
a software action for each single byte to transmit or receive. To overcome
this problem, the &lt;strong&gt;16550&lt;/strong&gt; was released which contained two on-board &lt;em&gt;FIFO
buffers&lt;/em&gt;, each capable of storing 16 bytes. One buffer for incomming, and
one buffer for outgoing bytes.

&lt;/p&gt;&lt;p&gt;

A marvellous idea, but it didn&#39;t work out that way. The &lt;strong&gt;16550&lt;/strong&gt; chip contained
a firmware bug which made it impossible to use the buffers. The &lt;strong&gt;16550A&lt;/strong&gt;
which appeared soon after was the first &lt;strong&gt;UART&lt;/strong&gt; which was able to use its
FIFO buffers. This made it possible to increase maximum reliable communication
speeds to 115.2 kbs. This speed was necessary to use effectively modems with
on-board compression. A further enhancment introduced with the &lt;strong&gt;16550&lt;/strong&gt;
was the ablity to use &lt;strong&gt;DMA&lt;/strong&gt;, &lt;em&gt;direct memory access&lt;/em&gt; for the data transfer.
Two pins were redefined for this purpose. &lt;strong&gt;DMA&lt;/strong&gt; transfer is not used with
most applications. Only special serial I/O boards with a high number of
ports contain sometimes the necessary extra circuitry to make this
feature work.

&lt;/p&gt;&lt;p&gt;

The &lt;strong&gt;16550A&lt;/strong&gt; is the most common &lt;strong&gt;UART&lt;/strong&gt; at this moment. Newer versions are
under development, including the &lt;strong&gt;16650&lt;/strong&gt; which contains two 32 byte FIFO&#39;s
and on board support for software flow control. Texas Instruments
is developing the &lt;strong&gt;16750&lt;/strong&gt; which contains 64 byte FIFO&#39;s.

&lt;/p&gt;&lt;p&gt;

&lt;/p&gt;&lt;h2 id=&quot;regs&quot;&gt;Registers&lt;/h2&gt;

&lt;p&gt;

Eight I/O bytes are used for each &lt;strong&gt;UART&lt;/strong&gt; to access its registers.
The following table shows, where each register can be found. The base
address used in the table is the lowest I/O port number assigned. The switch
bit &lt;strong&gt;DLAB&lt;/strong&gt; can be found in the line control register &lt;strong&gt;LCR&lt;/strong&gt; as bit 7
at I/O address base + 3.

&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;center&gt;












&lt;table class=&quot;pinout&quot;&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;caption&gt;UART register to port conversion table&lt;/caption&gt;&lt;tbody&gt;  &lt;tr&gt;&lt;th&gt; &lt;/th&gt;&lt;th colspan=&quot;2&quot;&gt;DLAB = 0&lt;/th&gt;&lt;th colspan=&quot;2&quot;&gt;DLAB = 1&lt;/th&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;th&gt;I/O port&lt;/th&gt;&lt;th&gt;Read&lt;/th&gt;&lt;th&gt;Write&lt;/th&gt;&lt;th&gt;Read&lt;/th&gt;&lt;th&gt;Write&lt;/th&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td&gt;base&lt;/td&gt;&lt;td&gt;&lt;b&gt;RBR&lt;/b&gt;
receiver
buffer&lt;/td&gt;&lt;td&gt;&lt;b&gt;THR&lt;/b&gt;
transmitter
holding&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;b&gt;DLL&lt;/b&gt; divisor latch LSB&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td&gt;base + 1&lt;/td&gt;&lt;td&gt;&lt;b&gt;IER&lt;/b&gt;
interrupt
enable&lt;/td&gt;&lt;td&gt;&lt;b&gt;IER&lt;/b&gt;
interrupt
enable&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;b&gt;DLM&lt;/b&gt; divisor latch MSB&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td width=&quot;20%&quot;&gt;base + 2&lt;/td&gt;&lt;td width=&quot;20%&quot;&gt;&lt;b&gt;IIR&lt;/b&gt;
interrupt
identification&lt;/td&gt;&lt;td width=&quot;20%&quot;&gt;&lt;b&gt;FCR&lt;/b&gt;
FIFO
control&lt;/td&gt;&lt;td width=&quot;20%&quot;&gt;&lt;b&gt;IIR&lt;/b&gt;
interrupt
identification&lt;/td&gt;&lt;td width=&quot;20%&quot;&gt;&lt;b&gt;FCR&lt;/b&gt;
FIFO
control&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td&gt;base + 3&lt;/td&gt;&lt;td colspan=&quot;4&quot;&gt;&lt;b&gt;LCR&lt;/b&gt; line control&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td&gt;base + 4&lt;/td&gt;&lt;td colspan=&quot;4&quot;&gt;&lt;b&gt;MCR&lt;/b&gt; modem control&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td&gt;base + 5&lt;/td&gt;&lt;td&gt;&lt;b&gt;LSR&lt;/b&gt;
line
status&lt;/td&gt;&lt;td&gt;–
factory
test&lt;/td&gt;&lt;td&gt;&lt;b&gt;LSR&lt;/b&gt;
line
status&lt;/td&gt;&lt;td&gt;–
factory
test&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td&gt;base + 6&lt;/td&gt;&lt;td&gt;&lt;b&gt;MSR&lt;/b&gt;
modem
status&lt;/td&gt;&lt;td&gt;–
not
used&lt;/td&gt;&lt;td&gt;&lt;b&gt;MSR&lt;/b&gt;
modem
status&lt;/td&gt;&lt;td&gt;–
not
used&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td&gt;base + 7&lt;/td&gt;&lt;td colspan=&quot;4&quot;&gt;&lt;b&gt;SCR&lt;/b&gt; scratch&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;/center&gt;

&lt;p&gt;

&lt;/p&gt;&lt;dl&gt;
&lt;dt&gt;Available registers
&lt;/dt&gt;&lt;dd&gt;&lt;a href=&quot;http://www.blogger.com/comm/info/serial-uart.html#RBR&quot;&gt;RBR, receiver buffer register&lt;/a&gt;
&lt;/dd&gt;&lt;dd&gt;&lt;a href=&quot;http://www.blogger.com/comm/info/serial-uart.html#THR&quot;&gt;THR, transmitter holding register&lt;/a&gt;
&lt;/dd&gt;&lt;dd&gt;&lt;a href=&quot;http://www.blogger.com/comm/info/serial-uart.html#IER&quot;&gt;IER, interrupt enable register&lt;/a&gt;
&lt;/dd&gt;&lt;dd&gt;&lt;a href=&quot;http://www.blogger.com/comm/info/serial-uart.html#IIR&quot;&gt;IIR, interrupt identification register&lt;/a&gt;
&lt;/dd&gt;&lt;dd&gt;&lt;a href=&quot;http://www.blogger.com/comm/info/serial-uart.html#FCR&quot;&gt;FCR, FIFO control register&lt;/a&gt;
&lt;/dd&gt;&lt;dd&gt;&lt;a href=&quot;http://www.blogger.com/comm/info/serial-uart.html#LCR&quot;&gt;LCR, line control register&lt;/a&gt;
&lt;/dd&gt;&lt;dd&gt;&lt;a href=&quot;http://www.blogger.com/comm/info/serial-uart.html#MCR&quot;&gt;MCR, modem control register&lt;/a&gt;
&lt;/dd&gt;&lt;dd&gt;&lt;a href=&quot;http://www.blogger.com/comm/info/serial-uart.html#LSR&quot;&gt;LSR, line status register&lt;/a&gt;
&lt;/dd&gt;&lt;dd&gt;&lt;a href=&quot;http://www.blogger.com/comm/info/serial-uart.html#MSR&quot;&gt;MSR, modem status register&lt;/a&gt;
&lt;/dd&gt;&lt;dd&gt;&lt;a href=&quot;http://www.blogger.com/comm/info/serial-uart.html#SCR&quot;&gt;SCR, scratch register&lt;/a&gt;
&lt;/dd&gt;&lt;dd&gt;&lt;a href=&quot;http://www.blogger.com/comm/info/serial-uart.html#DLX&quot;&gt;DLL, divisor latch LSB&lt;/a&gt;
&lt;/dd&gt;&lt;dd&gt;&lt;a href=&quot;http://www.blogger.com/comm/info/serial-uart.html#DLX&quot;&gt;DLM, divisor latch MSB&lt;/a&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;

The communication between the processor and the &lt;strong&gt;UART&lt;/strong&gt; is completely controlled
by twelve registers. These registers can be read or written to check and
change the behaviour of the communication device. Each register is
eight bits wide. On a PC compatible, the registers are accessible in the
&lt;a href=&quot;http://www.blogger.com/comm/info/RS-232_io.html#intr&quot;&gt;I/O address area&lt;/a&gt;. The function of each
register will be discussed here in detail.

&lt;/p&gt;&lt;p&gt;

&lt;/p&gt;&lt;h3 id=&quot;RBR&quot;&gt;RBR : Receiver buffer register (RO)&lt;/h3&gt;

&lt;p&gt;

The &lt;strong&gt;RBR&lt;/strong&gt;, &lt;em&gt;receiver buffer register&lt;/em&gt; contains the byte received if no FIFO is used,
or the oldest unread byte with FIFO&#39;s. If FIFO buffering is used, each new
read action of the register will return the next byte, until no more
bytes are present. Bit 0 in the &lt;strong&gt;LSR&lt;/strong&gt; &lt;em&gt;line status register&lt;/em&gt; can be used to
check if all received bytes have been read. This bit wil change to zero
if no more bytes are present.

&lt;/p&gt;&lt;p&gt;

&lt;/p&gt;&lt;h3 id=&quot;THR&quot;&gt;THR : Transmitter holding register (WO)&lt;/h3&gt;

&lt;p&gt;

The &lt;strong&gt;THR&lt;/strong&gt;, &lt;em&gt;transmitter holding register&lt;/em&gt; is used to buffer outgoing characters.
If no FIFO buffering is used, only one character can be stored. Otherwise
the amount of characters depends on the type of &lt;strong&gt;UART&lt;/strong&gt;. Bit 5 in the
&lt;strong&gt;LSR&lt;/strong&gt;, &lt;em&gt;line
status register&lt;/em&gt; can be used to check if new information must be written
to &lt;strong&gt;THR&lt;/strong&gt;. The value 1 indicates that the
register is empty. If FIFO buffering is used, more than one character
can be written to the transmitter holding register when the bit signals
an empty state. There is no indication of the amount of bytes currently
present in the transmitter FIFO.

&lt;/p&gt;&lt;p&gt;

The &lt;em&gt;transmitter holding register&lt;/em&gt; is not used to transfer the data directly.
The byte is first transferred to a shift register where the information
is broken in single bits which are sent one by one.

&lt;/p&gt;&lt;p&gt;

&lt;/p&gt;&lt;h3 id=&quot;IER&quot;&gt;IER : Interrupt enable register (R/W)&lt;/h3&gt;

&lt;p&gt;

The smartest way to perform serial communications on a PC is using
interrupt driven routines. In that configuration, it is not necessary
to poll the registers of the &lt;strong&gt;UART&lt;/strong&gt; periodically for state changes. The &lt;strong&gt;UART&lt;/strong&gt;
will signal each change by generating a processor interrupt. A software
routine must be present to handle the interrupt and to check what
state change was responsible for it.

&lt;/p&gt;&lt;p&gt;

Interrupts are not generated, unless the &lt;strong&gt;UART&lt;/strong&gt; is told to do so. This
is done by setting bits in the
&lt;strong&gt;IER&lt;/strong&gt;, &lt;em&gt;interrupt enable register&lt;/em&gt;. A bit value 1
indicates, that an interrupt may take place.

&lt;/p&gt;&lt;p&gt;

&lt;/p&gt;&lt;center&gt;











&lt;table class=&quot;pinout&quot;&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;caption&gt;IER : Interrupt enable register&lt;/caption&gt;&lt;tbody&gt;  &lt;tr align=&quot;center&quot;&gt;&lt;th&gt;Bit&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;  &lt;tr class=&quot;odd&quot;&gt;&lt;td align=&quot;center&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Received data available&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;even&quot;&gt;&lt;td align=&quot;center&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Transmitter holding register empty&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;odd&quot;&gt;&lt;td align=&quot;center&quot;&gt;2&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Receiver line status register change&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;even&quot;&gt;&lt;td align=&quot;center&quot;&gt;3&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Modem status register change&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;odd&quot;&gt;&lt;td align=&quot;center&quot;&gt;4&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Sleep mode (16750 only)&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;even&quot;&gt;&lt;td align=&quot;center&quot;&gt;5&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Low power mode (16750 only)&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;odd&quot;&gt;&lt;td align=&quot;center&quot;&gt;6&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;reserved&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;even&quot;&gt;&lt;td align=&quot;center&quot;&gt;7&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;reserved&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;/center&gt;
&lt;p&gt;

&lt;/p&gt;&lt;h3 id=&quot;IIR&quot;&gt;IIR : Interrupt identification register (RO)&lt;/h3&gt;

&lt;p&gt;

An &lt;strong&gt;UART&lt;/strong&gt; is capable of generating a processor interrupt when a state
change on the communication device occurs. One interrupt signal is used
to call attention. This means, that additional information is needed
for the software before the necessary actions can be performed. The
&lt;strong&gt;IIR&lt;/strong&gt;, &lt;em&gt;interrupt identification register&lt;/em&gt; is helpful in this situation. Its
bits show the current state of the &lt;strong&gt;UART&lt;/strong&gt; and which state change caused
the interrupt to occur.
&lt;/p&gt;&lt;p&gt;

&lt;/p&gt;&lt;center&gt;


















&lt;table class=&quot;pinout&quot;&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;caption&gt;IIR : Interrupt identification register&lt;/caption&gt;&lt;tbody&gt;  &lt;tr align=&quot;center&quot;&gt;&lt;th&gt;Bit&lt;/th&gt;&lt;th colspan=&quot;6&quot;&gt;Value&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;th&gt;Reset by&lt;/th&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td rowspan=&quot;2&quot; valign=&quot;middle&quot;&gt;0&lt;/td&gt;&lt;td colspan=&quot;6&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Interrupt pending&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;–&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td colspan=&quot;6&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;No interrupt pending&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;–&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td rowspan=&quot;6&quot; valign=&quot;middle&quot;&gt;1,2,3&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;Bit 3&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;Bit 2&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;Bit 1&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Modem status change&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;MSR read&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Transmitter holding register empty&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;IIR read or THR write&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;1&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Received data available&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;RBR read&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;1&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Line status change&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;LSR read&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td colspan=&quot;2&quot;&gt;1&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;1&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Character timeout (16550)&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;RBR read&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td valign=&quot;middle&quot;&gt;4&lt;/td&gt;&lt;td colspan=&quot;6&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Reserved&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;–&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td rowspan=&quot;2&quot; valign=&quot;middle&quot;&gt;5&lt;/td&gt;&lt;td colspan=&quot;6&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Reserved (8250, 16450, 16550)&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;–&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td colspan=&quot;6&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;64 byte FIFO enabled (16750)&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;–&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td rowspan=&quot;4&quot; valign=&quot;middle&quot;&gt;6,7&lt;/td&gt;&lt;td colspan=&quot;3&quot;&gt;Bit 7&lt;/td&gt;&lt;td colspan=&quot;3&quot;&gt;Bit 6&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td colspan=&quot;3&quot;&gt;0&lt;/td&gt;&lt;td colspan=&quot;3&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;No FIFO&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;–&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td colspan=&quot;3&quot;&gt;1&lt;/td&gt;&lt;td colspan=&quot;3&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Unusable FIFO (16550 only)&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;–&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td colspan=&quot;3&quot;&gt;1&lt;/td&gt;&lt;td colspan=&quot;3&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;FIFO enabled&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;–&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;/center&gt;
&lt;p&gt;

&lt;/p&gt;&lt;h3 id=&quot;FCR&quot;&gt;FCR : FIFO control register (WO)&lt;/h3&gt;
&lt;p&gt;

&lt;/p&gt;&lt;center&gt;



















&lt;table class=&quot;pinout&quot;&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;caption&gt;FCR : FIFO control register&lt;/caption&gt;&lt;tbody&gt;  &lt;tr align=&quot;center&quot;&gt;&lt;th&gt;Bit&lt;/th&gt;&lt;th colspan=&quot;2&quot;&gt;Value&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td rowspan=&quot;2&quot; valign=&quot;middle&quot;&gt;0&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Disable FIFO&#39;s&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td colspan=&quot;2&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Enable FIFO&#39;s&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td rowspan=&quot;2&quot; valign=&quot;middle&quot;&gt;1&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;–&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td colspan=&quot;2&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Clear receive FIFO&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td rowspan=&quot;2&quot; valign=&quot;middle&quot;&gt;2&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;–&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td colspan=&quot;2&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Clear transmit FIFO&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td rowspan=&quot;2&quot; valign=&quot;middle&quot;&gt;3&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Select DMA mode 0&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td colspan=&quot;2&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Select DMA mode 1&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td&gt;4&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Reserved&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td rowspan=&quot;2&quot; valign=&quot;middle&quot;&gt;5&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Reserved (8250, 16450, 16550)&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td colspan=&quot;2&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Enable 64 byte FIFO (16750)&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td rowspan=&quot;5&quot; valign=&quot;middle&quot;&gt;6,7&lt;/td&gt;&lt;td&gt;Bit 7&lt;/td&gt;&lt;td&gt;Bit 6&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Receive FIFO interrupt trigger level&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;1 byte&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;4 bytes&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;8 bytes&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;14 bytes&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;/center&gt;
&lt;p&gt;

The &lt;strong&gt;FCR&lt;/strong&gt;, &lt;em&gt;FIFO control register&lt;/em&gt; is present starting with the &lt;strong&gt;16550&lt;/strong&gt; series. This
register controls the behaviour of the FIFO&#39;s in the &lt;strong&gt;UART&lt;/strong&gt;. If
a logical value 1 is written to bits 1 or 2, the function attached is
triggered. The other bits are used to select a specific FIFO mode.

&lt;/p&gt;&lt;p&gt;

&lt;/p&gt;&lt;h3 id=&quot;LCR&quot;&gt;LCR : Line control register (R/W)&lt;/h3&gt;
&lt;p&gt;
&lt;/p&gt;&lt;center&gt;




















&lt;table class=&quot;pinout&quot;&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;caption&gt;LCR : line control register&lt;/caption&gt;&lt;tbody&gt;  &lt;tr align=&quot;center&quot;&gt;&lt;th&gt;Bit&lt;/th&gt;&lt;th colspan=&quot;6&quot;&gt;Value&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td rowspan=&quot;5&quot; valign=&quot;middle&quot;&gt;0,1&lt;/td&gt;&lt;td colspan=&quot;3&quot;&gt;Bit 1&lt;/td&gt;&lt;td colspan=&quot;3&quot;&gt;Bit 0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Data word length&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td colspan=&quot;3&quot;&gt;0&lt;/td&gt;&lt;td colspan=&quot;3&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;5 bits&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td colspan=&quot;3&quot;&gt;0&lt;/td&gt;&lt;td colspan=&quot;3&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;6 bits&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td colspan=&quot;3&quot;&gt;1&lt;/td&gt;&lt;td colspan=&quot;3&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;7 bits&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td colspan=&quot;3&quot;&gt;1&lt;/td&gt;&lt;td colspan=&quot;3&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;8 bits&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td rowspan=&quot;2&quot; valign=&quot;middle&quot;&gt;2&lt;/td&gt;&lt;td colspan=&quot;6&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;1 stop bit&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td colspan=&quot;6&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;1.5 stop bits (5 bits word)
2 stop bits (6, 7 or 8 bits word)&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td rowspan=&quot;6&quot; valign=&quot;middle&quot;&gt;3,4,5&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;Bit 5&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;Bit 4&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;Bit 3&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td colspan=&quot;2&quot;&gt;x&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;x&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;No parity&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Odd parity&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;1&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Even parity&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td colspan=&quot;2&quot;&gt;1&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;0&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;High parity (stick)&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td colspan=&quot;2&quot;&gt;1&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;1&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Low parity (stick)&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td rowspan=&quot;2&quot; valign=&quot;middle&quot;&gt;6&lt;/td&gt;&lt;td colspan=&quot;6&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Break signal disabled&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td colspan=&quot;6&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Break signal enabled&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td rowspan=&quot;2&quot; valign=&quot;middle&quot;&gt;7&lt;/td&gt;&lt;td colspan=&quot;6&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;DLAB : RBR, THR and IER accessible&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td colspan=&quot;6&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;DLAB : DLL and DLM accessible&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;/center&gt;
&lt;p&gt;

The &lt;strong&gt;LCR&lt;/strong&gt;, &lt;em&gt;line control register&lt;/em&gt; is used at initialisation to set the communication
parameters. Parity and number of data bits can be changed
for example. The register also
controls the accessibility of the &lt;strong&gt;DLL&lt;/strong&gt; and &lt;strong&gt;DLM&lt;/strong&gt; registers. These registers
are mapped to the same I/O port as the &lt;strong&gt;RBR&lt;/strong&gt;, &lt;strong&gt;THR&lt;/strong&gt;
and &lt;strong&gt;IER&lt;/strong&gt; registers. Because
they are only accessed at initialisation when no communication occurs
this register swapping has no influence on performance.

Some remarks about parity:

&lt;/p&gt;&lt;p&gt;

The &lt;strong&gt;UART&lt;/strong&gt; is capable of generating a trailing bit at the end of each
dataword which can be used to check some data distortion.
Because only one bit is used, the parity system is capable of detecting
only an odd number of false bits. If an even number of bits has been flipped,
the error will not be seen.

&lt;/p&gt;&lt;p&gt;

When &lt;em&gt;even parity&lt;/em&gt; is selected, the &lt;strong&gt;UART&lt;/strong&gt;
assures that the number of high bit values in the sent or received data
is always even. &lt;em&gt;Odd parity&lt;/em&gt; setting does the opposite. Using &lt;em&gt;stick parity&lt;/em&gt;
has very little use. It sets the parity bit to always 1, or always 0.

&lt;/p&gt;&lt;p&gt;

Common settings are:

&lt;/p&gt;&lt;p&gt;

&lt;/p&gt;&lt;ul&gt;
 &lt;li&gt;8 data bits, one stop bit, no parity
 &lt;/li&gt;&lt;li&gt;7 data bits, one stop bit, even parity
&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;

&lt;/p&gt;&lt;h3 id=&quot;MCR&quot;&gt;MCR : Modem control register (R/W)&lt;/h3&gt;

&lt;p&gt;

The &lt;strong&gt;MCR&lt;/strong&gt;, &lt;em&gt;modem control register&lt;/em&gt; is used to perform handshaking actions with
the attached device. In the original UART series including the &lt;strong&gt;16550&lt;/strong&gt;,
setting and resetting of the control signals must be done by software.
The new &lt;strong&gt;16750&lt;/strong&gt; is capable of handling flow control automatically, thereby
reducing the load on the processor.

&lt;/p&gt;&lt;p&gt;

&lt;/p&gt;&lt;center&gt;











&lt;table class=&quot;pinout&quot;&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;caption&gt;MCR : Modem control register&lt;/caption&gt;&lt;tbody&gt;  &lt;tr align=&quot;center&quot;&gt;&lt;th&gt;Bit&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;  &lt;tr class=&quot;odd&quot;&gt;&lt;td align=&quot;center&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Data terminal ready&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;even&quot;&gt;&lt;td align=&quot;center&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Request to send&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;odd&quot;&gt;&lt;td align=&quot;center&quot;&gt;2&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Auxiliary output 1&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;even&quot;&gt;&lt;td align=&quot;center&quot;&gt;3&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Auxiliary output 2&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;odd&quot;&gt;&lt;td align=&quot;center&quot;&gt;4&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Loopback mode&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;even&quot;&gt;&lt;td align=&quot;center&quot;&gt;5&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Autoflow control (16750 only)&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;odd&quot;&gt;&lt;td align=&quot;center&quot;&gt;6&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Reserved&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;even&quot;&gt;&lt;td align=&quot;center&quot;&gt;7&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Reserved&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;/center&gt;

&lt;p&gt;

The two &lt;em&gt;auxiliary outputs&lt;/em&gt; are user definable. Output 2 is sometimes used
in circuitry which controls the interrupt process on a PC. Output 1
is normally not used, however on some I/O cards, it controls the selection
of a second oscillator working at 4 MHz. This is mainly for &lt;strong&gt;MIDI&lt;/strong&gt; purposes.

&lt;/p&gt;&lt;p&gt;

&lt;/p&gt;&lt;h3 id=&quot;LSR&quot;&gt;LSR : Line status register (RO)&lt;/h3&gt;

&lt;p&gt;

The &lt;strong&gt;LSR&lt;/strong&gt;, &lt;em&gt;line status register&lt;/em&gt; shows the current state of communication. Errors
are reflected in this register. The state of the receive and
transmit buffers is also available.

&lt;/p&gt;&lt;p&gt;


&lt;/p&gt;&lt;center&gt;











&lt;table class=&quot;pinout&quot;&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;caption&gt;LSR : Line status register&lt;/caption&gt;&lt;tbody&gt;  &lt;tr align=&quot;center&quot;&gt;&lt;th&gt;Bit&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;  &lt;tr class=&quot;odd&quot;&gt;&lt;td align=&quot;center&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Data available&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;even&quot;&gt;&lt;td align=&quot;center&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Overrun error&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;odd&quot;&gt;&lt;td align=&quot;center&quot;&gt;2&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Parity error&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;even&quot;&gt;&lt;td align=&quot;center&quot;&gt;3&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Framing error&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;odd&quot;&gt;&lt;td align=&quot;center&quot;&gt;4&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Break signal received&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;even&quot;&gt;&lt;td align=&quot;center&quot;&gt;5&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;THR is empty&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;odd&quot;&gt;&lt;td align=&quot;center&quot;&gt;6&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;THR is empty, and line is idle&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;even&quot;&gt;&lt;td align=&quot;center&quot;&gt;7&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Errornous data in FIFO&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;/center&gt;

&lt;p&gt;

Bit 5 and 6 both show the state of the transmitting cycle. The difference
is, that bit 5 turns high as soon as the &lt;em&gt;transmitter holding register&lt;/em&gt;
is empty whereas bit 6 indicates that also the &lt;em&gt;shift register&lt;/em&gt; which
outputs the bits on the line is empty.

&lt;/p&gt;&lt;p&gt;

&lt;/p&gt;&lt;h3 id=&quot;MSR&quot;&gt;MSR : Modem status register (RO)&lt;/h3&gt;

&lt;p&gt;

The &lt;strong&gt;MSR&lt;/strong&gt;, &lt;em&gt;modem status register&lt;/em&gt; contains information about the four incomming
modem control lines on the device. The information is split in two nibbles.
The four most siginificant bits contain information about the current
state of the inputs where the least significant bits are used to indicate
state changes. The four LSB&#39;s are reset, each time the register is read.

&lt;/p&gt;&lt;p&gt;

&lt;/p&gt;&lt;center&gt;











&lt;table class=&quot;pinout&quot;&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;caption&gt;MSR : Modem status register&lt;/caption&gt;&lt;tbody&gt;  &lt;tr align=&quot;center&quot;&gt;&lt;th&gt;Bit&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;  &lt;tr class=&quot;odd&quot;&gt;&lt;td align=&quot;center&quot;&gt;0&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;change in Clear to send&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;even&quot;&gt;&lt;td align=&quot;center&quot;&gt;1&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;change in Data set ready&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;odd&quot;&gt;&lt;td align=&quot;center&quot;&gt;2&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;trailing edge Ring indicator&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;even&quot;&gt;&lt;td align=&quot;center&quot;&gt;3&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;change in Carrier detect&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;odd&quot;&gt;&lt;td align=&quot;center&quot;&gt;4&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Clear to send&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;even&quot;&gt;&lt;td align=&quot;center&quot;&gt;5&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Data set ready&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;odd&quot;&gt;&lt;td align=&quot;center&quot;&gt;6&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Ring indicator&lt;/td&gt;&lt;/tr&gt;  &lt;tr class=&quot;even&quot;&gt;&lt;td align=&quot;center&quot;&gt;7&lt;/td&gt;&lt;td align=&quot;left&quot;&gt;Carrier detect&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;/center&gt;

&lt;p&gt;

&lt;/p&gt;&lt;h3 id=&quot;SCR&quot;&gt;SCR : Scratch register (R/W)&lt;/h3&gt;

&lt;p&gt;

The &lt;strong&gt;SCR&lt;/strong&gt;, &lt;em&gt;scratch register&lt;/em&gt; was not present on the &lt;strong&gt;8250&lt;/strong&gt;
and &lt;strong&gt;8250B&lt;/strong&gt; &lt;strong&gt;UART&lt;/strong&gt;.
It can be used
to store one byte of information. In practice, it has only limited use.
The only real use I know of is checking if the &lt;strong&gt;UART&lt;/strong&gt; is a
&lt;strong&gt;8250&lt;/strong&gt;/&lt;strong&gt;8250B&lt;/strong&gt;,
or a &lt;strong&gt;8250A&lt;/strong&gt;/&lt;strong&gt;16450&lt;/strong&gt; series. Because the &lt;strong&gt;8250&lt;/strong&gt;
series are only found in XT&#39;s
even this use of the register is not commonly seen anymore.

&lt;/p&gt;&lt;p&gt;

&lt;/p&gt;&lt;h3 id=&quot;DLX&quot;&gt;DLL and DLM : Divisor latch registers (R/W)&lt;/h3&gt;

&lt;p&gt;

For generating its timing information, each &lt;strong&gt;UART&lt;/strong&gt; uses an oscillator
generating a frequency of about 1.8432 MHz. This frequency is divided
by 16 to generate the time base for communucation. Because of this
division, the maximum allowed communication speed is 115200 bps. Modern
&lt;strong&gt;UARTS&lt;/strong&gt; like the &lt;strong&gt;16550&lt;/strong&gt; are capable of handling higher input frequencies
up to 24 MHz which makes it possible to communicate with a maximum
speed of 1.5 Mbps. On PC&#39;s higher frequencies than the 1.8432 MHz are
rarely seen because this would be software incompatible with the original XT
configuration.

&lt;/p&gt;&lt;p&gt;

This 115200 bps communication speed is not suitable for all applications.
To change
the communication speed, the frequency can be further decreased by dividing
it by a programmable value. For very slow communications, this value can
go beyond 255. Therefore, the divisor is stored in two seperate bytes,
the &lt;em&gt;divisor latch registers&lt;/em&gt;
&lt;strong&gt;DLL&lt;/strong&gt; and &lt;strong&gt;DLM&lt;/strong&gt; which contain the least, and most significant byte.

&lt;/p&gt;&lt;p&gt;

For error free communication, it is necessary that both the transmitting
and receiving &lt;strong&gt;UART&lt;/strong&gt; use the same time base. Default values have been defined
which are commonly used. The table shows the most common values with
the appropriate settings of the divisor latch bytes. Note that these
values only hold for a PC compatible system where a clock frequency
of 1.8432 MHz is used.
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;center&gt;













&lt;table class=&quot;pinout&quot; style=&quot;text-align: justify;&quot;&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;caption&gt;DLL and DLM : Divisor latch registers&lt;/caption&gt;&lt;tbody&gt;  &lt;tr align=&quot;center&quot;&gt;&lt;th&gt;Speed (bps)&lt;/th&gt;&lt;th&gt;Divisor&lt;/th&gt;&lt;th&gt;DLL&lt;/th&gt;&lt;th&gt;DLM&lt;/th&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td align=&quot;right&quot;&gt;50&lt;/td&gt;&lt;td align=&quot;right&quot;&gt;2,304&lt;/td&gt;&lt;td&gt;0x00&lt;/td&gt;&lt;td&gt;0x09&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td align=&quot;right&quot;&gt;300&lt;/td&gt;&lt;td align=&quot;right&quot;&gt;384&lt;/td&gt;&lt;td&gt;0x80&lt;/td&gt;&lt;td&gt;0x01&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td align=&quot;right&quot;&gt;1,200&lt;/td&gt;&lt;td align=&quot;right&quot;&gt;96&lt;/td&gt;&lt;td&gt;0x60&lt;/td&gt;&lt;td&gt;0x00&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td align=&quot;right&quot;&gt;2,400&lt;/td&gt;&lt;td align=&quot;right&quot;&gt;48&lt;/td&gt;&lt;td&gt;0x30&lt;/td&gt;&lt;td&gt;0x00&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td align=&quot;right&quot;&gt;4,800&lt;/td&gt;&lt;td align=&quot;right&quot;&gt;24&lt;/td&gt;&lt;td&gt;0x18&lt;/td&gt;&lt;td&gt;0x00&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td align=&quot;right&quot;&gt;9,600&lt;/td&gt;&lt;td align=&quot;right&quot;&gt;12&lt;/td&gt;&lt;td&gt;0x0C&lt;/td&gt;&lt;td&gt;0x00&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td align=&quot;right&quot;&gt;19,200&lt;/td&gt;&lt;td align=&quot;right&quot;&gt;6&lt;/td&gt;&lt;td&gt;0x06&lt;/td&gt;&lt;td&gt;0x00&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td align=&quot;right&quot;&gt;38,400&lt;/td&gt;&lt;td align=&quot;right&quot;&gt;3&lt;/td&gt;&lt;td&gt;0x03&lt;/td&gt;&lt;td&gt;0x00&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;odd&quot;&gt;&lt;td align=&quot;right&quot;&gt;57,600&lt;/td&gt;&lt;td align=&quot;right&quot;&gt;2&lt;/td&gt;&lt;td&gt;0x02&lt;/td&gt;&lt;td&gt;0x00&lt;/td&gt;&lt;/tr&gt;  &lt;tr align=&quot;center&quot; class=&quot;even&quot;&gt;&lt;td align=&quot;right&quot;&gt;115,200&lt;/td&gt;&lt;td align=&quot;right&quot;&gt;1&lt;/td&gt;&lt;td&gt;0x01&lt;/td&gt;&lt;td&gt;0x00&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;/center&gt;&lt;center&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please visit us  at &lt;/span&gt; &lt;a href=&quot;http://plc2u.com/index.php/plc-article/interfacing/serial-uart&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 102, 255);&quot;&gt;http://plc2u.com/index.php/plc-article/interfacing/serial-uart&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;&lt;/center&gt;</description><link>http://plcontrol.blogspot.com/2009/03/on-this-page-serial-uart-introduction.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-5374800857680384525</guid><pubDate>Thu, 26 Mar 2009 04:07:00 +0000</pubDate><atom:updated>2009-11-11T14:47:25.108+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Interfacing</category><title>Software for RS232</title><description>&lt;p&gt;
&lt;/p&gt;&lt;h2&gt;&lt;a name=&quot;intr&quot;&gt;Software downloads, read this first!&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;
The software on this page is believed to function as described in the
document present in each archive file. All archive files are in ZIP format.
&lt;/p&gt;&lt;p&gt;
Use this software at your own risk. Lammert Bies can not be held responsible
for any damage, financial loss or injuries resulting from using the software
found here. If such problems are encountered using this software, please send
me a mail message describing the problem and the software will either be
updated, or removed from this website.

&lt;/p&gt;&lt;p&gt;

&lt;/p&gt;&lt;h2&gt;&lt;a name=&quot;seri&quot;&gt;Software for RS232 communications&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;

The files listed below are free downloads.
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;
































&lt;table class=&quot;pinout&quot;&gt;&lt;tbody&gt;&lt;tr&gt;  &lt;th colspan=&quot;6&quot;&gt;Programs&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;  &lt;td&gt;&lt;b&gt;File&lt;/b&gt;&lt;/td&gt;  &lt;td&gt;Size&lt;/td&gt;  &lt;td&gt;Release&lt;/td&gt;  &lt;td&gt;Language&lt;/td&gt;  &lt;td&gt;OS&lt;/td&gt;  &lt;td&gt;Description&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot;&gt;  &lt;td nowrap=&quot;&quot;&gt;&lt;a href=&quot;http://www.lammertbies.nl/download/prg_chk.zip&quot;&gt;prg_chk.zip&lt;/a&gt;&lt;/td&gt;  &lt;td nowrap=&quot;&quot; align=&quot;right&quot;&gt;7,613 bytes&lt;/td&gt;  &lt;td nowrap=&quot;&quot;&gt;1999-02-21
V 1.01&lt;/td&gt;  &lt;td&gt;Microsoft C/C++&lt;/td&gt;  &lt;td&gt;DOS&lt;/td&gt;  &lt;td&gt;&lt;strong&gt;UART detector&lt;/strong&gt; which checks default COM ports or user specified addresses for the existence and type of UART&#39;s.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;  &lt;th colspan=&quot;6&quot;&gt;Libraries&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;  &lt;td&gt;File
&lt;/td&gt;&lt;td&gt;Size
&lt;/td&gt;&lt;td&gt;Release
&lt;/td&gt;&lt;td&gt;Language
&lt;/td&gt;&lt;td&gt;OS
&lt;/td&gt;&lt;td&gt;Description
&lt;/td&gt;&lt;/tr&gt;&lt;tr valign=&quot;top&quot;&gt;  &lt;td nowrap=&quot;&quot;&gt;&lt;a href=&quot;http://www.lammertbies.nl/download/lib_crc.zip&quot;&gt;lib_crc.zip&lt;/a&gt;&lt;/td&gt;  &lt;td nowrap=&quot;&quot; align=&quot;right&quot;&gt;29,330 bytes&lt;/td&gt;  &lt;td nowrap=&quot;&quot;&gt;2008-04-20V 1.16&lt;/td&gt;  &lt;td&gt;ANSI C/C++&lt;/td&gt;  &lt;td&gt;all&lt;/td&gt;  &lt;td&gt;&lt;strong&gt;CRC library&lt;/strong&gt; with routines to check for errors in the data transfer. Support in the &lt;a href=&quot;http://www.blogger.com/forum/viewforum.php?f=11&quot;&gt;Error Detection and Correction forum&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please visit us at  &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 255);&quot;&gt;&lt;a href=&quot;http://plc2u.com/index.php/plc-article/interfacing/software-for-rs232-communications&quot;&gt;http://plc2u.com/index.php/plc-article/interfacing/software-for-rs232-communications&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;</description><link>http://plcontrol.blogspot.com/2009/03/programs-file-size-release-language-os.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-6098402119252978669</guid><pubDate>Mon, 09 Mar 2009 11:24:00 +0000</pubDate><atom:updated>2009-11-11T14:51:55.393+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Interfacing</category><title>Introduction to RS422</title><description>&lt;p&gt;&lt;strong&gt;Introduction to RS422&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Serial communication methods to transfer information between equipment have been defined by standards for nearly half a century. The oldest and best known standard is RS232, a standard which defines the communication between &lt;strong&gt;DTE&lt;/strong&gt;, data terminal equipment, and &lt;strong&gt;DCE&lt;/strong&gt;, data communication equipment. The relatively short distances and low speed the &lt;a href=&quot;http://www.lammertbies.nl/comm/info/RS-232_specs.html&quot;&gt;RS232&lt;/a&gt; serial interface can handle demanded for newer standards like RS422, RS423 and RS485. In this document, I will focus on the &lt;strong&gt;RS422&lt;/strong&gt; interface for serial balanced differential communications.&lt;/p&gt;&lt;p&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 102, 255);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Differential balanced signals with RS422&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Serial, balanced and differential are the keywords for the RS422 interface standard. Serial means, that the information is sent bit by bit on a single transmission line, just like with &lt;strong&gt;RS232&lt;/strong&gt;. Balanced differential is what makes RS422 different from &lt;strong&gt;RS232&lt;/strong&gt;. On RS232 interfaces, the signals are send on lines which share a common zero. With &lt;strong&gt;RS422&lt;/strong&gt;, each signal line consists of two wires, preferably twisted to reduce noise. The voltage-difference between the two lines is an indication of the signal value, rather than the voltage-level. Looking at voltage differences with &lt;strong&gt;RS422&lt;/strong&gt; rather than levels eliminates a lot of noice induced by external sources and allows for higher data rates and cable lengths compated to &lt;strong&gt;RS232&lt;/strong&gt;. You can see the differences in speed and cable length between RS422 and other commonly used serial interface standards like &lt;strong&gt;RS232, RS423&lt;/strong&gt; and &lt;strong&gt;RS485&lt;/strong&gt; in the &lt;a href=&quot;http://www.lammertbies.nl/comm/info/RS-485.html#char&quot;&gt;interface comparison table.&lt;/a&gt;

&lt;/p&gt;&lt;p&gt;Twisting the lines helps to reduce the noise. The noise currents induced by an external source are reversed in every twist. Instead of amplifying each other as in a straight line, the reversed noice currents reduce each others influence. The figure explains this in more detail.&lt;/p&gt;&lt;p&gt;

&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCHtGNJ7QIbDvmVNsTDESHf8eGKliFKBbmcFJvF5KT7wuXRoUUJvrS4e-W7uvtOjdLILsYLNk4dJRoS5PvBAEs4fynJmQDCEY5PofCpmchIEV2yuHZ3ic_zkGrLA66O63ZE3RbiUbjUWO6/s1600-h/twisted_immunity.png&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 253px; height: 193px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCHtGNJ7QIbDvmVNsTDESHf8eGKliFKBbmcFJvF5KT7wuXRoUUJvrS4e-W7uvtOjdLILsYLNk4dJRoS5PvBAEs4fynJmQDCEY5PofCpmchIEV2yuHZ3ic_zkGrLA66O63ZE3RbiUbjUWO6/s320/twisted_immunity.png&quot; border=&quot;0&quot; alt=&quot;RS422&quot; id=&quot;BLOGGER_PHOTO_ID_5311148784836501106&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Network topology with RS422&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There are more differences between RS422 and RS232 than the maximum data speed and cable length. RS232 was specifically defined as an interface between computers, printers and terminals with modems. The modem would translate the communication signals to protocol usable for long distance communication, where long distance could also mean a device on the other side of the control room or building. &lt;strong&gt;RS422&lt;/strong&gt; allows the direct connection of intelligent devices, without the need of modems. Furthermore, where the RS232 linedriver is only designed to serve one receiver, a &lt;strong&gt;RS422&lt;/strong&gt; linedriver can serve upto ten receivers in parallel. This allows one central control unit to send commands in parallel to upto ten slave devices. Unfortunately, those slave devices cannot send information back over a shared interface line. &lt;strong&gt;RS422 &lt;/strong&gt;allows a multi-drop network topology, rather than a multi-point network where all nodes are considered equal and every node has send and receive capabilities over the same line. If you need to build a &lt;a href=&quot;http://www.lammertbies.nl/comm/info/RS-485.html#topo&quot;&gt;multi-point communication network &lt;/a&gt;rather than multi-drop, &lt;strong&gt;RS485&lt;/strong&gt; is the right choice with a maximum of 32 parallel send and 32 receive units parallel on one communication channel.&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please visit us at&lt;/span&gt;  &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 102, 255); &quot;&gt;&lt;a href=&quot;http://plc2u.com/index.php/plc-article/interfacing/introduction-to-rs422&quot;&gt;http://plc2u.com/index.php/plc-article/interfacing/introduction-to-rs422&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;</description><link>http://plcontrol.blogspot.com/2009/03/introduction-to-rs422.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCHtGNJ7QIbDvmVNsTDESHf8eGKliFKBbmcFJvF5KT7wuXRoUUJvrS4e-W7uvtOjdLILsYLNk4dJRoS5PvBAEs4fynJmQDCEY5PofCpmchIEV2yuHZ3ic_zkGrLA66O63ZE3RbiUbjUWO6/s72-c/twisted_immunity.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-514344525941228942</guid><pubDate>Mon, 09 Mar 2009 10:59:00 +0000</pubDate><atom:updated>2009-11-11T14:53:56.082+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Interfacing</category><category domain="http://www.blogger.com/atom/ns#">PLC</category><title>PLC programming cables for several brands</title><description>Most PLC&#39;s can be programmed from a PC via a serial cable. Unfortunately, many of these cables have a non standard layout. De cables shown here can be bought from the regular sales channels, but it is often much cheaper to solder them yourself.
&lt;p&gt;&lt;a name=&quot;siem&quot;&gt;&lt;strong&gt;Siemens PLC&#39;s&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Most programming of Siemens S5 PLC&#39;s is done using a special RS232 to TTY converter. The S7 series are programmed using a RS232 to MPI bus converter. The easiest thing to do is buy these special cables from your local Siemens supplier. The operator terminals however can be programmed using a normal serial cable. The following cable can be used to program the OP series of operator displays.&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9vX1sqDpY00if0EWQWZ_TSqQqwiBZBHzQMSePamENXNIA8UdyIBI0zSGDdxJdepTkcIwb0Im36xhWMY6hcsWlprkgkxyru1irm9AGQyuXkwQAbqZa5eW-9nwt8Va_nvtlNGLjnndmPMNB/s1600-h/db9_15_op7.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5311142026007872098&quot; style=&quot;WIDTH: 200px; CURSOR: hand; HEIGHT: 98px&quot; alt=&quot;programmable logic control,plc&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9vX1sqDpY00if0EWQWZ_TSqQqwiBZBHzQMSePamENXNIA8UdyIBI0zSGDdxJdepTkcIwb0Im36xhWMY6hcsWlprkgkxyru1irm9AGQyuXkwQAbqZa5eW-9nwt8Va_nvtlNGLjnndmPMNB/s200/db9_15_op7.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a name=&quot;idec&quot;&gt;&lt;strong&gt;Idec / Izumi PLC&#39;s&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Idec / Izumi PLC series FA2, FA2J and FA3J all require a special communication adaptor for programming. This communication link adaptor (CLA) is a small box that converts the RS232 electrical signals into a compatible level for the PLC. The cable to connect the PC to a CLA uses a DB25 connector at the PLC side. The layout for a cable with a DB9 connector at the PC side is shown here.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9FwHyG0PsrG6XzKdCotGVZxs4_pGLX-PTqt3rlAA-Rph6AoYYIsGN_iHPiS4HlBIJzyORmuCFJsn_lOh4amcVZ83r1cbyTCGD5npnKaiRHPm47VHhmeLGit9GAc5yieBnDzSWTcSSTbkV/s1600-h/db25_idec.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5311142341486642450&quot; style=&quot;WIDTH: 200px; CURSOR: hand; HEIGHT: 154px&quot; alt=&quot;programmable logic control,olc&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9FwHyG0PsrG6XzKdCotGVZxs4_pGLX-PTqt3rlAA-Rph6AoYYIsGN_iHPiS4HlBIJzyORmuCFJsn_lOh4amcVZ83r1cbyTCGD5npnKaiRHPm47VHhmeLGit9GAc5yieBnDzSWTcSSTbkV/s200/db25_idec.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a name=&quot;zwor&quot;&gt;&lt;strong&gt;Z-World microcontrollers&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Z-World is an American company specialized in developing microcontroller boards based on the Z180 and Rabbit series micro controllers. Where PLC&#39;s are often used in single piece environments, micro controllers are mainly present in the OEM world where multiple controllers are needed.
The main difference in programming a PLC is that most microcontrollers, including those from Z-World, are programmed in C. The Z-World programming package runs on a normal PC and the connection with the controller is made using a serial cable. This cable needs a DB9 connector at one and, and a RJ14 plug at the other. The pin out of a programming cable is shown here. &lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please visit us at&lt;/span&gt;  &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 102, 255);&quot;&gt;&lt;a href=&quot;http://plc2u.com/index.php/plc-article/interfacing/plc-programming-cables-for-several-brands&quot;&gt;http://plc2u.com/index.php/plc-article/interfacing/plc-programming-cables-for-several-brands&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description><link>http://plcontrol.blogspot.com/2009/03/plc-programming-cables-for-several.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9vX1sqDpY00if0EWQWZ_TSqQqwiBZBHzQMSePamENXNIA8UdyIBI0zSGDdxJdepTkcIwb0Im36xhWMY6hcsWlprkgkxyru1irm9AGQyuXkwQAbqZa5eW-9nwt8Va_nvtlNGLjnndmPMNB/s72-c/db9_15_op7.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-8265774862293445874</guid><pubDate>Fri, 06 Mar 2009 15:28:00 +0000</pubDate><atom:updated>2009-11-11T14:55:24.425+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Interfacing</category><category domain="http://www.blogger.com/atom/ns#">PLC</category><title>Mitsubishi PLC cable layouts</title><description>&lt;strong&gt;Melsec&lt;/strong&gt; PLC&#39;s from &lt;strong&gt;Mitsubishi&lt;/strong&gt; can be connected to PC&#39;s running &lt;strong&gt;Medoc&lt;/strong&gt; programming software using various cables. Each different I/O module uses a different pin assignment.
The signal levels of the A &lt;strong&gt;series &lt;/strong&gt;CPU units are not &lt;strong&gt;RS232&lt;/strong&gt; compatible and must be converted with a &lt;strong&gt;SC-02N&lt;/strong&gt; or &lt;strong&gt;SC-05&lt;/strong&gt; converter
&lt;p&gt;The serial cable layout to connect this converter to a PC is shown in this diagram.
&lt;/p&gt;
&lt;a href=&quot;http://www.blogger.com/post-edit.g?blogID=5300851025513941016&amp;amp;postID=8265774862293445874&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5310097869581105970&quot; style=&quot;WIDTH: 358px; CURSOR: hand; HEIGHT: 275px&quot; alt=&quot;plc mitsubishi&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjljdNgIMLL8cTByQIqHt7iHAvQj97rWWHoNwiNlHcYVXG5IXzmWpHExJTKLXMlVvsay3IXGSEkkt-me2_6yai7LAkdij01T4IIVEtfDw-56kGGDt0gC2XgVrwKNmlQdGqEI7pQaUUZAcnA/s400/sc_02n.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;p&gt;If more than one serial port is necessary on an A series melsec PLC, the &lt;strong&gt;AJ71C24&lt;/strong&gt; or &lt;strong&gt;AJ71C21 &lt;/strong&gt;serial communication modules can be plugged into the system. These modules provide RS232 compatible serial ports, so no signal conversion is necessary to connect these modules with a PC. Both modules are equipped with a DB25 connector.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt; The cable layout for these two modules is shown below.&lt;/p&gt;
&lt;a href=&quot;http://www.blogger.com/post-edit.g?blogID=5300851025513941016&amp;amp;postID=8265774862293445874&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5310097867521462226&quot; style=&quot;WIDTH: 358px; CURSOR: hand; HEIGHT: 275px&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtlpUcPr8AN8JsEADPpytOFuxOD4vzsxr2t0TcH_Z4PsIAsnoz93KlOK47kdZMA2tX4ewWqPo0wpzZl35JibAEqMCZLNNNy9qE4EQ3AppcaI5XBi7jbT85358BUEiFwuhpFFg_MpwsBMFE/s400/aj71c24.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://www.blogger.com/post-edit.g?blogID=5300851025513941016&amp;amp;postID=8265774862293445874&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5310097855469732274&quot; style=&quot;WIDTH: 358px; CURSOR: hand; HEIGHT: 275px&quot; alt=&quot;plc mitsubishi&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHCgwVGxwxmPAs6Iv6NiyygBn8x-MBaoeKBpufhiiLKU0q3dduRE9EtC93IJp8fHvNehgvaz7QvTKaAKdcgS6OzDoGzPXIvCSP0RjihbPw5v2DJjNn8SCyN2fL2dYwVRmiHA6j4ZFqdExK/s400/aj71c21.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;p&gt;The &lt;strong&gt;A1SJ71C24-R2&lt;/strong&gt; can also be used to connect computers and devices to a melsec series A PLC. This plug-in module contains two serial ports, each with a &lt;strong&gt;DB9&lt;/strong&gt; connector. The wiring layout is in fact identical to the &lt;a href=&quot;http://www.lammertbies.nl/comm/info/RS-232_null_modem.html#loop&quot;&gt;RS232 null modem cable with loopback handshaking&lt;/a&gt;.&lt;/p&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS-kTFkUmx_OmO4FIOMD88824KktPsjsMGIRsoK023Q3DdkZTsIVzgw75VpBudts9RR1AJr3GkxF7eLpFiRJD528Sz_3CLKcVdaz0maRYbaPTdCxCMQ8GokhFBpXu6Ujk5nIuAUwaoTBTa/s1600-h/a1sj71c24-r2.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5310097864779750322&quot; style=&quot;WIDTH: 364px; CURSOR: hand; HEIGHT: 115px&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS-kTFkUmx_OmO4FIOMD88824KktPsjsMGIRsoK023Q3DdkZTsIVzgw75VpBudts9RR1AJr3GkxF7eLpFiRJD528Sz_3CLKcVdaz0maRYbaPTdCxCMQ8GokhFBpXu6Ujk5nIuAUwaoTBTa/s400/a1sj71c24-r2.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please visit us at &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 102, 255);&quot;&gt;&lt;a href=&quot;http://plc2u.com/index.php/plc-article/interfacing/mitsubishi-plc-cable-layouts&quot;&gt;http://plc2u.com/index.php/plc-article/interfacing/mitsubishi-plc-cable-layouts&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</description><link>http://plcontrol.blogspot.com/2009/03/mitsubishi-plc-cable-layouts.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjljdNgIMLL8cTByQIqHt7iHAvQj97rWWHoNwiNlHcYVXG5IXzmWpHExJTKLXMlVvsay3IXGSEkkt-me2_6yai7LAkdij01T4IIVEtfDw-56kGGDt0gC2XgVrwKNmlQdGqEI7pQaUUZAcnA/s72-c/sc_02n.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-7326272170543351898</guid><pubDate>Fri, 06 Mar 2009 14:14:00 +0000</pubDate><atom:updated>2009-11-11T14:57:17.550+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Interfacing</category><category domain="http://www.blogger.com/atom/ns#">PLC</category><title>Mitsubishi FX2N PLC Communication Cable</title><description>&lt;p&gt;Here is a configuration of communication cable between Mitsubishi FX2 PLC HMI with a PC.&lt;/p&gt;
&lt;a href=&quot;http://www.blogger.com/post-edit.g?blogID=5300851025513941016&amp;amp;postID=7326272170543351898&quot;&gt;&lt;img style=&quot;WIDTH: 282px; CURSOR: hand; HEIGHT: 320px&quot; alt=&quot;&quot; src=&quot;http://farm4.static.flickr.com/3551/3332517069_3f834a7c7b_o.jpg&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;p&gt;Here for Mitsubishi FX2N PLC: &lt;/p&gt;
&lt;a href=&quot;http://farm4.static.flickr.com/3556/3333353290_37b7547e11_o.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 320px; height: 148px;&quot; src=&quot;http://farm4.static.flickr.com/3556/3333353290_37b7547e11_o.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please visit us at &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 102, 255);&quot;&gt;&lt;a href=&quot;http://plc2u.com/index.php/plc-article/interfacing/mitsubishi-fx2n-plc-communication-cable&quot;&gt;http://plc2u.com/index.php/plc-article/interfacing/mitsubishi-fx2n-plc-communication-cable&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</description><link>http://plcontrol.blogspot.com/2009/03/mitsubishi-fx2n-plc-communication-cable.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-923713816510883325</guid><pubDate>Fri, 06 Mar 2009 04:33:00 +0000</pubDate><atom:updated>2009-03-06T11:58:50.134+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PLC</category><title>Mini PLC with Microcontroller</title><description>&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0j-2ogutiYSsU7J52uAEblLVitD8hcSkPz-eenBJ2d9PQTASeOutiVc9ZubOfe_VoqohvoX4ozKNhxCGkrU4fwU9aTrVkdHtWTI0lq78ZbxzW5k2MmPgoKk5vXxVVN7h4POlQGdsGdZ1Y/s1600-h/untitled.bmp&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 300px; height: 400px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0j-2ogutiYSsU7J52uAEblLVitD8hcSkPz-eenBJ2d9PQTASeOutiVc9ZubOfe_VoqohvoX4ozKNhxCGkrU4fwU9aTrVkdHtWTI0lq78ZbxzW5k2MmPgoKk5vXxVVN7h4POlQGdsGdZ1Y/s400/untitled.bmp&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5309934262627817746&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Programmable Logic Controllers (PLC) have been extensively used in industry for the past five-six decades. PLC manufacturers offer different PLCs in terms of functions, program memories, and the number of inputs/outputs (I/O), ranging from a few to thousands of I/Os. The design and implementation of PLCs have long been a secret of the PLC manufacturers. As a microprocessor based technology, the functionality of a PLC is well-known from the end-user (programmer) point of view, but by now no serious work has been reported to describe a microprocessor/microcontroller based implementation of a PLC.&lt;/p&gt;
&lt;p&gt;Here&#39;s the link :
&lt;a href=&quot;http://host.nigde.edu.tr/muzam/UZAM_PLC_with_PIC16F648A.htm&quot;&gt;http://host.nigde.edu.tr/muzam/UZAM_PLC_with_PIC16F648A.htm&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Download (PDF) :&lt;/p&gt;
&lt;p&gt;
&lt;li&gt;&lt;a href=&quot;http://www.electronicsworld.co.uk/asset/564/plc-mcu.pdf&quot;&gt;PLC With PIC 16F648A Microcontroller (Part 1)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href=&quot;http://www.electronicsworld.co.uk/asset/653/plcmcu.pdf&quot;&gt;PLC With PIC 16F648A Microcontroller (Part 2)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href=&quot;http://www.electronicsworld.co.uk/asset/764/p30-34.pdf &quot;&gt;PLC With PIC 16F648A Microcontroller (Part 3)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.electronicsworld.co.uk/asset/846/plc.pdf &quot;&gt;PLC With PIC 16F648A Microcontroller (Part 4)&lt;/a&gt;&lt;/li&gt;&lt;/p&gt;</description><link>http://plcontrol.blogspot.com/2009/03/mini-plc-with-microcontroller.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0j-2ogutiYSsU7J52uAEblLVitD8hcSkPz-eenBJ2d9PQTASeOutiVc9ZubOfe_VoqohvoX4ozKNhxCGkrU4fwU9aTrVkdHtWTI0lq78ZbxzW5k2MmPgoKk5vXxVVN7h4POlQGdsGdZ1Y/s72-c/untitled.bmp" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-2187572339829407710</guid><pubDate>Fri, 06 Mar 2009 04:25:00 +0000</pubDate><atom:updated>2009-03-06T11:31:38.172+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PLC</category><title>The difference between PLC and microcontrollers</title><description>A PLC is a special microcontroller designed for industrial use, that is for controlling machinery or processes. Usually a PLC is programmed using Ladder diagrams and specialized control software. A microcontroller is a microprocessor that can be used for any type of application, but there some for special applications, like a PLC. Here&#39;s a link. 
&lt;p&gt;
&lt;a href=&quot;http://en.wikipedia.org/wiki/Microcontroller&quot;&gt;http://en.wikipedia.org/wiki/Microcontroller&lt;/a&gt;
&lt;a href=&quot;http://en.wikipedia.org/wiki/Programmable_logic_controller&quot;&gt;http://en.wikipedia.org/wiki/Programmable_logic_controller&lt;/a&gt;&lt;/p&gt;</description><link>http://plcontrol.blogspot.com/2009/03/difference-between-plc-and.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-5309713941162811306</guid><pubDate>Wed, 04 Mar 2009 07:58:00 +0000</pubDate><atom:updated>2009-11-11T15:40:02.341+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Scada</category><title>SCADA Specific Security Signatures</title><description>&lt;p&gt;Secure Home PageSAN JOSE, CA--(Marketwire - October 13, 2008) - Secure Computing Corporation (NASDAQ: SCUR), a leading enterprise gateway security company, today announced it is incorporating three new signature file types for SCADA-specific protocols into its industry-leading Secure Firewall (formerly known as Sidewinder) product. SCADA (Supervisory Control and Data Acquisition) systems are used by energy, water, oil/gas, and chemical companies to control critical network components. Integration of these SCADA signatures is part of Secure Computing&#39;s continued focus on protecting critical infrastructure to ensure that control networks are fully protected, and comes in the middle of Secure Computing&#39;s Cyber Security Initiative and NCSA&#39;s Cyber Security Awareness Month.&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please visit us at&lt;/span&gt; &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 255);&quot;&gt;&lt;a href=&quot;http://plc2u.com/index.php/plc-article/scada/scada-specific-security-signatures&quot;&gt;http://plc2u.com/index.php/plc-article/scada/scada-specific-security-signatures &lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Secure Firewall is the world&#39;s strongest security for standard protocols used over typical IT networks, and now protects critical networks from every type of attack, even those targeting SCADA networks. Secure Firewall provides custom security measures that understand and control SCADA-specific protocols.&lt;/p&gt;

&lt;p&gt;&quot;Critical infrastructure is under intense scrutiny by regulators and hackers alike. Securing these networks is a national imperative, not an option,&quot; said Elan Winkler, director of Critical Infrastructure Solutions for Secure Computing. &quot;Unfortunately, most security devices aren&#39;t designed to meet the special needs of control networks. They cannot filter SCADA-specific protocols to prevent attacks against these critical infrastructure networks. Secure Firewall, however, is a perfect combination of the strongest firewall on the market along with the custom protocol security that is a necessity for SCADA networks.&quot; &lt;/p&gt;

&lt;p&gt;Here are the three new SCADA signature types being provided by Secure Firewall: &lt;/p&gt;
&lt;ul&gt;&lt;li&gt;SCADA:ICCP: The Inter-Control Center Communications Protocol (ICCP or
   IEC 60870-6/TASE.2) is being specified by utility organizations throughout
   the world to provide data exchange over wide area networks (WANs) between
   utility control centers, utilities, power pools, regional control centers,
   and Non-Utility Generators.&lt;/li&gt;
&lt;li&gt;SCADA:MODBUS: Modbus is a serial communications protocol for use with
   its programmable logic controllers (PLCs). It has become a de facto
   standard communications protocol in the industry, and is now the most
   commonly available means of connecting industrial electronic devices.&lt;/li&gt;
&lt;li&gt;SCADA:DNP3.0: DNP3.0 (Distributed Network Protocol) is a set of
   communications protocols used between components in process automation
   systems. Its main use is in utilities such as electric and water companies.
   Specifically, it was developed to facilitate communication between various
   types of data acquisition and control equipment.&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;About Secure Firewall&lt;/p&gt;

&lt;p&gt;The Secure Firewall appliance is a market-leading, next-generation firewall that delivers total security visibility for high value targets, ensuring the availability and protection of critical applications, networks and data. Global visibility of dynamic threats is the centerpiece of Secure Firewall and one of the key reasons for its superior ability to detect unknown threats along with the known. Secure Firewall delivers best-of-breed security, blocking viruses, worms, Trojans, intrusion attempts, spam and phishing tactics, cross-site scripting, SQL injections, denial of service (DoS), and attacks hiding in encrypted protocols. Secure Firewall kills the evasive blended attacks that other security products can&#39;t see. Secure Firewall CommandCenter™ provides simplified central management of any number of Secure Firewalls across multiple enterprises. Secure Firewall Reporter™ provides powerful, easy-to-use security event analysis and reporting. For more information: http://&lt;a href=&quot;http://www.securecomputing.com/&quot;&gt;www.securecomputing.com/securefirewall &lt;/a&gt;&lt;/p&gt;</description><link>http://plcontrol.blogspot.com/2009/03/scada-specific-security-signatures.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-964421516917316420</guid><pubDate>Wed, 04 Mar 2009 07:44:00 +0000</pubDate><atom:updated>2009-11-11T15:38:03.837+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Scada</category><title>How to Develop Your HMI/SCADA System in LabVIEW</title><description>&lt;strong&gt;Seven Steps to Develop Your HMI/SCADA System in LabVIEW&lt;/strong&gt;

&lt;p&gt;Find out how you can use National Instruments LabVIEW software to connect to existing PLCs as well as new devices using OPC, Modbus, and low-level protocols. Also learn how to add advanced analysis functions by customizing your application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://zone.ni.com/wv/app/doc/p/id/wv-107/nextonly/y&quot;&gt;View Now&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please visit us at &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 255);&quot;&gt;&lt;a href=&quot;http://plc2u.com/index.php/plc-article/scada/how-to-develop-your-hmiscada-system-in-labview&quot;&gt;http://plc2u.com/index.php/plc-article/scada/how-to-develop-your-hmiscada-system-in-labview&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;20 minute(s) webcast&lt;/p&gt;
&lt;p&gt;Requires: Flash 9&lt;/p&gt;
&lt;p&gt;Please disable your browser&#39;s pop-up blocker to view this content.&lt;/p&gt;</description><link>http://plcontrol.blogspot.com/2009/03/how-to-develop-your-hmiscada-system-in.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-4963376291641291632</guid><pubDate>Sun, 01 Mar 2009 06:10:00 +0000</pubDate><atom:updated>2009-11-11T15:44:52.640+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Modbus</category><title>Free Windows Modbus Master</title><description>&lt;div&gt;If you are looking for information about modicon , try these sites :&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://members.tripod.com/~mbserver/cmodbu.htm&quot;&gt;MFC C++ classes&lt;/a&gt;. These classes implement modbus protocol over serial ports using RTU or ASCII transmission. There is also a class that is used for communicate with slaves through TCP/IP network using &lt;a href=&quot;http://www.modicon.com/OPENMBUS/&quot;&gt;Open Modbus protocol&lt;/a&gt;. The C++ source was build using Visual C++ 5.0. &lt;/div&gt;&lt;div&gt;
&lt;a href=&quot;http://members.tripod.com/~mbserver/Autosrv.htm&quot;&gt;Modbus Master Automation Server&lt;/a&gt; - This is an ActiveX out-process (.exe) server. It&#39;s intended to be used with any tool that support automation like Visual Basic , Microsoft Office app&#39;s (Excel, Word97, Access), etc. You can use this component to communicate with modbus slaves using serial port or through TCP/IP network. It&#39;s also works as an interface between TCP/IP clients and serial devices connected on a serial port.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;/div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf0xzgdluosKT2Qi-K9ZNx-b7U8eI8T5wvQoywoKuyV9ZZVppkxYVKOcUJ7sAX-GaKot22J6w4q9nwZOrpch2dtjh4R55ugbXoB_ITWKwv5Kma6UFrVn0kERGhOog3G1mQVbk4Dt5xyP0o/s1600-h/modsrv.gif&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5308136431711686258&quot; style=&quot;WIDTH: 400px; CURSOR: hand; HEIGHT: 59px&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf0xzgdluosKT2Qi-K9ZNx-b7U8eI8T5wvQoywoKuyV9ZZVppkxYVKOcUJ7sAX-GaKot22J6w4q9nwZOrpch2dtjh4R55ugbXoB_ITWKwv5Kma6UFrVn0kERGhOog3G1mQVbk4Dt5xyP0o/s400/modsrv.gif&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;div&gt;Fig 1 - Connection using open modbus protocol with slaves that use RS-232 for connecting with a PC. &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://members.tripod.com/~mbserver/client.htm&quot;&gt;Modbus Automation Client&lt;/a&gt; - This is a simple application that use the ActiveX server and is intended to test the installation, read and write registers or coils.&lt;/div&gt;&lt;div&gt;
&lt;a href=&quot;http://members.tripod.com/~mbserver/JavaC.htm&quot;&gt;Modbus Java Class&lt;/a&gt; - This java class works as TCP/IP client mentioned above. You can not access serial ports directly with this class, you can use &lt;a href=&quot;http://members.tripod.com/~mbserver/client.htm&quot;&gt;Modbus Automation Client&lt;/a&gt; to configure the &lt;a href=&quot;http://members.tripod.com/~mbserver/Autosrv.htm&quot;&gt;Modbus Master Automation Server&lt;/a&gt; to communicate with Java Clients and serial devices. This class can be used to build applets that run inside Internet Explorer or Netscape.
&lt;/div&gt;&lt;div&gt;Download:&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;
&lt;a href=&quot;http://www.microsoft.com/com/resources/downloads.asp&quot;&gt;Microsoft DCOM for Windows 9X&lt;/a&gt; - Install DCOM95 or DCOM98 if you are using win95 or win98.&lt;/div&gt;&lt;div&gt;
The Tripod service where this page is hosted has some kind  file cache server for the zip files. The download of zip file can take some time to start or maybe you have to retry the download of the desired file. Sorry for this inconvenience.   &lt;/div&gt;&lt;div&gt;   
&lt;a href=&quot;http://members.tripod.com/~mbserver/archives/mfcatl.zip&quot;&gt;mfcatl.zip&lt;/a&gt; - MFC and ATL Run-Time Files ( mfc42.dll,Msvcrt.dll,Atl.dll)  from Visual C++ 6.0. This version is compatilble with programs made with Visual C++ 5.0. Download and install these files if you do not have Visual C++ 6.0 with the latest service Pack.
&lt;/div&gt;&lt;div&gt;You need a version of zip that support long file names. Maintain directory structure when extracting files.
&lt;/div&gt;&lt;div&gt;Version 1.02 - Made with Visual C++ 6.0&lt;/div&gt;&lt;div&gt;
Source Code -&lt;a href=&quot;http://members.tripod.com/~mbserver/archives/modsrc02.zip&quot;&gt; modsrc02.zip&lt;/a&gt; - This file contain all source code,MCF, Automation Client ...&lt;/div&gt;&lt;div&gt;
Executables and Documentation - &lt;a href=&quot;http://members.tripod.com/~mbserver/archives/mod102.zip&quot;&gt;mod102.zip&lt;/a&gt; - All the html files of this site and the files needed to install the programs in your computer.&lt;/div&gt;&lt;div&gt;
Version 1.01 - Made with Visual C++ 6.0&lt;/div&gt;&lt;div&gt;
Mirror Site:  &lt;a href=&quot;http://www.winsite.com/info/pc/win95/programr/vbasic/mbfull.zip/&quot;&gt;mbfull.zip&lt;/a&gt; - This is a single file download with all VC++ runtime files , source code and executables stored at Winsite (&lt;a href=&quot;http://www.winsite.com/&quot;&gt;www.winsite.com&lt;/a&gt;) . Try &lt;a href=&quot;http://www.winsite.com/info/pc/win95/programr/vbasic/mbfull.zip/&quot;&gt;mbfull.zip&lt;/a&gt; link if you can&#39;t download from this site.&lt;/div&gt;&lt;div&gt;
Additional Samples &lt;/div&gt;&lt;div&gt;
Delphi Sample - &lt;a href=&quot;http://members.tripod.com/~mbserver/archives/DelphiEx.zip&quot;&gt;DelphiEx.zip&lt;/a&gt; - Simple dephi sample made by Alper Celik  &lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please visit us at&lt;/span&gt;  &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 255);&quot;&gt;&lt;a href=&quot;http://plc2u.com/index.php/plc-article/modbus-protocol/free-windows-modbus-master&quot;&gt;http://plc2u.com/index.php/plc-article/modbus-protocol/free-windows-modbus-master&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</description><link>http://plcontrol.blogspot.com/2009/03/free-windows-modbus-master.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf0xzgdluosKT2Qi-K9ZNx-b7U8eI8T5wvQoywoKuyV9ZZVppkxYVKOcUJ7sAX-GaKot22J6w4q9nwZOrpch2dtjh4R55ugbXoB_ITWKwv5Kma6UFrVn0kERGhOog3G1mQVbk4Dt5xyP0o/s72-c/modsrv.gif" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-14824408226724609</guid><pubDate>Tue, 10 Feb 2009 07:53:00 +0000</pubDate><atom:updated>2009-11-11T15:43:43.886+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Modbus</category><title>RTU/ASCII Master Emultator</title><description>Simply the easiest way to test and debug Modbus systems

&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifYTSUWiEIRMUfWpdWgCj3EMl4YYLgYOzxHyiO8EWb3qb5Rx4EnGWo-LE7f7CvPfPCVKK1QJI1661vhXkBXsQCGmElgYoiwEwppFpgC08IqccvWv55aLlpGQiPJqvHcESEvBZ39SiLrbLR/s1600-h/screenshot634.png&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5301075417652393346&quot; style=&quot;WIDTH: 683px; CURSOR: hand; HEIGHT: 447px&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifYTSUWiEIRMUfWpdWgCj3EMl4YYLgYOzxHyiO8EWb3qb5Rx4EnGWo-LE7f7CvPfPCVKK1QJI1661vhXkBXsQCGmElgYoiwEwppFpgC08IqccvWv55aLlpGQiPJqvHcESEvBZ39SiLrbLR/s400/screenshot634.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;

&lt;p&gt;&lt;/p&gt;No install program. Just &lt;a href=&quot;http://www.simplymodbus.ca/download.htm&quot;&gt;download&lt;/a&gt;, unzip and run.
Free demonstration version with full functionality.

&lt;p&gt;&lt;/p&gt;&lt;strong&gt;Features&lt;/strong&gt;

&lt;li&gt;&lt;/li&gt;Functions as a Modbus RTU or Modbus ASCII Master
&lt;li&gt;&lt;/li&gt;Connects to RTU/ASCII Slave devices using Modicon 984 (5 digit addressing) protocol
&lt;li&gt;&lt;/li&gt;All information is entered and displayed in one window.
&lt;li&gt;&lt;/li&gt;Displays the traffic on the serial port.
&lt;li&gt;&lt;/li&gt;Change &lt;a href=&quot;http://www.simplymodbus.ca/FAQ.htm#Types&quot;&gt;data types &lt;/a&gt;and &lt;a href=&quot;http://www.simplymodbus.ca/FAQ.htm#Order&quot;&gt;byte and word ordering &lt;/a&gt;with a click
to determine the format of the reply string without repolling.
&lt;li&gt;&lt;/li&gt;Supports multiple &lt;a href=&quot;http://www.simplymodbus.ca/FAQ.htm#Types&quot;&gt;data types &lt;/a&gt;in the same message.
&lt;li&gt;&lt;/li&gt;Supports Standard Modbus and Enron Modbus
&lt;li&gt;&lt;/li&gt;Can include RTS delay (required for some radios)
&lt;li&gt;&lt;/li&gt;Supports &lt;a href=&quot;http://www.simplymodbus.ca/FAQ.htm#2Byte&quot;&gt;2 byte slave IDs&lt;/a&gt;
&lt;li&gt;&lt;/li&gt;A notes column allows labeling the results
&lt;li&gt;&lt;/li&gt;Allows saving and restoring configuration settings
&lt;li&gt;&lt;/li&gt;Write window allows writing single and multiple values
&lt;li&gt;&lt;/li&gt;Save the communication log to a text file
and more...

&lt;p&gt;&lt;/p&gt;See the online manual
&lt;p&gt;&lt;/p&gt;Try the demo before you buy.
&lt;p&gt;&lt;/p&gt;See the tutorial on How Modbus Works&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please visit us at&lt;/span&gt;  &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 255);&quot;&gt;&lt;a href=&quot;http://plc2u.com/index.php/plc-article/modbus-protocol/rtu-ascii-master-emulator&quot;&gt;http://plc2u.com/index.php/plc-article/modbus-protocol/rtu-ascii-master-emulator&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</description><link>http://plcontrol.blogspot.com/2009/02/rtuascii-master-emultator.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifYTSUWiEIRMUfWpdWgCj3EMl4YYLgYOzxHyiO8EWb3qb5Rx4EnGWo-LE7f7CvPfPCVKK1QJI1661vhXkBXsQCGmElgYoiwEwppFpgC08IqccvWv55aLlpGQiPJqvHcESEvBZ39SiLrbLR/s72-c/screenshot634.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5300851025513941016.post-7304154564548752255</guid><pubDate>Tue, 10 Feb 2009 04:50:00 +0000</pubDate><atom:updated>2009-11-11T15:42:21.944+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Modbus</category><title>What is Modbus ?</title><description>&lt;strong&gt;What is Modbus?&lt;/strong&gt;

&lt;p&gt;&lt;/p&gt;Modbus is a communication protocol developed by Modicon systems. In simple terms, it is a method used for transmitting information over serial lines between electronic devices. The device requesting the information is called the Modbus Master and the devices supplying information are Modbus Slaves. In a standard Modbus network, there is one Master and up to 247 Slaves, each with a unique Slave Address from 1 to 247. The Master can also write information to the Slaves.

&lt;p&gt;&lt;/p&gt;The official Modbus specification can be found at &lt;a href=&quot;http://www.modbus-ida.org/&quot;&gt;http://www.modbus-ida.org/&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;What is it used for?

&lt;p&gt;&lt;/p&gt;Modbus is an open protocol, meaning that it&#39;s free for manufacturers to build into their equipment without having to pay royalties. It has become a very common protocol used widely by many manufacturers throughout many industries. Modbus is typically used to transmit signals from instrumentation and control devices back to a main controller or data gathering system.

&lt;p&gt;&lt;/p&gt;&lt;strong&gt;How does it work?&lt;/strong&gt;

&lt;p&gt;&lt;/p&gt;Modbus is transmitted over serial lines between devices. The simplest setup would be a single serial cable connecting the serial ports on two devices, a Master and a Slave.


&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivsL8XU31tgdFkQ5k36nz7Fl-sKJwafQaUFJScsT-c3QTmaV8hiKXadtSwEPlr6-zWQ8puZFKIGP9yQkZdOPnlXn2u804nQVQr209Q2XHFOosyvnhfCFrUNCbO-DViqH-oKMdSczD_4wXM/s1600-h/DB9.gif&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5301046530145258770&quot; style=&quot;WIDTH: 202px; CURSOR: hand; HEIGHT: 112px&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivsL8XU31tgdFkQ5k36nz7Fl-sKJwafQaUFJScsT-c3QTmaV8hiKXadtSwEPlr6-zWQ8puZFKIGP9yQkZdOPnlXn2u804nQVQr209Q2XHFOosyvnhfCFrUNCbO-DViqH-oKMdSczD_4wXM/s400/DB9.gif&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNlqiG4cZpM_mGZlEN3IJ8Co6ykGIn_wzsL7E27pwrdKxw7hmVchyTvHBszZvQvMxWg1fb76V4oNCoHVc3si3Kop6f38zrCiDHRYPkqVyOJyWRBA0p4fnmmuE9MoLtqqW5lJo51qlSLr6m/s1600-h/volts.gif&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5301046754731367234&quot; style=&quot;WIDTH: 184px; CURSOR: hand; HEIGHT: 94px&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNlqiG4cZpM_mGZlEN3IJ8Co6ykGIn_wzsL7E27pwrdKxw7hmVchyTvHBszZvQvMxWg1fb76V4oNCoHVc3si3Kop6f38zrCiDHRYPkqVyOJyWRBA0p4fnmmuE9MoLtqqW5lJo51qlSLr6m/s400/volts.gif&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;

&lt;p&gt;&lt;/p&gt;The data is sent as series of ones and zeroes called bits. Each bit is sent as a voltage. Zeroes are sent as positive voltages and a ones as negative. The bits are sent very quickly. A typical transmission speed is 9600 baud (bits per second).

&lt;p&gt;&lt;/p&gt;What is hexadecimal?

&lt;p&gt;&lt;/p&gt;When troubleshooting problems, it can be helpful to see the actual raw data being transmitted. Long strings of ones and zeroes are difficult to read, so the bits are combined and shown in hexadecimal. Each block of 4 bits is represented by one of the sixteen characters from 0 to F.
&lt;p&gt;&lt;/p&gt;

























&lt;table border=&quot;1&quot;&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width=&quot;100&quot;&gt;0000 = 0&lt;/td&gt;&lt;td width=&quot;100&quot;&gt; &gt;0100 = 4&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;1000 = 8&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;1100 = C&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;100&quot;&gt;0001 = 1&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;0101 = 5&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;1001 = 9&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;1101 = D&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;100&quot;&gt;0010 = 2&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;0110 = 6&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;1010 = A&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;1110 = E&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;100&quot;&gt;0011 = 3&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;0111 = 7&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;1011 = B&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;1111 = F&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;/p&gt;Each block of 8 bits (called a byte) is represented by one of the 256 character pairs from 00 to FF.

&lt;p&gt;&lt;/p&gt;How is data stored in Standard Modbus?

&lt;p&gt;&lt;/p&gt;Information is stored in the Slave device in four different tables.
Two tables store on/off discrete values (coils) and two store numerical values (registers). The coils and registers each have a read-only table and read-write table.

&lt;p&gt;&lt;/p&gt;Each table has 9999 values.
Each coil or contact is 1 bit and assigned a data address between 0000 and 270E.
Each register is 1 word = 16 bits = 2 bytes and also has data address between 0000 and 270E.

&lt;p&gt;&lt;/p&gt;



























&lt;table border=&quot;1&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width=&quot;150&quot;&gt;Coil/Register Numbers&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Data Addresses&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Type&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Table Name&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;150&quot;&gt;1-9999&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;0000 to 270E&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Read-Write&lt;/td&gt; &lt;td width=&quot;100&quot;&gt;Discrete Output Coils&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;150&quot;&gt;10001-19999
&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;0000 to 270E&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Read-Only&lt;/td&gt; &lt;td width=&quot;100&quot;&gt;Discrete Input Contacts&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;150&quot;&gt;30001-39999
&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;0000 to 270E&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Read-Only&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Analog Input Registers&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;150&quot;&gt;40001-49999
&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;0000 to 270E&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Read-Write&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Analog Output Holding Registers&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;&lt;/p&gt;Coil/Register Numbers can be thought of as location names since they do not appear in the actual messages. The Data Addresses are used in the messages.

&lt;p&gt;&lt;/p&gt;For example, the first Holding Register, number 40001, has the Data Address 0000.
The difference between these two values is the offset.
Each table has a different offset. 1, 10001, 30001 and 40001.

&lt;p&gt;&lt;/p&gt;What is the Slave ID?

&lt;p&gt;&lt;/p&gt;Each slave in a network is assigned a unique unit address from 1 to 247. When the master requests data, the first byte it sends is the Slave address. This way each slave knows after the first byte whether or not to ignore the message.

&lt;p&gt;&lt;/p&gt;What is a function code?

&lt;p&gt;&lt;/p&gt;The second byte sent by the Master is the Function code. This number tells the slave which table to access and whether to read from or write to the table.

&lt;p&gt;&lt;/p&gt;













































&lt;table border=&quot;1&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width=&quot;100&quot;&gt;Function Code&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Action&lt;/td&gt;&lt;td width=&quot;150&quot;&gt;Table Name&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;100&quot;&gt;01(01 hex)&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Read&lt;/td&gt;&lt;td width=&quot;150&quot;&gt;Discrete Output Coils&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;100&quot;&gt;05(05 hex)&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Write&lt;/td&gt;&lt;td width=&quot;150&quot;&gt;single Discrete Output Coil&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;100&quot;&gt;15(0F hex)
&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Write&lt;/td&gt;&lt;td width=&quot;150&quot;&gt;multiple Discrete Output Coils&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;100&quot;&gt;02(02 hex)&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Read&lt;/td&gt;&lt;td width=&quot;150&quot;&gt;Discrete Input Contacts&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;100&quot;&gt;04 (04 hex)&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Read&lt;/td&gt;&lt;td width=&quot;150&quot;&gt;Analog Input Registers&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;100&quot;&gt;03 (03 hex)&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Read&lt;/td&gt;&lt;td width=&quot;150&quot;&gt;Analog Output Holding Registers&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;100&quot;&gt;06 (06 hex)&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Write&lt;/td&gt;&lt;td width=&quot;150&quot;&gt;single Analog Output Holding Register&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;100&quot;&gt;16 (10 hex)&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Write&lt;/td&gt;&lt;td width=&quot;150&quot;&gt;multiple Analog Output Holding Registers&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;&lt;/p&gt;What is a CRC?

&lt;p&gt;&lt;/p&gt;CRC stands for Cyclic Redundancy check. It is two bytes added to the end of every modbus message for error detection. Every byte in the message is used to calculate the CRC. The receiving device also calculates the CRC and compares it to the CRC from the sending device. If even one bit in the message is received incorrectly, the CRCs will be different and an error will result.

&lt;p&gt;&lt;/p&gt;Here is a spreadsheet CRC calculator for messages up to 16 bytes.
To download a copy, right click and select Save Target As...

&lt;p&gt;&lt;/p&gt;What are the formats of Modbus commands and responses?

&lt;p&gt;&lt;/p&gt;Follow the links in this table to see examples of the requests and responses.
&lt;p&gt;&lt;/p&gt;






























&lt;table border=&quot;1&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width=&quot;100&quot;&gt;Data Addresses&lt;/td&gt;&lt;td width=&quot;50&quot;&gt;Read&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Write Single&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;Write Multiple&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;100&quot;&gt;Discrete Output Coils 0xxxx
&lt;/td&gt;&lt;td width=&quot;50&quot;&gt;FC0&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;FC05&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;FC15&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;100&quot;&gt;Discrete Input Contacts 1xxxx&lt;/td&gt;&lt;td width=&quot;50&quot;&gt;FC02&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;NA&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;NA&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;100&quot;&gt;Analog Input Registers 3xxxx&lt;/td&gt;&lt;td width=&quot;50&quot;&gt;FC04&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;NA&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;NA&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width=&quot;100&quot;&gt;Analog Output Holding Registers 4xxxx&lt;/td&gt;&lt;td width=&quot;50&quot;&gt;FC03&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;FC06&lt;/td&gt;&lt;td width=&quot;100&quot;&gt;FC16&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;/p&gt;What are data types?

&lt;p&gt;&lt;/p&gt;The example for FC03 shows that register 40108 contains AE41
which converts to the 16 bits 1010 1110 0100 0001
Great! But what does it mean? Well, it could mean a few things.

&lt;p&gt;&lt;/p&gt;Register 40108 could be defined as any of these 16-bit data types:
A 16-bit unsigned integer (a whole number between 0 and 65535)
register 40108 contains AE41 = 44,609 (hex to decimal conversion)

&lt;p&gt;&lt;/p&gt;A 16-bit signed integer (a whole number between -32768 and 32767)
AE41 = -20,927
(hex to decimal conversion that wraps, if its over 32767 then subtract 65536)

&lt;p&gt;&lt;/p&gt;A two character ASCII string (2 typed letters)
AE41 = ® A

&lt;p&gt;&lt;/p&gt;A discrete on/off value (this works the same as 16-bit integers with a value of 0 or 1.
The hex data would be 0000 or 0001)

&lt;p&gt;&lt;/p&gt;Register 40108 could also be combined with 40109 to form any of these 32-bit data types:
A 32-bit unsigned integer (a number between 0 and 4,294,967,295)
40108,40109 = AE41 5652 = 2,923,517,522

&lt;p&gt;&lt;/p&gt;A 32-bit signed integer (a number between -2,147,483,648 and 2,147,483,647)
AE41 5652 = -1,371,449,774

&lt;p&gt;&lt;/p&gt;A 32-bit double precision IEEE floating point number.
This is a mathematical formula that allows any real number (a number with decimal
points) to represented by 32 bits with an accuracy of about seven digits.
AE41 5652 = -4.395978 E-11

&lt;p&gt;&lt;/p&gt;Here is a spreadsheet IEEE float calculator for inputs of 4 bytes or 2 words.
To download a copy, right click and select Save Target As...

&lt;p&gt;&lt;/p&gt;A four character ASCII string (4 typed letters)
AE41 5652 = ® A V R

&lt;p&gt;&lt;/p&gt;More registers can be combined to form longer ASCII strings. Each register being used to store two ASCII characters (two bytes).

&lt;p&gt;&lt;/p&gt;What is byte and word ordering?

&lt;p&gt;&lt;/p&gt;The Modbus specification doesn&#39;t define exactly how the data is stored in the registers. Therefore, some manufacturers implemented modbus in their equipment to store and transmit the higher byte first followed by the lower byte. (AE before 41).
Alternatively, others store and transmit the lower byte first (41 before AE).

&lt;p&gt;&lt;/p&gt;Similarly, when registers are combined to represent 32-bit data types, Some devices store the higher 16 bits (high word) in the first register and the remaining low word in the second (AE41 before 5652) while others do the opposite (5652 before AE41)

&lt;p&gt;&lt;/p&gt;It doesn&#39;t matter which order the bytes or words are sent in, as long as the receiving device knows which way to expect it.

&lt;p&gt;&lt;/p&gt;For example, if the number 29,235,175,522 was to be sent as a 32 bit unsigned integer, it could be arranged any of these four ways.

&lt;p&gt;&lt;/p&gt;AE41 5652 high byte first high word first
&lt;p&gt;&lt;/p&gt;5652 AE41 high byte first low word first
&lt;p&gt;&lt;/p&gt;41AE 5256 low byte first high word first
&lt;p&gt;&lt;/p&gt;5256 41AE low byte first low word first

&lt;p&gt;&lt;/p&gt;What is a Modbus Map?

&lt;p&gt;&lt;/p&gt;A modbus map is simply a list for an individual slave device that defines
&lt;li&gt;&lt;/li&gt;what the data is (eg. pressure or temperature readings)
&lt;li&gt;&lt;/li&gt;where the data is stored (which tables and data addresses)
&lt;li&gt;&lt;/li&gt;how the data is stored (data types, byte and word ordering)

&lt;p&gt;&lt;/p&gt;Some devices are built with a fixed map that is defined by the manufacturer. While other devices allow the operator to configure or program a custom map to fit their needs.

&lt;p&gt;&lt;/p&gt;What is the difference between Modbus ASCII and Modbus RTU?

&lt;p&gt;&lt;/p&gt;The difference between these two modes is explained here.

&lt;p&gt;&lt;/p&gt;What are extended register addresses?

&lt;p&gt;&lt;/p&gt;Since the range of the analog output holding registers is 40001 to 49999, it implies that there cannot be more than 9999 registers. Although this is usually enough for most applications, there are cases where more registers would be beneficial.

&lt;p&gt;&lt;/p&gt;Registers 40001 to 49999 correspond to data addresses 0000 to 270E. If we utilize the remaining data addresses 270F to FFFF, over six times as many registers can be available, 65536 in total. This would correspond to register numbers from 40001 to 105536.

&lt;p&gt;&lt;/p&gt;Many modbus software drivers (for Master PCs) were written with the 40001 to 49999 limits and cannot access extended registers in slave devices. And many slave devices do not support maps using the extended registers. But on the other hand, some slave devices do support these registers and some Master software can access it, especially if custom software is written.

&lt;p&gt;&lt;/p&gt;How does 2-byte slave addressing work?

&lt;p&gt;&lt;/p&gt;Since a single byte is normally used to define the slave address and each slave on a network requires a unique address, the number of slaves on a network is limited to 256. The limit defined in the modbus specification is even lower at 247.

&lt;p&gt;&lt;/p&gt;To get beyond this limit, a modification can be made to the protocol to use two bytes for the address. The master and the slaves would all be required to support this modification. Two byte addressing extends the limit on the number of slaves in a network to 65535.

&lt;p&gt;&lt;/p&gt;By default, the Simply Modbus software uses 1 byte addressing. When an address greater than 255 is entered, the software automatically switches to 2 byte addressing and stays in this mode for all addresses until the 2 byte addressing is manually turned off.

&lt;p&gt;&lt;/p&gt;How can you send events and historical data?

&lt;p&gt;&lt;/p&gt;&lt;a href=&quot;http://www.simplymodbus.ca/Enron.htm&quot;&gt;Enron Modbus &lt;/a&gt;includes commands for moving events and historical data..

&lt;p&gt;&lt;/p&gt;What is Enron Modbus?

&lt;p&gt;&lt;/p&gt;Enron Modbus is a modification to the standard Modicon modbus communication protocol developed by Enron Corporation.

&lt;p&gt;&lt;/p&gt;See &lt;a href=&quot;http://www.simplymodbus.ca/Enron.htm&quot;&gt;Enron Modbus &lt;/a&gt;for details.&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Please visit us at&lt;/span&gt;  &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(51, 51, 255);&quot;&gt;&lt;a href=&quot;http://plc2u.com/index.php/plc-article/modbus-protocol/what-is-modbus&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;http://plc2u.com/index.php/plc-article/modbus-protocol/what-is-modbus&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;</description><link>http://plcontrol.blogspot.com/2009/02/what-is-modbus.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivsL8XU31tgdFkQ5k36nz7Fl-sKJwafQaUFJScsT-c3QTmaV8hiKXadtSwEPlr6-zWQ8puZFKIGP9yQkZdOPnlXn2u804nQVQr209Q2XHFOosyvnhfCFrUNCbO-DViqH-oKMdSczD_4wXM/s72-c/DB9.gif" height="72" width="72"/><thr:total>0</thr:total></item></channel></rss>