干工控这行,绕不开CODESYS。无论是做上位机还是下位机,你迟早要跟这套基于IEC 61131-3的编程体系打交道。但说句实话,CODESYS的安装环节劝退了很多人——不是软件本身有多难装,而是官方文档藏得深、组件又多,新手根本分不清该下哪个、装哪个、配哪个。我自己带过不少新人,几乎每次都要花半小时帮他们理清下载和安装的脉络。这篇就把整个流程掰开揉碎讲清楚,从官网注册、版本挑选、组件安装,到第一次建项目连上软PLC,再到常见的报错和排查思路,全都过一遍。不管你是刚入行的电气工程师、自动化专业的学生,还是半路转过来搞调试的,照着做都能顺利跑起来。
1. 装CODESYS之前,先把这三个关键决定做好
1.1 搞清楚自己要装的是开发环境还是运行时
CODESYS这个词实际涵盖了两套完全不同的东西。一套是跑在你电脑上的开发环境(CODESYS Development System),它负责编写PLC程序、编译、仿真和调试,你可以理解成Office里的Word,只负责写文档。另一套是跑在目标控制器里的运行时环境(Runtime),它才是真正按照IEC 61131-3逻辑去循环执行指令的地方,相当于打印机里的固件。你在Word里写的文档不能直接变成纸上的字,中间要经过打印驱动,而CODESYS里的Gateway Server网关就扮演了这个驱动角色。
搞不清这两者的区别,是很多人下载时一头雾水的根源。如果你只是想在个人电脑上学习编程、做逻辑验证,那么装开发环境和网关就够了——网关主要是做通信转发,让开发环境能找到并连接运行时。如果你想把Windows电脑当成一台软PLC来用,让程序真正跑起来、控制IO或跟外部设备通信,那就还得安装一个名为CODESYS Control Win的运行时组件。如果你手头有树莓派、工控一体机或者第三方设备,还要去官网下载对应平台的运行时包,比如CODESYS Control for Raspberry Pi,然后单独部署到设备上。
还有一个特别常见的场景:现场用的国产PLC,比如汇川的AM系列,它们的内核就是CODESYS,厂家通常会把开发环境改个名、套个壳再发布,比如InoProShop。这种情况下你不需要再去官网装一套标准CODESYS,直接用厂家那个定制版就行,但安装逻辑跟标准版完全一样,这篇教程里的思路照样适用。
1.2 版本选型的判断标准
CODESYS版本号规则其实有规律可循。主版本是V3.5,后面跟着Service Pack(SP)编号,再细一点还有Patch,比如V3.5 SP20 Patch 4,含义就是V3.5大版本、第20个服务包、第四次修复。每发一个SP,通常会引入新库、新设备描述和新功能特性,而Patch只是在当前SP上修bug。
选版本的核心原则不是越新越好。我的建议很直接:
| 使用场景 | 推荐版本 |
|---|---|
| 初学者自己练习 | 最新稳定SP,如V3.5 SP20 |
| 公司已有存量项目 | 与存量项目保持一致 |
| 需要连接第三方设备或库 | 根据库和设备的支持列表选SP |
| 现场维护老旧设备 | 保留旧版本环境,不要急着升级 |
为什么这么说?因为CODESYS有个让人头疼的兼容性问题:高版本能打开低版本项目,但低版本打不开高版本项目;反过来,如果你用高版本保存了工程,同事的低版本环境直接就打不开了。所以如果是要协作的项目,先问清楚对方用什么SP版本,或者大家约定一个统一版本。另外,最新的SP刚发布时,部分第三方库还没适配,比如某些数据库访问类库,编译时可能报错,这时候还不如老老实实用上一版。
还有个容易被忽略的点:官网同时提供了历史版本下载,下载页面的Release Notes里写得很清楚,每个SP从哪个版本起支持某个库、某个设备。遇到"新版本连不上老设备"这类问题,别急着折腾设备,先翻一下版本记录,很可能就是SP版本不满足要求。
1.3 系统环境速查
安装CODESYS开发系统前,建议先检查一遍系统环境。官方最低要求是64位Windows 10或Windows 11,内存至少8GB,但是说句实话,大项目打开时内存占用轻松超过8GB,16GB才比较从容。磁盘空间至少留出10GB,因为CODESYS装完本体不算太大,但库文件和项目缓存会随着使用越占越多。
两个前置条件容易被忽略。一是.NET Framework 4.6.2及以上版本,老系统比如Windows 7必须单独补装,Windows 10/11一般自带,但某些精简版系统会把它裁掉,导致安装器跑不起来。二是安装时必须以管理员身份运行安装包,否则写Windows服务和驱动那一步很可能静默失败。
另外,如果电脑上装过旧版CODESYS,建议先卸载干净再装新版,特别是不同SP版本之间切换时,残留的系统服务可能会造成冲突。项目路径和安装路径也尽量别用中文,虽然新版对中文路径的容忍度好了不少,但某些库和编译插件的底子还是老的,中文目录偶尔会闹脾气。
2. 官网下载这关:账号、版本、组件清单一起看清楚
2.1 注册账号时容易卡住的细节
CODESYS官网不支持匿名下载,所有安装包都要求先注册登录。访问官网后,右上角找到MyCODESYS或者Register入口,填邮箱、姓名、公司、国家等基本信息,国家选项里选China即可,密码一般要求至少8位且包含数字和字母。
注册提交后会收到一封激活邮件,这一步劝退率极高。实测下来,企业邮箱、126、163全都出现过把确认邮件扔进垃圾箱的情况,所以邮件没到别急着重新注册,先去垃圾箱翻一下。如果用的是公司邮箱,还可能存在邮件网关直接拦截海外邮件的问题,我遇到最夸张的情况是隔了三天才收到激活链接。建议用个人常用邮箱注册,激活后基本就能登录了。
注册类型那里,选Software Developer还是End User都可以,对下载安装包没实质影响,不用纠结。
2.2 找到真正的下载入口
登录官网后,下载入口通常藏在Support(支持)菜单下的Download(下载)页面,或者在页面底部的一些子栏目里。第一次找的人很容易迷路,我直接说关键路径:登录后进入Support → Download → CODESYS V3.5,按版本分类展开,找到CODESYS Development System对应的下载条目。有些版本会在下载前让你勾选接受许可协议,勾选后才能看到下载按钮。
下载的文件通常是一个几百MB的exe安装器,文件名带有版本号,比如CODESYS_V35_SP20_Patch_x64.exe。这里要注意区分32位和64位安装包,现在绝大多数新电脑都是64位,选x64版本即可。下完之后核对一下文件名里的版本号,别跟旧版本搞混。
2.3 组件清单:不是每个都非装不可
运行安装包后,安装过程会进入组件选择界面。新手我建议直接选完整安装(Complete),省心,一次把所有常用模块装齐。但完整安装不代表所有组件都无脑勾选,很多人看到一堆勾选框就发怵,这里把主要组件的用途说清楚。
Development System是核心中的核心,必装。CODESYS Control Win是Windows软PLC运行时,如果你想让电脑当PLC用,装它。CODESYS Gateway Server是通信网关,必装,没有它开发环境就找不到连接目标。Visu通常是可视化界面的运行环境,做触摸屏界面或者HMI时会用到。SoftMotion CNC和Vision是运动控制和视觉模块,只有做运动控制或机器视觉项目才需要,完整安装时勾上也不会出问题,只是增加一点占用空间。
如果你明确了不做运动控制和视觉,可以关掉这两个模块,启动速度会快一些。不过对新手来说,第一次装推荐全勾,反正后面还能改。
3. 安装全程拆解:从杀毒拦截处理到开发环境首次启动
3.1 安装前的三个动作:杀软、旧版、第三方驱动
装到一半报错、安装器执行完没反应、服务起不来,九成以上是因为漏掉了三个准备工作。
第一,临时关闭杀毒软件和系统加固工具。Windows自带的Defender一般还好,但360、腾讯管家这类第三方安全软件对CODESYS安装时的"写服务""注入DLL"动作极其敏感,有时候不是真的病毒,就是拦截了。我的习惯是安装前把实时防护和主动防御都临时关掉,装完再打开,问题少很多。
第二,把电脑上已有的旧版CODESYS组件清理干净。这里有个卸载顺序问题:先卸载运行时(Control Win),再卸载开发系统,最后卸载网关。全部卸载后去C:\Program Files\CODESYS和C:\ProgramData\CODESYS目录检查一下,有残留文件夹就手动删掉,避免新版本安装时覆盖文件产生冲突。
第三,如果同时装了其他基于CODESYS内核的编程软件(比如InoProShop),建议先退出,避免安装器写入服务时互相打架。
3.2 安装类型和目录选择的坑
双击安装包后,第一个界面通常会让你选择安装类型,常见选项包括Default(默认)、Minimal(最小)和Custom(自定义)。新手选Default就好,它会按刚才说的完整组件方式安装;Minimal只装最核心的开发系统,适合磁盘紧张的情况;Custom给老手按需挑拣。
安装路径我建议保持默认的C:\Program Files\CODESYS。不要在路径里加中文,也不建议塞到ArcGIS、Perforce这种带特殊字符的路径里,否则某些插件或库在后续编译时解析路径会出怪问题。整个安装过程在固态硬盘上大约5到10分钟,机械硬盘可能拉到20分钟,耐心等进度条走完,别中途手动取消。
安装快结束时如果弹出Windows安全提示,要求安装设备驱动或修改系统服务,点允许,这一步跳过会导致后续设备扫描不到。
3.3 首次启动前先确认系统服务状态
安装完成后会提示重启,建议老老实实重启一次。重启后别急着双击桌面图标,先做一件事:按Win+R输入services.msc打开服务管理器,列表里找到CODESYS Gateway Service和CODESYS Control Win Service(如果装了运行时的话),确认它们的状态是"正在运行",启动类型是"自动"。
这一步是很多人跳过的关键检查。有时候安装器报了成功,但服务注册失败,导致后续网关一直连不上。如果服务状态是停止,右键手动启动,启动时报错的话,去事件查看器(eventvwr)里看Windows日志,一般能找到具体原因,后面第5章详细说。
3.4 第一次打开开发环境时的正常现象
桌面会出现两个主要图标:CODESYS(开发环境)和CODESYS Gateway(网关配置工具)。首次启动开发环境时,它会初始化本地库索引,进度条要跑一阵,这个时间取决于硬盘速度,属正常现象,别以为死机了。
如果期间Windows SmartScreen弹出提示,说程序来自不明发布者,点"更多信息"→"仍要运行"即可。首次启动之后可能会弹出激活引导窗口,不用管,点稍后或者跳过。能正常看到主界面,安装就算成功一大半了。
4. 首次配置的完整链路:网关、运行时、许可证一个都不能乱
4.1 网关连接状态确认
打开CODESYS开发环境后,界面下方或左侧有"网关"面板。双击其中的"默认网关"(Default Gateway),正常情况下状态会变成绿色箭头。如果显示红叉,先检查服务管理器里网关服务是否在运行,再检查端口是否被占用。
CODESYS网关默认监听TCP 11740端口。你可以用命令查一下端口情况:
netstat -ano | findstr 11740如果看到大量TIME_WAIT或者端口被其他进程占用,说明有冲突。最直接的排查办法是把占用进程找出来,结束掉或者换电脑里的其他端口。不过一般来说,服务重启一次就能恢复。
4.2 创建第一个项目并绑定软PLC
开发环境能正常运行后,我建议立刻新建一个项目跑通在线流程,别等到实际项目再说。操作很简单:菜单栏选"文件"→"新建项目",选择"标准项目",项目名和路径用英文,比如D:\CODESYS_Projects\Test。
接下来会弹出一个对话框,要求选择设备(Device)。装过Control Win的话,在设备列表里找到"CODESYS Control Win V3 x64"这一项。选不上的话,多半是运行时组件没装或者版本不匹配,回头检查第3章的组件安装。下面还有一个"标准PLC"语言栏,按你的习惯选结构化文本(ST)或者梯形图(LD),新手学逻辑的话我推荐ST,文本方式复用性更强。
确认后,项目树就建好了。这时候设备节点上可能显示一个小问号或感叹号,右键设备,选择"更新设备",让开发环境重新识别一下运行时的驱动。接着在设备树下找到"PLC设置",确认PLC名称默认即可,这一步不会出问题。
4.3 登录软PLC:第一次在线调试体验
双击设备节点进入编辑界面,然后点工具栏上的"在线"→"登录"图标,或者按快捷键。第一次登录时不光会报许可问题(下一节说),而且如果你还没做任何程序,登录后界面是空的,正常。
写入一个最简单的程序来验证链路是通的:在程序组织单元(POU)里写一句VAR_OUTPUT out: BOOL; END_VAR,再写out := NOT out;,编译下载,就能看到变量在线变化了。如果这一条链路走通,说明开发环境、网关、运行时三者协作正常。
4.4 许可证:演示模式的2小时限制
没有获取正式授权时,CODESYS Control Win会以演示模式运行。演示模式有大约2小时的持续运行时间限制,时间到后软PLC会拒绝继续运行。很多人头一次遇到直接懵了,以为软件坏了。
解决思路有三条。一是购买正式授权,在菜单"工具"→"许可证管理"(License Manager)里导入授权文件,或者插入USB加密狗(Dongle),导入后即可解除限制。软授权一般绑定网卡MAC地址或硬盘序列号,换硬件后需要重新申请。二是如果只是学习测试,演示模式到期后可以断开连接、重新登录项目,重新获得一段演示时间,但总的演示项目数有限制,一直白嫖不是长久之计。三是检查系统时间,如果Windows时间跟真实时间偏差大,授权校验会直接报错,先对时再谈授权。
4.5 界面语言和显示优化
CODESYS默认是英文界面。想切换中文的话,在菜单"Help"→"Preferences"→"Language"下拉框里选择简体中文,有些版本需要先安装中文语言包才能切换。语言包从官网下载后安装,然后重启开发环境生效。
但我的建议是,如果你后续要查报错、搜社区、用官方帮助文档,最好还是保持英文界面。因为所有报错信息、帮助主题、库文件说明都是以英文为准,中文界面对不上号,出了问题搜都搜不到。
5. 下载、安装、配置阶段的高频报错与排查思路
5.1 安装包被杀软拦截,或者安装到一半报错
现象:安装进度条卡住,弹出"拒绝访问"、找不到指定文件之类的错误,甚至安装包文件本身刚下载完就被安全软件删掉。
排查链路:先看杀毒软件的隔离区,恢复被误删的安装文件,把CODESYS相关目录加入白名单;然后用管理员身份重新运行安装包;如果装到一半失败,打开事件查看器(eventvwr → Windows日志 → 应用程序),把时间点附近的错误条目截图或抄下来,搜索错误码,定位具体是哪个组件写入失败。大部分情况都指向服务注册失败或者DLL写入被拦截,处理方式是关杀软、清理残留、重装。
5.2 网关红叉、设备扫描不到
这是新装环境最经典的问题。排查顺序很重要:
- 服务管理器里确认CODESYS Gateway Service在运行;
- 确认Windows防火墙放行了网关通信——安装时弹出防火墙提示一定要点"允许访问",没点的话去防火墙高级设置里手动添加规则;
- 用netstat确认11740端口没被占用;
- 确认本机连接的是默认网关,不是远程网关地址。
如果是放在虚拟机里跑CODESYS,网关连不上的概率更大,虚拟机网络建议选桥接模式,NAT模式下宿主机和虚拟机之间的局域网发现经常出问题。
5.3 卸载不干净导致重装失败
表现:卸载旧版后装新版,安装到一半提示文件已存在、服务注册失败,或者装好后一打开就闪退。
根因:前一版CODESYS的组件没有按顺序卸载,残留的服务、注册表项和目录文件跟新版打架。
处理办法:先卸载运行时、再卸载开发环境、最后卸载网关;手动删除C:\Program Files\CODESYS、C:\ProgramData\CODESYS、C:\Users\Public\Documents\CODESYS等残留目录;用注册表编辑器(regedit)搜索"Codesys",把相关剩余项删掉,操作前务必备份注册表。这一套做完再重装,基本都能恢复。
5.4 下载了别人的项目却打不开,或提示缺少库
项目打不开大概率是版本问题:对方用V3.5 SP20保存的项目,你本地是SP19,自然打不开。解决办法是升级到不低于对方SP的版本;反过来,如果你用的是高版本,项目打开了,但保存后对方低版本又打不开了,所以跨版本协作要格外注意。
另一类是提示缺少库文件。CODESYS里的库扩展名是.library,双击即可安装到本地库目录。项目缺库时,打开"库管理器"看红色感叹号的那几个库,从官网或同事那里找到对应.library安装,然后重新编译。这里提醒一句:第三方库(比如MySQL数据库访问库、开源通信库)在网上流传版本很杂,一定要核对库说明里标注的CODESYS SP版本范围,装错版本可能直接导致编译无法通过。
5.5 连PLC时授权报错、登录失败
现象:点了登录按钮,进度条转几秒后弹出"激活失败""许可证无效""连接超时"等提示。
排查思路:先确认系统时间与真实时间一致;然后确认你的开发环境版本与运行时支持的版本匹配,CODESYS Control Win装的是SP20,开发环境SP19去连有时会报版本不兼容;再看网关节点是否绿色,红叉就回到5.2的流程;最后看许可证管理器里当前授权状态,如果显示演示模式已耗尽,那就按4.4节的方式换正式授权或者新建项目重试。
6. 装完之后的下一步:通信对接、库封装与日常习惯
6.1 让上位机读变量:Modbus TCP、OPC UA和符号配置
安装配置完成只是起点,实际项目里CODESYS更多是作为下位机存在,上位机软件(组态、数据记录终端等)需要周期读取PLC变量。最常见的两种方式,一种是通过Modbus TCP把变量映射到保持寄存器,另一种是通过OPC UA对外暴露变量节点。
Modbus TCP需要在库管理器里添加Modbus相关库文件,然后在设备树中挂一个Modbus TCP从站设备,在变量表里分配对应寄存器地址,编译下载后,上位机就能通过IP和端口读到数据。这里有个容易漏的细节:代码里勾选"通过符号配置访问变量"之后,如果没在符号配置节点里勾选相应的可见性选项,外部工具是读不到你的变量的。很多第三方数据记录软件连不上CODESYS,就要优先检查这里。
6.2 把自己写的逻辑封装成库文件
项目跑多了,你会发现很多功能块是通用的,比如电机启停、报警复位、PID控制。把这些通用逻辑封装成库,以后新项目直接引用,能省不少事。
操作路径:在项目树里右键要导出的功能块或POU,勾选"包含在库中"属性,然后菜单栏找到"保存库"相关入口,生成一个.library文件。下次新项目打开库管理器,点击安装库,选择这个文件即可。有一点要注意:库文件一旦生成就带有当前CODESYS版本的印记,库版本太老可能在新版环境里无法正确编译,遇到这种情况,用新版环境打开库源项目重新编译生成一次就好。
6.3 装完后的必做配置清单(个人经验)
项目装得多了,我给自己总结了一套"装机三分钟"清单,每次给客户装完CODESYS都会快速过一遍:
一是把CODESYS Gateway Service的启动类型改成自动,避免设备重启后网关服务不随系统启,导致远程连接掉线;二是把正式授权文件放在一个固定且好找的目录,并检查许可证管理器的自动激活设置,免得换项目时反复手动激活;三是锁定开发环境和硬件设备的版本组合,不要频繁升级SP,除非有明确的功能需求,升级前先备份全部工程;四是定期把项目归档为.project文件并额外存一份XML格式,既方便版本管理,也能在多人协作时快速对比差异。
这些都是日常维护里最能兜底的细节,前期做一遍,后面少踩无数坑。CODESYS这套生态环境足够庞杂,但底层逻辑通了,从安装到配置跑通一次,后面换设备、加库、通信对接都是顺手的事。