Windows下用CoDeSys 3.19.20打造你的第一个软PLC项目(附HMI界面设计)
Windows下用CoDeSys 3.19.20打造你的第一个软PLC项目附HMI界面设计如果你刚刚踏入工业自动化的世界面对琳琅满目的控制器和复杂的编程环境感到无从下手那么这篇文章就是为你准备的。我们不再需要依赖昂贵的物理PLC硬件来学习核心的自动化编程逻辑借助CoDeSys这款强大的集成开发环境在普通的Windows电脑上就能构建一个功能完整的“软PLC”系统。这就像是在你的笔记本电脑里虚拟出了一台工业控制器你可以用它来编写逻辑、调试程序甚至设计出直观的HMI人机交互界面。对于自动化工程师、电气专业的学生或是任何对工业控制感兴趣的技术爱好者来说这无疑是一条低成本、高效率的入门捷径。今天我们就以最新的CoDeSys 3.19.20版本为舞台从零开始手把手带你搭建一个包含可视化控制面板的软PLC项目全程使用ST结构化文本语言让你在实战中感受工业级编程的魅力。1. 环境准备与CoDeSys 3.19.20安装在开始任何激动人心的项目之前稳固的地基是成功的一半。对于软PLC开发而言这个“地基”就是正确安装和配置CoDeSys开发环境。CoDeSys不仅仅是一个编程软件它更是一个集成了PLC编程、运动控制、安全逻辑以及HMI设计的综合性平台。选择3.19.20这个较新的版本意味着我们能享受到更稳定的运行性能、更丰富的库支持以及更友好的用户界面。首先我们需要获取安装包。建议通过官方渠道下载以确保软件的完整性和安全性。安装过程本身并不复杂但有几个关键组件需要你特别留意CoDeSys Development System这是核心的集成开发环境我们编写ST程序、配置设备、设计界面都在这里完成。CoDeSys Control Win这是Windows系统下的软PLC运行时。你可以把它理解为一个虚拟的PLC“大脑”它会在后台执行你编写的控制逻辑。CoDeSys Gateway这是一个通信网关负责管理开发环境与多个运行时可以是本机的软PLC也可以是网络上的真实硬件PLC之间的连接。CodeMeter这是一个软件保护与许可管理系统。对于学习版或试用版它通常用于管理运行时许可确保软件在授权期内正常运行。安装时推荐选择包含所有必要组件的完整安装包。安装向导会引导你完成大部分步骤通常只需保持默认设置并点击“下一步”即可。安装完成后你可以在开始菜单或桌面上找到这些程序的快捷方式。注意首次启动CoDeSys开发环境时软件可能会提示你激活或许可证。对于学习和评估通常可以使用免费的、有时间或功能限制的运行时许可证。请务必仔细阅读安装时附带的许可协议并按照官方指引完成初步设置。安装顺利完成后建议先花几分钟熟悉一下开发环境的布局。主界面通常包含项目管理器、设备树、编辑区、工具箱和消息窗口等。一个清晰的工作区认知能让你在后续的项目创建和编程中事半功倍。2. 创建你的第一个软PLC项目框架环境就绪现在让我们正式开启项目之旅。在CoDeSys中一个项目就像是一个容器里面包含了设备配置、程序组织单元POU、可视化界面以及各种库文件。我们的目标是创建一个在Windows本地运行的软PLC项目。启动CoDeSys开发环境后点击“文件”-“新建项目”。在弹出的对话框中你需要做出几个关键选择项目类型选择“标准项目”。设备这是至关重要的一步。我们需要添加一个“软PLC”设备。在设备选择树中通常路径为CODESYS Control Win V3-PC- 选择适合你系统位数的版本例如CODESYS Control Win V3 x64。这个设备代表了我们将在Windows上运行的虚拟PLC。编程语言在创建主程序时选择ST (Structured Text)。ST语言语法类似于Pascal或C对于有编程基础的用户来说非常容易上手它也是IEC 61131-3标准中功能最强大的文本化语言之一。点击“确定”后一个基本的项目框架就生成了。你会在左侧的“设备”树下看到你刚刚添加的“PLC Logic”设备里面默认包含一个PLC_PRG程序。双击PLC_PRG右侧就会打开ST语言编辑器等待你输入第一行控制逻辑。在开始编程前我们还需要确保软PLC运行时已经准备就绪。检查系统托盘桌面右下角应该能看到CODESYS Control Win SysTray的图标。右键点击它选择“启动”让这个虚拟的PLC“大脑”开始运行。它的状态应该变为“运行”或“已激活”。这一步相当于给一台物理PLC上电。步骤操作目的与说明1新建标准项目创建项目容器2添加CODESYS Control Win V3设备指定项目运行在Windows软PLC平台上3设置主程序语言为ST确定使用结构化文本进行核心逻辑编程4启动CODESYS Control Win SysTray激活本机软PLC运行时为下载和调试程序做准备至此一个纯净的、可运行的软PLC项目骨架已经搭建完成。接下来我们将为这个骨架注入灵魂——控制逻辑。3. 使用ST语言编写核心控制逻辑ST语言是我们与软PLC“大脑”沟通的指令集。在这个项目中我们将实现一个简单的双开关控制双指示灯的逻辑。这个例子虽小却涵盖了变量声明、条件判断、布尔运算等核心概念是理解PLC编程思想的绝佳起点。在PLC_PRG的编辑器中你会看到两部分上方的变量声明区VAR...END_VAR和下方的代码实现区。我们先来定义四个布尔BOOL变量它们代表两个开关和两个灯的状态。PROGRAM PLC_PRG VAR // 输入变量通常关联外部信号如开关 bSwitch_Rotary: BOOL; // 旋转开关 bSwitch_Toggle: BOOL; // 拨码开关 // 输出变量通常控制外部设备如指示灯 bLED_Red: BOOL; // 红色指示灯 bLED_Green: BOOL; // 绿色指示灯 END_VAR变量名最好做到见名知义这里我们用前缀暗示了类型和用途。接下来在代码区编写控制逻辑。我们希望实现旋转开关控制红灯拨码开关控制绿灯。// 旋转开关控制红色指示灯 IF bSwitch_Rotary THEN bLED_Red : TRUE; ELSE bLED_Red : FALSE; END_IF // 拨码开关控制绿色指示灯 IF bSwitch_Toggle THEN bLED_Green : TRUE; ELSE bLED_Green : FALSE; END_IF这段代码非常直观IF...THEN...ELSE...END_IF是ST中的条件判断语句。当bSwitch_Rotary为真TRUE代表开关打开就将bLED_Red赋值为真灯亮否则赋值为假FALSE灯灭。另一个开关同理。编写完成后点击工具栏上的“编译”按钮或按F11。如果代码没有语法错误下方消息窗口会显示“0个错误0个警告”。编译成功意味着你的逻辑在语法上是正确的可以下载到PLC中运行了。提示在真正的工业项目中逻辑可能复杂得多。ST语言支持循环FOR,WHILE、函数调用、结构体、数组等高级特性。你可以将这段简单的IF语句看作是构建复杂自动化大厦的第一块砖。逻辑编写和编译通过只是完成了后台的工作。如何与这个“大脑”交互呢这就需要我们为它创建一个“面孔”——HMI可视化界面。4. 设计并关联动态HMI界面一个没有界面的控制系统就像没有仪表盘的汽车你无法直观地了解和控制它的状态。CoDeSys内置了强大的可视化编辑器让我们可以轻松地为软PLC项目创建HMI界面无需借助第三方工具。首先我们需要在项目中添加一个可视化文件。在“设备”树中右键点击你的PLC设备选择“添加对象”-“可视化”。给它起一个名字比如“MainHMI”。双击新创建的可视化文件编辑区会切换到一个图形化的设计界面左侧是工具箱里面包含了按钮、开关、指示灯、输入框等各种控件。我们的目标是创建两个开关和两个指示灯从工具箱的“元素”或“开关”类别中拖拽一个“旋转开关”和一个“拨码开关”到画布上。从“指示灯”类别中拖拽两个“灯”到画布上。你可以通过右侧的属性面板修改它们的外观比如将其中一个灯的“背景色”静态属性改为红色另一个改为绿色。现在静态的界面有了但它们还是“死”的无法与后台的PLC程序通信。关联变量是让界面“活”起来的关键。以旋转开关为例选中画布上的旋转开关。在右侧属性面板中找到“属性”类下的变量或Value属性。点击旁边的“...”按钮会弹出变量选择对话框。这里应该能浏览到你之前在PLC_PRG中声明的所有变量。选择bSwitch_Rotary并确认。这个操作的含义是将这个界面上的旋转开关的“值”开或关与PLC程序中的bSwitch_Rotary变量进行双向绑定。当你在界面上操作开关时变量的值会随之改变反之程序逻辑修改了变量的值界面上的开关状态也会同步更新。界面控件关联的PLC变量作用旋转开关bSwitch_Rotary用户通过界面控制旋转开关进而改变PLC内变量的值拨码开关bSwitch_Toggle用户通过界面控制拨码开关红色指示灯bLED_Red显示PLC程序中bLED_Red变量的状态亮/灭绿色指示灯bLED_Green显示PLC程序中bLED_Green变量的状态用同样的方法将拨码开关关联到bSwitch_Toggle将红色灯和绿色灯分别关联到bLED_Red和bLED_Green。关联完成后一个具备完整交互功能的HMI界面就设计好了。你可以通过工具栏的“启动可视化”按钮通常是一个播放图标来预览这个界面。5. 项目联调、运行与实战技巧所有部件都已就位是时候让整个系统动起来了。调试和运行是检验成果的关键环节也能帮你深入理解软PLC的工作流程。首先确保你的软PLC运行时CODESYS Control Win SysTray处于“运行”状态。然后在CoDeSys开发环境中你需要将项目“登录”即下载到目标设备。点击菜单栏的“在线”-“登录”。软件会扫描可用的设备。在弹出的对话框中你应该能看到一个代表本机软PLC运行时的设备可能显示为本地主机名或IP地址。选中它。点击“确定”或“登录”。首次登录时可能会提示你输入Windows当前用户的凭据进行身份验证。登录成功后设备树中PLC设备图标旁通常会有一个绿色的小箭头或“已登录”标识。登录只是建立了连接并下载了程序PLC还没有开始执行。接下来点击“在线”-“运行”让PLC进入循环扫描执行模式。此时你编写的ST逻辑代码就开始在后台周而复始地运行了。现在打开你之前设计的HMI可视化界面“MainHMI”并点击“启动可视化”。你会看到一个独立的窗口弹出上面有你放置的开关和灯。尝试用鼠标点击旋转开关或拨码开关观察两个指示灯的变化。红色灯应该紧随旋转开关绿色灯紧随拨码开关。恭喜你你的第一个完整的、带HMI的软PLC项目已经成功运行在这个过程中你可能会遇到一些小挑战。例如在首次编译或登录时CoDeSys可能会尝试从网络下载必要的库文件。如果遇到下载缓慢或失败的情况检查你的本地网络连接通常是第一步。确保开发环境能稳定访问互联网对于顺利获取组件和更新非常重要。另一个实用的技巧是使用“监视”功能。在PLC_PRG的ST编辑器里你可以右键点击变量选择“添加到监视”。监视窗口会实时显示这些变量的当前值TRUE/FALSE这对于调试复杂逻辑、观察程序流非常有用。你可以一边操作HMI界面一边在监视窗口里看到关联变量的值如何变化从而直观地理解整个数据流。当你需要修改程序或界面时记得先让PLC“停止”运行进行修改并重新编译后再“登录”和“运行”。这种“编辑-编译-下载-调试”的循环是工业自动化软件开发的标准流程。通过这个从环境搭建、逻辑编程、界面设计到最终联调的全流程实践你不仅学会了如何使用CoDeSys这个工具更重要的是你亲身体验了工业自动化软件项目从无到有的构建过程。这个简单的双开关控制项目就像一颗种子其中蕴含的项目结构、变量关联、HMI设计思想完全可以扩展应用到更复杂的场景比如电机启停控制、温度PID调节、甚至是小型产线的模拟控制。记住最复杂的系统也是由一个个简单的逻辑块组合而成的。接下来不妨尝试修改逻辑让两个开关实现“与”、“或”、“非”等组合控制或者为HMI界面添加更多的控件和动画效果在实践中不断巩固和探索。

