2. 开发环境搭建

Codesys 作为 IEC 61131-3 标准下的主流工业控制开发平台,其开发环境的搭建质量直接决定了后续项目开发的效率与稳定性。本章将围绕 Codesys 的版本选型、安装流程、许可证配置、仿真器使用以及真实 PLC 连接准备五个核心环节展开,帮助学习者建立一套完整、可复用的环境搭建方法论。需要特别强调的是,环境搭建并非简单的“下一步”点击操作,而是涉及运行时版本匹配、授权机制理解、通信协议选型等关键技术决策的系统工程。

Codesys 开发环境搭建链路图 ① 版本选择 V3.5 SP19+ / 4.x 32/64位匹配 ② 安装部署 开发环境 + 运行时 设备描述文件导入 ③ 许可证配置 SoftPLC / 硬件狗 激活与备份策略 ④ 仿真器(虚拟PLC) Codesys Control Win V3 逻辑验证 / 无硬件调试 通信:TCP/IP 本地回环 ⑤ 真实PLC连接 以太网 / USB / 串口 网关配置 + 设备扫描 IP地址与子网掩码匹配 关键决策点与风险控制 运行时版本匹配 IDE版本 ≥ 运行时版本 否则无法下载/在线监控 许可证激活方式 软授权绑定硬件指纹 硬授权需插入USB狗 网关与通信配置 网关端口 1217 默认 防火墙需放行相关端口

2.1 Codesys 版本选择与安装准备

核心原理:版本矩阵与兼容性

Codesys 目前主流分为 V2.3 和 V3.5 两大系列,其中 V3.5 是当前工业界应用最广泛的版本,支持 IEC 61131-3 全部五种编程语言(LD、FBD、ST、IL、SFC)以及连续功能图(CFC)。V3.5 内部又分为多个 SP(Service Pack)版本,例如 SP17、SP18、SP19 等。版本选择的核心原则是:IDE(集成开发环境)版本必须不低于目标设备(PLC 或软 PLC)的运行时(Runtime)版本。如果 IDE 版本低于运行时版本,则无法完成工程下载和在线调试;反之,高版本 IDE 可以兼容低版本运行时,但部分新功能将不可用。

另一个关键维度是操作系统位数。Codesys V3.5 从 SP17 开始提供 64 位安装包,但 32 位版本仍然被广泛支持。选择依据是:如果开发机内存大于 4GB 且需要处理大型工程(如包含大量可视化界面或复杂运动控制),建议使用 64 位版本;如果开发机配置较低或需要兼容旧版第三方库,则 32 位版本更稳妥。此外,Codesys 还提供独立的网关(Gateway)安装包,用于开发环境与 PLC 之间的通信桥接,安装时建议一并勾选。

操作流程:从下载到安装完成

  1. 获取安装包:访问 Codesys 官网(www.codesys.com)下载中心,选择对应版本的安装包。注意区分“Full Installation”(完整安装)和“Update”(增量更新)。完整安装包含 IDE、网关、仿真器及常用库文件。
  2. 关闭杀毒软件:安装过程中,部分杀毒软件会误报 Codesys 的驱动文件或授权组件,建议在安装期间暂时关闭实时防护。
  3. 执行安装:以管理员身份运行安装程序,选择安装路径(建议默认路径,避免中文目录导致库文件路径解析异常)。在组件选择界面,务必勾选“Codesys Gateway”和“Codesys Control Win V3”(仿真器)。
  4. 导入设备描述文件:安装完成后,打开 Codesys,通过菜单“工具 → 设备仓库 → 安装”导入 PLC 厂商提供的设备描述文件(.devdesc.xml 或 .package)。这一步是连接真实 PLC 的前提。
  5. 验证安装:新建一个空白工程,在设备树中添加“Codesys Control Win V3”,若能正常启动仿真,则安装成功。
经验提示:建议保留安装包的原始版本号信息。例如,在工程文件根目录下创建一个“环境说明.txt”文件,记录 IDE 版本、SP 版本、运行时版本、网关版本以及操作系统信息。当项目后期需要迁移或多人协作时,这份记录能大幅减少环境不一致导致的排障时间。

案例拆解:版本不匹配导致的下载失败

