{"id":39393,"date":"2025-11-11T08:00:00","date_gmt":"2025-11-11T13:00:00","guid":{"rendered":"https:\/\/www.dmcinfo.com\/?p=39393"},"modified":"2025-12-30T13:14:43","modified_gmt":"2025-12-30T18:14:43","slug":"using-the-siemens-extended-modbus-library","status":"publish","type":"post","link":"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/","title":{"rendered":"Using The Siemens Extended Modbus Library"},"content":{"rendered":"\n<p>The Extended Modbus Library was developed by Ola Bj\u00f8rnli and published on <a href=\"https:\/\/github.com\/rexhip\/rexhip\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub<\/a>. It has since been incorporated into the <a href=\"https:\/\/openplclibrary.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Siemens Open Library<\/a>, which is maintained by DMC.&nbsp;<\/p>\n\n\n\n<p>This library extends and simplifies the built-in Modbus functionality within Siemens TIA Portal, giving developers a more flexible and user-friendly way to work with Modbus devices. Ola Bj\u00f8rnli\u2019s provided examples and documentation, found on GitHub, do a great job breaking down how to use the library.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-the-extended-modbus-library-works-with-modbus-tcp-nbsp\">How the Extended Modbus Library Works With Modbus TCP&nbsp;<\/h2>\n\n\n\n<p>Here is an example of how to set up a Modbus TCP client.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-block-interface-nbsp\">Block Interface&nbsp;<\/h3>\n\n\n\n<p>To maximize reusability, we have set up our inputs to include:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Connection ID &#8211;<\/strong> Unique identifier for each Modbus Client instance&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Hardware interface<\/strong> <strong>\u2013 <\/strong>The hardware interface to which the Modbus Server is networked&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>TCP port \u2013<\/strong> Typically 502&nbsp;&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>IP address \u2013 <\/strong>The IP address of the Modbus Sever&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>This allows the block to be reused for multiple field devices, provided they have the same Modbus interface.&nbsp;<\/p>\n\n\n\n<p>The static data elements are:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>mb_query \u2013 <\/strong>This is used to define the Modbus queries; one instance can be reused multiple times&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>mb_tcp_ctrl \u2013 <\/strong>The function block that establishes connection runs and sequences queries&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>mb_delay_between_queries \u2013 <\/strong>Spaces out queries to avoid overloading the server&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>modbusRegisters &#8211;&nbsp;<\/strong> A custom UDT containing the data to be read from and written to the Modbus server.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>The only constant we have defined is the clientNumber, which is the station address. This is usually 0 or 255.&nbsp;&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"828\" height=\"480\" src=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103343\/Modbus-TCP-01.png\" alt=\"Modbus TCP interface\" class=\"wp-image-39443\" srcset=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103343\/Modbus-TCP-01.png 828w, https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103343\/Modbus-TCP-01-300x174.png 300w, https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103343\/Modbus-TCP-01-768x445.png 768w\" sizes=\"(max-width: 828px) 100vw, 828px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"450\" height=\"250\" src=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103405\/Modbus-TCP-02.png\" alt=\"Modbus TCP interface\" class=\"wp-image-39445\" srcset=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103405\/Modbus-TCP-02.png 450w, https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103405\/Modbus-TCP-02-300x167.png 300w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-the-code-nbsp\">The Code&nbsp;<\/h3>\n\n\n\n<p>This is taken almost exactly from Ola Bj\u00f8rnli\u2019s example, but it is broken up so we can walk through each step.&nbsp;&nbsp;<\/p>\n\n\n\n<p>The initial setup is straightforward:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Call the mb_tcp_ctrl block<\/strong>&nbsp;&nbsp;\n<ul class=\"wp-block-list\">\n<li>Map in the interface, connection ID, IP address, and TCP defined in inputs<\/li>\n\n\n\n<li>Set your timeout to whatever is needed for your application&nbsp;&nbsp;<\/li>\n\n\n\n<li>Point mb_query to mb_query we set in the static memory&nbsp;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Call mb_delay_between_queries<\/strong>&nbsp;&nbsp;\n<ul class=\"wp-block-list\">\n<li>Tie in the same mb_query from static memory&nbsp;<\/li>\n\n\n\n<li>Set the delay needed for your application&nbsp;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"632\" height=\"264\" src=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103423\/Modbus-TCP-03.png\" alt=\"Modbus TCP code\" class=\"wp-image-39446\" srcset=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103423\/Modbus-TCP-03.png 632w, https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103423\/Modbus-TCP-03-300x125.png 300w\" sizes=\"(max-width: 632px) 100vw, 632px\" \/><\/figure>\n\n\n\n<p>After this initial setup, we need to build our queries. First, looking at the read queries, below are reads for all four types of Modbus registers. Again, the Extended Modbus Library makes this very straightforward:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Call mb_query <\/strong>for each query you want to run; there is no limit&nbsp;\n<ul class=\"wp-block-list\">\n<li>data_addr corresponds to the register of the address you are trying to read from&nbsp;<\/li>\n\n\n\n<li>Data_ptr should point to where you want the data to be stored in&nbsp;\n<ul class=\"wp-block-list\">\n<li>Here we have a custom UDT in the static memory, this can either be an array of data points or to an individual point&nbsp;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Mb_addr is the station address we defined as a constant earlier&nbsp;<\/li>\n\n\n\n<li>Mode is used to tell the query what kind of operation we are performing&nbsp;\n<ul class=\"wp-block-list\">\n<li>These modes are defined as constants within the static memory of the mb_query we are calling&nbsp;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"830\" height=\"508\" src=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103459\/Modbus-TCP-04.png\" alt=\"Modbus TCP code\" class=\"wp-image-39447\" srcset=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103459\/Modbus-TCP-04.png 830w, https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103459\/Modbus-TCP-04-300x184.png 300w, https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103459\/Modbus-TCP-04-768x470.png 768w\" sizes=\"(max-width: 830px) 100vw, 830px\" \/><\/figure>\n\n\n\n<p>To write to either the output coils or the analog output holding registers, you set up your query calls as shown below. The only difference is that mode is pointed to the \u201cc.write\u201d struct in mb_query instead of \u201cc.read\u201d, and the data_ptr points to the data on your PLC that you want to write to the Modbus device.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"732\" height=\"262\" src=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103508\/Modbus-TCP-05.png\" alt=\"Modbus TCP code\" class=\"wp-image-39448\" srcset=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103508\/Modbus-TCP-05.png 732w, https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103508\/Modbus-TCP-05-300x107.png 300w\" sizes=\"(max-width: 732px) 100vw, 732px\" \/><\/figure>\n\n\n\n<p>With just these three sections, your code can read and write to any register on a Modbus TCP device!\u00a0<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-it-works-with-modbus-rtu-nbsp\">How It Works With Modbus RTU&nbsp;<\/h2>\n\n\n\n<p>Using this library, the code to connect to a Modbus RTU device is almost the exact same as a Modbus TCP device.&nbsp; The only difference is:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Call mb_rtu1200_ctrl or mb_rtu1500_ctrl <\/strong>instead of mb_tcp_ctrl&nbsp;\n<ul class=\"wp-block-list\">\n<li>Choose the FB that matches your PLC&nbsp;<\/li>\n\n\n\n<li>hardware_id should be connected to the port your device is connected to&nbsp;<\/li>\n\n\n\n<li>buad_rate should be set to match your RTU device\u2019s baud rate&nbsp;<\/li>\n\n\n\n<li>operating mode should be set based on the table shown below taken from the Siemens information system&nbsp;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"568\" height=\"158\" src=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103515\/Modbus-TCP-06.png\" alt=\"Modbus TCP code\" class=\"wp-image-39449\" srcset=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103515\/Modbus-TCP-06.png 568w, https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103515\/Modbus-TCP-06-300x83.png 300w\" sizes=\"(max-width: 568px) 100vw, 568px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"936\" height=\"114\" src=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103520\/Modbus-TCP-07.png\" alt=\"Modbus TCP code\" class=\"wp-image-39450\" srcset=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103520\/Modbus-TCP-07.png 936w, https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103520\/Modbus-TCP-07-300x37.png 300w, https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103520\/Modbus-TCP-07-768x94.png 768w\" sizes=\"(max-width: 936px) 100vw, 936px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-tips-tricks-and-troubleshooting\">Tips, Tricks, and Troubleshooting<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-fun-with-pointers-nbsp\">Fun With Pointers&nbsp;<\/h3>\n\n\n\n<p>When passing data to and from mb_query as shown above, the data is passed by a pointer. The function block then finds the start and the length of the data you pass in, meaning the data types passed in do not matter. For example, you don\u2019t need to just have 16-bit integers used to read from input registers.<\/p>\n\n\n\n<p>This is especially useful when:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Multiple statuses are bitmapped into a single register&nbsp;\n<ul class=\"wp-block-list\">\n<li>Can automatically splice it into 16 bools&nbsp;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>A 32-bit datapoint is passed out over two registers&nbsp;\n<ul class=\"wp-block-list\">\n<li>For example, this can be passed into a single real<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>These can be handled with custom UDTs, like the one shown below. You must ensure proper alignment with the actual register indexes and account for byte-swapping as needed.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"816\" height=\"548\" src=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103531\/Modbus-TCP-08.png\" alt=\"Modbus TCP interface\" class=\"wp-image-39451\" srcset=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103531\/Modbus-TCP-08.png 816w, https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103531\/Modbus-TCP-08-300x201.png 300w, https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31103531\/Modbus-TCP-08-768x516.png 768w\" sizes=\"(max-width: 816px) 100vw, 816px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-queries-less-than-16-bit\">Queries Less Than 16-Bit<\/h3>\n\n\n\n<p>If reading fewer than 16 bits (for example, discrete inputs or outputs), use mb_query_bits. While the standard mb_query may still work in some instances, this function is the recommended route to read smaller datasets.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-troubleshooting-overview\">Troubleshooting Overview<\/h3>\n\n\n\n<p>The extended Modbus Library uses the Siemens communication blocks (TCON,&nbsp; TDISCON, TSEND, TRECEIVE), meaning you can leverage their error codes for troubleshooting.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Within your function block\u2019s instance memory:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Navigate within your \u201cctrl\u201d block and open \u201cMB_CLIENT\u201d to view error codes&nbsp;<\/li>\n\n\n\n<li>You can dig into the individual T-blocks as needed&nbsp;<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"936\" height=\"808\" src=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31104225\/Modbus-TCP-09-1.png\" alt=\"Modbus TCP interface\" class=\"wp-image-39454\" srcset=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31104225\/Modbus-TCP-09-1.png 936w, https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31104225\/Modbus-TCP-09-1-300x259.png 300w, https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31104225\/Modbus-TCP-09-1-768x663.png 768w\" sizes=\"(max-width: 936px) 100vw, 936px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-troubleshooting-queries-nbsp\">Troubleshooting Queries&nbsp;<\/h3>\n\n\n\n<p>It is important to note that each query is executed independently, and if a query fails from a configuration issue, an invalid register, or anything else, it will be skipped, and the next query will be executed.&nbsp;&nbsp;<\/p>\n\n\n\n<p>The error codes for that query will only be displayed until the next query is run. To debug:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Comment out all but one query at a time&nbsp;<\/li>\n\n\n\n<li>Troubleshoot until no errors are present and the data is being populated or sent as expected&nbsp;<\/li>\n<\/ul>\n\n\n\n<p><strong>Ready to take your <a href=\"https:\/\/www.dmcinfo.com\/services\/manufacturing-automation-and-intelligence\/\">automation project<\/a> to the next level? <a href=\"https:\/\/www.dmcinfo.com\/contact#get-in-touch\" target=\"_blank\" rel=\"noreferrer noopener\">Contact us today<\/a> to learn more about our solutions and how we can help you achieve your goals.&nbsp;<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Extended Modbus Library was developed by Ola Bj\u00f8rnli and published on GitHub. It has since been incorporated into the Siemens Open Library, which is maintained by DMC.&nbsp; This library extends and simplifies the built-in Modbus functionality within Siemens TIA Portal, giving developers a more flexible and user-friendly way to work with Modbus devices. Ola [&hellip;]<\/p>\n","protected":false},"author":322,"featured_media":39460,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[731,757],"tags":[],"class_list":["post-39393","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-manufacturing-automation-intelligence","category-siemens-plc"],"yoast_head":"<title>Using The Siemens Extended Modbus Library | DMC, Inc.<\/title>\n<meta name=\"description\" content=\"Learn how the Siemens Extended Modbus Library extends and simplifies the built-in Modbus functionality in TIA Portal.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using The Siemens Extended Modbus Library\" \/>\n<meta property=\"og:description\" content=\"Learn how the Siemens Extended Modbus Library extends and simplifies the built-in Modbus functionality in TIA Portal.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/\" \/>\n<meta property=\"og:site_name\" content=\"DMC, Inc.\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/pages\/DMC-Inc\/107982009242929\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-11T13:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-30T18:14:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31105527\/extended-modbus-library.png\" \/>\n\t<meta property=\"og:image:width\" content=\"925\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"DMC\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DMC\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/\"},\"author\":{\"name\":\"DMC\",\"@id\":\"https:\/\/www.dmcinfo.com\/#\/schema\/person\/eab178041edfa6657dc10afa8e001e13\"},\"headline\":\"Using The Siemens Extended Modbus Library\",\"datePublished\":\"2025-11-11T13:00:00+00:00\",\"dateModified\":\"2025-12-30T18:14:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/\"},\"wordCount\":1072,\"publisher\":{\"@id\":\"https:\/\/www.dmcinfo.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31105527\/extended-modbus-library.png\",\"articleSection\":[\"Manufacturing Automation &amp; Intelligence\",\"Siemens PLC\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/\",\"url\":\"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/\",\"name\":\"Using The Siemens Extended Modbus Library | DMC, Inc.\",\"isPartOf\":{\"@id\":\"https:\/\/www.dmcinfo.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31105527\/extended-modbus-library.png\",\"datePublished\":\"2025-11-11T13:00:00+00:00\",\"dateModified\":\"2025-12-30T18:14:43+00:00\",\"description\":\"Learn how the Siemens Extended Modbus Library extends and simplifies the built-in Modbus functionality in TIA Portal.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/#primaryimage\",\"url\":\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31105527\/extended-modbus-library.png\",\"contentUrl\":\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31105527\/extended-modbus-library.png\",\"width\":925,\"height\":400,\"caption\":\"Siemens Extended Modbus Library\"},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dmcinfo.com\/#website\",\"url\":\"https:\/\/www.dmcinfo.com\/\",\"name\":\"DMC, Inc.\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.dmcinfo.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dmcinfo.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.dmcinfo.com\/#organization\",\"name\":\"DMC, Inc.\",\"url\":\"https:\/\/www.dmcinfo.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dmcinfo.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27171146\/dmc-logo-1.png\",\"contentUrl\":\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27171146\/dmc-logo-1.png\",\"width\":418,\"height\":167,\"caption\":\"DMC, Inc.\"},\"image\":{\"@id\":\"https:\/\/www.dmcinfo.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/pages\/DMC-Inc\/107982009242929\",\"https:\/\/www.instagram.com\/dmcengineering\",\"https:\/\/www.youtube.com\/DMCEngineering\",\"https:\/\/www.linkedin.com\/company\/dmc-engineering\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dmcinfo.com\/#\/schema\/person\/eab178041edfa6657dc10afa8e001e13\",\"name\":\"DMC\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dmcinfo.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/06\/27185251\/dmc-avatar.png\",\"contentUrl\":\"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/06\/27185251\/dmc-avatar.png\",\"caption\":\"DMC\"},\"url\":\"https:\/\/www.dmcinfo.com\/blog\/author\/dmc\/\"}]}<\/script>","yoast_head_json":{"title":"Using The Siemens Extended Modbus Library | DMC, Inc.","description":"Learn how the Siemens Extended Modbus Library extends and simplifies the built-in Modbus functionality in TIA Portal.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/","og_locale":"en_US","og_type":"article","og_title":"Using The Siemens Extended Modbus Library","og_description":"Learn how the Siemens Extended Modbus Library extends and simplifies the built-in Modbus functionality in TIA Portal.","og_url":"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/","og_site_name":"DMC, Inc.","article_publisher":"https:\/\/www.facebook.com\/pages\/DMC-Inc\/107982009242929","article_published_time":"2025-11-11T13:00:00+00:00","article_modified_time":"2025-12-30T18:14:43+00:00","og_image":[{"width":925,"height":400,"url":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31105527\/extended-modbus-library.png","type":"image\/png"}],"author":"DMC","twitter_card":"summary_large_image","twitter_misc":{"Written by":"DMC","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/#article","isPartOf":{"@id":"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/"},"author":{"name":"DMC","@id":"https:\/\/www.dmcinfo.com\/#\/schema\/person\/eab178041edfa6657dc10afa8e001e13"},"headline":"Using The Siemens Extended Modbus Library","datePublished":"2025-11-11T13:00:00+00:00","dateModified":"2025-12-30T18:14:43+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/"},"wordCount":1072,"publisher":{"@id":"https:\/\/www.dmcinfo.com\/#organization"},"image":{"@id":"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31105527\/extended-modbus-library.png","articleSection":["Manufacturing Automation &amp; Intelligence","Siemens PLC"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/","url":"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/","name":"Using The Siemens Extended Modbus Library | DMC, Inc.","isPartOf":{"@id":"https:\/\/www.dmcinfo.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/#primaryimage"},"image":{"@id":"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31105527\/extended-modbus-library.png","datePublished":"2025-11-11T13:00:00+00:00","dateModified":"2025-12-30T18:14:43+00:00","description":"Learn how the Siemens Extended Modbus Library extends and simplifies the built-in Modbus functionality in TIA Portal.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dmcinfo.com\/blog\/39393\/using-the-siemens-extended-modbus-library\/#primaryimage","url":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31105527\/extended-modbus-library.png","contentUrl":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/10\/31105527\/extended-modbus-library.png","width":925,"height":400,"caption":"Siemens Extended Modbus Library"},{"@type":"WebSite","@id":"https:\/\/www.dmcinfo.com\/#website","url":"https:\/\/www.dmcinfo.com\/","name":"DMC, Inc.","description":"","publisher":{"@id":"https:\/\/www.dmcinfo.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dmcinfo.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.dmcinfo.com\/#organization","name":"DMC, Inc.","url":"https:\/\/www.dmcinfo.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dmcinfo.com\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27171146\/dmc-logo-1.png","contentUrl":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/05\/27171146\/dmc-logo-1.png","width":418,"height":167,"caption":"DMC, Inc."},"image":{"@id":"https:\/\/www.dmcinfo.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/pages\/DMC-Inc\/107982009242929","https:\/\/www.instagram.com\/dmcengineering","https:\/\/www.youtube.com\/DMCEngineering","https:\/\/www.linkedin.com\/company\/dmc-engineering"]},{"@type":"Person","@id":"https:\/\/www.dmcinfo.com\/#\/schema\/person\/eab178041edfa6657dc10afa8e001e13","name":"DMC","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dmcinfo.com\/#\/schema\/person\/image\/","url":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/06\/27185251\/dmc-avatar.png","contentUrl":"https:\/\/cdn.dmcinfo.com\/wp-content\/uploads\/2025\/06\/27185251\/dmc-avatar.png","caption":"DMC"},"url":"https:\/\/www.dmcinfo.com\/blog\/author\/dmc\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/posts\/39393","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/users\/322"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/comments?post=39393"}],"version-history":[{"count":20,"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/posts\/39393\/revisions"}],"predecessor-version":[{"id":39783,"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/posts\/39393\/revisions\/39783"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/media\/39460"}],"wp:attachment":[{"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/media?parent=39393"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/categories?post=39393"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dmcinfo.com\/wp-json\/wp\/v2\/tags?post=39393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}