Clarifying and extending IEC-60848: Precise Grafcet Implementation for Embedded Systems | Research Square window.SnipcartSettings = { analytics: { enabled: false } }; (function() { var accessVector = localStorage.getItem('access_vector') || ''; window.dataLayer = window.dataLayer || []; if (accessVector) { window.dataLayer.push({ user: { profile: { profileInfo: { snid: accessVector } } } }); } })(); (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-K279D39R'); Browse Preprints In Review Journals COVID-19 Preprints AJE Video Bytes Research Tools Research Promotion AJE Professional Editing AJE Rubriq About Preprint Platform In Review Editorial Policies Our Team Advisory Board Help Center Sign In Submit a Preprint Cite Share Download PDF Method Article Clarifying and extending IEC-60848: Precise Grafcet Implementation for Embedded Systems Angel Gaspar González Rodríguez This is a preprint; it has not been peer reviewed by a journal. https://doi.org/ 10.21203/rs.3.rs-7752548/v1 This work is licensed under a CC BY 4.0 License Status: Posted Version 1 posted You are reading this latest preprint version Abstract This work proposes guidelines for coding a Grafcet on a microcontroller, following the specifications described in standard IEC-60848. While previous works exist for coding a simple GRAFCET on platforms like Arduino or STM32, they overlook implementing timers, hierarchical structure, and other advanced resources included in the IEC-60848. Throughout this study, procedures for coding all resources described in the standard using C++ will be presented. These resources include timers, stored actions, macro-steps, enclosures, and forcing orders, among others. Previously, it has been necessary to identify ambiguities, vagueness, inaccuracies, and the non-modular approach of the IEC-60848 standard that impeded a proper and unequivocal implementation, proposing improvements and interpretations to make it more precise and exportable. Examples are included to illustrate how to apply the proposed guidelines and a template to assist in coding any Grafcet is made available in a repository. As a result, this article provides designers with a complete set of tools and resources to unequivocally implement concurrent discrete-event processes. Systems Engineering Grafcet embedded system IEC-60848 meta-model enclosing step macro-step forcing orders stored actions Full Text Additional Declarations The authors declare no competing interests. Cite Share Download PDF Status: Posted Version 1 posted You are reading this latest preprint version Research Square lets you share your work early, gain feedback from the community, and start making changes to your manuscript prior to peer review in a journal. As a division of Research Square Company, we’re committed to making research communication faster, fairer, and more useful. We do this by developing innovative software and high quality services for the global research community. Our growing team is made up of researchers and industry professionals working together to solve the most critical problems facing scientific publishing. Also discoverable on Platform About Our Team In Review Editorial Policies Advisory Board Help Center Resources Author Services Accessibility API Access RSS feed Manage Cookie Preferences © Research Square 2026 | ISSN 2693-5015 (online) Privacy Policy Terms of Service Do Not Sell My Personal Information {"props":{"pageProps":{"initialData":{"identity":"rs-7752548","acceptedTermsAndConditions":true,"allowDirectSubmit":true,"archivedVersions":[],"articleType":"Method Article","associatedPublications":[],"authors":[{"id":522947228,"identity":"d972b1e4-7924-4aeb-84f5-8fababff5351","order_by":0,"name":"Angel Gaspar González Rodríguez","email":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAAyAQMAAABI0h/eAAAABlBMVEX///8AAABVwtN+AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAyklEQVRIiWNgGAWjYBADOQaGAyRqMSZdS2ID0Ur5+xc//lxQcy99w8HDDx8XMNjYE9QiceOZmfSMY8W5Gw4cMzaewZBGhHU3Dpgx87AlALUcMJPmYTicQFCH/I3jnz/z/EtINzhw/PtvHob/hB1mcL7HQJq3LSHB4MAZoHUMBxgJOszwBk+Z9My+BMOZB84US/MYJBP2i9z545s/F3xLkOe7cXzjZ54KO8IOY5BIYGCGMA6A3ElYAzBiDkC18BN00SgYBaNgFIxUAACwaUD3/gbgQAAAAABJRU5ErkJggg==","orcid":"","institution":"University of Jaen","correspondingAuthor":true,"prefix":"","firstName":"Angel","middleName":"Gaspar González","lastName":"Rodríguez","suffix":""}],"badges":[],"createdAt":"2025-09-30 14:35:47","currentVersionCode":1,"declarations":{"humanSubjects":false,"vertebrateSubjects":false,"conflictsOfInterestStatement":false,"humanSubjectEthicalGuidelines":false,"humanSubjectConsent":false,"humanSubjectClinicalTrial":false,"humanSubjectCaseReport":false,"vertebrateSubjectEthicalGuidelines":false},"doi":"10.21203/rs.3.rs-7752548/v1","doiUrl":"https://doi.org/10.21203/rs.3.rs-7752548/v1","draftVersion":[],"editorialEvents":[],"editorialNote":"","failedWorkflow":false,"files":[{"id":92556892,"identity":"659ddb4f-a585-4be8-8e39-870c29be678d","added_by":"auto","created_at":"2025-10-01 03:09:52","extension":"pdf","order_by":1,"title":"","display":"","copyAsset":false,"role":"manuscript-pdf","size":1122298,"visible":true,"origin":"","legend":"","description":"","filename":"GrafcetEmbeddedIJAMT.pdf","url":"https://assets-eu.researchsquare.com/files/rs-7752548/v1_covered_26ea3176-dfc4-42b5-abd6-b4fd4ee1cfba.pdf"}],"financialInterests":"The authors declare no competing interests.","formattedTitle":"\u003cp\u003eClarifying and extending IEC-60848: Precise Grafcet Implementation for Embedded Systems\u003c/p\u003e","fulltext":[],"fulltextSource":"","fullText":"","funders":[],"hasAdminPriorityOnWorkflow":false,"hasManuscriptDocX":false,"hasOptedInToPreprint":true,"hasPassedJournalQc":"","hasAnyPriority":true,"hideJournal":true,"highlight":"","institution":"","isAcceptedByJournal":false,"isAuthorSuppliedPdf":true,"isDeskRejected":"","isHiddenFromSearch":false,"isInQc":false,"isInWorkflow":true,"isPdf":true,"isPdfUpToDate":true,"isWithdrawnOrRetracted":false,"journal":{"display":true,"email":"
[email protected]","identity":"researchsquare","isNatureJournal":false,"hasQc":true,"allowDirectSubmit":true,"externalIdentity":"","sideBox":"","snPcode":"","submissionUrl":"/submission","title":"Research Square","twitterHandle":"researchsquare","acdcEnabled":true,"dfaEnabled":false,"editorialSystem":"","reportingPortfolio":"","inReviewEnabled":false,"inReviewRevisionsEnabled":true},"keywords":"Grafcet, embedded system, IEC-60848, meta-model, enclosing step, macro-step, forcing orders, stored actions","lastPublishedDoi":"10.21203/rs.3.rs-7752548/v1","lastPublishedDoiUrl":"https://doi.org/10.21203/rs.3.rs-7752548/v1","license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"},"manuscriptAbstract":"\u003cp\u003eThis work proposes guidelines for coding a Grafcet on a microcontroller, following the specifications described in standard IEC-60848. While previous works exist for coding a simple GRAFCET on platforms like Arduino or STM32, they overlook implementing timers, hierarchical structure, and other advanced resources included in the IEC-60848. Throughout this study, procedures for coding all resources described in the standard using C++ will be presented. These resources include timers, stored actions, macro-steps, enclosures, and forcing orders, among others. Previously, it has been necessary to identify ambiguities, vagueness, inaccuracies, and the non-modular approach of the IEC-60848 standard that impeded a proper and unequivocal implementation, proposing improvements and interpretations to make it more precise and exportable. Examples are included to illustrate how to apply the proposed guidelines and a template to assist in coding any Grafcet is made available in a repository. As a result, this article provides designers with a complete set of tools and resources to unequivocally implement concurrent discrete-event processes.\u003c/p\u003e","manuscriptTitle":"Clarifying and extending IEC-60848: Precise Grafcet Implementation for Embedded Systems","msid":"","msnumber":"","nonDraftVersions":[{"code":1,"date":"2025-10-01 03:01:43","doi":"10.21203/rs.3.rs-7752548/v1","editorialEvents":[{"type":"communityComments","content":0}],"status":"published","journal":{"display":true,"email":"
[email protected]","identity":"researchsquare","isNatureJournal":false,"hasQc":true,"allowDirectSubmit":true,"externalIdentity":"","sideBox":"","snPcode":"","submissionUrl":"/submission","title":"Research Square","twitterHandle":"researchsquare","acdcEnabled":true,"dfaEnabled":false,"editorialSystem":"","reportingPortfolio":"","inReviewEnabled":false,"inReviewRevisionsEnabled":true}}],"origin":"","ownerIdentity":"486cabed-3467-447e-a814-d0f901e29f9a","owner":[],"postedDate":"October 1st, 2025","published":true,"recentEditorialEvents":[],"rejectedJournal":[],"revision":"","amendment":"","status":"posted","subjectAreas":[{"id":55587283,"name":"Systems Engineering"}],"tags":[],"updatedAt":"2025-10-01T03:01:43+00:00","versionOfRecord":[],"versionCreatedAt":"2025-10-01 03:01:43","video":"","vorDoi":"","vorDoiUrl":"","workflowStages":[]},"version":"v1","identity":"rs-7752548","journalConfig":"researchsquare"},"__N_SSP":true},"page":"/article/[identity]/[[...version]]","query":{"redirect":"/article/rs-7752548","identity":"rs-7752548","version":["v1"]},"buildId":"8U1c8b4HqxoKbykW_rLl7","isFallback":false,"isExperimentalCompile":false,"dynamicIds":[84888],"gssp":true,"scriptLoader":[]}
Text is read by the "Ask this paper" AI Q&A widget below.
Extraction quality varies by source — PMC NXML preserves structure
cleanly, OA-HTML may include some navigation residue, and OA-PDF can
have broken hyphenation. The publisher copy
(via DOI)
is the canonical version.