{"id":109,"date":"2025-12-09T21:48:43","date_gmt":"2025-12-09T21:48:43","guid":{"rendered":"https:\/\/plcdevstudio.com\/?p=109"},"modified":"2026-01-02T16:39:28","modified_gmt":"2026-01-02T16:39:28","slug":"fb_getcycletime","status":"publish","type":"post","link":"https:\/\/plcdevstudio.com\/?p=109","title":{"rendered":"FB_GetCycleTime"},"content":{"rendered":"<p>FB_GetCycleTime \u2013 C\u00e1lculo del tiempo de ciclo en TwinCAT 3<\/p>\n<p>En esta entrada comparto un bloque sencillo para medir tiempos de ciclo en TwinCAT 3 utilizando una m\u00e1quina de estados muy compacta. Este tipo de bloques es \u00fatil para medir la duraci\u00f3n exacta de operaciones, subrutinas, secuencias o diagn\u00f3sticos dentro del PLC.<!--more--><\/p>\n<p>A continuaci\u00f3n el c\u00f3digo completo del Function Block:<\/p>\n<pre><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nFUNCTION_BLOCK FB_GetCycleTime\nVAR_INPUT\niExecute : BOOL;\nEND_VAR\nVAR_OUTPUT\noDone : BOOL;\noCycleTime : LREAL;\nEND_VAR\nVAR\nState : UINT;\nPreviousTime : TIME;\nCycleTime : TIME;\nEND_VAR\n\nCASE State OF\n\n0:\nIF iExecute THEN\nState := 10;\nPreviousTime := TIME();\nEND_IF\n\n10:\nCycleTime := TIME() - PreviousTime;\noCycleTime := TIME_TO_LREAL(CycleTime) \/ 1000.0;\nState := 20;\noDone := TRUE;\n\n20:\nIF NOT iExecute THEN\noDone := FALSE;\nState := 0;\noCycleTime := 0;\nEND_IF\n\nEND_CASE\n<\/pre>\n<p>Explicaci\u00f3n r\u00e1pida:<br \/>\n\u2013 El bloque espera un flanco en iExecute para empezar la medici\u00f3n.<br \/>\n\u2013 Captura el tiempo actual como referencia.<br \/>\n\u2013 Calcula el tiempo transcurrido y lo entrega en segundos (LREAL).<br \/>\n\u2013 Cuando finaliza, activa oDone.<br \/>\n\u2013 Si iExecute se desactiva, el bloque se reinicia para una nueva medici\u00f3n.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone wp-image-124\" src=\"https:\/\/plcdevstudio.com\/wp-content\/uploads\/2025\/12\/Captura-de-pantalla-2025-12-09-231707-300x199.png\" alt=\"\" width=\"614\" height=\"407\" srcset=\"https:\/\/plcdevstudio.com\/wp-content\/uploads\/2025\/12\/Captura-de-pantalla-2025-12-09-231707-300x199.png 300w, https:\/\/plcdevstudio.com\/wp-content\/uploads\/2025\/12\/Captura-de-pantalla-2025-12-09-231707.png 583w\" sizes=\"(max-width: 614px) 100vw, 614px\" \/><\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-130\" src=\"https:\/\/plcdevstudio.com\/wp-content\/uploads\/2025\/12\/Captura-de-pantalla-2025-12-09-231707-3-300x94.png\" alt=\"\" width=\"930\" height=\"292\" srcset=\"https:\/\/plcdevstudio.com\/wp-content\/uploads\/2025\/12\/Captura-de-pantalla-2025-12-09-231707-3-300x94.png 300w, https:\/\/plcdevstudio.com\/wp-content\/uploads\/2025\/12\/Captura-de-pantalla-2025-12-09-231707-3.png 484w\" sizes=\"(max-width: 930px) 100vw, 930px\" \/><\/p>\n<p>Run-result of FB_GetCycleTime<\/p>\n<p>Este FB puede integrarse f\u00e1cilmente dentro de secuencias, diagnosis o perfiles de tiempo en proyectos TwinCAT 3.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>FB_GetCycleTime \u2013 C\u00e1lculo del tiempo de ciclo en TwinCAT 3 En esta entrada comparto un bloque sencillo para medir tiempos de ciclo en TwinCAT 3 utilizando una m\u00e1quina de estados muy compacta. Este tipo de bloques es \u00fatil para medir la duraci\u00f3n exacta de operaciones, subrutinas, secuencias o diagn\u00f3sticos dentro del PLC.<\/p>\n","protected":false},"author":1,"featured_media":304,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"saved_in_kubio":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-109","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-twincat"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>FB_GetCycleTime - plcdevstudio.<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"FB_GetCycleTime - plcdevstudio.\" \/>\n<meta property=\"og:description\" content=\"FB_GetCycleTime \u2013 C\u00e1lculo del tiempo de ciclo en TwinCAT 3 En esta entrada comparto un bloque sencillo para medir tiempos de ciclo en TwinCAT 3 utilizando una m\u00e1quina de estados muy compacta. Este tipo de bloques es \u00fatil para medir la duraci\u00f3n exacta de operaciones, subrutinas, secuencias o diagn\u00f3sticos dentro del PLC.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/plcdevstudio.com\/?p=109\" \/>\n<meta property=\"og:site_name\" content=\"plcdevstudio.\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-09T21:48:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-02T16:39:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/plcdevstudio.com\/wp-content\/uploads\/2025\/12\/9007215542994571__Web.png\" \/>\n\t<meta property=\"og:image:width\" content=\"715\" \/>\n\t<meta property=\"og:image:height\" content=\"288\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/plcdevstudio.com\/?p=109#article\",\"isPartOf\":{\"@id\":\"https:\/\/plcdevstudio.com\/?p=109\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/plcdevstudio.com\/#\/schema\/person\/79b12ac1b1af49d0498b809974733c57\"},\"headline\":\"FB_GetCycleTime\",\"datePublished\":\"2025-12-09T21:48:43+00:00\",\"dateModified\":\"2026-01-02T16:39:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/plcdevstudio.com\/?p=109\"},\"wordCount\":136,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/plcdevstudio.com\/?p=109#primaryimage\"},\"thumbnailUrl\":\"https:\/\/plcdevstudio.com\/wp-content\/uploads\/2025\/12\/9007215542994571__Web.png\",\"articleSection\":[\"TWINCAT\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/plcdevstudio.com\/?p=109#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/plcdevstudio.com\/?p=109\",\"url\":\"https:\/\/plcdevstudio.com\/?p=109\",\"name\":\"FB_GetCycleTime - plcdevstudio.\",\"isPartOf\":{\"@id\":\"https:\/\/plcdevstudio.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/plcdevstudio.com\/?p=109#primaryimage\"},\"image\":{\"@id\":\"https:\/\/plcdevstudio.com\/?p=109#primaryimage\"},\"thumbnailUrl\":\"https:\/\/plcdevstudio.com\/wp-content\/uploads\/2025\/12\/9007215542994571__Web.png\",\"datePublished\":\"2025-12-09T21:48:43+00:00\",\"dateModified\":\"2026-01-02T16:39:28+00:00\",\"author\":{\"@id\":\"https:\/\/plcdevstudio.com\/#\/schema\/person\/79b12ac1b1af49d0498b809974733c57\"},\"breadcrumb\":{\"@id\":\"https:\/\/plcdevstudio.com\/?p=109#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/plcdevstudio.com\/?p=109\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/plcdevstudio.com\/?p=109#primaryimage\",\"url\":\"https:\/\/plcdevstudio.com\/wp-content\/uploads\/2025\/12\/9007215542994571__Web.png\",\"contentUrl\":\"https:\/\/plcdevstudio.com\/wp-content\/uploads\/2025\/12\/9007215542994571__Web.png\",\"width\":715,\"height\":288},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/plcdevstudio.com\/?p=109#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/plcdevstudio.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"FB_GetCycleTime\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/plcdevstudio.com\/#website\",\"url\":\"https:\/\/plcdevstudio.com\/\",\"name\":\"plcdevstudio\",\"description\":\"Blog de desarrollo de software PLC\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/plcdevstudio.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/plcdevstudio.com\/#\/schema\/person\/79b12ac1b1af49d0498b809974733c57\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/plcdevstudio.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/965cd391265fc7ae23e6e78dbd3b34a126ddaffc738c6435ededdaea54c739c5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/965cd391265fc7ae23e6e78dbd3b34a126ddaffc738c6435ededdaea54c739c5?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/plcdevstudio.com\"],\"url\":\"https:\/\/plcdevstudio.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"FB_GetCycleTime - plcdevstudio.","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"es_ES","og_type":"article","og_title":"FB_GetCycleTime - plcdevstudio.","og_description":"FB_GetCycleTime \u2013 C\u00e1lculo del tiempo de ciclo en TwinCAT 3 En esta entrada comparto un bloque sencillo para medir tiempos de ciclo en TwinCAT 3 utilizando una m\u00e1quina de estados muy compacta. Este tipo de bloques es \u00fatil para medir la duraci\u00f3n exacta de operaciones, subrutinas, secuencias o diagn\u00f3sticos dentro del PLC.","og_url":"https:\/\/plcdevstudio.com\/?p=109","og_site_name":"plcdevstudio.","article_published_time":"2025-12-09T21:48:43+00:00","article_modified_time":"2026-01-02T16:39:28+00:00","og_image":[{"width":715,"height":288,"url":"https:\/\/plcdevstudio.com\/wp-content\/uploads\/2025\/12\/9007215542994571__Web.png","type":"image\/png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"admin","Tiempo de lectura":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/plcdevstudio.com\/?p=109#article","isPartOf":{"@id":"https:\/\/plcdevstudio.com\/?p=109"},"author":{"name":"admin","@id":"https:\/\/plcdevstudio.com\/#\/schema\/person\/79b12ac1b1af49d0498b809974733c57"},"headline":"FB_GetCycleTime","datePublished":"2025-12-09T21:48:43+00:00","dateModified":"2026-01-02T16:39:28+00:00","mainEntityOfPage":{"@id":"https:\/\/plcdevstudio.com\/?p=109"},"wordCount":136,"commentCount":0,"image":{"@id":"https:\/\/plcdevstudio.com\/?p=109#primaryimage"},"thumbnailUrl":"https:\/\/plcdevstudio.com\/wp-content\/uploads\/2025\/12\/9007215542994571__Web.png","articleSection":["TWINCAT"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/plcdevstudio.com\/?p=109#respond"]}]},{"@type":"WebPage","@id":"https:\/\/plcdevstudio.com\/?p=109","url":"https:\/\/plcdevstudio.com\/?p=109","name":"FB_GetCycleTime - plcdevstudio.","isPartOf":{"@id":"https:\/\/plcdevstudio.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/plcdevstudio.com\/?p=109#primaryimage"},"image":{"@id":"https:\/\/plcdevstudio.com\/?p=109#primaryimage"},"thumbnailUrl":"https:\/\/plcdevstudio.com\/wp-content\/uploads\/2025\/12\/9007215542994571__Web.png","datePublished":"2025-12-09T21:48:43+00:00","dateModified":"2026-01-02T16:39:28+00:00","author":{"@id":"https:\/\/plcdevstudio.com\/#\/schema\/person\/79b12ac1b1af49d0498b809974733c57"},"breadcrumb":{"@id":"https:\/\/plcdevstudio.com\/?p=109#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/plcdevstudio.com\/?p=109"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/plcdevstudio.com\/?p=109#primaryimage","url":"https:\/\/plcdevstudio.com\/wp-content\/uploads\/2025\/12\/9007215542994571__Web.png","contentUrl":"https:\/\/plcdevstudio.com\/wp-content\/uploads\/2025\/12\/9007215542994571__Web.png","width":715,"height":288},{"@type":"BreadcrumbList","@id":"https:\/\/plcdevstudio.com\/?p=109#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/plcdevstudio.com\/"},{"@type":"ListItem","position":2,"name":"FB_GetCycleTime"}]},{"@type":"WebSite","@id":"https:\/\/plcdevstudio.com\/#website","url":"https:\/\/plcdevstudio.com\/","name":"plcdevstudio","description":"Blog de desarrollo de software PLC","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/plcdevstudio.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/plcdevstudio.com\/#\/schema\/person\/79b12ac1b1af49d0498b809974733c57","name":"admin","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/plcdevstudio.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/965cd391265fc7ae23e6e78dbd3b34a126ddaffc738c6435ededdaea54c739c5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/965cd391265fc7ae23e6e78dbd3b34a126ddaffc738c6435ededdaea54c739c5?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/plcdevstudio.com"],"url":"https:\/\/plcdevstudio.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/plcdevstudio.com\/index.php?rest_route=\/wp\/v2\/posts\/109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/plcdevstudio.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/plcdevstudio.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/plcdevstudio.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/plcdevstudio.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=109"}],"version-history":[{"count":17,"href":"https:\/\/plcdevstudio.com\/index.php?rest_route=\/wp\/v2\/posts\/109\/revisions"}],"predecessor-version":[{"id":305,"href":"https:\/\/plcdevstudio.com\/index.php?rest_route=\/wp\/v2\/posts\/109\/revisions\/305"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/plcdevstudio.com\/index.php?rest_route=\/wp\/v2\/media\/304"}],"wp:attachment":[{"href":"https:\/\/plcdevstudio.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/plcdevstudio.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/plcdevstudio.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}