拓冰建站拓冰建站
首页 / 资讯中心 / 正文

IoComp 4.04 SP2在Delphi 10.2 Tokyo下的安装配置与实战指南

简介面向Rad Studio 10.2.3 Tokyo开发者的IoComp 4.04 SP2控件库资源包专为Delphi与CBuilder用户设计提供从基础界面元素到网络通信、数据处理、图形加密等丰富组件可显著减少重复编码适用于桌面与跨平台应用开发。压缩包共768个文件以pas源码、dcu编译单元、dfm窗体定义及bmp位图资源为主辅以dll动态库、ocx控件和xml配置文件约8.02MB目录结构清晰便于按需引用。已有310人学习下载。该版本为Service Pack 2针对Tokyo做了兼容优化与稳定性修复包内组件覆盖工业仪表、传送带等可视化控件适合构建专业级人机交互界面。通过这套控件开发者能快速搭建网络应用、数据绑定与图形化展示模块获得更流畅的10.2.3环境集成体验。 做了多年 Delphi 项目工业上位机这块绕不开的一个控件包就是 IoComp尤其是针对 RAD Studio 10.2 Tokyo 这个版本很多老项目到现在还在用它。前阵子刚在一台新电脑上从零装了一遍 IoComp 4.04 SP2 for 10.2 Tokyo中间踩了几个坑也把安装流程重新梳理了一遍。这篇文章就是把我这次安装、配置、实际写代码的过程完整记录下来包括一些组件面板找不到、编译报错、高DPI显示等问题的处理办法给还在用 Delphi 10.2 和 IoComp 的朋友做个参考。1. 装这套控件之前先把版本和授权搞清楚1.1 IoComp 4.04 SP2 这个版本号意味着什么IoComp 这套控件包的历史相当长从早期的 Delphi 5/6 时代就有很多人用后来版本一路更新到 4.x。4.04 SP2 for 10.2 Tokyo 对应的就是支持 Embarcadero RAD Studio 10.2 的专用版本。这里要注意IoComp 4.x 的安装包通常会按支持的 IDE 版本分开打包比如 for 10.1 Berlin、for 10.2 Tokyo、for 10.3 Rio版本号对不上轻则编译不过重则 IDE 直接报错崩溃。SP2 是 Service Pack 2 的意思也就是 4.04 的第二个维护补丁级别。实际使用中 SP2 解决了一些运行时包兼容问题特别是 Win64 平台下的编译问题所以能找 SP2 就不要用初版 4.04。1.2 为什么到现在还有人坚持 10.2 Tokyo 搭配 4.04 SP2说实话IoComp 的收费授权不便宜而且它的授权机制是绑定开发机换机器或者升级 IDE 版本往往需要重新激活很多公司不愿意在控件上反复花钱。另外10.2 Tokyo 支持 Windows 7 到 Win10 的老平台对工控现场的老系统兼容性好。还有一点IoComp 4.04 SP2 在 10.2 下编译出来的运行时包非常稳定实际项目跑了几年都没崩过没必要单纯为了版本新去折腾。1.3 安装包目录结构与授权文件解压安装包之后通常会有这几个关键目录Source全部 .pas 源码IoComp 是带源码授权的Lib编译好的 .dcu 文件packages各个 IDE 版本对应的 .dpk 工程文件Redistributable运行时用的 .bpl 文件授权文件一般是iocomp.lic或者*.slip放在安装根目录或者C:\Program Files\IoComp下。安装完成后如果提示“License not found”八成是授权文件没被正确识别这个后面排查部分细说。2. 安装全流程从解压到组件出现在面板上2.1 安装前必须做的三件事第一关掉正在运行的 RAD Studio 10.2不然 .bpl 文件被 IDE 进程占用安装会失败或者提示文件锁定。第二以管理员身份运行安装程序IoComp 的安装器要往Program Files和注册表写东西权限不够会遇到各种诡异错误。第三暂时退出杀毒软件IoComp 的授权校验机制偶尔被误报虽然一般没事但没必要冒险。2.2 选择编译器版本Win32 还是 Win64安装过程中会让你选择支持的目标平台建议 Win32 和 Win64 都勾上虽然大部分工控程序还在用 32 位编译但保不齐哪个项目要出 64 位版本。我当时图省事只装了 Win32结果后来接手一个需要 64 位编译的项目又得重新装一遍。装完后 IDE 的组件面板里会增加一组IOComp标签页里面有几十个控件从工业仪表、实时曲线到开关按钮都有。2.3 在 IDE 中手动注册组件包如果安装程序没有自动注册或者换了 IDE 版本后组件丢了需要手动注册打开 RAD Studio 10.2菜单Component - Install Packages点击Add找到packages目录下编译好的 .bpl 文件比如dclIOComp.bpl确认后组件面板就会出现 IOComp 页这一步的关键是要选对 .bpl 文件。如果你用了多个 Delphi 版本packages目录下会有dclIOComp_1020.bpl这种带版本后缀的文件名10.2 Tokyo 对应的是带_1020的版本选错了 IDE 会提示“Package ... was compiled with a different version”。2.4 项目引用路径设置组件注册好之后新建一个项目往窗体上拖控件时 Delphi 会自动把设计时包加进去但运行时包的引用需要确认。打开Project - Options - Packages看Runtime Packages里是否勾选了iocomp相关项。如果不勾选编译出来的 EXE 会很大因为所有控件代码都静态链接进去了如果勾选EXE 变小但发布时要把对应的 .bpl 一起带上。我的建议是开发调试时勾选运行时包编译发布版时取消勾选做静态链接这样目标机器上不需要装 .bpl 也能跑省去很多部署麻烦。3. 核心控件选型这套控件包里到底有哪些好东西3.1 工业仪表类控件iGauge、iMeter、iLEDiGauge 是圆形仪表盘模拟指针式的显示可以自定义量程、指针颜色、表盘背景工业上位机里最常见的压力、温度、液位显示基本都是用它。iMeter 更偏垂直柱状条适合做液位、百分比这类线性指标。iLED 是 LED 数码管效果能显示数字和部分字符看起来很“工控”。实际使用中我的经验是iGauge 的属性层级较深很多新手容易在Pointer、Scale这些子对象里找不到设置项。多看它的对象树结构所有子属性都挂在组件下面展开就看到了。3.2 实时曲线和图表类iPlot、iXYPlotiPlot 是滚动曲线适合做实时趋势图比如温度随时间变化的曲线。它内部维护一个数据缓存区数据点到达一定数量后自动滚动。iXYPlot 做 X-Y 曲线更合适适合分析两个变量之间的关系。曲线类控件的性能优化是个要点不要每来一个数据就刷新整个控件可以设置刷新频率或者批量填充数据。比如采集 100 个点后一次性写入CPU 占用能降好几个百分点。3.3 开关、指示灯、旋钮类控件iSwitch 是拨动开关iButton 是按钮iLamp 是圆形指示灯iKnob 是旋钮这些控件做操作界面时非常方便自带了接近真实工业设备的 3D 外观。我通常用 iLamp 做设备运行状态指示用 iSwitch 做启停控制配合一个定时器去读取 PLC 数据整体界面做出来效果很像组态软件但完全是自己代码控制的。3.4 辅助工具类控件iTimer 和 iGraph 工具iTimer 是高精度定时器控件虽然 Delphi 自带的 TTimer 够用但 iTimer 在性能和精度上更好适合做要求严格的采集循环。iGraph 是一个轻量级的图像处理工具可以绘图、缩放、截图适合做一些不太复杂的图像显示需求。4. 实操案例一个真实的上位机仪表盘页面4.1 界面布局设计这个案例模拟的是某设备的运行监控页面包含一个温度仪表、一个液位柱状条、一路实时温度曲线以及一个运行/停止开关。页面布局直接使用普通 TPanel 划分区域在对应面板上放置 IoComp 控件。温度仪表: iGauge1 液位柱状: iMeter1 实时曲线: iPlot1 运行开关: iSwitch1 状态指示: iLamp1关键属性设置iGauge1 的量程范围设为 0~150单位℃iMeter1 的范围 0~100iPlot1 的缓存点数设为 5000横轴显示时间iSwitch1 初始状态设为 Off4.2 数据更新逻辑用 iTimer1 作为核心定时器Interval 设置为 500也就是 500ms 采集一次数据并刷新界面。模拟数据用 Random 函数生成即可真实项目中这里替换成串口或网络读取 PLC 数据的代码。procedure TForm1.iTimer1Timer(Sender: TObject); begin // 模拟采集数据 TempValue : 80 Random(40); // 温度值 80~120 LevelValue : Random(100); // 液位值 0~100 // 更新仪表显示 iGauge1.Position : TempValue; iMeter1.Position : LevelValue; // 曲线添加新数据点 iPlot1.AddXY(Now, TempValue); // 根据开关状态点亮指示灯 iLamp1.Active : iSwitch1.Active; end;这段代码没什么难度核心是把数据写入控件属性IoComp 会自动刷新绘制。4.3 曲线控件的高级用法清空数据和导出运行一段时间后如果要清空曲线重新开始调用iPlot1.Clear;这个操作非常高频特别是做历史数据分析的时候。曲线数据和图像还支持导出比如把曲线图片保存为 BMP 文件iPlot1.SaveToFile(trend.bmp);这在写实验报告或者设备运行日志时很有用很多客户会要求把趋势图存档。5. 常见问题速查与避坑记录5.1 安装后组件面板找不到 IOComp 页这个问题出现频率极高基本都是因为运行时包没有正确注册。排查步骤打开Component - Install Packages看列表里有没有IOComp相关项如果没有就手动 Add确认 Add 的是正确版本的 .bpl注意文件名后缀要和 IDE 版本匹配如果 .bpl 存在但安装报错多半是 VC 运行库缺失或者 Windows 版本兼容问题用管理员权限重装一遍。5.2 编译报错 Cannot find unit IOProcs这个错误我见得最多。IoComp 的很多控件依赖一个公共单元IOProcs.pas当项目搜索路径没有包含 IoComp 的 Source 目录时就会出现。解决办法Project - Options - Delphi Compiler - Search path 添加C:\Program Files\IoComp\Source保存后再编译就正常了。如果还报别的基础单元找不到比如IOSystem.pas之类属于同样的路径配置问题。5.3 高DPI显示器下控件显示模糊很多工控电脑还在用 1080P 或者更低分辨率但如果有同事用了 2K/4K 屏幕会发现 IoComp 控件显示模糊。这个其实是 Delphi 10.2 对高DPI 的支持不够完善导致的而且 IoComp 4.04 SP2 的绘图代码是基于 GDI 的在高DPI 下本来就没做缩放适配。处理办法有两种一是把程序声明为 DPI Aware让 Windows 不去虚拟化缩放。二是对控件做自绘适配但这样做工作量大没太大必要。对工控上位机来说一般部署的电脑分辨率固定的开发机上模糊一点就模糊一点不影响最终运行效果。5.4 Win64 平台编译报错和许可证问题4.04 SP2 在 Win64 平台下偶尔会出现链接错误建议先确认 SP2 补丁已经完整安装。另外它的许可证文件是浮动式的如果 IDE 环境变量做了修改比如换了用户目录会导致许可证读取失败。建议把授权文件固定放在安装根目录并且安装过程中不勾选“注册到当前用户”这个选项。6. 一段时间用下来的几个心得6.1 代码风格上的一点建议IoComp 控件的属性命名和 VCL 原生控件差别不大但它的子对象层级比较深建议不要在代码里到处写iGauge1.Pointer.Pen.Color : clRed这种深层赋值而是封装成一个统一的刷新函数集中管理样式属性。不然项目大了之后要统一修改颜色的需求会让人疯掉。我一般的做法是这样procedure TForm1.ApplyGaugeStyle(g: TiGauge); begin g.Pointer.Pen.Color : clRed; g.Scale.Pen.Color : clGray; g.Background.Pen.Color : clBlack; end;6.2 关于稳定性和资源占用IoComp 4.04 SP2 在 10.2 下运行得很稳一套 24 小时运行的设备监控系统用 iPlot 实时刷新曲线 500ms 一次内存占用基本稳定没出现过内存泄漏的问题。不过在程序退出时要确保释放所有 IoComp 控件VCL 会自动处理但如果你在运行时动态创建了 IoComp 控件记得手动Free否则偶发崩溃很难查。6.3 后续版本迁移的思考虽然 IoComp 4.04 SP2 在 10.2 上很稳但后续如果要升级到更高版本的 Delphi比如 10.4 或 11就需要重新确认有没有对应版本的 IoComp 安装包。很多老项目被卡在 IDE 版本上不敢动控件包不兼容占了很大原因。所以如果项目还处在开发期可以考虑把 IoComp 调用封装成独立单元日后迁移时只改一个单元。最后再分享一个小技巧安装 IoComp 之前先把系统环境变量里的TEMP路径改成纯英文目录。我遇到过一次奇怪的编译失败排查了半天才发现是临时目录路径里有中文字符导致 IoComp 的编译脚本找不到文件。这个坑在中文版 Windows 上特别容易出现提前改掉能省很多事。本文还有配套的精品资源点击获取
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门