{"id":512,"date":"2017-10-15T13:45:27","date_gmt":"2017-10-15T13:45:27","guid":{"rendered":"http:\/\/joerg-kahlert.de\/?page_id=512"},"modified":"2018-01-19T11:58:22","modified_gmt":"2018-01-19T11:58:22","slug":"ansi-c-bibliothek","status":"publish","type":"page","link":"https:\/\/www.kahlert.com\/engl\/ansi-c-bibliothek\/","title":{"rendered":"ANSI-C-library for automation &#038; control"},"content":{"rendered":"<h2>Scope of performance<\/h2>\n<p>The <strong>ANSI-C-library<\/strong> makes it very easy to use \u00b5C- resp. \u00b5P- boards as in almost any way complex controllers or plant. The whole library was dynamically programmed, so it is limited only by the memory capacity of your board.<\/p>\n<h4>Contents<\/h4>\n<p>The library contains the following blocks:<\/p>\n<ul>\n<li>P, I, D, PI, PD, PID, PIDT<sub>1<\/sub>, PT<sub>1<\/sub>, DT<sub>1<\/sub>, PT<sub>2<\/sub><\/li>\n<li>dead time<\/li>\n<li>two-point and three-point element<\/li>\n<li>limiter<\/li>\n<li>table function<\/li>\n<li>actuator characteristics<\/li>\n<li>rectangle, triangle, saw tooth generator<\/li>\n<\/ul>\n<p>All blocks are available in 8, 16 and 32 bit resolution. To program a block just initialize and call it. The separation of these two steps results in an optimal automatic control block after the first step. Its code is fast and minimal.<\/p>\n<h4>Library, codeminimal?<\/h4>\n<p>Even if the linker doesn&#8217;t link only the necessary code, the generated code will be minimal because each block is saved separately. Therefore the user can absolutely be sure that only the functions needed are linked. Nevertheless it is sufficient to include one single header file.<\/p>\n<p>The following scheme of a C-source code uses the ANSI-C library.<\/p>\n<pre>...\r\n\r\n#include&lt;redef.h&gt;\r\n\r\n#define PORT1 (*(char*)0x1000)\r\n\r\n\/* 0x1000 sei die Adresse des Kanals der Stellgr\u00f6\u00dfe (Ausgang) *\/\r\n\r\nPID8 Regler;\r\n\r\n\/* global da mittels Interruptverarbeitung gearbeitet wird. *\/\r\n\r\nstatic interrupt void Regler ()\r\n\r\n{ disable_interrupt ();\r\n\r\nPORT2=PID8 (Regler, 30, PORT1)\r\n\r\nenable_interrupt();\r\n\r\n}\r\n\r\nvoid main (void)\r\n\r\n{ char i;\r\n\r\ndisable_interrupt();\r\n\r\nRegler=Init_PID8 (<span class=\"spezi1\">Parameterliste<\/span>)\r\n\r\nenable_interrupt();\r\n\r\nfor (i=0;i;wait_for_interrupt());\r\n\r\n}\r\n<\/pre>\n<h2>Prices<\/h2>\n<p>\n<table id=\"tablepress-42\" class=\"tablepress tablepress-id-42 tablepress-responsive\">\n<tbody class=\"row-hover\">\n<tr class=\"row-1\">\n\t<td class=\"column-1\">Single user licence Industry:<\/td><td class=\"column-2\">EUR<\/td><td class=\"column-3\">320,00<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-42 from cache --><br \/>\nPlease refer to our <a href=\"https:\/\/www.kahlert.com\/engl\/preislisten\/\">price lists<\/a> for current prices of all products!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Scope of performance The ANSI-C-library makes it very easy to use \u00b5C- resp. \u00b5P- boards as in almost any way complex controllers or plant. The whole libra<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"fullwidth.php","meta":{"footnotes":""},"class_list":["post-512","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.kahlert.com\/engl\/wp-json\/wp\/v2\/pages\/512","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kahlert.com\/engl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.kahlert.com\/engl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.kahlert.com\/engl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kahlert.com\/engl\/wp-json\/wp\/v2\/comments?post=512"}],"version-history":[{"count":20,"href":"https:\/\/www.kahlert.com\/engl\/wp-json\/wp\/v2\/pages\/512\/revisions"}],"predecessor-version":[{"id":3704,"href":"https:\/\/www.kahlert.com\/engl\/wp-json\/wp\/v2\/pages\/512\/revisions\/3704"}],"wp:attachment":[{"href":"https:\/\/www.kahlert.com\/engl\/wp-json\/wp\/v2\/media?parent=512"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}