相关新闻

PostgreSQL磁盘性能优化:effective_io_concurrency参数在不同存储环境下的实战配置指南

PostgreSQL磁盘性能优化:effective_io_concurrency参数在不同存储环境下的实战配置指南

PostgreSQL磁盘性能优化:effective_io_concurrency参数在不同存储环境下的实战配置指南 你是否曾遇到过这样的场景:数据库查询在开发环境跑得飞快,一到生产环境就变得迟缓,尤其是在处理大量数据扫描时?很多时候&#x…

2026/7/6 11:30:37 阅读更多 →
智能农业大棚自动控制避坑指南:如何用STM32实现精准环境阈值调节?

智能农业大棚自动控制避坑指南:如何用STM32实现精准环境阈值调节?

智能农业大棚自动控制避坑指南:如何用STM32实现精准环境阈值调节? 在农业自动化领域,将传感器数据转化为稳定、可靠的控制指令,从来都不是一件简单的事。许多工程师和种植者满怀热情地搭建起自己的智能大棚系统,却在调…

2026/5/17 9:02:06 阅读更多 →
Chisel硬件设计实战:从Scala代码到FPGA烧录的全流程指南

Chisel硬件设计实战:从Scala代码到FPGA烧录的全流程指南

Chisel硬件设计实战:从Scala代码到FPGA烧录的全流程指南 如果你已经用Verilog或VHDL在FPGA上实现过几个项目,可能会开始思考:有没有一种方法,能让硬件设计像写软件一样,拥有更强的抽象能力、更好的模块复用性和更可靠的…

