三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

手把手教你:Codesys V3与昆仑通态触摸屏的‘自由标签’通讯保姆级教程(从变量表到画面测试)

手把手教你:Codesys V3与昆仑通态触摸屏的‘自由标签’通讯保姆级教程(从变量表到画面测试)

手把手教你实现Codesys V3与昆仑通态触摸屏的标签通讯实战

在工业自动化项目中,PLC与HMI的高效通讯一直是工程师们关注的重点。传统的Modbus TCP协议虽然稳定可靠,但在变量管理上往往显得繁琐。今天我们要介绍的Codesys V3与昆仑通态触摸屏之间的"自由标签"通讯方案,正逐渐成为工控领域的新宠。

这种通讯方式最大的优势在于它实现了变量级别的无缝对接。工程师不再需要手动配置复杂的寄存器映射,而是通过简单的XML文件交换就能完成变量同步。对于刚接触工控系统集成的新手来说,这无疑大幅降低了学习门槛;而对于有经验的开发者,则能显著提升项目开发效率。

下面,我将以一个完整的启停控制项目为例,带您从零开始实现这套通讯方案。我们会依次完成:Codesys环境下的变量表创建、XML文件生成、昆仑屏组态配置,最后进行实际的画面测试。过程中我会特别标注那些容易出错的细节,帮助您避开常见的"坑"。

1. Codesys V3环境准备与变量配置

1.1 创建全局变量表

在Codesys V3中,所有需要与HMI通讯的变量都应该集中管理。推荐在Application下创建专门的全局变量表:

  1. 右键点击Application → 选择"Add Object" → 选择"GVL"(Global Variable List)
  2. 为变量表命名,例如"HMI_Communication"
  3. 在变量表中定义需要通讯的变量,例如:
VAR_GLOBAL StartButton AT %I* : BOOL; // 启动按钮输入 StopButton AT %I* : BOOL; // 停止按钮输入 MotorStatus AT %Q* : BOOL; // 电机状态输出 RunTime AT %M* : UINT; // 运行时间统计 END_VAR

注意:变量命名应遵循"见名知意"原则,避免使用过于简单的名称如"Var1"等。良好的命名习惯能大幅降低后期维护成本。

1.2 配置Symbol Configuration

有了变量表后,我们需要告诉Codesys哪些变量需要与HMI通讯:

  1. 右键点击Application → 选择"Add Object" → 选择"Symbol Configuration"
  2. 双击新建的Symbol Configuration对象打开配置界面
  3. 点击"Build"按钮编译项目,刷新可用变量列表
  4. 在左侧树形菜单中勾选需要通讯的变量表或具体变量

常见问题排查

  • 如果变量列表为空,请先确保项目已成功编译
  • 某些版本的Codesys需要先保存项目才能正确显示变量

2. 生成通讯用的XML文件

2.1 生成XML配置文件

完成Symbol Configuration后,我们需要将其导出为昆仑屏可识别的格式:

  1. 在Symbol Configuration界面,点击"Build"下拉菜单
  2. 选择"Generate Code"选项
  3. 在弹出的对话框中选择保存路径(默认在项目目录下)
  4. 确认生成后,会在指定位置生成一个XML文件

这个XML文件包含了所有已勾选变量的完整信息,包括:

  • 变量名称
  • 数据类型
  • 内存地址
  • 注释说明

2.2 XML文件内容解析

了解XML文件的结构有助于排查通讯问题。一个典型的变量定义如下:

<Symbol Name="MotorStatus" Datatype="BOOL" Address="%Q*" Comment="电机运行状态"/>

重要检查点

  • 确保XML文件中包含所有需要的变量
  • 检查变量数据类型是否正确
  • 确认没有包含不必要的变量(会影响通讯效率)

3. 昆仑通态触摸屏配置

3.1 添加Codesys V3自由标签设备

在昆仑通态组态软件中,我们需要先建立与Codesys的通讯连接:

  1. 打开设备窗口 → 设备管理
  2. 在设备列表中找到"Codesys V3自由标签"
  3. 双击添加该设备
  4. 在基本属性中设置正确的PLC IP地址

提示:建议先将PLC和触摸屏通过网线直连,避免网络配置带来的额外复杂度。测试通过后再接入实际网络环境。

3.2 导入XML变量文件

这是实现"自由标签"通讯的核心步骤:

  1. 双击添加的Codesys设备,打开属性对话框
  2. 点击"标签导入"按钮
  3. 在弹出的对话框中选择之前生成的XML文件
  4. 勾选需要导入的变量(通常全选即可)
  5. 确认导入后,变量会自动出现在设备变量列表中

关键细节

  • 导入前确保XML文件路径不含中文
  • 导入过程中注意观察是否有错误提示
  • 变量名称冲突时会自动添加序号,建议在Codesys中保持名称唯一性

3.3 变量快速连接

昆仑通态提供了便捷的变量连接方式:

  1. 在画面编辑器中选中需要绑定的控件
  2. 右键选择"变量连接"
  3. 在弹出的对话框中选择"默认设备变量连接"
  4. 从列表中选择对应的Codesys变量
  5. 确认后即完成绑定

这种连接方式的优势在于:

  • 无需手动输入变量地址
  • 变量类型自动匹配
  • 支持名称模糊搜索

4. 画面设计与通讯测试

4.1 创建简单的控制画面

我们来设计一个基本的电机控制界面:

  1. 添加两个按钮控件,分别绑定StartButton和StopButton
  2. 添加一个指示灯控件,绑定MotorStatus
  3. 添加一个数值显示控件,绑定RunTime
  4. 设置合适的颜色和文字提示

界面设计技巧

  • 重要操作按钮应使用醒目颜色
  • 状态指示应直观明了(如运行-绿色,停止-红色)
  • 相关控件应分组布局,符合操作逻辑

4.2 模拟测试与在线调试

在下载到实际设备前,建议先进行模拟测试:

  1. 在工具栏选择"模拟运行"
  2. 在弹出对话框中:
    • 运行方式选择"模拟"
    • 点击"通讯测试"验证网络连接
    • 确认无误后启动运行
  3. 测试各项功能:
    • 按下启动按钮,观察电机状态变化
    • 按下停止按钮,确认电机停止
    • 检查运行时间统计是否正常累加

调试常见问题

现象可能原因解决方案
通讯测试失败IP地址错误检查PLC和触摸屏IP是否在同一网段
变量值不更新通讯周期过长在设备属性中调整采集周期
部分变量无效XML未更新重新生成并导入XML文件

4.3 实际设备联调

模拟测试通过后,就可以进行实际设备测试了:

  1. 将组态工程下载到昆仑通态触摸屏
  2. 确保PLC程序已正确下载并运行
  3. 观察实际设备上的操作反馈
  4. 必要时使用Codesys的在线监控功能辅助调试

在最近的一个输送线控制项目中,我发现当变量数量超过100个时,通讯响应会明显变慢。这时可以采用以下优化措施:

  • 将变量分组到不同的Symbol Configuration中
  • 调整通讯周期,关键变量快周期,次要变量慢周期
  • 考虑使用数组代替多个单独变量
← 返回列表