某设备制造商使用第三方厂商的 Codesys 控制器(运行时版本为 V3.5 SP18),但开发人员在自己的电脑上安装了最新的 SP19 版本 IDE。在工程开发阶段,一切正常;但当尝试将程序下载到控制器时,系统提示“设备版本高于工程版本,请升级工程或降低设备版本”。实际上,该提示的含义是 IDE 版本高于运行时版本,但 Codesys 的版本检查机制较为严格,部分 SP 版本之间存在协议差异。解决方法是:在工程属性中将目标运行时版本手动调整为 SP18,或者安装与控制器匹配的 SP18 IDE。此案例说明,版本选择不能盲目追求最新,而应以目标设备的运行时版本为基准。

常见误区与总结

  • 误区一:认为 Codesys 版本越高越好。实际上,高版本 IDE 可能引入新的库依赖,导致旧工程无法编译。
  • 误区二:忽略网关的安装。网关是 IDE 与 PLC 之间的通信桥梁,缺少网关将无法扫描到任何设备。
  • 误区三:在安装路径中使用中文或空格。这可能导致某些第三方库的路径解析失败。

2.2 许可证配置:软授权与硬授权

核心原理:授权机制与绑定方式

Codesys 的许可证分为两类:开发许可证(IDE License)和运行时许可证(Runtime License)。开发许可证用于激活 IDE 的完整功能(如编译优化、可视化编辑器等),而运行时许可证用于在 PLC 或软 PLC 上运行控制程序。对于使用 Codesys 开发自有产品的设备制造商,通常需要购买运行时许可证并嵌入到最终产品中。

运行时许可证的激活方式主要有两种:软授权(Soft Container)和硬授权(USB Dongle)。软授权将许可证文件绑定到设备的硬件指纹(如 CPU 序列号、MAC 地址),适合批量部署;硬授权则通过 USB 加密狗实现,适合单台设备或需要频繁更换主机的场景。此外,Codesys 还提供 30 天试用许可证,用于功能评估和前期开发。

操作流程:激活与备份

  1. 申请试用许可证:在 Codesys 菜单“帮助 → 许可证管理器”中,选择“获取试用许可证”,输入设备 ID(Device ID)后,系统会生成一个 .lic 文件。
  2. 导入许可证:在许可证管理器中点击“安装许可证”,选择 .lic 文件完成导入。导入后,许可证状态应显示为“有效”。
  3. 备份许可证:对于软授权,建议在激活后立即备份许可证文件,并记录设备 ID。当设备硬件更换时,需要重新申请许可证。
  4. 硬授权配置:插入 USB 加密狗后,在许可证管理器中点击“扫描”,系统会自动识别加密狗中的许可证信息。
风险提示:软授权与硬件指纹绑定,如果设备主板损坏且无法恢复,许可证将无法迁移。因此,对于生产设备,建议使用硬授权方式,或将软授权许可证与设备 ID 信息一同存档,以便向厂商申请重新激活。

实战场景:批量部署中的许可证管理

某自动化设备公司每年出货 500 台基于 Codesys 的控制器。他们采用软授权方式,在产线上建立了一个“许可证烧录工位”。具体流程是:每台控制器在出厂前,先通过专用工具读取设备 ID,然后从许可证管理服务器上生成对应的 .lic 文件,最后通过 U 盘或网络将许可证文件导入控制器。这一流程的关键在于:许可证管理服务器必须与产线网络隔离,防止许可证文件泄露。同时,他们建立了设备 ID 与产品序列号的映射表,当客户返修时,可以快速定位许可证状态。

常见误区与总结

  • 误区一:将试用许可证用于生产环境。试用许可证通常有 30 天有效期,到期后控制器将停止运行。
  • 误区二:忽略许可证的“剩余次数”限制。部分许可证允许绑定多台设备,但次数有限,超限后将无法继续激活。
  • 误区三:在虚拟机中激活软授权。虚拟机的硬件指纹不稳定,可能导致许可证失效。

2.3 仿真器配置与逻辑验证

核心原理:仿真器的工作机制

Codesys Control Win V3 是运行在 Windows 上的软 PLC 运行时,它模拟了真实 PLC 的指令执行环境,支持循环扫描、任务调度、通信服务等功能。仿真器与 IDE 通过 TCP/IP 协议进行通信,默认端口为 1217。仿真器的最大价值在于:在没有硬件的情况下,完成控制逻辑的初步验证和调试,从而缩短开发周期、降低硬件损耗。