2026/7/4 21:49:53 阅读更多 →

最新新闻

HS工具箱深度评测:一站式在线工具平台如何提升开发与办公效率

HS工具箱深度评测:一站式在线工具平台如何提升开发与办公效率

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 你是不是也遇到过这样的场景:开发时突然需要把图片转成Base64编码,临时去搜在线工具,结果要么广告…

2026/7/6 11:29:59 阅读更多 →
数字图像处理 2.6 节:图像采样量化实战,Python 实现 8-bit 灰度图转换与伪轮廓分析

数字图像处理 2.6 节:图像采样量化实战,Python 实现 8-bit 灰度图转换与伪轮廓分析

数字图像处理实战:Python实现8-bit灰度图转换与伪轮廓分析当一张风景照片在显示器上呈现出明显的阶梯状色块时,我们看到的正是数字图像处理中典型的"伪轮廓"现象。这种现象源于图像量化过程中的信息损失,而理解其背后的原理对于从事…

2026/7/6 11:27:57 阅读更多 →
STM32L152RE与TPAFE0808构建多通道信号采集系统

STM32L152RE与TPAFE0808构建多通道信号采集系统

1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是常见需求。TPAFE0808作为8通道模拟前端芯片,配合STM32L152RE低功耗MCU,能够构建高效的多通道信号控制系统。这种组合特别适合需要同时监测多个传感器…

