<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>电控 on My Blog</title><link>https://blog.youtao.website/categories/%E7%94%B5%E6%8E%A7/</link><description>Recent content in 电控 on My Blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 10 Jul 2026 07:06:07 +0000</lastBuildDate><atom:link href="https://blog.youtao.website/categories/%E7%94%B5%E6%8E%A7/index.xml" rel="self" type="application/rss+xml"/><item><title>使用Logadd2在codesys中打印日志</title><link>https://blog.youtao.website/posts/2026-07-10-logadd2tutorial/</link><pubDate>Fri, 10 Jul 2026 07:06:07 +0000</pubDate><guid>https://blog.youtao.website/posts/2026-07-10-logadd2tutorial/</guid><description>&lt;h1 id="如何在codesys中记录日志">如何在codesys中记录日志&lt;/h1>
&lt;blockquote>
&lt;p>前提：确保在Library Manager中已经添加了&lt;strong>CmpLog&lt;/strong>和&lt;strong>Component Manager&lt;/strong>这两个系统库。&lt;br>
在 CODESYS 中，你需要先创建一个功能块（Function Block），然后再在这个功能块下右键添加对应的方法（Method）。&lt;/p>&lt;/blockquote>
&lt;h2 id="一为了可以在主程序中可以调用不必每次写完整的方法我将完整的-fb_systemlogger-拆分为主功能块和方法两部分">&lt;code>一、为了可以在主程序中可以调用，不必每次写完整的方法，我将完整的 FB_SystemLogger 拆分为主功能块和方法两部分。&lt;/code>&lt;/h2>
&lt;h3 id="1-主功能块fb_systemlogger">1. 主功能块：FB_SystemLogger&lt;/h3>
&lt;p>在工程左侧的 POUs 树中，右键添加一个 POU，类型选择 Function Block，语言选择 ST，命名为 &lt;code>FB_SystemLogger&lt;/code>。&lt;/p>
&lt;h4 id="变量声明区-declaration">变量声明区 (Declaration)&lt;/h4>
&lt;pre tabindex="0">&lt;code class="language-Structured" data-lang="Structured">FUNCTION_BLOCK FB_SystemLogger
VAR_INPUT
// 允许外部传入自定义的组件名称，默认值为 &amp;#39;DefaultApp&amp;#39;
sComponentName : STRING(80) := &amp;#39;DefaultApp&amp;#39;;
END_VAR
VAR
udiCmpId : UDINT;
bInit : BOOL := FALSE;
END_VAR
&lt;/code>&lt;/pre>&lt;h4 id="代码实现区-implementation">代码实现区 (Implementation)&lt;/h4>
&lt;p>这里负责在功能块第一次被调用时，向系统注册组件名称并获取 ID。&lt;/p>
&lt;pre tabindex="0">&lt;code class="language-Structured" data-lang="Structured">// 初始化：注册自定义组件名称（每个实例只执行一次）
IF NOT bInit THEN
Component_Manager.CMAddComponent2(sComponentName, 16#00000001, ADR(udiCmpId), 0);
bInit := TRUE;
END_IF
&lt;/code>&lt;/pre>&lt;h3 id="2方法一loginfo-记录常规信息">2.方法一：&lt;code>LogInfo&lt;/code> (记录常规信息)&lt;/h3>
&lt;p>右键点击你刚建好的 &lt;code>FB_SystemLogger&lt;/code>，选择 Add Object -&amp;gt; Method，命名为 &lt;code>LogInfo&lt;/code>，返回类型写 BOOL。&lt;/p></description></item></channel></rss>