仿真器与真实 PLC 在行为上存在细微差异:仿真器的扫描周期通常比真实 PLC 更短(因为 CPU 性能更强),且不涉及 I/O 映射的物理延迟。因此,仿真通过并不代表程序在真实设备上一定运行正常,特别是涉及高速计数、脉冲输出或总线通信时,仍需在真实 PLC 上进行最终验证。

操作流程:启动仿真与在线调试

  1. 添加仿真设备:在设备树中右键点击“Application”,选择“添加设备”,在设备列表中选择“Codesys Control Win V3”。
  2. 启动仿真:点击工具栏中的“登录”按钮(或按 F8),Codesys 会自动启动仿真运行时并建立连接。首次启动时,系统会提示选择仿真器的运行模式(正常模式或调试模式)。
  3. 下载程序:登录成功后,点击“下载”按钮(或按 F11),将编译后的程序下载到仿真器中。
  4. 运行与监控:点击“运行”按钮(或按 F5),程序开始执行。此时可以在编程视图中实时监控变量值,也可以通过“监视”窗口添加需要观察的变量。
实用技巧:仿真器支持“断点调试”功能。在 ST 编辑器或 CFC 编辑器中,点击行号左侧的灰色区域即可设置断点。当程序运行到断点处时,会暂停执行,此时可以查看变量值、单步执行或修改变量。这一功能在排查复杂逻辑时非常高效。

案例拆解:使用仿真器验证 PID 控制逻辑

某工程师需要编写一个温度 PID 控制程序,但现场 PLC 尚未到货。他利用仿真器搭建了完整的测试环境:在仿真器中创建了一个模拟温度对象(通过一个定时递增的变量模拟温度上升),并编写了 PID 控制算法。通过在线监控,他发现 PID 输出存在明显的振荡现象。进一步分析后,他调整了 PID 参数(增大微分时间、减小比例增益),并在仿真器中反复测试,最终获得了满意的控制曲线。这一过程完全在仿真器中完成,没有占用任何硬件资源。该案例表明,仿真器不仅是学习工具,更是算法验证和参数整定的有效平台。

常见误区与总结

  • 误区一:认为仿真器可以完全替代真实 PLC 测试。仿真器无法模拟 I/O 接线错误、信号干扰、总线超时等硬件相关问题。
  • 误区二:忽略仿真器的扫描周期设置。如果程序依赖定时器或延时逻辑,仿真器的快速扫描可能导致时序与真实设备不一致。
  • 误区三:在仿真器中测试通信协议(如 Modbus TCP)。仿真器虽然支持通信,但无法模拟真实从站的响应延迟和异常帧。

2.4 真实 PLC 连接准备与网关配置

核心原理:通信链路与网关角色

Codesys 采用“IDE → 网关 → PLC”的三层通信架构。网关(Gateway)是一个独立的 Windows 服务,负责管理 IDE 与 PLC 之间的通信路由。网关支持多种通信协议,包括 TCP/IP、USB、串口(RS-232/485)等。对于以太网连接的 PLC,网关通过 IP 地址和端口号(默认 1217)与 PLC 建立连接。理解这一架构对于排查通信故障至关重要:如果 IDE 无法连接 PLC,问题可能出在 IDE 与网关之间,也可能出在网关与 PLC 之间。

在连接真实 PLC 之前,需要确认以下信息:PLC 的 IP 地址、子网掩码、网关地址(PLC 的默认网关,不是 Codesys 网关)、PLC 的运行时版本、通信协议(如 Ethernet/IP、Modbus TCP 或 Codesys 原生协议)。此外,还需要确保开发机的 IP 地址与 PLC 在同一子网内,或者通过路由器进行路由。