2026/7/6 11:25:53 阅读更多 →
4万星和5.7万星的两个框架,我焊在一起后它们封神了

4万星和5.7万星的两个框架,我焊在一起后它们封神了

第一个,AI 在「要构建什么」还没想清楚的时候就开始写代码。你跟它讨论需求,聊了三轮,它突然来一句「我来帮你实现吧」,然后一顿输出,写完一看,方向跑偏了。代码能跑,但不是你想要的。删了重来&…

2026/7/6 11:25:53 阅读更多 →
Transformer 架构 6 大核心组件拆解:从位置编码到多头注意力数学推导

Transformer 架构 6 大核心组件拆解:从位置编码到多头注意力数学推导

Transformer架构6大核心组件深度解析:从数学原理到工程实现引言:重新定义序列建模的里程碑2017年,一篇名为《Attention Is All You Need》的论文彻底改变了自然语言处理领域的游戏规则。Transformer架构的提出不仅终结了RNN/CNN在序列建模中的…

2026/7/6 11:25:53 阅读更多 →
如何用Squirrel-RIFE轻松实现专业级视频补帧:从入门到精通的完整指南

如何用Squirrel-RIFE轻松实现专业级视频补帧:从入门到精通的完整指南

如何用Squirrel-RIFE轻松实现专业级视频补帧:从入门到精通的完整指南 【免费下载链接】Squirrel-RIFE 效果更好的补帧软件,显存占用更小,是DAIN速度的10-25倍,包含抽帧处理,去除动漫卡顿感 项目地址: https://gitcod…

2026/7/6 11:23:51 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