{"id":129788,"date":"2025-04-18T05:44:40","date_gmt":"2025-04-18T10:44:40","guid":{"rendered":"https:\/\/www.controleng.com\/?p=129788"},"modified":"2025-04-23T19:38:01","modified_gmt":"2025-04-24T00:38:01","slug":"more-answers-practical-advice-for-automation-programmers","status":"publish","type":"post","link":"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/","title":{"rendered":"More answers: Practical advice for automation programmers"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">More practical advice for automation programming insights<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Explore additional tips, tricks and best practices for controls and automation programming beyond those offered in the <em>Control Engineering<\/em> webcast, \u201cPractical advice for automation programmers,\u201d archived until March 26, 2026.<\/li>\n\n\n\n<li>Understand some instructors\u2019 best practices can advance controls and automation programming skills and increase your value in automation programming projects.<\/li>\n\n\n\n<li>See the webcast and preview article for more advice.<\/li>\n<\/ul>\n\n\n\n<p><strong>Mark T. Hoske,<\/strong> Control Engineering<\/p>\n\n\n\n<p>Instructors from the <em>Control Engineering<\/em> webcast, \u201cPractical advice for automation programmers,\u201d provide more answers on programming advice for automation and programmable logic controllers (PLCs) below. The instructors answered additional audience questions that they didn\u2019t have time for during the one-hour webcast. The instructors are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Braden Hadwiger, mechanical engineer, Huffman Engineering Inc.<\/li>\n\n\n\n<li>Jason Israelsen, PE, senior control engineer, APCO Inc.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">What\u2019s the role of object-oriented programming (OOP) in automation programming?<\/h2>\n\n\n\n<p>Hadwiger: Object-oriented programming\u2019s role in automation is to create templates that can be reused and can be used to make global edits. This is especially useful for encapsulating PLC code and pairing that with matching objects on the operator interface.<\/p>\n\n\n\n<p>Israelsen: Object-oriented programming is a design approach that structures data into \u201cobjects\u201d\u2014self-contained entities that encapsulate data and related behaviors. These objects can have consistent attributes and data types, making them especially helpful for scalability, maintainability and revision control. In practice, I&#8217;ve seen objects used to provide consistent interfaces for things like controllers, lead\/lag control schemes, VFDs, valves, blowers and other equipment. It\u2019s a powerful tool for standardizing complex systems.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"575\" src=\"https:\/\/www.controleng.com\/wp-content\/uploads\/2025\/03\/CTL2503_WEB_WC_ProgrammingTips-Preview-Fig3-Instructors-1024x575.jpg\" alt=\"Instructors for the \u201cPractical advice for automation programmers\u201d webcast from Control Engineering, March 26, also provide information here. The experts are Braden Hadwiger, mechanical engineer, Huffman Engineering Inc., and Jason Israelsen, PE, senior control engineer, APCO Inc. Courtesy: Control Engineering webcasts\" class=\"wp-image-129613\" style=\"width:900px\" srcset=\"https:\/\/www.controleng.com\/wp-content\/uploads\/2025\/03\/CTL2503_WEB_WC_ProgrammingTips-Preview-Fig3-Instructors-1024x575.jpg 1024w, https:\/\/www.controleng.com\/wp-content\/uploads\/2025\/03\/CTL2503_WEB_WC_ProgrammingTips-Preview-Fig3-Instructors-300x168.jpg 300w, https:\/\/www.controleng.com\/wp-content\/uploads\/2025\/03\/CTL2503_WEB_WC_ProgrammingTips-Preview-Fig3-Instructors-768x431.jpg 768w, https:\/\/www.controleng.com\/wp-content\/uploads\/2025\/03\/CTL2503_WEB_WC_ProgrammingTips-Preview-Fig3-Instructors-900x506.jpg 900w, https:\/\/www.controleng.com\/wp-content\/uploads\/2025\/03\/CTL2503_WEB_WC_ProgrammingTips-Preview-Fig3-Instructors-400x225.jpg 400w, https:\/\/www.controleng.com\/wp-content\/uploads\/2025\/03\/CTL2503_WEB_WC_ProgrammingTips-Preview-Fig3-Instructors.jpg 1229w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><em>Instructors for the \u201cPractical advice for automation programmers\u201d webcast from Control Engineering, March 26, also provide information here based on audience questions after the webcast. The experts are Braden Hadwiger, mechanical engineer, Huffman Engineering Inc., and Jason Israelsen, PE, senior control engineer, APCO Inc.<br>Courtesy: Control Engineering webcasts<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Do you have real-life mistakes and consequences or \u201clearned the hard way\u201d stories?<\/h2>\n\n\n\n<p>Israelsen: I\u2019ve seen situations where I wish a different programming language had been used. One example that stands out is a project where too much Structured Text (ST) was used, which made it difficult for the client\u2019s team to troubleshoot due to their limited background with text-based programming. Another example involved using Function Block Diagram (FBD) as the primary language in a batch process. While FBD is great for modular logic, in this case, the batch structure caused the code to become overly complex and difficult to troubleshoot or maintain.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How much do you depend on what the customer is familiar or comfortable with?<\/h2>\n\n\n\n<p>Hadwiger: Most programming I complete depends on the end user. Typically, they are adding to their existing systems and want to use what they are familiar with. However, there are instances where I can give recommendations for changes to how their systems are set up, such as trying to implement a custom function-block where it makes sense.<\/p>\n\n\n\n<p>Israelsen: The customer should have the final say in which programming language is used. That said, open conversations about language selection are important\u2014they help avoid the \u201cbecause that\u2019s how we\u2019ve always done it\u201d mindset.<\/p>\n\n\n\n<p>It\u2019s also worth noting that comfort and familiarity aren\u2019t always the same. For example, a customer may be familiar with Language A but actually more comfortable working in Language B. In general, graphical languages like Ladder Diagram (LD) and Function Block Diagram (FBD) tend to be more intuitive for most teams and are often a good starting point for broader usability.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How is artificial intelligence (AI) assistance improving programming productivity, safety and reliability, and what are the pitfalls of using this tool or approach?<\/h2>\n\n\n\n<p>Israelsen: AI assistance is great for standard solutions. I\u2019ve seen it help with syntax, logic templates and general insight into well-established programming patterns. Where I\u2019ve seen it struggle is in creative or non-standard scenarios, especially those involving novel approaches or niche implementations. I see AI as a helpful tool to generate ideas and kick-start development, but ultimately, the programmer is still responsible for the final solution. It\u2019s important not to over-rely on AI and to fully understand the code it produces before using it in production.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Is there a programming language that is more adaptable to AI or AI friendly?<\/h2>\n\n\n\n<p>Israelsen: Because most AI tools are text-based, they tend to work best with text-based programming languages, such as Structured Text (ST). Additionally, open and widely adopted languages typically yield better results when using AI\u2014for example, getting accurate syntax suggestions or reliable code generation. In contrast, proprietary or niche languages may have limited support or less accurate output.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is your preferred approach to cybersecurity?<\/h2>\n\n\n\n<p>Hadwiger: Huffman Engineering&#8217;s approach to cybersecurity is to follow the Purdue model for Industrial Control Networks [from bottom-up, device, controls, supervisory levels]. This involves segmentation of different levels and networks in a facility and installing security appliances at the appropriate levels. If no data needs to be accessed externally, another approach is to seal off the network from the outside world completely and create what is known as an \u201cair-gapped\u201d network. However, this is not always practical depending on the type of facility.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Do you have any tips for organizing tags and comments in a way that makes projects easier to scale and troubleshoot later?<\/h2>\n\n\n\n<p>Hadwiger: The best way to make projects easier to scale and troubleshoot is to create a PLC standard that defines some of these items. For example, if my PLC standard says that all of the manual control of a motor is located in a control module routine for that motor, I know where to look in any PLC program that follows the standard. Creating a PLC standard to implement modular programming and organization also makes a project easy to scale as changes are made only to the routine they affect and new routines are added without changing old ones.<\/p>\n\n\n\n<p>Israelsen: Yes\u2014start by organizing tags based on equipment, control loops and location context. For example, if you have multiple signals coming from a motor, include an identifier that groups those tags logically (e.g. Motor1_RunCmd, Motor1_Status).<\/p>\n\n\n\n<p>For larger systems, consider adding site numbers, building numbers, or area codes to your tags to support multi-site or multi-building architectures (e.g.,, Site01_BuildingA_Motor1_RunCmd).<\/p>\n\n\n\n<p>Tag naming can be descriptive or follow a structured standard like ISA-5.1, depending on the application and audience. ISA-style naming is especially useful in regulated industries or large-scale systems where consistency and traceability are critical.<\/p>\n\n\n\n<p>Object-oriented programming can help enforce consistent naming and organization<a><u>, and<\/u><\/a> having a well-defined naming convention is key to creating scalable, maintainable and easy-to-troubleshoot projects.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What are best practices for writing add-on-instructions?<\/h2>\n\n\n\n<p>Hadwiger: When writing add-on instructions, make sure to add plenty of comments and documentation as the template will be reused and will help in troubleshooting later. Another item is to make sure the testing process is very robust before placing them in production as some software does not allow online changes to add-on instructions and requires a PLC download, which creates downtime.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What are recommendations on version control and change management software?<\/h2>\n\n\n\n<p>Hadwiger: I&#8217;d recommend starting with your PLC manufacturer to see if they have a version control software offering. This often integrates the best with your version of PLC and can work with other brands as well. Otherwise, I would look for some that is intuitive to use or one that can be adapted easily. For example. Huffman Engineering uses both types, one from one of the PLC vendors we use and a software that was intended for 3-D modeling. We are to store code libraries in the PLC vendor software, and we adapted the other to version control drawings and documentation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Are there conversion tools to convert Ladder Diagram to Function Block Diagram?<\/h2>\n\n\n\n<p>Hadwiger: This depends on the software. One approach would be to just encapsulate the ladder logic in a function block if it makes sense to do so such as motor control code or analog scaling. Otherwise, most ladder could be converted to function block by using the ladder logic to create a system map to then rewrite the code in function block.<\/p>\n\n\n\n<p><strong>Mark T. Hoske<\/strong> is editor-in-chief, <em>Control Engineering, <\/em>WTWH Media<em>,<\/em> mhoske@wtwhmedia.com, and moderator for this webcast.<\/p>\n\n\n\n<p><strong>CONSIDER THIS<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Need more instruction? View the webcast below or share with a friend.<\/li>\n<\/ul>\n\n\n\n<p><strong>ONLINE<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Register for the <em>Control Engineering<\/em> webcast, \u201cPractical advice for automation programmers,\u201d archived until March 26, 2026, here: <a href=\"https:\/\/gateway.on24.com\/wcc\/experience\/elitewtwhmedia\/2927718\/4673040\/ce.\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/gateway.on24.com\/wcc\/experience\/elitewtwhmedia\/2927718\/4673040\/ce<\/a>.<\/li>\n\n\n\n<li>Also see the webcast preview article for even more control system programming tips.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-control-engineering wp-block-embed-control-engineering\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"7CVR7o1cxK\"><a href=\"https:\/\/www.controleng.com\/practical-advice-for-automation-programmers\/\">Practical advice for automation programmers<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;Practical advice for automation programmers&#8221; &#8212; Control Engineering\" src=\"https:\/\/www.controleng.com\/practical-advice-for-automation-programmers\/embed\/#?secret=r1zWk72Dq7#?secret=7CVR7o1cxK\" data-secret=\"7CVR7o1cxK\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>While Control Engineering offers an hour of webcast instruction with practical advice for automation programmers March 26, archived for a year, find more answers from the instructors here related to programming automation and programmable logic controllers (PLCs).<\/p>\n","protected":false},"author":56,"featured_media":129613,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":true,"pgc_sgb_lightbox_settings":"","footnotes":""},"categories":[108210],"tags":[110006,109340,110007,110008],"tracking-metrics":[],"display-location":[109353],"class_list":{"2":"type-post"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>More answers: Practical advice for automation programmers - Control Engineering<\/title>\n<meta name=\"description\" content=\"While Control Engineering offers an hour of webcast instruction with practical advice for automation programmers March 26, archived for a year, find more answers from the instructors here related to programming automation and programmable logic controllers (PLCs).\" \/>\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.controleng.com\/more-answers-practical-advice-for-automation-programmers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"More answers: Practical advice for automation programmers - Control Engineering\" \/>\n<meta property=\"og:description\" content=\"While Control Engineering offers an hour of webcast instruction with practical advice for automation programmers March 26, archived for a year, find more answers from the instructors here related to programming automation and programmable logic controllers (PLCs).\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/\" \/>\n<meta property=\"og:site_name\" content=\"Control Engineering\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ControlEngineeringMagazine\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-18T10:44:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-24T00:38:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.controleng.com\/wp-content\/uploads\/2025\/03\/CTL2503_WEB_WC_ProgrammingTips-Preview-Fig3-Instructors.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1229\" \/>\n\t<meta property=\"og:image:height\" content=\"690\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Mark T. Hoske\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@controlengtips\" \/>\n<meta name=\"twitter:site\" content=\"@controlengtips\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mark T. Hoske\" \/>\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.controleng.com\/more-answers-practical-advice-for-automation-programmers\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/\"},\"author\":{\"name\":\"Mark T. Hoske\",\"@id\":\"https:\/\/www.controleng.com\/#\/schema\/person\/8d6c2e7cce864f132f3f84a92d4ede7f\"},\"headline\":\"More answers: Practical advice for automation programmers\",\"datePublished\":\"2025-04-18T10:44:40+00:00\",\"dateModified\":\"2025-04-24T00:38:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/\"},\"wordCount\":1433,\"publisher\":{\"@id\":\"https:\/\/www.controleng.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.controleng.com\/wp-content\/uploads\/2025\/03\/CTL2503_WEB_WC_ProgrammingTips-Preview-Fig3-Instructors.jpg\",\"keywords\":[\"APCO\",\"control engineering\",\"Huffman Engineering\",\"system integrators\"],\"articleSection\":[\"Programming\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/\",\"url\":\"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/\",\"name\":\"More answers: Practical advice for automation programmers - Control Engineering\",\"isPartOf\":{\"@id\":\"https:\/\/www.controleng.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.controleng.com\/wp-content\/uploads\/2025\/03\/CTL2503_WEB_WC_ProgrammingTips-Preview-Fig3-Instructors.jpg\",\"datePublished\":\"2025-04-18T10:44:40+00:00\",\"dateModified\":\"2025-04-24T00:38:01+00:00\",\"description\":\"While Control Engineering offers an hour of webcast instruction with practical advice for automation programmers March 26, archived for a year, find more answers from the instructors here related to programming automation and programmable logic controllers (PLCs).\",\"breadcrumb\":{\"@id\":\"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/#primaryimage\",\"url\":\"https:\/\/www.controleng.com\/wp-content\/uploads\/2025\/03\/CTL2503_WEB_WC_ProgrammingTips-Preview-Fig3-Instructors.jpg\",\"contentUrl\":\"https:\/\/www.controleng.com\/wp-content\/uploads\/2025\/03\/CTL2503_WEB_WC_ProgrammingTips-Preview-Fig3-Instructors.jpg\",\"width\":1229,\"height\":690,\"caption\":\"Courtesy: Control Engineering webcasts\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.controleng.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"More answers: Practical advice for automation programmers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.controleng.com\/#website\",\"url\":\"https:\/\/www.controleng.com\/\",\"name\":\"Control Engineering\",\"description\":\"Control Engineering covers and educates about automation, control and instrumentation technologies\",\"publisher\":{\"@id\":\"https:\/\/www.controleng.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.controleng.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.controleng.com\/#organization\",\"name\":\"Control Engineering\",\"url\":\"https:\/\/www.controleng.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.controleng.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.controleng.com\/wp-content\/uploads\/2024\/12\/ce_logo.png\",\"contentUrl\":\"https:\/\/www.controleng.com\/wp-content\/uploads\/2024\/12\/ce_logo.png\",\"width\":300,\"height\":93,\"caption\":\"Control Engineering\"},\"image\":{\"@id\":\"https:\/\/www.controleng.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/ControlEngineeringMagazine\",\"https:\/\/x.com\/controlengtips\",\"https:\/\/www.linkedin.com\/company\/control-engineering-magazine\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.controleng.com\/#\/schema\/person\/8d6c2e7cce864f132f3f84a92d4ede7f\",\"name\":\"Mark T. Hoske\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.controleng.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3a681f733c4a125a8abde58f95c1427d9bb600dc72913799a5ca7cb4b754fc7d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3a681f733c4a125a8abde58f95c1427d9bb600dc72913799a5ca7cb4b754fc7d?s=96&d=mm&r=g\",\"caption\":\"Mark T. Hoske\"},\"description\":\"Mark Hoske has been Control Engineering editor\/content manager since 1994 and in a leadership role since 1999, covering all major areas: control systems, networking and information systems, control equipment and energy, and system integration, everything that comprises or facilitates the control loop. He has been writing about technology since 1987, writing professionally since 1982, and has a Bachelor of Science in Journalism degree from UW-Madison.\",\"url\":\"https:\/\/www.controleng.com\/author\/mark-t-hoske\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"More answers: Practical advice for automation programmers - Control Engineering","description":"While Control Engineering offers an hour of webcast instruction with practical advice for automation programmers March 26, archived for a year, find more answers from the instructors here related to programming automation and programmable logic controllers (PLCs).","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.controleng.com\/more-answers-practical-advice-for-automation-programmers\/","og_locale":"en_US","og_type":"article","og_title":"More answers: Practical advice for automation programmers - Control Engineering","og_description":"While Control Engineering offers an hour of webcast instruction with practical advice for automation programmers March 26, archived for a year, find more answers from the instructors here related to programming automation and programmable logic controllers (PLCs).","og_url":"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/","og_site_name":"Control Engineering","article_publisher":"https:\/\/www.facebook.com\/ControlEngineeringMagazine","article_published_time":"2025-04-18T10:44:40+00:00","article_modified_time":"2025-04-24T00:38:01+00:00","og_image":[{"width":1229,"height":690,"url":"https:\/\/www.controleng.com\/wp-content\/uploads\/2025\/03\/CTL2503_WEB_WC_ProgrammingTips-Preview-Fig3-Instructors.jpg","type":"image\/jpeg"}],"author":"Mark T. Hoske","twitter_card":"summary_large_image","twitter_creator":"@controlengtips","twitter_site":"@controlengtips","twitter_misc":{"Written by":"Mark T. Hoske","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/#article","isPartOf":{"@id":"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/"},"author":{"name":"Mark T. Hoske","@id":"https:\/\/www.controleng.com\/#\/schema\/person\/8d6c2e7cce864f132f3f84a92d4ede7f"},"headline":"More answers: Practical advice for automation programmers","datePublished":"2025-04-18T10:44:40+00:00","dateModified":"2025-04-24T00:38:01+00:00","mainEntityOfPage":{"@id":"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/"},"wordCount":1433,"publisher":{"@id":"https:\/\/www.controleng.com\/#organization"},"image":{"@id":"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.controleng.com\/wp-content\/uploads\/2025\/03\/CTL2503_WEB_WC_ProgrammingTips-Preview-Fig3-Instructors.jpg","keywords":["APCO","control engineering","Huffman Engineering","system integrators"],"articleSection":["Programming"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/","url":"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/","name":"More answers: Practical advice for automation programmers - Control Engineering","isPartOf":{"@id":"https:\/\/www.controleng.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/#primaryimage"},"image":{"@id":"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.controleng.com\/wp-content\/uploads\/2025\/03\/CTL2503_WEB_WC_ProgrammingTips-Preview-Fig3-Instructors.jpg","datePublished":"2025-04-18T10:44:40+00:00","dateModified":"2025-04-24T00:38:01+00:00","description":"While Control Engineering offers an hour of webcast instruction with practical advice for automation programmers March 26, archived for a year, find more answers from the instructors here related to programming automation and programmable logic controllers (PLCs).","breadcrumb":{"@id":"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/#primaryimage","url":"https:\/\/www.controleng.com\/wp-content\/uploads\/2025\/03\/CTL2503_WEB_WC_ProgrammingTips-Preview-Fig3-Instructors.jpg","contentUrl":"https:\/\/www.controleng.com\/wp-content\/uploads\/2025\/03\/CTL2503_WEB_WC_ProgrammingTips-Preview-Fig3-Instructors.jpg","width":1229,"height":690,"caption":"Courtesy: Control Engineering webcasts"},{"@type":"BreadcrumbList","@id":"https:\/\/www.controleng.com\/more-answers-practical-advice-for-automation-programmers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.controleng.com\/"},{"@type":"ListItem","position":2,"name":"More answers: Practical advice for automation programmers"}]},{"@type":"WebSite","@id":"https:\/\/www.controleng.com\/#website","url":"https:\/\/www.controleng.com\/","name":"Control Engineering","description":"Control Engineering covers and educates about automation, control and instrumentation technologies","publisher":{"@id":"https:\/\/www.controleng.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.controleng.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.controleng.com\/#organization","name":"Control Engineering","url":"https:\/\/www.controleng.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.controleng.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.controleng.com\/wp-content\/uploads\/2024\/12\/ce_logo.png","contentUrl":"https:\/\/www.controleng.com\/wp-content\/uploads\/2024\/12\/ce_logo.png","width":300,"height":93,"caption":"Control Engineering"},"image":{"@id":"https:\/\/www.controleng.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ControlEngineeringMagazine","https:\/\/x.com\/controlengtips","https:\/\/www.linkedin.com\/company\/control-engineering-magazine\/"]},{"@type":"Person","@id":"https:\/\/www.controleng.com\/#\/schema\/person\/8d6c2e7cce864f132f3f84a92d4ede7f","name":"Mark T. Hoske","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.controleng.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3a681f733c4a125a8abde58f95c1427d9bb600dc72913799a5ca7cb4b754fc7d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3a681f733c4a125a8abde58f95c1427d9bb600dc72913799a5ca7cb4b754fc7d?s=96&d=mm&r=g","caption":"Mark T. Hoske"},"description":"Mark Hoske has been Control Engineering editor\/content manager since 1994 and in a leadership role since 1999, covering all major areas: control systems, networking and information systems, control equipment and energy, and system integration, everything that comprises or facilitates the control loop. He has been writing about technology since 1987, writing professionally since 1982, and has a Bachelor of Science in Journalism degree from UW-Madison.","url":"https:\/\/www.controleng.com\/author\/mark-t-hoske\/"}]}},"_links":{"self":[{"href":"https:\/\/www.controleng.com\/wp-json\/wp\/v2\/posts\/129788","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.controleng.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.controleng.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.controleng.com\/wp-json\/wp\/v2\/users\/56"}],"replies":[{"embeddable":true,"href":"https:\/\/www.controleng.com\/wp-json\/wp\/v2\/comments?post=129788"}],"version-history":[{"count":0,"href":"https:\/\/www.controleng.com\/wp-json\/wp\/v2\/posts\/129788\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.controleng.com\/wp-json\/wp\/v2\/media\/129613"}],"wp:attachment":[{"href":"https:\/\/www.controleng.com\/wp-json\/wp\/v2\/media?parent=129788"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.controleng.com\/wp-json\/wp\/v2\/categories?post=129788"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.controleng.com\/wp-json\/wp\/v2\/tags?post=129788"},{"taxonomy":"tracking-metric","embeddable":true,"href":"https:\/\/www.controleng.com\/wp-json\/wp\/v2\/tracking-metrics?post=129788"},{"taxonomy":"display-location","embeddable":true,"href":"https:\/\/www.controleng.com\/wp-json\/wp\/v2\/display-location?post=129788"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}