操作流程:从扫描到在线连接

  1. 配置网络参数:将开发机的 IP 地址设置为与 PLC 同一网段。例如,PLC 的 IP 为 192.168.1.10,则开发机可设置为 192.168.1.100,子网掩码均为 255.255.255.0。
  2. 启动网关:在 Windows 服务中确认“Codesys Gateway”服务已启动。如果未启动,可在“服务”管理器中手动启动,并设置为“自动启动”。
  3. 扫描设备:在 Codesys 中点击“扫描设备”按钮,系统会通过网关广播扫描同一网段内的所有 Codesys 设备。扫描结果会显示设备名称、IP 地址和运行时版本。
  4. 添加设备:在扫描结果中选择目标 PLC,点击“确定”后,Codesys 会自动创建对应的设备节点。
  5. 登录与下载:点击“登录”按钮,输入 PLC 的访问凭据(如果有设置),即可建立在线连接。首次连接时,Codesys 可能会提示“设备与工程版本不匹配”,此时需要根据提示调整工程版本或更新设备描述文件。
风险提示:在连接真实 PLC 之前,务必确认 PLC 中是否有正在运行的生产程序。如果直接下载新程序,会覆盖原有程序并导致设备停机。建议在下载前先执行“上传”操作,备份 PLC 中的现有程序。

实战场景:跨网段连接与防火墙配置

某工厂的 PLC 位于 192.168.10.x 网段,而开发机位于 192.168.20.x 网段,中间通过三层交换机路由。工程师在 Codesys 中扫描设备时,无法发现 PLC。排查过程如下:首先,在开发机上使用 ping 命令测试与 PLC 的连通性,发现可以 ping 通,说明网络路由正常。其次,检查 Codesys 网关的日志,发现网关在广播扫描时,广播包被三层交换机隔离(广播包不会跨网段转发)。解决方法是:在 Codesys 中手动添加设备,直接输入 PLC 的 IP 地址,而不是依赖扫描功能。此外,还需要在 Windows 防火墙中放行 Codesys 网关的通信端口(TCP 1217 和 UDP 1217)。这一案例说明,跨网段连接时,手动指定 IP 地址比扫描更可靠。

常见误区与总结

  • 误区一:忽略 Windows 防火墙的拦截。Codesys 网关安装后,防火墙可能默认阻止其通信,需要在防火墙设置中手动放行。
  • 误区二:使用无线网络连接 PLC。无线网络的延迟和丢包可能导致在线监控时变量刷新缓慢,甚至引发通信超时。
  • 误区三:不检查 PLC 的运行时版本。如果 PLC 的运行时版本过低,可能不支持 IDE 中的某些新功能(如可视化、运动控制),导致编译错误。

2.5 环境验证与工程备份策略

核心原理:环境验证的完整性

环境搭建完成后,需要进行一次全面的验证,确保所有组件协同工作。验证内容包括:IDE 能否正常编译、仿真器能否启动、网关能否扫描到设备、PLC 能否建立在线连接、许可证是否有效。建议建立一个“最小验证工程”,包含一个简单的启停逻辑(如一个按钮控制一个输出),并分别在仿真器和真实 PLC 上运行,以确认环境无异常。

操作流程:验证清单

验证项 操作步骤 预期结果 异常处理
IDE 编译 新建工程,编写简单 ST 代码,点击“生成” 编译通过,无错误提示 检查库文件引用,确认库版本兼容
仿真器启动 添加 Codesys Control Win V3,点击“登录” 仿真器启动,登录成功 检查网关服务是否运行,重启仿真器
许可证状态 打开许可证管理器,查看状态 显示“有效”,剩余天数充足 重新导入许可证,或联系厂商
真实 PLC 连接 扫描设备,手动添加 PLC,点击“登录” 在线连接成功,可监控变量 检查 IP 配置、防火墙、运行时版本

工程备份策略

环境搭建完成后,建议对以下内容进行备份:工程文件(.project)、库文件(.library)、设备描述文件、许可证文件以及网关配置文件。备份频率建议为:每次完成阶段性开发后,将工程文件打包并附带版本说明。对于团队协作,可以使用 Git 进行版本管理,但需要注意 Codesys 工程文件是二进制格式,Git 的合并功能有限,建议采用“一人一分支”的策略。

复盘总结:环境搭建是 Codesys 开发的基础,其核心要点可以概括为“三个匹配”:IDE 版本与运行时版本匹配、许可证与设备硬件匹配、网络配置与通信协议匹配。掌握这三个匹配原则,可以解决 90% 以上的环境类问题。建议学习者在完成本章内容后,按照 2.5 节的验证清单,完整地执行一遍环境验证流程,并记录每一步的结果,形成自己的环境搭建手册。