
简介CODESYS 2.3.9.47 是较早期的 PLC 编程工具支持梯形图、指令表、功能块图、结构化文本和顺序功能图等多种语言适用于嵌入式控制系统和软 PLC 解决方案。对于仍需维护旧设备或兼容遗留系统的工程师来说这个版本具有不可替代的实用性。压缩包内共收录三百四十八个文件以库文件、说明文档、动态库和可执行程序为主体同时包含驱动配置、位图等辅助资源整体大小约二百八十三兆可满足离线安装、查阅参考与组件补全等多种需要。已有五百五十七人学习下载是网上少见的宝藏资源。包内还提供安装引导脚本与配置入口方便在旧版 Windows 系统或虚拟机环境中完成部署帮助自动化维护、工控改造及教学场景下的用户快速找回可用环境省去在官网与镜像站之间反复搜寻的麻烦。这一老版本在官方渠道已难获取此压缩包等于留存了一份难得的历史副本。1. CODESYS 2.3.9.47 为什么到现在还有人找老版本不是古董是生产线的后悔药这两年只要有人在工控群里喊一声“谁有 CODESYS 2.3.9.47 老版”下面一定跟一排“1”。这不是怀旧是生产线上真实存在的硬需求一批还在服役的工控机、国产 PLC 和运动控制器出厂时用的是 CODESYS 2.3.9.47 这套 IDE 和运行时原厂光盘丢了工程源码拷在 U 盘里却打不开新买的 3.5 又完全不是一套语法。CODESYS 2.3.9.47 属于 2.3.x 分支后期维护版专门给老设备打补丁、兼容旧功能块工业现场换不得版本。这篇就是写给设备维护和系统集成工程师的实操笔记讲清楚去哪找资源、怎么装、怎么避坑让老设备继续干活。2. 老版 CODESYS 2.3.9.47 到底藏在哪里下载渠道、文件识别与校验2.1 官方渠道萎缩后老版本的真实流向CODESYS 官方现在主推 3.5历史下载页面换过好几轮2.3.9.47 这类版本要么被挪进归档区要么干脆下架。早年安装包里自带的在线更新通道现在也连不上老服务器指望官方给回链不现实。我一般先去几个工控论坛的“软件交流”版块搜完整版本号再就是 CSDN 下载区、百度网盘分享、工控 QQ 群群文件。这些渠道的资料有个规律越晚出现的资源越可能是别人从老电脑里扒出来重新打包的文件被加了说明、压了第二遍所以在点下载之前先把资源描述里的文件清单看清楚。另一个容易被忽略的渠道是 OEM 厂家的售后页面。不少国产 PLC 本身就基于 CODESYS 内核开发汇川的部分 PLC 走的也是 CODESYS 这条路。厂家官网的下载中心可能还挂着定制版 IDE安装后显示的具体版本号未必是 2.3.9.47但核心 IDE 是同一个 2.3.x 分支可以用来应急。注意定制版通常绑定了厂家自己的运行时和库文件拿到别的 PLC 上不一定通用这需要实际装一次才知道。老版本资源流通本来就是这么个路子渠道杂不代表不能用关键是装之前先识别清楚你拿到的是什么东西。2.2 下载前先认清这几个文件形态安装包、虚拟机镜像与授权文件网上流传的 2.3.9.47 资源常见是三种形态。第一种是完整安装包一个 Setup.exe 加上一堆 .cab、.dll、.sys装完就是完整 IDE这是最省事的形态。第二种是虚拟机镜像有人把装好的 Windows XP 加 CODESYS 2.3.9.47 整体打包成 VMware 镜像适合只想在隔离环境里打开旧工程、不想碰实体机的情况缺点是镜像文件大而且虚拟机里的授权可能已经绑定了原虚拟硬件转移后要重新激活。第三种是绿色免安装版解压就能开看着方便但运行时和驱动往往不全通常只能打开工程不能下载到 PLC连在线仿真都费劲。下载时先看压缩包内文件别看见文件名带 CODESYS 就急着解压。授权文件是另一个要单独对待的东西。2.3.x 的授权方式和 3.5 完全不一样常见的是 .lic、.dng 这类软授权文件或者加密狗驱动。软授权文件一般绑定硬件特征拷贝到另一台电脑基本失效加密狗则要装对应驱动常见的是老式并口狗和 USB 狗两代。下载资源里如果附带授权文件或驱动包先单独存好不要和工程文件混在一起更不要因为压缩包名字带“授权”就随手删掉。2.3 找到压缩包后先做完整性与安全性校验老版本资源在网盘里传了很多手最怕下到一半损坏或者被杀毒软件报毒。我拿到任何老版本安装包的第一件事是校验哈希不是直接双击。Windows 7 以上系统都能用 PowerShell 做这件事# 计算压缩包 SHA256和发布者给出的哈希值比对 Get-FileHash -Algorithm SHA256 D:\downloads\CODESYS_2.3.9.47.zip # 很多老资源只给了 MD5用同样方式算一遍 Get-FileHash -Algorithm MD5 D:\downloads\CODESYS_2.3.9.47.zip哈希一致只能说明文件在传输过程中没损坏不能证明它干净。老工控软件容易被杀毒软件误报因为会注册驱动、改注册表这和破解无关。所以第二步是在解压前先用 WinRAR 的“测试压缩文件”功能跑一遍完整校验确认压缩包结构没坏。解压时不要让路径带中文和空格CODESYS 2.3 的安装程序对路径比较敏感我一般直接解到 D:\CODESYS_SETUP 这类纯英文目录下。如果下载页面没有提供任何参考哈希就换一个资源重新下不要赌人品。老版本安装包一旦解压出来缺文件装到一半报错排查成本比重新下载高得多。校验完发现杀毒软件隔离了文件也别慌先看隔离区里的文件名如果是 .dll 或 .sys通常是驱动组件可以在安装前临时关闭实时防护装完再打开具体后面会讲。3. 把 CODESYS 2.3.9.47 装回 Windows系统兼容、安装顺序与最小可运行配置3.1 系统兼容性XP/Win7/Win10 分别能装到什么程度CODESYS 2.3.9.47 设计年代对应的系统是 Windows XP、Vista 和 Win7 的 32 位版本所以兼容性最好的是“32 位 Windows 7”驱动、加密狗、运行时全套都能正常装。Win7 64 位上装 32 位 IDE 多数时候也能跑但老版本 USB 加密狗驱动往往只有 32 位版本插上狗会识别不到。Win10 不是不能装我实测过 2.3.9.47 在 Win10 LTSC 上能启动 IDE但需要额外处理驱动签名和兼容模式而且一旦系统更新推送了新的内核补丁老驱动可能再次失效。这里有个常见误区把 64 位系统当成“肯定不行”直接放弃。实际上很多维护项目就一台 Win10 电脑这时候优先方案不是硬装而是装 VMware 虚拟机在虚拟机里放一个 Win7 32 位环境把 2.3.9.47 装进虚拟机。这样处理有三个好处老驱动不跟物理机打架多个版本可以并存万一装坏了直接还原快照不用重做整个系统。代价是 PLC 通讯要用虚拟机的网卡桥接配置时多花一点时间。3.2 安装顺序比版本号更挑人先装驱动、再装运行时、最后装 IDE很多人装 CODESYS 2.3.9.47习惯性双击 Setup.exe 一路下一步结果装完打开工程就报“运行时未找到”。这通常不是安装包的问题而是安装顺序错了。2.3 架构里 IDE 和运行时是分开的IDE 启动时会去找已经注册好的运行时组件运行时没装IDE 就找不到目标设备。我一般按这个顺序装先装加密狗驱动如果有再装 CODESYS Control Win 运行时然后装 IDE最后装网关组件。运行时负责把工控机变成一台软 PLCIDE 只是编程工具。先装 IDE 后装运行时注册表里会缺少关键的服务注册信息后面要么手动补要么重装一遍。装完后可以用下面这条命令组检查运行时和网关服务是否真的起来了echo off rem 查看与 CODESYS 相关的进程 tasklist | findstr /i codesys rem 查询 2.3 的软 PLC 服务状态 sc query CODESYSControlWinV23如果服务显示 RUNNING说明运行时正常如果显示 STOPPED 或找不到指定的服务名说明安装阶段出了问题。注意不同厂家定制版运行时服务名可能不同比如汇川定制的可能叫 InoProShop 相关服务查询时用 services.msc 手动搜一下更稳妥。安装时还有一件事比顺序更容易翻车杀毒软件。2.3.9.47 里的驱动和授权组件很容易被杀毒软件当成可疑文件隔离尤其是 360 和 Windows Defender。我习惯在安装期间临时关闭实时防护装完后再打开并把 CODESYS 安装目录加入信任列表。这一步很重要否则装完能用重启之后运行时被隔离设备又连不上了。3.3 首次打开工程前必须做的三件事第一次启动 CODESYS 2.3.9.47我不建议急着打开旧工程而是先做三件事激活授权、配置网关、检查软 PLC 版本。激活授权是老版本绕不开的一步。2.3.x 的软授权通常需要在“License Manager”里导入授权文件或者连接加密狗。如果没有授权IDE 能打开但下载程序到 PLC 时可能被拒绝。授权文件绑定硬件激活前先确认当前电脑的 MAC 地址、硬盘序列号和授权文件要求的一致否则激活失败。配置网关是另一个常用步骤。2.3 的在线通讯依赖 CODESYS Gateway 服务IDE 通过网关访问 PLC网关地址填错在线列表里就看不到设备。打开 Online Communication Parameters确认网关地址是本机 IP 或者实际网段地址不要留默认的 localhost否则跨网段会连不上。第三件事是检查目标运行时版本。在“目标设置”里能看到当前可用的 PLC 运行时版本2.3.9.47 的 IDE 能连接同系列 2.3.x 的运行时但如果 PLC 里刷的是 OEM 厂家修改过的运行时版本号后面会带厂家标识。这一步看起来不起眼却决定了后面能不能下程序值得花一分钟看清楚。4. 老版本连接 PLC 的硬骨头网口 MAC 地址读取、Modbus RTU 与 SoftMotion 授权4.1 读取 PLC 网口 MAC 地址老版本里藏着的命令与套路现场要重装系统、重新激活授权、做 IP 规划时经常需要拿到 PLC 网口对应的 MAC 地址。最直接的办法是看设备外壳标签但很多设备装在柜子里标签被贴纸盖住或者设备已经换过壳。用 CODESYS 2.3.9.47 在线扫描时如果 PLC 和电脑直连可以用系统自带的 ARP 命令快速拿到 MAC 地址rem 假设 PLC 的 IP 是 192.168.0.10先 ping 通触发 ARP 缓存记录 ping 192.168.0.10 -n 1 nul rem 再从本机 ARP 表里查该 IP 对应的 MAC arp -a 192.168.0.10这个做法的前提是 PLC 能响应 ping。很多 PLC 默认不响应 ICMP但 CODESYS 网关在建立连接时也会发广播包只要 IDE 在线窗口扫到过设备ARP 表里通常会留下记录。如果 ping 不通可以先打开 CODESYS 的在线扫描扫完立刻执行 arp 命令。这里有一个细节ARP 记录有超时时间扫描后要快点执行嫌手慢可以把命令写成一个批处理用循环扫描整个网段echo off rem 循环 ping 网段内 1-254然后打印全部 ARP 表 for /L %%i in (1,1,254) do ping 192.168.0.%%i -n 1 -w 100 nul arp -a扫描网段时 -w 100 是等待 100 毫秒对同一网段足够如果 PLC 和电脑不在同一网段ARP 表里只能看到网关 MAC查不到远端设备。所以在做 MAC 读取前先确认 IP 规划在同一个二层网络内。有些 CODESYS 2.3.9.47 的在线对话框里也能看设备信息位置在 Online Communication Parameters选择 TCP/IP 通道后点击 Scan设备列表中除 IP 外还可能显示设备名和 MAC。但老版本在不同厂家定制版里显示信息差异很大汇川的某些定制版就把 MAC 放在了“设备信息”页面里。直接看 ARP 表是最通用的办法拿不到 MAC 的时候再翻设备手册。4.2 Modbus RTU 从站配置在 2.3.x 里怎么调CODESYS 2.3.9.47 的库管理和 3.5 差异很大。3.5 新建工程会自动带一堆基础库2.3 则要手动添加。要做 Modbus RTU第一步是打开库管理器添加“ModbusCom”或“ModbusRTU”相关库。不同版本库名略有差别如果搜不到可以搜“ModbusMaster”或“ModbusSlave”库文件一般在安装目录的 Library 文件夹下以 .lib 结尾。添加库后写代码调用功能块之前先要在工程里配置好串口参数。2.3 的 Modbus 功能块会把串口号、波特率这些直接放在功能块引脚上和 3.5 的“Modbus 设备配置树”是两套思路。常用参数如下表参数常见设置注意点COM 口1-4与硬件实际串口对应虚拟串口要映射波特率9600/19200/38400从站一致否则无响应数据位8Modbus RTU 固定 8 位停止位1 或 2多数从站用 1校验无/偶校验偶校验最常见设错会报 CRC 错配置完成后在 ST 里调用主站功能块的典型写法如下(* Modbus RTU 主站读保持寄存器 *) fbModbusMaster( xEnable : bTrigger, (* 上升沿触发一次请求 *) comPort : 1, slaveAddr : 1, functionCode : 3, startAddr : 0, quantity : 10, pDataAddr : ADR(aiReadData) );这里 functionCode 填 3 表示读保持寄存器quantity 表示连续读多少个寄存器读到的数据会放到 aiReadData 数组里。老版本功能块引脚名在不同库版本里拼写可能不一样比如 comPort 也可能写成 iComPort编译报错时双击错误信息定位到对应库文件看引脚定义再改。Modbus RTU 的踩坑点大多在串口参数不一致上先用串口调试助手确认从站能通讯再连 PLC能省一半排查时间。4.3 SoftMotion Light 与六轴机器人老版本能不能干这活CODESYS 2.3.9.47 能不能控制六轴机器人能但限制很多。和 3.5 的 SoftMotion 相比2.3 的 SoftMotion 库是独立安装的常见有两个版本完整版和 SoftMotion Light。SoftMotion Light 是精简版支持基本的单轴运动、电子齿轮和凸轮完整版才支持多轴插补和轴组。要控制六轴机器人单纯加 SoftMotion Light 不够必须用完整版并额外添加 CNC 和 Robotics 相关库。很多人误以为“SoftMotion Light 添加成功后就能做六轴”结果插补功能块全是灰色其实就是库级别不够。添加方式倒不复杂库管理器里添加“SoftMotionLight”或“SoftMotion”库然后在设备树里插入“SoftMotion 驱动器”。如果库管理器里搜不到去安装目录的 Library 文件夹下一个一个翻文件名带 SoftMotion 的都要看。添加后调用 MC_Power 使能轴的写法如下(* SoftMotion 轴使能Axis 参数指向工程里配置的轴 *) MC_Power( Enable : TRUE, (* 允许控制 *) bRegulatorOn : TRUE, (* 使能驱动器 *) bDriveStart : TRUE, (* 启动驱动 *) Axis : ADR(axisMain), Status : stsAxis, bRegulatorRealState bRealRegState );老版本 SoftMotion 的引脚和 3.5 有差异比如轴参数在 3.5 里直接填轴名2.3 里可能需要 ADR() 取地址编译报错时优先查库版本自带示例工程。六轴控制还需要额外配置轴组、运动学模型和工具坐标这已经超出 IDE 本身的范畴和具体机械结构强相关。我的建议是先确认 PLC 运行库和 SoftMotion 授权够不够再看厂家有没有提供对应轴组库没有现成库的话用老版本从零写六轴运动学风险很大。5. CODESYS 2.3.9.47 避坑手册五个让你翻车的经典现场5.1 现象安装后打不开 IDE报“运行时未找到”好几个人都遇到过安装包是从老电脑里拷出来的安装过程一路绿灯但打开工程时提示找不到运行时组件在线设备列表也是空的。原因是 2.3 的 IDE 和运行时是分离的安装顺序不对或者杀毒软件把运行时组件隔离了导致 IDE 启动时注册表里查不到运行时服务。解决分两步。先检查“控制面板 程序和功能”里有没有“CODESYS Control Win”这一项没有就单独安装运行时组件有的话再用 services.msc 查服务状态确认没有停止。如果服务被禁用改成自动启动并手动启动一次。杀毒软件隔离的话去隔离区恢复相关文件并把 CODESYS 安装目录加入信任列表然后再重新启动 IDE。这个坑重装一次就能避开前提是安装顺序确实按“运行时优先、IDE 在后”来。5.2 现象下载程序到 PLC 时提示“设备无响应”工程能打开在线扫描也能看到设备但一点“下载”就报设备无响应。最常见的原因有三个网关地址不对、PLC 运行状态处于 STOP 且被锁定、防火墙拦截了网关端口。先确认 PLC 上的运行开关没有在“调试/锁定”档位再检查 IDE 的 Communication Parameters 里网关地址是否和 PLC 在同一网段。处理办法先用 ping 验证网络连通再关掉 Windows 防火墙或者放行 CODESYS 相关程序。老版本 CODESYS 网关默认走 UDP 广播跨网段扫描经常看不到设备所以直连时要把电脑 IP 手动设成和 PLC 同网段比如 PLC 是 192.168.0.10电脑就设 192.168.0.5。设备和电脑中间接了工业交换机的话检查交换机是否禁用了广播帧有些安全配置会过滤 UDP 广播这属于比较隐蔽的翻车点。5.3 现象SoftMotion 功能块全是灰色的在工程里添加了 SoftMotion 库但功能块拖进程序后颜色发灰编译也提示没有对应实现。这通常是两个原因叠加一是库不对添加的是 SoftMotion Light 而不是完整版二是没有添加对应的轴配置SoftMotion 功能块必须绑定到具体轴没有轴实体功能块就是无效的。解决方法是先到设备树里添加轴。2.3 版本的路径一般是 SoftMotion 设备下加“Axis”对象设置驱动类型、每圈脉冲数、单位换算系数等。配置完轴后功能块引脚才能正常关联。如果确认轴也加了还是灰色大概率是库版本冲突删掉当前的 SoftMotion 库从原始安装包的 Library 目录里重新手动添加一次比在 IDE 里点更新靠谱。5.4 现象Win7 上能装Win10 上装完一启动就崩这是一个非常典型的血泪经验同一份 2.3.9.47 安装包Win7 32 位装完一切正常Win10 上装完启动 IDE弹个错就崩溃。原因不在 IDE 本身而在老版本使用的驱动和加密组件不兼容新系统尤其是 USB 加密狗驱动Win10 的驱动签名机制会把未签名的老驱动直接挡掉。解决有三个方案。第一个是右键 IDE 快捷方式用“兼容性疑难解答”跑一遍选 Windows 7 模式并勾选“以管理员身份运行”。第二个是 Win10 开机时禁用驱动强制签名高级启动选项里选择“禁用驱动程序强制签名”装完驱动后再正常启动。这个方案能解决安装但每次大版本更新可能恢复默认只能算临时方案。第三个是上虚拟机把 2.3.9.47 装进 Win7 虚拟机里物理机只做通讯中转这是我一贯推荐的长期方案能一劳永逸避开系统补丁带来的兼容性变故。5.5 现象旧工程打开后指令丢失库文件版本对不上打开一个 2016 年的老工程程序里大段代码还在但某些功能块显示为黄色问号编译报“未知功能块”或“库文件未找到”。这是因为工程文件里记录了引用的库名称和版本号而本地安装的库版本比工程要求的新或旧版本不匹配IDE 就不认。解决步骤是先看工程“库管理器”里标红的库记下需要的库名和版本再到安装目录的 Library 文件夹下找对应 .lib 文件如果版本不同手动添加替代通常向上兼容可以把新版本库用于旧工程但反过来不行。修改后重新编译观察错误数量是否下降。如果还有黄色问号就用文本编辑器打开 .pro 工程文件查 Library 段里的版本号和实际库文件对比。老版本库文件不像 3.5 那样有完善的自动补齐机制人工对照是最后的后悔药。6. 老版本的价值验证用最小工程确认这套环境能接活6.1 用 2.3.9.47 跑通一个从官方例程到实物的最小闭环装好环境不等于环境能用。我会用一个最小工程做验证新建一个标准工程目标设备选 CODESYS Control Win V2.3写一段最简单的自锁逻辑下载到本机软 PLC在线强制变量确认输出翻转。PROGRAM MAIN VAR bStart : BOOL; (* 启动按钮 *) bStop : BOOL; (* 停止按钮 *) bRun : BOOL; (* 运行输出 *) END_VAR (* 按钮松开后输出保持验证 PLC 下载和在线修改功能 *) bRun : (bRun OR bStart) AND NOT bStop;这段逻辑的目的不是解决实际问题而是确认最基础的三件事工程能编译、能下载、在线监控能改值。如果这一段都跑不通先不要接现场设备。我在新环境装完 2.3.9.47 后的第一个动作就是跑这个最小循环五秒钟能排除八成环境问题。6.2 工程文件版本、库版本与运行时的对应关系怎么查验证完最小工程建议顺手维护一张版本对照表。用文本编辑器打开 .pro 工程文件里面能看到工程格式版本、使用的库版本和编译器信息。把现场每台设备的 PLC 型号、运行时版本、IDE 版本、工程文件版本记录下来下次换电脑时照着这张表找资源比临时翻论坛快得多。就我自己这些年接触 CODESYS 2.3.9.47 的经验来说老版本资源确实越来越难找但真正困住项目的往往不是版本号本身而是没有一套可以复用的备份习惯。我现在每维护一个老设备都会把安装包、授权文件、工程文件、版本对照表打包存一份标注设备编号和最后修改日期。这些文件放在本地比临时到处找资源可靠得多。希望这篇关于下载老版 CODESYS、装环境、连 PLC 的实操记录能帮到你少走我当年走过的弯路。本文还有配套的精品资源点击获取