{"id":25470,"date":"2023-10-13T17:23:48","date_gmt":"2023-10-13T09:23:48","guid":{"rendered":"https:\/\/www.modbus.cn\/?p=25470"},"modified":"2026-06-30T23:58:58","modified_gmt":"2026-06-30T15:58:58","slug":"modbus-poll-ying-wen-ban-yong-hu-shou-ce","status":"publish","type":"post","link":"https:\/\/www.modbus.cn\/en\/25470.html","title":{"rendered":"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Witte Software\u00ae&nbsp;<a href=\"https:\/\/www.modbustools.com\/\" rel=\"noopener noreferrer nofollow\">https:\/\/www.modbustools.com<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2023-08-01<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"_modbus_poll\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">1. Modbus Poll<\/mark><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus Poll is an easy to use Modbus master simulator developed for many purposes. Among others:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Designers of Modbus slave devices for quick and easy testing of protocol interface<\/li>\n\n\n\n<li>Automation engineers that need to test Modbus devices or networks on site<\/li>\n\n\n\n<li>Service engineers that want to read out and\/or change specific service data from a device<\/li>\n\n\n\n<li>Change Modbus registers in a slave device<\/li>\n\n\n\n<li>Log data from Modbus devices<\/li>\n\n\n\n<li>Troubleshooting and compliance testing<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_system_requirements_for_modbus_poll\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">1.1. System requirements for Modbus Poll<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Hardware requirements<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Processor; 1 GHz or faster recommended<br>1 GB RAM<br>5 MB of available hard drive space<br>1024 x 768 display resolutionOS requirements<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">All Windows versions from Windows 7 to Windows 11 are supported.<br>Modbus Poll version 7 runs on Windows XP.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_silent_install\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">1.1.1. Silent install<\/mark><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Silent install require no user intervention and have no user interface. The user doesn\u2019t see any dialog and isn\u2019t asked any questions.<br>Use the command line \/S switch.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_end_user_license_agreement\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">1.2. End User License Agreement<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You should carefully read the following terms and conditions before using Modbus Poll. Unless you have a different license agreement signed by Witte Software, your use of this software indicates your acceptance of this license agreement and warranty. If you do not accept these terms you must cease using this software immediately.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Copyright.<\/strong><br>Modbus Poll (&#8220;The Software&#8221;) is copyright 2002-2023 by Witte Software, all rights reserved.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Evaluation and Registration.<\/strong><br>This is not free software. You are hereby licensed to use the Software for evaluation purposes without charge for a period of 30 days.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you use the Software after the 30 day evaluation period a registration fee is required.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unregistered use of the Software after the 30-day evaluation period is in violation of U.S. and international copyright laws.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One registered copy of the Software may either be used by a single person who uses the software personally on one or more computers, or installed on a single computer used by multiple people, but not both.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For information on order and pricing, please visit&nbsp;<a href=\"https:\/\/www.modbustools.com\/order.html\" rel=\"noopener noreferrer nofollow\">https:\/\/www.modbustools.com\/order.html<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus Poll licenses are perpetual. Once you buy a license to a specific major version, and as long as you abide by the license agreement, you can use that version forever with no additional cost.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Distribution.<\/strong><br>Provided that you do not include your License Key you are hereby licensed to make copies of the Software; give exact copies of the original to anyone; and distribute the Software in its unmodified form via electronic means. You are specifically prohibited from charging for any such copies.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>LIMITED WARRANTY.<\/strong><br>THE SOFTWARE IS PROVIDED AS IS AND WITTE SOFTWARE DISCLAIMS ALL WARRANTIES RELATING TO THIS SOFTWARE, WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>LIMITATION ON DAMAGES.<\/strong><br>NEITHER WITTE SOFTWARE NOR ANYONE INVOLVED IN THE CREATION, PRODUCTION, OR DELIVERY OF THIS SOFTWARE SHALL BE LIABLE FOR ANY INDIRECT, CONSEQUENTIAL, OR INCIDENTAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE SUCH SOFTWARE EVEN IF WITTE SOFTWARE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES OR CLAIMS. IN NO EVENT SHALL WITTE SOFTWARE\u2019S LIABILITY FOR ANY DAMAGES EXCEED THE PRICE PAID FOR THE LICENSE TO USE THE SOFTWARE, REGARDLESS OF THE FORM OF CLAIM. THE PERSON USING THE SOFTWARE BEARS ALL RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"_modbus_poll_features\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">2. Modbus Poll Features<\/mark><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_connections\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">2.1. Connections<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus Poll read\/write data from devices using:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Modbus RTU or ASCII on RS232 or RS485 networks. (USB\/RS232\/485 Converter)<\/li>\n\n\n\n<li>Modbus TCP\/IP<\/li>\n\n\n\n<li>Modbus Over TCP\/IP. (Modbus RTU\/ASCII encapsulated in a TCP packet)<\/li>\n\n\n\n<li>Modbus UDP\/IP<\/li>\n\n\n\n<li>Modbus Over UDP\/IP. (Modbus RTU\/ASCII encapsulated in a UDP packet)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_supported_modbus_functions\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">2.2. Supported Modbus Functions<\/mark><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>01 (0x01) Read Coils<\/li>\n\n\n\n<li>02 (0x02) Read Discrete Inputs<\/li>\n\n\n\n<li>03 (0x03) Read Holding Registers<\/li>\n\n\n\n<li>04 (0x04) Read Input Registers<\/li>\n\n\n\n<li>05 (0x05) Write Single Coil<\/li>\n\n\n\n<li>06 (0x06) Write Single Register<\/li>\n\n\n\n<li>08 (0x08) Diagnostics (Serial Line only)<\/li>\n\n\n\n<li>11 (0x0B) Get Comm Event Counter (Serial Line only)<\/li>\n\n\n\n<li>15 (0x0F) Write Multiple Coils<\/li>\n\n\n\n<li>16 (0x10) Write Multiple Registers<\/li>\n\n\n\n<li>17 (0x11) Report Server ID (Serial Line only)<\/li>\n\n\n\n<li>22 (0x16) Mask Write Register<\/li>\n\n\n\n<li>23 (0x17) Read\/Write Multiple Registers<\/li>\n\n\n\n<li>43 \/ 14 (0x2B \/ 0x0E) Read Device Identification<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_data_logging\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">2.3. Data logging<\/mark><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Log data to a text file<\/li>\n\n\n\n<li>Log data direct into Excel<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_display_formats\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">2.4. Display formats<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Each cell can be individual formatted.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Signed 16-bit register<\/li>\n\n\n\n<li>Unsigned 16-bit register<\/li>\n\n\n\n<li>Hex<\/li>\n\n\n\n<li>Binary<\/li>\n\n\n\n<li>32-bit signed integer with any word\/byte order<\/li>\n\n\n\n<li>32-bit unsigned integer with any word\/byte order<\/li>\n\n\n\n<li>64-bit signed integer with any word\/byte order<\/li>\n\n\n\n<li>64-bit unsigned integer with any word\/byte order<\/li>\n\n\n\n<li>32-bit float with any word\/byte order<\/li>\n\n\n\n<li>64-bit double float with any word\/byte order<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_miscellaneous_features\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">2.5. Miscellaneous features<\/mark><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OLE\/Automation for interfacing with Excel VBA, Python etc.<\/li>\n\n\n\n<li>Monitoring of data traffic<\/li>\n\n\n\n<li>Print and print preview<\/li>\n\n\n\n<li>Font selection<\/li>\n\n\n\n<li>Conditional colors<\/li>\n\n\n\n<li>Scaling<\/li>\n\n\n\n<li>Real time charting<\/li>\n\n\n\n<li>Save\/Open workspace<\/li>\n\n\n\n<li>Address Scan<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"_overview\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">3. Overview<\/mark><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus Poll uses a multiple document interface. That means several windows can be opened. Each one with different data contents from different slave devices at the same time.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172509438.png\"\/ loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This picture shows two open windows. One reading 10 Holding registers from slave id 1 and another reading 10 Holding registers from slave id 2.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_help_from_anywhere\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">3.1. Help from anywhere<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Press F1<\/strong>&nbsp;and get context sensitive help on a topic associated with the current selected item.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SHIFT + F1<\/strong>&nbsp;invokes a special &#8220;help mode&#8221; in which the cursor turns into a help cursor (arrow + question mark). The user can then select a visible object in the user interface, such as a menu item, toolbar button, or window. This opens help on a topic that describes the selected item.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_name_cells\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">3.2. Name cells<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Here you can type any text for designation of the value cells. You can also copy\/paste text from Excel cells.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_value_cells\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">3.3. Value cells<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Show the data values of the Modbus registers. If you double click a value cell a dialog box lets you write a new value to the slave device. Typing a number in a value cell shows the dialog as well. It is possible to select the used Modbus function used to write the value.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The check box &#8220;Close dialog on Response ok&#8221; is used to automatically close the dialog box when a value is successfully sent. This is convenient when a lot of values are to be changed. In that way it is fast to select a new cell and then type a new value again.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172511597.png\"\/ loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe1\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe1\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_change_font\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">3.4. Change font<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">To change the font you have 2 options<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Select the cells to be changed and then right click.<\/li>\n\n\n\n<li>Select the cells to be changed and then menu \u2192 display \u2192 font.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172513828.png\"\/ loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe2\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe2\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_conditional_colors\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">3.5. Conditional colors<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Conditional colors help you visually show values in specific ranges.3 color options<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Default color: This color is used if none of the conditional colors evaluates to true.<\/li>\n\n\n\n<li>Rule 1: This color selection is used if the expression evaluates to true. Rule 1 has precedence over rule 2.<\/li>\n\n\n\n<li>Rule 2: This color selection is used if the expression evaluates to true.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">7 Comparison operators<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>not used<\/li>\n\n\n\n<li>equal to<\/li>\n\n\n\n<li>greater than<\/li>\n\n\n\n<li>less than<\/li>\n\n\n\n<li>greater than or equal to<\/li>\n\n\n\n<li>less than or equal to<\/li>\n\n\n\n<li>and<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The &#8220;and&#8221; operator cannot be used when the data type is of float or 32 bit long type. The condition value is entered as a hex number if &#8220;and&#8221; is selected. It evaluates to true if any of the bits in both the cell and the condition value is 1.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_color_example\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">3.5.1. Color example<\/mark><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Green color if the cell value is between 398 and 402<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172515734.png\"\/ loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe3\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe3\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_scaling\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">3.6. Scaling<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Scaling helps you scale raw values to human readable values. Scaling works only for signed and unsigned 16\/32 bit integers.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172517981.png\"\/ loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe4\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe4\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">(X1,Y1) and (X2,Y2)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A line passing through the two points (X1,Y1) and (X2,Y2)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Slope=m=Y2\u2212Y1X2\u2212X1\ufffd\ufffd\ufffd\ufffd\ufffd=\ufffd=\ufffd2-\ufffd1\ufffd2-\ufffd1Line equation<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Y=m\u22c5(X\u2212X1)+Y1\ufffd=\ufffd\u22c5(\ufffd-\ufffd1)+\ufffd1Precision<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Number of digits after the decimal point.Enable<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Must be enabled to scale the value from the Modbus server\/slave. Scaling is automatically disabled if other than a 16\/32 bit integer display format is selected.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_real_time_charting\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">3.7. Real time charting<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The chart can plot 12 series in real time with up to 100000 points in each series.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_address_scan\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">3.8. Address Scan<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Scan an address range for a list of all valid addresses in a device.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_open_a_new_window\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">3.9. Open a new window<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">To open another window you have 3 options:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Press CTRL+N<\/li>\n\n\n\n<li>Select new in the file menu<\/li>\n\n\n\n<li>Press&nbsp;<img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172520248.png\" loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe5\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe5\" \/>&nbsp;on the toolbar<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"_connection_dialog\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">4. Connection dialog<\/mark><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To open the connection dialog you have 2 options:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Press F3<\/li>\n\n\n\n<li>Select connect from the connection menu<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172524484.png\"\/ loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe6\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe6\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_connection\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">4.1. Connection<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">There are 5 different connection types:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Serial:<\/strong><br>Modbus over serial line. RS232 or RS485. A USB serial converter can be used.<\/li>\n\n\n\n<li><strong>Modbus TCP\/IP:<\/strong><br>Select TCP\/IP if you want to communicate with a MODBUS TCP\/IP network. In this case, slave ID is the same as the Unit ID used in MODBUS TCP\/IP.<br>The port number is default 502.<br>If the connection fails then try if you can ping your device at the command prompt. If the ping command fails then Modbus Poll fails too.<\/li>\n\n\n\n<li><strong>Modbus UDP\/IP:<\/strong><br>Select UDP\/IP if you want to communicate with a MODBUS UDP\/IP network. This is the same as Modbus TCP\/IP but the connection less UDP protocol is used instead.<\/li>\n\n\n\n<li><strong>Modbus RTU\/ASCII over TCP\/IP:<\/strong><br>This is a RTU or ASCII message sent over a TCP\/IP network instead of serial lines.<\/li>\n\n\n\n<li><strong>Modbus RTU\/ASCII over UDP\/IP:<\/strong><br>This is a RTU or ASCII message sent over a UDP\/IP network instead of serial lines.<\/li>\n<\/ol>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><\/p>\n<cite>Connection type 3-5 is not standard Modbus as specified by&nbsp;<a href=\"https:\/\/modbus.org\/\" rel=\"noopener noreferrer nofollow\">www.modbus.org<\/a>&nbsp;but they are added for convenience.<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Depending on your selection some other settings will be grayed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_serial_settings\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">4.2. Serial Settings<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Use these parameters to set serial port settings. They are only available if the connection type is &#8220;<strong>Serial Port<\/strong>&#8220;.Mode<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use this option to select&nbsp;<strong>RTU<\/strong>&nbsp;or&nbsp;<strong>ASCII<\/strong>&nbsp;mode. Default RTU.Response timeout<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Specifies the length of time that Modbus Poll should wait for a response from a slave device before giving up. Default is 1000ms.Min delay between polls<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This setting ensures a minimum delay until the next request is transmitted no matter the scan rate. The resolution of this setting is approximately 15ms. It\u2019s possible on some computers to obtain better resolution but not all.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><\/p>\n<cite>If you set this value lower than 20ms the 3.5 char time gap between response and a new request can\u2019t be guaranteed. This is because the Windows scheduler switches tasks every 10 &#8211; 20ms.If you Poll several slaves in a serial RS485 network you should NOT set the value lower than 20ms. This is to ensure the 3.5 char time gap.In a TCP\/IP network less than 20ms is ok.Serial connection to only one slave device less than 20ms is ok.<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>User Baud Rate<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Specify a custom baud rate if none of the default baud rates are useful.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_remote_server\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">4.3. Remote Server<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Remote server settings are only available when using an Ethernet connection.IP Address<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Servers IP address. Default is localhost 127.0.0.1Port<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Server port number. Default 502Connect Timeout<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Max time to use to establish a connection. Default 1000<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_advanced_settings\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">4.4. Advanced settings<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">RTS Toggle<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RTS Toggle specifies that the RTS line will be high if bytes are available for transmission. After all buffered bytes have been sent, the RTS line will be low.<br>You can use this to switch direction if you have a 232\/485 converter without an automatic direction switch.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><\/p>\n<cite>The use of RTS controlled RS232\/RS485 converters should be avoided if possible. It is difficult to determine the exact time when to switch off the transmitter with non real-time operating systems like Windows and Linux. If it is switched off too early characters might still sit in the FIFO or the transmit register of the UART and these characters will be lost. Hence the slave will not recognize the message. On the other hand if it is switched off too late then the slave\u2019s message is corrupted and the master will not recognize the message.<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">DSR<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DSR specifies whether the DSR (data-set-ready) signal is monitored for output flow control. If this member is TRUE and DSR is turned off, output is suspended until DSR is sent again.CTS<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">CTS specifies whether the CTS (clear-to-send) signal is monitored for output flow control. If this checkbox is enabled and CTS is turned off, output is suspended until CTS is sent again.DTR<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DTR specifies whether the DTR will be enabled or disabled whenever the port is opened.Remove Echo<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If your device or RS232\/RS485 converter echoes the chars just sent.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"_readwrite_definition\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">5. Read\/Write definition<\/mark><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Use this command to define the data to be monitored for the active window.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To open the Read\/Write Definition dialog you have 3 options:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Press F8<\/li>\n\n\n\n<li>Select &#8220;Read\/Write Definition&#8221; from the Setup menu<\/li>\n\n\n\n<li>Press&nbsp;<img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172526185.png\" loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe7\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe7\" \/>&nbsp;on the toolbar<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172530193.png\"\/ loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe8\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe8\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_slave_id\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">5.1. Slave ID<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Range 1 to 255. (MODBUS protocol specifications say 247). The value 0 is also accepted to communicate directly to a MODBUS\/TCP or MODBUS\/UDP&nbsp;device.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_function_code\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">5.2. Function code<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You can select 1 of 8 function codes.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_read_functions\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">5.2.1. Read functions<\/mark><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The data returned by the read functions are displayed on the grid window.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>01: Read coils (0x)<\/li>\n\n\n\n<li>02: Read discrete inputs (1x)<\/li>\n\n\n\n<li>03: Read holding registers (4x)<\/li>\n\n\n\n<li>04: Read input registers (3x)<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_write_functions\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">5.2.2. Write functions<\/mark><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The write functions write the data displayed on the grid window.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>05: Write single coil (Writes to Coil status)<\/li>\n\n\n\n<li>06: Write single register (Writes to Holding registers)<\/li>\n\n\n\n<li>15: Write multiple coils (Writes to Coils)<\/li>\n\n\n\n<li>16: Write multiple registers (Writes to Holding registers)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_address\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">5.3. Address<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Addresses in the Modbus protocol are confusing! Some protocol specifications use the protocol\/message address and others use device addressing.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_protocolmessage_address\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">5.3.1. Protocol\/message address<\/mark><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Some protocol specifications use the protocol\/message address counting from 0 to 65535 along with a function code. This is also what the new Modbus specifications use. This is the address inside the message sent on the wire.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus Poll use protocol\/message address counting from 0 to 65535.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_device_address\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">5.3.2. Device address<\/mark><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Some protocol specifications use device address\/registers. Registers counts from 1. The first digit describes the function to be used. That means the device address 40101 is identified by address 100. The &#8220;4&#8221; means Holding registers and 4x registers counts from 1. And even more confusing: 4x means function code 03 and 3x means function code 04!<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_5_digits_vs_6_digits_addressing\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">5.3.3. 5 digits vs. 6 digits addressing<\/mark><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The address format 4x counts from 40001 to 49999. The next address is&nbsp;<strong>not<\/strong>&nbsp;50000. In the old days 9999 addresses was enough. There are cases where 9999 is not enough. Then a zero is added. 40101 becomes 400101 and so on. This is called 6 digits addressing or extended addressing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is not a problem with Modbus Poll. 410001 become 10000. The &#8220;4&#8221; is thrown away and the rest 10001 is decremented by 1 as we count from 0 instead of 1.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_address_examples\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">5.3.4. Address examples<\/mark><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">These examples show how to set up Modbus Poll if a specification uses device addresses.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"_read_holding_registers\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">Read Holding Registers<\/mark><\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">You want to read 20 registers from device address 40011 from slave ID 2 every 1000ms. From the &#8220;4&#8221; we know this is function 03 &#8220;Read Holding Registers&#8221;.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Slave ID = 2<\/li>\n\n\n\n<li>Function = &#8220;03 Read Holding Registers (4x)&#8221;<\/li>\n\n\n\n<li>Address = 10 (11 minus 1)<\/li>\n\n\n\n<li>Quantity = 20<\/li>\n\n\n\n<li>Scanrate = 1000<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"_read_discrete_inputs\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">Read Discrete Inputs<\/mark><\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">You want to read 1000 coils from address 110201 from slave ID 5 every 500ms. From the &#8220;1&#8221; we know this is function 02 &#8220;Read Discrete Inputs&#8221;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Slave ID = 5<\/li>\n\n\n\n<li>Function = &#8220;02 Read Discrete Inputs (1x)&#8221;<\/li>\n\n\n\n<li>Address = 10200 (10201 &#8211; 1)<\/li>\n\n\n\n<li>Quantity = 1000<\/li>\n\n\n\n<li>Scanrate = 500<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_scanrate\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">5.4. Scanrate<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The scan rate can be set from 0 to 3600000ms. Note that setting the scan rate lower than the transaction time does not make sense. If a serial connection at 9600baud is used and 125 registers are requested the transaction time is roughly 8 + 2 + 250 + 2 = 262ms + the gap (&gt;3.5 char time) between the request and the response. In this case setting the scan rate at e.g. 100ms does not make sense as the transaction time is at least 262ms + delay in the slave (gap) + min time between polls. (Set in the connection dialog F3).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_readwrite_disabled\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">5.5. Read\/Write Disabled<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The &#8220;Read\/Write Disabled&#8221; checkbox can be used to temporary enable or disable the communication for this window. A text (Disabled) is then shown along with the Tx and Error counters.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172532814.png\" loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe9\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe9\" \/><br>If &#8220;Read\/Write&#8221; is disabled you can make single requests with the &#8220;Read\/Write once&#8221; button or press F6.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172534270.png\" loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe10\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe10\" \/><br>&#8220;Read\/Write once&#8221; button<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_disable_on_error\">5.5.1. Disable on error<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Disable Read\/Write in case of error.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_hide_name_columns\">5.6. Hide name columns<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Hide all name columns. This is convenient to make more space if they are not used.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_address_in_cell\">5.7. Address in cell<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If enabled, the address is also shown in the value cell like: 2000 = 00000<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172536100.png\"\/ loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe11\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe11\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_plc_addresses_base_1\">5.8. PLC Addresses (Base 1)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This option will show the addresses as device addresses.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172538740.png\"\/ loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe12\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe12\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_enrondaniel_mode\">5.9. Enron\/Daniel Mode<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Enron or Enron\/Daniels Modbus is Standard Modbus with a few &#8220;Vendor Extensions&#8221;. The exact impact of these extensions is context dependent, but most common Modbus commands work as expected. There are some custom vendor-defined functions available &#8211; but few users expect or use them. The largest impact has to do with how 32-bit data values are read\/written.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enron-Modbus defines two special 4x holding register ranges:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>4&#215;5001 to 4&#215;5999 are assumed 32-bit long integers (4-bytes per register).<\/li>\n\n\n\n<li>4&#215;7001 to 4&#215;7999 are assumed 32-bit floating points (4-bytes per register).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Dealing with 32-bit values in Modbus is NOT unique to Enron-MB. However, Enron-MB takes the debatable step of returning 4-bytes per register instead of the 2-bytes implied by the term &#8220;holding register&#8221; in the Modbus specification. This means a poll of registers 4&#215;5001 and 4&#215;5002 in Enron-Modbus returns 8-bytes or two 32-bit integers, whereas Standard Modbus would only return 4-bytes or one 32-bit integer treated as two 16-bit integers. In addition, polling register 4&#215;5010 in Enron-MB returns the tenth 32-bit long integer, whereas Standard Modbus would consider this 1\/2 of the fifth 32-bit long integer in this range.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_rows\">5.10. Rows<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Specify the number of rows in the grid you prefer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"_real_time_charting_2\">6. Real time Charting<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Use this command to plot up to 12 data series in a chart in real time.<br>The real time chart is high speed and capable of drawing a new line as fast as new data is received.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>All chart settings are stored with workspace.&nbsp;<a href=\"https:\/\/www.modbustools.com\/mbpoll-user-manual.html#_saveopen_workspace\" rel=\"noopener noreferrer nofollow\">Save\/Open Workspace<\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">To open the Real time charting dialog you have 2 options:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Press Alt + R<\/li>\n\n\n\n<li>Select &#8220;Real time Charting&#8221; from the Display menu<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172540450.png\"\/ loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe13\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe13\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The X-Axis displays the number of seconds since the chart was started.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When the points reach the end of the chart there are 3 options:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Stop at end:<\/strong>&nbsp;The charting stops.<\/li>\n\n\n\n<li><strong>Restart at end:<\/strong>&nbsp;The charting starts all over again.<\/li>\n\n\n\n<li><strong>Continue:<\/strong>&nbsp;It continues until it reaches the max number of points or stop is pressed.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_settings\">6.1. Settings<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">By default all 12 series are linked to the left Y-Axis. Check the &#8220;Right Y-Axis&#8221; check box if you want to link a series to the right Y-Axis.Specify<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Colors<\/li>\n\n\n\n<li>Right Y-Axis<\/li>\n\n\n\n<li>Title. If title is empty it is initialized with the name from the reading window<\/li>\n\n\n\n<li>Offset<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Show<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>File name<\/li>\n\n\n\n<li>Address<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The offset is useful to align data points on the same Y-Axis. For example, data points that are either 0 or 1 can be offset so they are not drawn on top of each other.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172544231.png\"\/ loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe14\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe14\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_zoom_function\">6.2. Zoom function<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Zooming in on the chart can be useful if you want to see more details. The zoom is controlled with the left mouse button. To zoom a specific part of the chart, simply left-click on the chart (this will be the upper-left corner of the zoomed rectangle) and drag to the bottom-right. A rectangle will appear. As soon as you release the mouse button, the axes will automatically adjust themselves to the region you have selected.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you left-click on the chart (like for starting a zoom) but if you move to the top-left corner instead, all the modifications done with the zoom and pan features will be canceled (the chart will be in the state it was before the manipulations with the pan and zoom).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_pan_function\">6.3. Pan function<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">To pan the control, right-click somewhere on the control and move the mouse. The point under the mouse will follow the movement of the mouse.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_link_data_to_the_chart_series\">6.4. Link data to the chart series<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The chart doesn\u2019t know which data to use unless you link a Modbus data cell to one of the 12 series. To do so select a value cell and from Menu\u2192Display select &#8220;Link to Chart&#8221;.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172546957.png\"\/ loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe15\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe15\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_export_series\">6.5. Export series<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Save series data to disk or copy to clipboard. Paste the data direct in Excel for further processing.<br>The file is given a .csv extension despite the use of a non-comma field separator.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Delimiters:<\/strong>&nbsp;Select the character that separates values in your text file. Use tab delimiter when copy\/paste to Excel.Furthermore some additional information is given.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Number of points<\/li>\n\n\n\n<li>Max point value<\/li>\n\n\n\n<li>Min point value<\/li>\n\n\n\n<li>Average point value<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172548439.png\"\/ loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe16\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe16\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"_address_scan_2\">7. Address Scan<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Scan an address range for a list of all valid addresses in a device. Addresses are read one by one and the read result is shown in a list.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>Scanning all 65535 addresses takes some time depending on connection type, server device etc.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_export_address_scan\">7.1. Export Address Scan<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Save Address Scan data to disk or copy to clipboard. Paste the data direct in Excel for further processing.<br>The file is given a .csv extension despite the use of a non-comma field separator.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Delimiters:<\/strong>&nbsp;Select the character that separates values in your text file. Use tab delimiter when copy\/paste to Excel.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"_display_formats_2\">8. Display formats<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Mark the cells to be formatted. Select one of the 28 display formats from the display menu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_native_modbus_registers\">8.1. Native Modbus registers<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The 16-bit Modbus registers can be displayed in 4 different modes.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Signed<\/li>\n\n\n\n<li>Unsigned<\/li>\n\n\n\n<li>Hex<\/li>\n\n\n\n<li>ASCII &#8211; Hex<\/li>\n\n\n\n<li>Binary<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_32_bit_signed_integer\">8.2. 32-bit signed integer<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This combines 2 16-bit Modbus registers. It can be displayed in 4 different word\/byte orders.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Signed integer Big-endian<\/li>\n\n\n\n<li>Signed integer Little-endian<\/li>\n\n\n\n<li>Signed integer Big-endian byte swap<\/li>\n\n\n\n<li>Signed integer Little-endian byte swapExampleByte Order:&nbsp;<strong>AB CD (Big-endian)<\/strong><br>The decimal number 123456789 or in hexadecimal&nbsp;<strong>07 5B CD 15<\/strong><br>Order as they come over the wire in a Modbus message:&nbsp;<strong>07 5B CD 15<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_32_bit_unsigned_integer\">8.3. 32-bit unsigned integer<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This combines 2 16-bit Modbus registers. It can be displayed in 4 different word\/byte orders.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Unsigned integer Big-endian<\/li>\n\n\n\n<li>Unsigned integer Little-endian<\/li>\n\n\n\n<li>Unsigned integer Big-endian byte swap<\/li>\n\n\n\n<li>Unsigned integer Little-endian byte swapExampleByte Order:&nbsp;<strong>AB CD (Big-endian)<\/strong><br>The decimal number 123456789 or in hexadecimal&nbsp;<strong>07 5B CD 15<\/strong><br>Order as they come over the wire in a Modbus message:&nbsp;<strong>07 5B CD 15<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_64_bit_signed_integer\">8.4. 64-bit signed integer<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This combines 4 16-bit Modbus registers. It can be displayed in 4 different word\/byte orders.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Signed integer Big-endian<\/li>\n\n\n\n<li>Signed integer Little-endian<\/li>\n\n\n\n<li>Signed integer Big-endian byte swap<\/li>\n\n\n\n<li>Signed integer Little-endian byte swapExampleByte Order:&nbsp;<strong>AB CD EF GH (Big-endian)<\/strong><br>The decimal number -1,234,567,890,123,456,789 or in hexadecimal&nbsp;<strong>EE DD EF 0B 82 16 7E EB<\/strong><br>Order as they come over the wire in a Modbus message:&nbsp;<strong>EE DD EF 0B 82 16 7E EB<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_64_bit_unsigned_integer\">8.5. 64-bit unsigned integer<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This combines 4 16-bit Modbus registers. It can be displayed in 4 different word\/byte orders.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Unsigned integer Big-endian<\/li>\n\n\n\n<li>Unsigned integer Little-endian<\/li>\n\n\n\n<li>Unsigned integer Big-endian byte swap<\/li>\n\n\n\n<li>Unsigned integer Little-endian byte swapExampleByte Order:&nbsp;<strong>AB CD EF GH (Big-endian)<\/strong><br>The decimal number 1,234,567,890,123,456,789 or in hexadecimal&nbsp;<strong>11 22 10 F4 7D E9 81 15<\/strong><br>Order as they come over the wire in a Modbus message:&nbsp;<strong>11 22 10 F4 7D E9 81 15<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_32_bit_floating\">8.6. 32-bit floating<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This combines 2 16-bit Modbus registers. It can be displayed in 4 different word\/byte orders.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Float Big-endian<\/li>\n\n\n\n<li>Float Little-endian<\/li>\n\n\n\n<li>Float Big-endian byte swap<\/li>\n\n\n\n<li>Float Little-endian byte swapExampleByte Order:&nbsp;<strong>AB CD (Big-endian)<\/strong><br>The floating point number 123456.00 or in hexadecimal&nbsp;<strong>47 F1 20 00<\/strong><br>Order as they come over the wire in a Modbus message:&nbsp;<strong>47 F1 20 00<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_64_bit_double\">8.7. 64-bit double<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This combines 4 16-bit Modbus registers. It can be displayed in 4 different word\/byte orders.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Double Big-endian<\/li>\n\n\n\n<li>Double Little-endian<\/li>\n\n\n\n<li>Double Big-endian byte swap<\/li>\n\n\n\n<li>Double Little-endian byte swapExampleByte Order:&nbsp;<strong>AB CD EF GH (Big-endian)<\/strong><br>The floating point number 123456789.00 or in hexadecimal&nbsp;<strong>41 9D 6F 34 54 00 00 00<\/strong><br>Order as they come over the wire in a Modbus message:&nbsp;<strong>41 9D 6F 34 54 00 00 00<\/strong><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"_saveopen_workspace\">9. Save\/Open Workspace<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you open many related Modbus windows it is convenient to save a snapshot of the current layout of all open and arranged Modbus Windows in one workspace.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A workspace (*mbw) is a file that contains display information and file names of all open windows. Not the actual contents. To do this, go to File\u2192 Save Workspace.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Connection and Chart settings are stored in the Workspace file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When you open a workspace file, Modbus Poll opens all Modbus Windows and displays them in the layout that you saved.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"_export_to_csv\">10. Export to csv<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Export names and values to a Comma, Semicolon or Tab Separated Values File.Select from the file dialog<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Comma Separated Values file (*.csv)<br>&#8220;Temperature&#8221;,&#8221;19.7&#8243;<\/li>\n\n\n\n<li>Semicolon Separated Values file (*.csv)<br>&#8220;Temperature&#8221;;&#8221;19.7&#8243;<\/li>\n\n\n\n<li>Tab Separated Values file (*.txt)<br>Temperature 19.7<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Depending on your system, comma or period is used to separate decimals.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"_export_to_modbus_slave\">11. Export to Modbus Slave<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Export names, values and formatting to a Modbus Slave file. *.mbs<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus Slave version 7.4.0 or newer is required to open the file.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"_test_center\">12. Test center<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The purpose of this test dialog is to help MODBUS slave device developers to test the device with any string of their own composition.<br>The list box displays the transmitted data as well as the received data.<br>You can have several test strings in the pull down list box. When you have entered a string then press the &#8220;Add to List&#8221; button then the string is added to the list.<br>The selected string is sent when the &#8220;Send&#8221; button is pressed.Open list<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Rest test strings from a file.Save list<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Store the test strings to a file.Clear<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Clear the test list.Add to list<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Add the current test string to the list.Add Check<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Add a CRC or LRC to the end of the input string.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When using the test center you may want to disable communication from other windows. Check the &#8220;Read\/Write disable&#8221; check box in &#8220;Read\/Write Definition&#8221; dialog. Setup\u2192Read\/Write Definition.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_ascii_example\">12.1. ASCII Example<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">String in the combo box:3A 30 31 30 33 30 30 30 30 30 30 30 41<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The transmitted string if LRC is added3A 30 31 30 33 30 30 30 30 30 30 30 41 46 32 0D 0A<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A CR LF pair is also added.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_tcpip_example\">12.2. TCP\/IP Example<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Read 10 holding registers.00 00 00 00 00 06 01 03 00 00 00 0A<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The first 6 bytes are the TCP\/IP header.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_test_center_string_file\">12.3. Test center string file<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">With a text editor such as notepad or similar you can prepare strings to be used in the test.<br>The first line in the file must be the string &#8220;TestCenter&#8221;. This is how Modbus Poll knows that the file is the correct format. Press &#8220;Open list&#8221; to open the prepared text file.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_content_of_a_string_list\">12.3.1. Content of a string list<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">TestCenter 3A 30 31 30 33 30 30 30 30 30 30 30 41 3A 30 32 30 33 30 30 30 30 30 30 30 41 3A 30 33 30 33 30 30 30 30 30 30 30 41<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_copy\">12.4. Copy<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Use the Copy button to copy selected Tx\/Rx strings to the clipboard.<br>The SHIFT and CTRL keys can be used together with the mouse to select and deselect strings, select groups of strings, and select non-adjacent strings.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>Leave this window open while doing other commands.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"_modbus_data_logging\">13. Modbus Data logging<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You can log data to either a text file or direct to Microsoft Excel.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_text_file\">13.1. Text file<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Select Log from the setup menu or use shortcut keys: Alt+L<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Each Modbus Window logs to its individual text file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When you want to stop the data logging then select the logging off command on the setup menu.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172553752.png\"\/ loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe17\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe17\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_log_rate\">13.1.1. Log Rate<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Each read<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Write a logline for all Modbus requests. Log frequency as scan rate.Select<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Specify the log rate in seconds. Independent of scan rate.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>If the scan rate is e.g. 10000ms it makes no sense to set a 1 sec log rate as data is logged only when new data is ready.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_delimiters\">13.1.2. Delimiters<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">As delimiter you can use one of following options:Fixed width<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Means that the values are organized in columns.Comma<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Values separated by a comma.Tab<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Values separated by a tab.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_log_if_data_changed_only\">13.1.3. Log if data changed only<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Specify that a new log line is written only if any data is changed since last log.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_log_errors\">13.1.4. Log Errors<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Specify that errors such a timeout etc. are logged.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_log_date\">13.1.5. Log Date<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Specify that the current date is added to the log time.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_use_t_as_delimiter\">13.1.6. Use &#8220;T&#8221; as delimiter<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Specify that the time and date is delimited by the letter &#8220;T&#8221; as specified in ISO 8601.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_log_ms\">13.1.7. Log ms<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Specify that milliseconds are added to the log time.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_log_address\">13.1.8. Log address<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Specify that the Modbus Address is added to the log.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_start_log_when_ok_is_pressed\">13.1.9. Start Log when ok is pressed<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Specify that logging is started when the ok button is pressed. Otherwise the log setup is just stored when *mbp file is saved.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_start_log_when_mbp_is_opened\">13.1.10. Start Log when *mbp is opened<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Specify that logging is automatically started when a *.mbp file is opened.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_flush_to_file_immediately\">13.1.11. Flush to file immediately<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">This ensures that log lines are not cashed in the file system but physically written immediately.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_append\">13.1.12. Append<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Specify that logs are appended to the selected file. Otherwise a new file is created.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_new_log_file_at_midnight\">13.1.13. New log file at midnight<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Close the current log file and start a new file at midnight. A time stamp is added to your filename.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_header_information\">13.1.14. Header information<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Insert header:<\/strong>&nbsp;Information is inserted in the top of the log file.\n<ul class=\"wp-block-list\">\n<li><strong>Name cells in top row:<\/strong>&nbsp;Insert names.<\/li>\n\n\n\n<li><strong>Poll definition:<\/strong>&nbsp;Insert ID, Function etc.<\/li>\n\n\n\n<li><strong>Name:<\/strong>&nbsp;Insert a name of your log.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example of a text file with fixed width:<\/strong>22:28:13 &lt;40001&gt; 17395 0 0 0 0 0 0 0 0 22:28:14 &lt;40001&gt; 17396 1 0 0 0 0 0 0 0 22:28:15 &lt;40001&gt; 17394 1 0 0 2 55 0 0 0 22:28:16 &lt;40001&gt; 13350 1 0 0 4 0 0 0 0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can import the data in an Excel spreadsheet.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_microsoft_excel\">13.2. Microsoft Excel<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This feature requires that Microsoft Excel is installed. Excel 2003 log is limited to 65535 logs as this is the max number of rows in an Excel sheet. Excel 2007 or newer is limited to 1,048,576 rows. Each Modbus Window logs to its individual Excel sheet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Select Excel Log from the setup menu or use shortcut keys: Alt+X<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Do not touch the Excel sheet while logging as this will interrupt the logging.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172555306.png\"\/ loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe18\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe18\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_log_rate_2\">13.2.1. Log Rate<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Each read:<\/strong>&nbsp;Write a logline for all Modbus requests. Log frequency as scan rate.<\/li>\n\n\n\n<li><strong>Select:<\/strong>&nbsp;Specify the log rate in seconds. Log is independent of scan rate.<br><strong>Remark:<\/strong>&nbsp;If the scan rate is e.g. 10000ms it makes no sense to set a 1 sec log rate as data is logged only when new data is ready.<\/li>\n\n\n\n<li><strong>Stop after:<\/strong>&nbsp;Specify the number of log lines. Note that Excel 2003 is limited to 65,536 rows and Excel 2007 1,048,576 rows.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_header_information_2\">13.2.2. Header information<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Insert header:<\/strong>&nbsp;Information is inserted in the top most 3 lines in the Excel sheet.\n<ul class=\"wp-block-list\">\n<li><strong>Name cells in top row:<\/strong>&nbsp;Insert names in row 3.<\/li>\n\n\n\n<li><strong>Poll definition:<\/strong>&nbsp;Insert ID, Function etc. in row 2.<\/li>\n\n\n\n<li><strong>Name:<\/strong>&nbsp;Insert a log name in row 1.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172558783.png\"\/ loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe19\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe19\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Excel log with header information.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"_communication_traffic\">14. Communication traffic<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Select the menu Display\u2192Communication to show the traffic on the serial line or Ethernet cable. Use the stop button to temporary stop the update for inspection.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use the copy button to copy the selected line to the clipboard.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>This window shows only data sent and received by Modbus Poll. You can\u2019t use it as a data sniffer.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>Leave this window open while doing other commands.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"_oleautomation\">15. OLE\/Automation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Automation (formerly known as OLE Automation) makes it possible for one application to manipulate objects implemented in another application.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An Automation client is an application that can manipulate exposed objects belonging to another application. This is also called an Automation controller.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An Automation server is an application that exposes programmable objects to other applications.&nbsp;<strong>Modbus Poll<\/strong>&nbsp;is an automation server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That means you can use any program that supports VBA (Visual Basic for Applications) such as Visual Basic, Excel etc. to interpret and show the modbus data according to your specific requirements.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_excel_example\">15.1. Excel example<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You should display the Developer tab or run in developer mode when you want to write macros.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_excel_2007\">15.1.1. Excel 2007<\/h4>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172600218.png\"\/ loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe20\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe20\" \/><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click the Microsoft office button and then click Excel options.<\/li>\n\n\n\n<li>Click popular and then select the show Developers tab in the ribbon check box.<br>Note the ribbon is part of the Microsoft fluent user interface.<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_excel_2010_2016\">15.1.2. Excel 2010, 2016<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click on the file tab.<\/li>\n\n\n\n<li>Click options. Excel Options window will open.<\/li>\n\n\n\n<li>On the left pane click Customize Ribbon.<\/li>\n\n\n\n<li>On the right pane, under Main Tabs, check the Developer check box.<\/li>\n\n\n\n<li>Click OK. The Developer tab should now show in the ribbon (right most tab).<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_excel_sample_code\">15.1.3. Excel sample code<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">This example opens two windows. One reading registers and another reading Coils.<br>Modbus Poll is hidden but you can show it by uncommenting the &#8220;ShowWindow&#8221; line. This will show one of the windows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An example is also included with the Modbus Poll installation.<br>Start \u2192 All Programs \u2192 Modbus Poll \u2192 Excel Example<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Excel VBA Example<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">Public doc1 As Object\nPublic doc2 As Object\nPublic app As Object\nDim res As Integer\nDim n As Integer\n\nPrivate Sub StartModbusPoll_Click()\n   Set app = CreateObject(&quot;Mbpoll.Application&quot;)\n   Set doc1 = CreateObject(&quot;Mbpoll.Document&quot;)\n   Set doc2 = CreateObject(&quot;Mbpoll.Document&quot;)\n' Read 10 Holding Registers every 1000ms\n   res = doc1.ReadHoldingRegisters(1, 0, 10, 1000)\n' Read 10 Coil Status every 1000ms\n   res = doc2.ReadCoils(1, 0, 10, 1000)\n' doc1.ShowWindow()\n   app.Connection = 1 ' Modbus TCP\/IP\n   app.IPAddress = &quot;127.0.0.1&quot; ' local host\n   app.ServerPort = 502\n   app.ConnectTimeout = 1000\n   res = app.OpenConnection()\nEnd Sub\n\nPrivate Sub Read_Click()\n   Cells(5, 7) = doc1.ReadResult() 'Show results for the requests\n   Cells(6, 7) = doc2.ReadResult()\n\n   For n = 0 To 9\n      Cells(5 + n, 2) = doc1.SRegisters(n)\n   Next n\n\n   For n = 0 To 9\n      Cells(18 + n, 2) = doc2.Coils(n)\n   Next n\nEnd Sub<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_python_example\">15.2. Python example<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This Python example opens a window and set all possible data formats.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Python Example<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">import win32com.client as win32\n\nSIGNED = 0\nUNSIGNED = 1\nHEX = 2\nBINARY = 3\nFLOAT_LE_BS = 4\nFLOAT_BE = 5\nDOUBLE_LE_BS = 6\nDOUBLE_BE = 7\nS32_LE_BS = 8\nS32_BE = 9\nFLOAT_LE = 10\nFLOAT_BE_BS = 11\nDOUBLE_LE = 12\nDOUBLE_BE_BS = 13\nS32_LE = 14\nS32_BE_BS = 15\n\nU32_BE = 17\nU32_LE_BS = 18\nU32_BE_BS = 19\nU32_LE = 20\n\nS64_BE = 21\nS64_LE_BS = 22\nS64_BE_BS = 23\nS64_LE = 24\n\nU64_BE = 25\nU64_LE_BS = 26\nU64_BE_BS = 27\nU64_LE = 28\n\n#Endianness\nBE = 0\nLE = 3\nBE_BS = 2\nLE_BS = 1\n\nApp = win32.Dispatch('Mbpoll.Application')\n\nApp.Connection = 1\nApp.IPAddress = &quot;127.0.0.1&quot;\n\nApp.ServerPort = 502\nApp.OpenConnection\n\n#Create a Modbus display window called Win1\nWin1 = win32.Dispatch(&quot;Mbpoll.Document&quot;)\n\n# Read 100 holding registers from slave ID 1, address 0 (40001) every 1000ms\nWin1.ReadHoldingRegisters(1, 0, 100, 1000)\n# Show the Modbus window\nWin1.ShowWindow()\n# Show 20 rows\nWin1.Rows(1)\n\n# Disable refresh for speed\nWin1.EnableRefresh = False\n\n# Set all different formats\n# This sets how the value is displayed\nWin1.SetFormat(0, SIGNED)\nWin1.SetFormat(1, UNSIGNED)\nWin1.SetFormat(2, HEX)\nWin1.SetFormat(3, BINARY)\n\nWin1.SetFormat(4, S32_BE)\nWin1.SetFormat(6, S32_LE)\nWin1.SetFormat(8, S32_BE_BS)\nWin1.SetFormat(10, S32_LE_BS)\n\nWin1.SetFormat(12, U32_BE)\nWin1.SetFormat(14, U32_LE)\nWin1.SetFormat(16, U32_BE_BS)\nWin1.SetFormat(18, U32_LE_BS)\n\nWin1.SetFormat(20, S64_BE)\nWin1.SetFormat(24, S64_LE)\nWin1.SetFormat(28, S64_BE_BS)\nWin1.SetFormat(32, S64_LE_BS)\n\nWin1.SetFormat(40, U64_BE)\nWin1.SetFormat(44, U64_LE)\nWin1.SetFormat(48, U64_BE_BS)\nWin1.SetFormat(52, U64_LE_BS)\n\nWin1.SetFormat(60, FLOAT_BE)\nWin1.SetFormat(62, FLOAT_LE)\nWin1.SetFormat(64, FLOAT_BE_BS)\nWin1.SetFormat(66, FLOAT_LE_BS)\n\nWin1.SetFormat(80, DOUBLE_BE)\nWin1.SetFormat(84, DOUBLE_LE)\nWin1.SetFormat(88, DOUBLE_BE_BS)\nWin1.SetFormat(92, DOUBLE_LE_BS)\n\n# Set all Names to used format\nWin1.SetName(0, &quot;SIGNED&quot;)\nWin1.SetName(1, &quot;UNSIGNED&quot;)\nWin1.SetName(2, &quot;HEX&quot;)\nWin1.SetName(3, &quot;BINARY&quot;)\n\nWin1.SetName(4, &quot;S32_BE&quot;)\nWin1.SetName(6, &quot;S32_LE&quot;)\nWin1.SetName(8, &quot;S32_BE_BS&quot;)\nWin1.SetName(10, &quot;S32_LE_BS&quot;)\n\nWin1.SetName(12, &quot;U32_BE&quot;)\nWin1.SetName(14, &quot;U32_LE&quot;)\nWin1.SetName(16, &quot;U32_BE_BS&quot;)\nWin1.SetName(18, &quot;U32_LE_BS&quot;)\n\nWin1.SetName(20, &quot;S64_BE&quot;)\nWin1.SetName(24, &quot;S64_LE&quot;)\nWin1.SetName(28, &quot;S64_BE_BS&quot;)\nWin1.SetName(32, &quot;S64_LE_BS&quot;)\n\nWin1.SetName(40, &quot;U64_BE&quot;)\nWin1.SetName(44, &quot;U64_LE&quot;)\nWin1.SetName(48, &quot;U64_BE_BS&quot;)\nWin1.SetName(52, &quot;U64_LE_BS&quot;)\n\nWin1.SetName(60, &quot;FLOAT_BE&quot;)\nWin1.SetName(62, &quot;FLOAT_LE&quot;)\nWin1.SetName(64, &quot;FLOAT_BE_BS&quot;)\nWin1.SetName(66, &quot;FLOAT_LE_BS&quot;)\n\nWin1.SetName(80, &quot;DOUBLE_BE&quot;)\nWin1.SetName(84, &quot;DOUBLE_LE&quot;)\nWin1.SetName(88, &quot;DOUBLE_BE_BS&quot;)\nWin1.SetName(92, &quot;DOUBLE_LE_BS&quot;)\n\n# Refresh\nWin1.EnableRefresh = True\n\nWin1.ResizeAllColumns ()\nWin1.ResizeWindow()\n\nresult = Win1.Save(&quot;C:\\Users\\UserName\\Desktop\\testfile.mbp&quot;)\nprint (result)\n\nprint (Win1.GetName(1))\n\n_ = input(&quot;Press ENTER to quit:&quot;)<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_connection_functionsproperties\">15.3. Connection Functions\/Properties<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The following properties and functions do the same as you setup in the connection dialog (F3).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_connection_2\">15.3.1. Connection<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Connection selects the desired connection. A serial port or one of the Ethernet connections can be selected.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>Connection<\/strong>&nbsp;as IntegerValid values<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">0 = Serial port<br>1 = Modbus TCP\/IP<br>2 = Modbus UDP\/IP<br>3 = Modbus ASCII\/RTU over TCP\/IP<br>4 = Modbus ASCII\/RTU over UDP\/IP<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">Connection = 0<\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_baudrate\">15.3.2. BaudRate<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Applicable only for Connection = 0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>BaudRate<\/strong>&nbsp;as LongValid values<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">300<br>600<br>1200<br>2400<br>4800<br>9600 (Default)<br>14400<br>19200<br>38400<br>56000<br>57600<br>115200<br>128000<br>153600<br>230400<br>256000<br>460800<br>921600<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">BaudRate = 9600<\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_databits\">15.3.3. DataBits<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Applicable only for Connection = 0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>DataBits<\/strong>&nbsp;as IntegerValid values<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">7<br>8 (Default)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">DataBits = 8<\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_parity\">15.3.4. Parity<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Applicable only for Connection = 0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>Parity<\/strong>&nbsp;as IntegerValid values<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">0 = None<br>1 = Odd<br>2 = Even (Default)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">Parity = 2<\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_stopbits\">15.3.5. StopBits<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Applicable only for Connection = 0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>StopBits<\/strong>&nbsp;as IntegerValid values<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1 (Default)<br>2<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">StopBits = 1<\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_serialport\">15.3.6. SerialPort<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Applicable only for Connection = 0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>SerialPort<\/strong>&nbsp;as IntegerValid values<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1\u2026255<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Default value = 1<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">SerialPort = 1<\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_mode\">15.3.7. Mode<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Applicable only for Connection = 0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>Mode<\/strong>&nbsp;as IntegerValid values<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">0 = RTU Mode<br>1 = ASCII Mode<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">Mode = 1<\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_removeecho\">15.3.8. RemoveEcho<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Applicable only for Connection = 0<br>If your device or RS232\/RS485 converter echoes the chars just sent.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>RemoveEcho<\/strong>&nbsp;as IntegerValid values<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">0 (Default)<br>1 (Remove echoes)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">RemoveEcho = 1<\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_responsetimeout\">15.3.9. ResponseTimeout<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The ResponseTimeout specifies the length of time in ms that Modbus Poll should wait for a response from a slave device before giving up.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>ResponseTimeout<\/strong>&nbsp;as IntegerValid values<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">50\u2026100000<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Default value = 1000<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">ResponseTimeout = 1000<\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_delaybetweenpolls\">15.3.10. DelayBetweenPolls<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>DelayBetweenPolls<\/strong>&nbsp;as IntegerValid values<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">0\u20261000<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Default value = 20<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">DelayBetweenPolls = 20<\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_serverport\">15.3.11. ServerPort<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Applicable only for Connection = 1\u20264<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>ServerPort<\/strong>&nbsp;as LongValid values<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">0\u202665535<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Default value = 502<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">ServerPort = 502<\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_connecttimeout\">15.3.12. ConnectTimeout<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The ConnectTimeout specifies the length of time that Modbus Poll should wait for a TCP\/IP connection to succeed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Applicable only for Connection = 1\u20264<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>ConnectTimeout<\/strong>&nbsp;as IntegerValid values<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">100\u202630000ms<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Default value = 1000ms<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">ConnectTimeout = 1000<\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_ipversion\">15.3.13. IPVersion<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Applicable only for Connection = 1\u20264<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>IPVersion<\/strong>&nbsp;as IntegerValid values<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">4 = IP Version 4 (Default)<br>6 = IP Version 6<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">IPVersion = 4<\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_openconnection\">15.3.14. OpenConnection<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Opens the connection selected with the Connection property.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>OpenConnection<\/strong>() As IntegerParameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This function has no parameters.Return value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For error 3-5: Please check if you have the latest serial port driver.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><strong>Error<\/strong><\/th><th><strong>Description<\/strong><\/th><\/tr><\/thead><tbody><tr><td>0<\/td><td>SUCCESS<\/td><\/tr><tr><td>1<\/td><td>Serial Port not available<\/td><\/tr><tr><td>3<\/td><td>Serial port. Not possible to get current settings from the port driver.<\/td><\/tr><tr><td>4<\/td><td>Serial port. Serial port driver did not accept port settings.<\/td><\/tr><tr><td>5<\/td><td>Serial port. Serial port driver did not accept timeout settings.<\/td><\/tr><tr><td>12<\/td><td>TCP\/UDP Connection failed. WSA start up<\/td><\/tr><tr><td>13<\/td><td>TCP\/UDP Connection failed. Connect error<\/td><\/tr><tr><td>14<\/td><td>TCP\/UDP Connection failed. Timeout<\/td><\/tr><tr><td>15<\/td><td>TCP\/UDP Connection failed. IOCTL<\/td><\/tr><tr><td>17<\/td><td>TCP\/UDP Connection failed. Socket error<\/td><\/tr><tr><td>21<\/td><td>TCP\/UDP Connection failed. Address information<\/td><\/tr><tr><td>255<\/td><td>Connection already open<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Excel example how to open a Modbus TCP\/IP connection<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">Public app As Object\nDim res As Integer\n' Create an object to Modbus Poll\nSet app = CreateObject(&quot;Mbpoll.Application&quot;)\napp.Connection = 1 ' Select Modbus TCP\/IP\napp.IPVersion = 4\napp.IPAddress = &quot;192.168.1.27&quot;\napp.ServerPort = 502\napp.ConnectTimeout = 1000\napp.ResponseTimeout = 1000\nres = app.OpenConnection()<\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Python example how to setup a serial connection<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">import win32com.client as win32\n\nApp = win32.Dispatch('Mbpoll.Application')\n\nApp.Connection = 0            # Serial connection\nApp.SerialPort = 3            # Com port 3\nApp.BaudRate = 9600           # 9600 baud\nApp.Parity = 0                # None parity\nApp.Mode = 0                  # RTU mode\nApp.ResponseTimeout = 1000    # Wait 1000ms until give up\nApp.DelayBetweenPolls = 20    # Ensure minimum 20 ms gap until next request\nApp.OpenConnection\n\n#Create a Modbus display window called Win1\nWin1 = win32.Dispatch(&quot;Mbpoll.Document&quot;)\n\n# Read 10 holding registers from slave ID 1, address 0 (40001) every 1000ms\nWin1.ReadHoldingRegisters(1, 0, 10, 1000)\n# Show the Modbus window\nWin1.ShowWindow()\n# Show 10 rows\nWin1.Rows(0)\n\n# Disable refresh for speed\nWin1.EnableRefresh = False\n\n# Set the name of the registers\nWin1.SetName(0, &quot;Register 0&quot;)\n\n# Set the value to write\nWin1.EnableRefresh = True\n\nWin1.ResizeAllColumns ()\nWin1.ResizeWindow()\n\n_ = input(&quot;Press ENTER to quit:&quot;)<\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_closeconnection\">15.3.15. CloseConnection<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>CloseConnection<\/strong>() As IntegerParameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This function has no parameters.Return value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zero if success. Nonzero value if failed.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_showcommunicationtraffic\">15.3.16. ShowCommunicationTraffic<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Shows the communication traffic window.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>ShowCommunicationTraffic<\/strong>()Parameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This function has no parameters.Return value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">None<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_closecommunicationtraffic\">15.3.17. CloseCommunicationTraffic<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Closes the communication traffic window if shown.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>CloseCommunicationTraffic<\/strong>()Parameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This function has no parameters.Return value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">None<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_read_functions_2\">15.4. Read Functions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The following functions do the same as you setup in the read\/write definition dialog (F8). Read functions are associated with a Modbus Poll document. (The window with data)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">' First a Modbus Poll document is needed.\nPublic doc As Object\n\nSet doc = CreateObject(&quot;Mbpoll.Document&quot;)\nres = doc.ReadCoils(1, 0, 100, 1000) ' Read 100 coils every 1000ms<\/pre><\/div>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>You must create a Read before you can use properties to get data.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_readcoils\">15.4.1. ReadCoils<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus function code 01<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>ReadCoils<\/strong>(SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SlaveID:<\/strong>&nbsp;The slave address 1 to 255<br><strong>Address:<\/strong>&nbsp;The data address (Base 0)<br><strong>Quantity:<\/strong>&nbsp;The number of data. 1 to 2000<br><strong>ScanRate:<\/strong>&nbsp;0 to 3600000msReturn value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">True if success. False if not success<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_readdiscreteinputs\">15.4.2. ReadDiscreteInputs<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus function code 02<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>ReadDiscreteInputs<\/strong>(SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SlaveID:<\/strong>&nbsp;The slave address 1 to 255<br><strong>Address:<\/strong>&nbsp;The data address (Base 0)<br><strong>Quantity:<\/strong>&nbsp;The number of data. 1 to 2000<br><strong>ScanRate:<\/strong>&nbsp;0 to 3600000msReturn value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">True if success. False if not success<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_readholdingregisters\">15.4.3. ReadHoldingRegisters<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus function code 03<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>ReadHoldingRegisters<\/strong>(SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SlaveID:<\/strong>&nbsp;The slave address 1 to 255<br><strong>Address:<\/strong>&nbsp;The data address (Base 0)<br><strong>Quantity:<\/strong>&nbsp;The number of data. 1 to 125<br><strong>ScanRate:<\/strong>&nbsp;0 to 3600000msReturn value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">True if success. False if not success<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_readinputregisters\">15.4.4. ReadInputRegisters<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus function code 04<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>ReadInputRegisters<\/strong>(SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SlaveID:<\/strong>&nbsp;The slave address 1 to 255<br><strong>Address:<\/strong>&nbsp;The data address (Base 0)<br><strong>Quantity:<\/strong>&nbsp;The number of data. 1 to 125<br><strong>ScanRate:<\/strong>&nbsp;0 to 3600000msReturn value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">True if success. False if not success<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_automation_write_functions\">15.5. Automation Write Functions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The write functions write the values stored in the array filled by the properties. The below Write function do not create a data window. To create a data window use the Win functions e.g.&nbsp;<a href=\"https:\/\/www.modbustools.com\/mbpoll-user-manual.html#_writemultipleregisterswin\" rel=\"noopener noreferrer nofollow\">WriteMultipleRegistersWin<\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_writesinglecoil\">15.5.1. WriteSingleCoil<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus function code 05.<br>Writes the first coil stored in the write array.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>WriteSingleCoil<\/strong>(SlaveID As Integer, Address As Long) As IntegerParameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SlaveID:<\/strong>&nbsp;The slave address 0 to 255<br><strong>Address:<\/strong>&nbsp;The data address (Base 0)Return value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">True if the write array is ready and the data is sent. False if the array is empty or error in the parameters.<br>The controlling application is responsible for verifying the write operation by reading back the value written.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_writesingleregister\">15.5.2. WriteSingleRegister<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus function code 06.<br>Writes the first register stored in the write array.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>WriteSingleRegister<\/strong>&nbsp;(SlaveID As Integer, Address As Long) As IntegerParameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SlaveID:<\/strong>&nbsp;The slave address 0 to 255<br><strong>Address:<\/strong>&nbsp;The data address (Base 0)Return value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">True if the write array is ready and the data is sent. False if the array is empty or error in the parameters.<br>The controlling application is responsible for verifying the write operation by reading back the value written.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_writemultiplecoils\">15.5.3. WriteMultipleCoils<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus function code 15.<br>Write the coils stored in the write array.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>WriteMultipleCoils<\/strong>(SlaveID As Integer, Address As Long, Quantity As Integer) As IntegerReturn value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">True if the write array is ready and the data is sent. False if the array is empty or error in the parameters.<br>The controlling application is responsible for verifying the write operation by reading back the values written.Parameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SlaveID:<\/strong>&nbsp;The slave address 0 to 255<br><strong>Address:<\/strong>&nbsp;The data address (Base 0)<br><strong>Quantity<\/strong>&nbsp;The number of data. 1 to 1968<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_writemultipleregisters\">15.5.4. WriteMultipleRegisters<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus function code 16.<br>Write the registers stored in the write array.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>WriteMultipleRegisters<\/strong>(SlaveID As Integer, Address As Long, Quantity As Integer) As IntegerParameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SlaveID:<\/strong>&nbsp;The slave address 0 to 255<br><strong>Address:<\/strong>&nbsp;The data address (Base 0)<br><strong>Quantity:<\/strong>&nbsp;The number of data. 1 to 123Return value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">True if the write array is ready and the data is sent. False if the array is empty or error in the parameters.<br>The controlling application is responsible for verifying the write operation by reading back the value written.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_python_example_2\">15.5.5. Python example<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Python example how to create a window that read 10 registers from address 0 (40001) and then write 5 registers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Python example<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">import sys\nimport time\nimport win32com.client as win32\n\nApp = win32.Dispatch('Mbpoll.Application')\n\nApp.Connection = 1            # TCP\/IP connection\nApp.IPAddress = &quot;127.0.0.1&quot;\n\nApp.ResponseTimeout = 1000    # Wait 1000ms until give up\nApp.DelayBetweenPolls = 20    # Ensure minimum 20 ms gap until next request\nApp.ConnectTimeout = 500      # Wait 500ms until give up\n\nApp.ServerPort = 502\nresult = App.OpenConnection\n\nif result != 0:\n   print(&quot;Connection failed. Error: &quot;, result)\n   sys.exit()\n\n#Create a Modbus display window called Win1\nWin1 = win32.Dispatch(&quot;Mbpoll.Document&quot;)\n\n# Read 10 holding registers from slave ID 1, address 0 (40001) every 1000ms\nWin1.ReadHoldingRegisters(1, 0, 10, 1000)\n# Show the Modbus window\nWin1.ShowWindow()\n# Show 10 rows\nWin1.Rows(0)\n# Resize the window to fit to the grid\nWin1.ResizeWindow()\n\ntime.sleep(1.0) # Wait until read is done\n\nif Win1.ReadResult == 0:    # Check read result\n   print(&quot;Modbus register 0 (40001) = &quot;, Win1.SRegisters(0))\nelse:\n   print(&quot;Read failed error: = &quot;, Win1.ReadResult)\n\nprint (&quot;Tx count = %d, Rx count = %d&quot; % (Win1.GetTxCount, Win1.GetRxCount))\n\n# Prepare the internal array in Modbus Poll with data to write\nWin1.SRegisters(0, 1)   # Note that parameter 1 is not a\nWin1.SRegisters(1, 10)  # Modbus address but an index to the array\nWin1.SRegisters(2, 100)\nWin1.SRegisters(3, 1000)\nWin1.SRegisters(4, 10000)\n# Write the registers. This function do not create a window in Modbus Poll\n# Use the function &lt;&lt;WriteMultipleRegistersWin&gt;&gt; to create a data window\nWin1.WriteMultipleRegisters (1, 0, 5)\n\n_ = input(&quot;Wait for write Press ENTER:&quot;)\n\nif Win1.WriteResult == 0:    # Check write result\n   print(&quot;Modbus write success&quot;)\nelse:\n   print(&quot;Write failed error: = &quot;, WriteResult)\n\n_ = input(&quot;Press ENTER to quit:&quot;)<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_various_functions\">15.6. Various Functions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Various functions are associated with a Modbus Poll document. (The window with data)<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_showwindow\">15.6.1. ShowWindow<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">As default Modbus document windows are hidden. The ShowWindow function makes Modbus Poll visible and shows the document with data content.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>ShowWindow<\/strong>()Parameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This function has no parameters.Return value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">None<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_gettxcount\">15.6.2. GetTxCount<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Gets the number of requests.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>GetTxCount<\/strong>() As LongParameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This function has no parameters.Return value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The number of requests.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_getrxcount\">15.6.3. GetRxCount<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Gets the number of response.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>GetRxCount<\/strong>() As LongParameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This function has no parameters.Return value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The number of response.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_getname\">15.6.4. GetName<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Gets the name of a value.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>GetName<\/strong>(Index As Integer) As StringParameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Index:<\/strong>&nbsp;Index 0 corresponds to the first Modbus address.Return value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The name.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_setname\">15.6.5. SetName<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Changes the name of a value. Function&nbsp;<strong>SetName<\/strong>(Index As Integer, Name As String)Parameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Index:<\/strong>&nbsp;Index 0 corresponds to the first Modbus address.<br><strong>Name:<\/strong>&nbsp;The name of the value cell.Return value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">None<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_formatall\">15.6.6. FormatAll<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Format all value cells with the selected format.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>FormatAll<\/strong>(Format As Integer)Parameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Format:<\/strong>&nbsp;The format of the value cell.Return value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">None<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_getformat\">15.6.7. GetFormat<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Gets the display format of the Modbus value.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>GetFormat<\/strong>(Index As Integer) As IntegerParameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Index:<\/strong>&nbsp;Index 0 corresponds to the first Modbus address.<br>Return value<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><strong>ID<\/strong><\/th><th><strong>Format<\/strong><\/th><\/tr><\/thead><tbody><tr><td>0<\/td><td>Signed<\/td><\/tr><tr><td>1<\/td><td>Unsigned<\/td><\/tr><tr><td>2<\/td><td>Hex<\/td><\/tr><tr><td>3<\/td><td>Binary<\/td><\/tr><tr><td>4<\/td><td>Float little-endian byte swap<\/td><\/tr><tr><td>5<\/td><td>Float big-endian<\/td><\/tr><tr><td>6<\/td><td>Double little-endian byte swap<\/td><\/tr><tr><td>7<\/td><td>Double big-endian<\/td><\/tr><tr><td>8<\/td><td>32-bit Signed little-endian byte swap<\/td><\/tr><tr><td>9<\/td><td>32-bit Signed big-endian<\/td><\/tr><tr><td>10<\/td><td>Float little-endian<\/td><\/tr><tr><td>11<\/td><td>Float big-endian byte swap<\/td><\/tr><tr><td>12<\/td><td>Double little-endian<\/td><\/tr><tr><td>13<\/td><td>Double big-endian byte swap<\/td><\/tr><tr><td>14<\/td><td>32-bit Signed little-endian<\/td><\/tr><tr><td>15<\/td><td>32-bit Signed big-endian byte swap<\/td><\/tr><tr><td>17<\/td><td>32-bit Unsigned big-endian<\/td><\/tr><tr><td>18<\/td><td>32-bit Unsigned little-endian byte swap<\/td><\/tr><tr><td>19<\/td><td>32-bit Unsigned big-endian byte swap<\/td><\/tr><tr><td>20<\/td><td>32-bit Unsigned little-endian<\/td><\/tr><tr><td>21<\/td><td>64-bit Signed big-endian<\/td><\/tr><tr><td>22<\/td><td>64-bit Signed little-endian byte swap<\/td><\/tr><tr><td>23<\/td><td>64-bit Signed big-endian byte swap<\/td><\/tr><tr><td>24<\/td><td>64-bit Signed little-endian<\/td><\/tr><tr><td>25<\/td><td>64-bit Unsigned big-endian<\/td><\/tr><tr><td>26<\/td><td>64-bit Unsigned little-endian byte swap<\/td><\/tr><tr><td>27<\/td><td>64-bit Unsigned big-endian byte swap<\/td><\/tr><tr><td>28<\/td><td>64-bit Unsigned little-endian<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>This setting is only for display. You still need to use byteOrder to get the correct endianness when using Get\/Set value functions.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_setformat\">15.6.8. SetFormat<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Change the display format of the Modbus values. See Format values above.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>SetFormat<\/strong>(Index As Integer, Format As Integer)Parameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Index:<\/strong>&nbsp;Index 0 corresponds to the first Modbus address.<br><strong>Format:<\/strong>&nbsp;The format of the value cell.Return value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">None<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_resizewindow\">15.6.9. ResizeWindow<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Resize an opened window to fit the grid.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>ResizeWindow<\/strong>()Parameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This function has no parameters.Return value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">None<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_resizeallcolumns\">15.6.10. ResizeAllColumns<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Resize all columns to fit the values inside the cells.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>ResizeAllColumns<\/strong>()Parameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This function has no parameters.Return value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">None<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_rows_2\">15.6.11. Rows<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Specify the number of rows in the grid.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>Rows<\/strong>(NumberRows)Parameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>NumberRows:<\/strong>&nbsp;Number of rows in the grid.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><strong>ID<\/strong><\/th><th><strong>Description<\/strong><\/th><\/tr><\/thead><tbody><tr><td>0<\/td><td>10 Rows (Default)<\/td><\/tr><tr><td>1<\/td><td>20 Rows<\/td><\/tr><tr><td>2<\/td><td>50 Rows<\/td><\/tr><tr><td>3<\/td><td>100 Rows<\/td><\/tr><tr><td>4<\/td><td>Fit to quantity<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Return value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">None<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_readresult\">15.6.12. ReadResult<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Use this property to check if communication established with Read is running successful.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>ReadResult<\/strong>&nbsp;As IntegerParameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This function has no parameters.Return value<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Error<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>0<\/td><td>SUCCESS<\/td><\/tr><tr><td>1<\/td><td>TIMEOUT ERROR<\/td><\/tr><tr><td>2<\/td><td>CRC ERROR<\/td><\/tr><tr><td>3<\/td><td>RESPONSE ERROR (The response was not the expected slave id, function or address)<\/td><\/tr><tr><td>4<\/td><td>WRITE ERROR<\/td><\/tr><tr><td>5<\/td><td>READ ERROR<\/td><\/tr><tr><td>6<\/td><td>PORT NOT OPEN ERROR<\/td><\/tr><tr><td>10<\/td><td>DATA UNINITIALIZED<\/td><\/tr><tr><td>11<\/td><td>INSUFFICIENT BYTES RECEIVED<\/td><\/tr><tr><td>16<\/td><td>BYTE COUNT ERROR<\/td><\/tr><tr><td>19<\/td><td>TRANSACTION ID ERROR<\/td><\/tr><tr><td>81h<\/td><td>ILLEGAL FUNCTION<\/td><\/tr><tr><td>82h<\/td><td>ILLEGAL DATA ADDRESS<\/td><\/tr><tr><td>83h<\/td><td>ILLEGAL DATA VALUE<\/td><\/tr><tr><td>84h<\/td><td>SERVER DEVICE FAILURE<\/td><\/tr><tr><td>85h<\/td><td>ACKNOWLEDGE<\/td><\/tr><tr><td>86h<\/td><td>SERVER DEVICE BUSY<\/td><\/tr><tr><td>87h<\/td><td>NAK-NEGATIVE ACKNOWLEDGMENT<\/td><\/tr><tr><td>8Ah<\/td><td>GATEWAY PATH UNAVAILABLE<\/td><\/tr><tr><td>8Bh<\/td><td>GATEWAY TARGET DEVICE FAILED TO RESPOND<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_writeresult\">15.6.13. WriteResult<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Use this function to check if a write was successful.<br>The value is DATA_UNINITIALIZED until the result from the slave is available. See&nbsp;<a href=\"https:\/\/www.modbustools.com\/mbpoll-user-manual.html#_readresult\" rel=\"noopener noreferrer nofollow\">ReadResult<\/a>&nbsp;for a list of possible values.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>WriteResult<\/strong>&nbsp;As IntegerReturn value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Return a write result as an integer.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_save\">15.6.14. Save<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Save the current Window. Function&nbsp;<strong>Save<\/strong>(PathName As String) As BooleanParameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>PathName:<\/strong>&nbsp;The fully qualified path to which the file should be saved.Return value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Boolean<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">' First a Modbus Poll document is needed.\nPublic doc As Object\n\nSet doc = CreateObject(&quot;Mbpoll.Document&quot;)\nres = doc.ReadCoils(1, 0, 100, 1000) ' Read 100 coils every 1000ms\nres = doc.Save(&quot;C:\\Users\\UserName\\Desktop\\testfile.mbp&quot;)<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_automation_data_properties\">15.7. Automation data properties<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The below properties are used to set or get values in the internal write\/read arrays in Modbus Poll. The Index used is not a Modbus Address. The Index always counts from 0 no matter of the address used. The data properties are associated with a Modbus Poll document. (The window with data)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>There are 2 version of each data properties:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>One with no postfix such as&nbsp;<strong>SRegisters<\/strong>&nbsp;which is used to set or get a value from the internal write\/read array.<\/li>\n\n\n\n<li>One with Win as postfix such as&nbsp;<strong>SRegistersWin<\/strong>&nbsp;which is used to set or get a value direct from the data window. This is used when the data window is used for a Write function e.g.&nbsp;<a href=\"https:\/\/www.modbustools.com\/mbpoll-user-manual.html#_writemultipleregisterswin\" rel=\"noopener noreferrer nofollow\">WriteMultipleRegistersWin<\/a>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example 1:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">' doc is assumed created first. See Excel example.\n' Writes 1 to index 0 in the data array used for the Write function later\ndoc.SRegisters(0) = 1\ndoc.SRegisters(1) = 10\ndoc.SRegisters(2) = 1234\n' Write 3 registers stored in Modbus Poll internal array\n' to Modbus address 100 (40101)\n' A window is not created\nres = doc.WriteMultipleRegisters(1, 100, 3)\n' The above example do not create a data window but just make a single Modbus write.<\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example 2 with floating point values:<\/strong><br>Write 3 floating point values.<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">' doc is assumed created first. See Excel example.\ndoc.Floats(0) = 1.3\ndoc.Floats(2) = 10.5\ndoc.Floats(4) = 1234.12\n' Write the 6 register stored in Modbus Poll\nres = doc. WriteMultipleRegisters(1, 0, 6)\n' 6 Registers are written as a floating point value is 32 bit wide.<\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example 3:<\/strong><br>Create a window that writes 3 registers.<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">' doc is assumed created first. See Excel example.\n' A window is created that writes the content every 1000ms\nres = doc.WriteMultipleRegistersWin(1, 100, 3, 1000)\n' Writes 1 to the first cell in the data window\ndoc.SRegistersWin(0) = 1\ndoc.SRegistersWin(1) = 10\ndoc.SRegistersWin(2) = 1234\n' Now the 3 registers are written to slave id 1 address 100 every 1000ms<\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_coils_coilswin\">15.7.1. Coils, CoilsWin<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>Coils<\/strong>(Index As Integer) As IntegerDescription<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sets a coil in the write array structure or return a coil from the read array.Syntax<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Coils<\/strong>(Index) [=newvalue]<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_sregisters_sregisterswin\">15.7.2. SRegisters, SRegistersWin<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>SRegisters<\/strong>(Index As Integer) As IntegerDescription<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sets a register in the write array structure or return a register from the read array.Syntax<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SRegisters<\/strong>(Index) [=newvalue]<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_uregisters_uregisterswin\">15.7.3. URegisters, URegistersWin<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>URegisters<\/strong>(Index As Integer) As LongDescription<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sets a register in the write array structure or return a register from the read array.Syntax<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>URegisters<\/strong>(Index) [=newvalue]<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_ints_32_ints_32win\">15.7.4. Ints_32, Ints_32Win<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>Ints_32<\/strong>(Index As Integer) As DoubleDescription<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sets a 32-bit integer in the write array structure or return an integer from the read array.Syntax<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ints_32<\/strong>(Index) [=newvalue]<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_uints_32_uints_32win\">15.7.5. UInts_32, UInts_32Win<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>UInts_32<\/strong>(Index As Integer) As DoubleDescription<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sets a 32-bit unsigned integer in the write array structure or return an unsigned integer from the read array.Syntax<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>UInts_32<\/strong>(Index) [=newvalue]<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_ints_64_ints_64win\">15.7.6. Ints_64, Ints_64Win<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>Ints_64<\/strong>(Index As Integer) As DoubleDescription<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sets a 64-bit integer in the write array structure or return an integer from the read array.Syntax<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ints_64<\/strong>(Index) [=newvalue]<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_uints_64_uints_64win\">15.7.7. UInts_64, UInts_64Win<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>UInts_64<\/strong>(Index As Integer) As DoubleDescription<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sets a 64-bit unsigned integer in the write array structure or return an unsigned integer from the read array.Syntax<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>UInts_64<\/strong>(Index) [=newvalue]<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_floats_floatswin\">15.7.8. Floats, FloatsWin<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>Floats<\/strong>(Index As Integer) As SingleDescription<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sets a float in the write array structure or returns a float from the read array.Syntax<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Floats<\/strong>(Index) [=newvalue]<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_doubles_doubleswin\">15.7.9. Doubles, DoublesWin<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>Doubles<\/strong>(Index As Integer) As DoubleDescription<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sets a double in the write array structure or return a double from the read array.Syntax<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Doubles<\/strong>(Index) [=newvalue]<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_byteorder\">15.7.10. ByteOrder<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Property&nbsp;<strong>ByteOrder<\/strong>&nbsp;As IntegerDescription<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sets the byte order used by Ints_32, UInts_32, Ints_64, UInts_64, Floats and Doubles properties.<br>The Win versions do not use this Property&nbsp;<strong>ByteOrder<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><strong>ID<\/strong><\/th><th><strong>Endianness<\/strong><\/th><\/tr><\/thead><tbody><tr><td>0<\/td><td>Big-endian (Default)<\/td><\/tr><tr><td>1<\/td><td>Little-endian byte swap<\/td><\/tr><tr><td>2<\/td><td>Big-endian byte swap<\/td><\/tr><tr><td>3<\/td><td>Little-endian<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example for Ints_32:<\/strong><br>Byte Order: Big-endian<br>The decimal number 123456789 or in hexadecimal 07 5B CD 15<br>Order as they come over the wire in a Modbus message: 07 5B CD 15Syntax<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>ByteOrder<\/strong>&nbsp;[=newvalue]<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_write_functions_create_a_data_window\">15.8. Write Functions (Create a data window)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The following functions do the same as you set up in the read\/write definition dialog (F8).<br>The functions creates a data window and the data content in the data windows is written according to the scan rate.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_writesinglecoilwin\">15.8.1. WriteSingleCoilWin<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus function code 05.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>WriteSingleCoilWin<\/strong>(SlaveID As Integer, Address As Long, ScanRate As Long) As IntegerParameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SlaveID:<\/strong>&nbsp;The slave address 1 to 255<br><strong>Address:<\/strong>&nbsp;The data address (Base 0)<br><strong>ScanRate:<\/strong>&nbsp;0 to 3600000msReturn value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">True if success. False if not success<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_writesingleregisterwin\">15.8.2. WriteSingleRegisterWin<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus function code 06.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>WriteSingleRegisterWin<\/strong>(SlaveID As Integer, Address As Long, ScanRate As Long) As IntegerParameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SlaveID:<\/strong>&nbsp;The slave address 1 to 255<br><strong>Address:<\/strong>&nbsp;The data address (Base 0)<br><strong>ScanRate:<\/strong>&nbsp;0 to 3600000msReturn value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">True if success. False if not success<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Python Example how to open a window and write a single register every 1000 ms<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text\/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}\">import win32com.client as win32\n\nSIGNED = 0\n\nApp = win32.Dispatch('Mbpoll.Application')\n\nApp.Connection = 1\nApp.IPAddress = &quot;127.0.0.1&quot;\n\nApp.ServerPort = 502\nApp.OpenConnection\n\n#Create a Modbus display window called Win1\nWin1 = win32.Dispatch(&quot;Mbpoll.Document&quot;)\n\n# Write 1 holding registers to slave ID 1, address 0 (40001) every 1000 ms\nWin1.WriteSingleRegisterWin(1, 0, 1000)\n# Show the Modbus window\nWin1.ShowWindow()\n\n# Fit rows to quantity\nWin1.Rows(4)\n\n# Disable refresh for speed\nWin1.EnableRefresh = False\n\n# This sets how the value is displayed\nWin1.SetFormat(0, SIGNED)\n\n# Set the Name of the register\nWin1.SetName(0, &quot;Setting&quot;)\n\n# Set the value to write\nWin1.SRegistersWin(0, 100)\nWin1.EnableRefresh = True\n\nWin1.ResizeAllColumns ()\nWin1.ResizeWindow()\n\n_ = input(&quot;Press ENTER to quit:&quot;)<\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_writemultiplecoilswin\">15.8.3. WriteMultipleCoilsWin<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus function code 15.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>WriteMultipleCoilsWin<\/strong>(SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SlaveID:<\/strong>&nbsp;The slave address 1 to 255<br><strong>Address:<\/strong>&nbsp;The data address (Base 0)<br><strong>Quantity:<\/strong>&nbsp;The number of data. 1 to 1968<br><strong>ScanRate:<\/strong>&nbsp;0 to 3600000msReturn value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">True if success. False if not success<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"_writemultipleregisterswin\">15.8.4. WriteMultipleRegistersWin<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus function code 16.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function&nbsp;<strong>WriteMultipleRegistersWin<\/strong>(SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameters<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SlaveID:<\/strong>&nbsp;The slave address 1 to 255<br><strong>Address:<\/strong>&nbsp;The data address (Base 0)<br><strong>Quantity:<\/strong>&nbsp;The number of data. 1 to 123<br><strong>ScanRate:<\/strong>&nbsp;0 to 3600000msReturn value<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">True if success. False if not success<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"_exception_and_error_messages\">16. Exception and error messages<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus Exceptions and error messages are displayed in red text in the 2<sup>nd<\/sup>&nbsp;line in each window.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/image.modbus.cn\/wp-content\/uploads\/2023\/10\/20231013172601478.png\"\/ loading=\"lazy\" title=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe21\" alt=\"Modbus Poll\u82f1\u6587\u7248\u7528\u6237\u624b\u518c\u63d2\u56fe21\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_modbus_exception_codes\">16.1. Modbus Exception Codes<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Modbus exceptions are errors returned from the slave device.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Code<\/th><th>Name<\/th><th>Meaning<\/th><\/tr><\/thead><tbody><tr><td>01<\/td><td>Illegal Function<\/td><td>The function code received in the query is not an allowable action for the server (or slave). This may be because the function code is only applicable to newer devices, and was not implemented in the unit selected. It could also indicate that the server (or slave) is in the wrong state to process a request of this type, for example because it is not configured and is being asked to return register values.<\/td><\/tr><tr><td>02<\/td><td>Illegal Data Address<\/td><td>The data address received in the query is not an allowable address for the server. More specifically, the combination of reference number and transfer length is invalid. For a controller with 100 registers, the PDU addresses the first register as 0, and the last one as 99. If a request is submitted with a starting register address of 96 and a quantity of registers of 4, then this request will successfully operate (address-wise at least) on registers 96, 97, 98, 99. If a request is submitted with a starting register address of 96 and a quantity of registers of 5, then this request will fail with Exception Code 0x02 \u201cIllegal Data Address\u201d since it attempts to operate on registers 96, 97, 98, 99 and 100, and there is no register with address 100.<\/td><\/tr><tr><td>03<\/td><td>Illegal Data Value<\/td><td>A value contained in the query data field is not an allowable value for the server (or slave). This indicates a fault in the structure of the remainder of a complex request, such as that the implied length is incorrect. It specifically does NOT mean that a data item submitted for storage in a register has a value outside the expectation of the application program, since the MODBUS protocol is unaware of the significance of any particular value of any particular register.<\/td><\/tr><tr><td>04<\/td><td>Server Device Failure<\/td><td>An unrecoverable error occurred while the server (or slave) was attempting to perform the requested action.<\/td><\/tr><tr><td>05<\/td><td>Acknowledge<\/td><td>Specialized use in conjunction with programming commands.<br>The server (or slave) has accepted the request and is processing it, but a long duration of time will be required to do so. This response is returned to prevent a timeout error from occurring in the client (or master). The client (or master) can next issue a Poll Program Complete message to determine if processing is completed.<\/td><\/tr><tr><td>06<\/td><td>Server Device Busy<\/td><td>Specialized use in conjunction with programming commands.<br>The server (or slave) is engaged in processing a long\u2013duration program command. The client (or master) should retransmit the message later when the server (or slave) is free.<\/td><\/tr><tr><td>0A<\/td><td>Gateway Path Unavailable<\/td><td>Specialized use in conjunction with gateways, indicates that the gateway was unable to allocate an internal communication path from the input port to the output port for processing the request. Usually means that the gateway is misconfigured or overloaded.<\/td><\/tr><tr><td>0B<\/td><td>Gateway Target Device Failed to Respond<\/td><td>Specialized use in conjunction with gateways, indicates that no response was obtained from the target device. Usually means that the device is not present on the network.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"_modbus_poll_error_messages\">16.2. Modbus Poll error messages<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Error message<\/th><th>Meaning<\/th><\/tr><\/thead><tbody><tr><td>Timeout Error<\/td><td>The response is not received within the expected time. Check the following:Serial ConnectionSerial settings such as Baud rate, parity, Data bits, Stop bits etc.Modbus mode, RTU or ASCIISlave IDResponse timeoutTCP\/IP ConnectionResponse timeoutCheck that Host and Port are consistent with the slave<\/td><\/tr><tr><td>Response Error<\/td><td>The response is not the expected one. Different slave ID.<\/td><\/tr><tr><td>CRC Error<\/td><td>The CRC value of the received response is not correct.<\/td><\/tr><tr><td>Write Error<\/td><td>This is an error reported by the serial driver. This could happen if a USB\/RS232\/485 converter is used and the USB cable is unplugged. There are 4 types:Break conditionI\/O errorSerial connection errorOutput buffer overflowWrite error using TCP\/IP connection is normally caused by lost connection.<\/td><\/tr><tr><td>Read Error<\/td><td>This is an error reported by the serial driver. There are 6 types:Framing errorCharacter buffer overrunParity errorInput buffer overflowI\/O errorBreak conditionRead error using TCP\/IP connection is normally caused by lost connection.<\/td><\/tr><tr><td>Insufficient bytes received<\/td><td>The response is not the expected length.<\/td><\/tr><tr><td>Byte count error<\/td><td>The byte count in the response is not correct. Compared to the expected.<\/td><\/tr><tr><td>Transaction ID error<\/td><td>It is used for transaction pairing, the MODBUS server copies in the response the transaction identifier of the request.<\/td><\/tr><\/tbody><\/table><\/figure>\n<span id=\"magicpostMarker\"><\/span>","protected":false},"excerpt":{"rendered":"<p>MODBUS Poll \u2014 <\/p>","protected":false},"author":1,"featured_media":25471,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_members_access_role":[],"_members_access_error":""},"categories":[3097],"tags":[1795,668],"class_list":["post-25470","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tool-tutorials","tag-bit","tag-poll"],"_links":{"self":[{"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/posts\/25470","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/comments?post=25470"}],"version-history":[{"count":0,"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/posts\/25470\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/media\/25471"}],"wp:attachment":[{"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/media?parent=25470"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/categories?post=25470"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/tags?post=25470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}