IEC 应用程序中的奇怪行为
要求
你正在使用一个 CODESYS 运行时间。
故障排除
如果你观察到奇怪的行为,那么你应该检查运行时记录器是否提供了有价值的提示或信息。这个 CODESYS 运行时记录器有一种按类别过滤消息的机制。这个 调试 默认情况下,类别未启用。启用此类别可查找异常行为或意外症状的原因。
有全局和特定组件的日志过滤器。您可以在运行时日志文件中查看所有可能的特定组件过滤器的详细列表。按如下所述使用过滤器。
与之相关的症状 | 可能的基于组件的日志过滤器 |
---|---|
许可 |
|
IEC 任务/时机(更高级别) |
|
IEC 任务/时机(低级) |
|
IEC 应用程序(通用) |
|
IEC 应用程序(存储器) |
|
套接字通信 |
|
以太网通信 |
|
文件/文件夹 |
|
提示
不要同时启用所有调试类别,因为这会使发现实际问题变得困难。逐步进行并禁用 “无关紧要” 的过滤器,以更好地了解问题
打开你的 CODESYS 投影并将其连接到控制器。
双击设备树中的控制器,打开 PLC 外壳。
输入 “?“在 shell 中查看所有可能的命令。
使用
logsetfilter
,loggetfilter
,以及logdelfilter
写入、读取和删除过滤器的命令。您可以对整个运行时使用全局调试过滤器,也可以对特定组件使用过滤器。要全局读取当前日志类别,请执行以下操作:
loggetfilter
可能会返回以下输出:Logger.0.Filter : 0x0000000F
要全局设置当前日志类别,请执行以下操作:
logsetfilter 0xffffffff
读取特定组件的当前日志类别(例如,
CmpCodeMeter
):loggetfilter CmpCodeMeter
要为特定组件(例如 CmpCodeMeter)设置当前日志类别,请执行以下操作:
logsetfilter CmpCodeMeter 0xffffffff
示例:通过 SSH 连接和文本编辑器
通过部署工具停止运行时间。
连接到您的目标系统(例如,通过
putty
或其他 SSH 客户端)。使用文本编辑器打开运行时环境的用户特定配置文件(例如,
nano
):sudo nano /etc/codesyscontrol/CODESYSControl_User.cfg
找到
CmpLog
分区并设置过滤器。例 1. 设置全局过滤器示例:
Logger.0.Filter=0xFFFFFFFFFF
启用所有调试消息例 2. 设置特定组件的过滤器[CmpLog] CmpCodeMeter.Filter=0xFFFFFFFF SysTask.Filter=0xFFFFFFFF
保存并关闭该文件。
使用部署工具重新启动运行时。