1. 项目概述与硬件准备
最近完成了一个工业自动化领域的典型应用案例——使用欧姆龙CP2E系列PLC通过自由口通讯控制台达VFD-M变频器,并配合威纶通6070触摸屏实现人机交互。这个项目完美展示了工业现场设备间ASCII通讯的实际应用,对于自动化工程师和工控爱好者来说都是极具参考价值的实操案例。
1.1 核心硬件选型解析
主控单元选用的是欧姆龙CP2E-N30DR-A型PLC,这款控制器具有以下突出优势:
- 内置2个通讯端口(RS232+RS485)
- 支持自由口通讯协议
- 30点I/O配置(18入/12出)
- 紧凑型设计节省控制柜空间
通讯扩展采用了CP1W-CIF11 RS485选件板,这是实现与变频器稳定通讯的关键部件。选择这款扩展板主要基于:
- 物理接口匹配:提供标准的RS485接线端子
- 电气隔离:有效防止地环路干扰
- 参数灵活:支持多种波特率设置
驱动单元选配台达VFD007M21A变频器,其通讯特性包括:
- 内置RS485通讯接口
- 支持Modbus RTU和ASCII双协议
- 最大7.5kW电机驱动能力
- 完善的保护功能
人机界面采用威纶通MT6070iP触摸屏,选择理由:
- 7寸高亮度TFT显示屏
- 内置欧姆龙Host Link协议驱动
- 支持多语言界面切换
- 丰富的图形元件库
关键提示:硬件选型时务必确认各设备的通讯接口类型和电气规格匹配,特别是RS485接口的A/B线定义可能因品牌而异,接线前需仔细核对手册。
1.2 系统接线示意图
完整的系统接线包含三个主要部分:
-
PLC与触摸屏连接:
- 使用标准RS232电缆连接CP2E的RS232端口与MT6070iP的COM1
- 接线方式:TxD-RxD交叉连接,GND直连
-
PLC与变频器连接:
- 通过CP1W-CIF11的RS485接口连接VFD-M的通讯端子
- 接线要点:
- PLC的SDA+接变频器485+
- PLC的SDB-接变频器485-
- 两端终端电阻设为120Ω
-
变频器动力接线:
- R/S/T接三相380V电源
- U/V/W接三相异步电机
- 务必加装合适的断路器与接触器

2. 通讯协议深度解析
2.1 台达变频器ASCII协议规范
台达VFD-M系列变频器采用基于ASCII字符的通讯协议,其指令格式具有高度可读性但需要严格遵循规范:
基本指令结构:
code复制[Header][Address][Command][Data][LRC][CR][LF]
- Header:固定为'%'(0x25)
- Address:变频器站号,默认01(ASCII字符'0'+'1')
- Command:2字符命令代码,如'F'+'R'表示正转运行
- Data:参数值,长度可变
- LRC:纵向冗余校验码
- CRLF:结束符(0x0D 0x0A)
常用控制命令:
| 命令代码 | 功能说明 | 示例指令 |
|---|---|---|
| FR | 正转运行 | %01FR00000011 |
| RR | 反转运行 | %01RR00000011 |
| ST | 停止 | %01ST00000010 |
| FS | 频率设定 | %01FS12345613 |
| RF | 读取运行频率 | %01RF00000012 |
2.2 欧姆龙PLC自由口配置
CP2E系列PLC的自由口通讯需要通过CX-Programmer进行以下关键设置:
-
通讯参数设定:
- 波特率:9600bps(与变频器保持一致)
- 数据位:7位
- 停止位:1位
- 校验方式:偶校验
- 流控制:无
-
端口模式选择:
- RS485端口设为"串行网关"模式
- 启用TXD/RXD指令支持
-
内存区域分配:
- 使用DM区作为通讯缓冲区
- 建议保留连续20个字用于收发数据
经验分享:实际调试中发现,CP2E的RS485端口在发送完成后需要至少10ms的延迟才能切换为接收状态,否则可能丢失变频器的响应数据。这个细节在官方手册中并未明确说明。
3. PLC程序实现详解
3.1 通讯指令核心逻辑
欧姆龙CP系列使用TXD/RXD指令实现自由口通讯,下面是典型的功能块实现:
ladder复制// 正转控制程序段
LD W0.00 // 正转启动条件
ANDNOT T0000 // 防止重复发送
MOV #2521 DM100 // '%01' ASCII码
MOV #4652 DM101 // 'FR'
MOV #3030 DM102 // '00'
MOV #3030 DM103 // '00'
MOV #3131 DM104 // '11'
MOV #0D0A DM105 // CRLF
TXD DM100 0 6 // 从DM100发送6个字
OUT T0000 #10 // 10ms发送间隔定时器
代码解析:
- 使用MOV指令构建完整的ASCII指令字符串
- TXD指令参数说明:
- DM100:发送数据起始地址
- 0:使用端口0(RS485)
- 6:发送6个字(12字节)
- 定时器T0000用于防止指令重复发送
3.2 频率设定功能实现
频率设定需要将实际频率值(如50.00Hz)转换为ASCII格式:
ladder复制// 频率设定程序段
LD W0.01 // 频率修改触发
MOV #2521 DM110 // '%01'
MOV #4653 DM111 // 'FS'
MOV N100 DM112 // 频率值存储位置
ASCIIDM112 DM113 4 // 转换为4字节ASCII
MOV #0D0A DM117 // CRLF
TXD DM110 0 8 // 发送8个字
关键点说明:
- 频率值需要乘以100后转换为整数(50.00Hz → 5000)
- ASCI指令实现二进制到ASCII的转换
- 校验码计算可通过LRC算法实现(示例中省略)
3.3 状态读取与数据处理
变频器返回的数据需要通过RXD指令接收并解析:
ladder复制// 数据接收程序段
LD SM0.10 // 每秒执行一次
RXD DM200 0 10 // 接收数据到DM200
MOVDM200 DM210 // 数据转存
BCD DM210 D100 // ASCII转数值
数据处理技巧:
- 返回数据通常包含头码和校验,需要提取有效部分
- 频率值等参数需要除以100得到实际值
- 建议添加超时检测(3秒无响应报错)
4. 变频器参数关键设置
4.1 通讯基础参数
台达VFD-M变频器必须正确设置以下参数才能建立通讯:
| 参数号 | 参数名称 | 设定值 | 说明 |
|---|---|---|---|
| P00 | 频率指令来源 | 05 | 通讯控制 |
| P01 | 运转指令来源 | 05 | 通讯控制 |
| P88 | 通讯地址 | 01 | 站号1 |
| P89 | 通讯波特率 | 03 | 9600bps |
| P90 | 通讯数据格式 | 02 | 7,E,1(7位偶校验) |
| P91 | 通讯超时检测 | 03 | 3秒超时 |
4.2 高级通讯设置
对于稳定性要求高的场合,建议额外配置:
- P92通讯重试次数:建议设为3次
- P93通讯等待时间:设置为50ms(与PLC程序匹配)
- P94通讯协议选择:必须设为1(ASCII模式)
调试心得:参数修改后必须断电重启才能生效,这是台达变频器的一个特殊之处。初次调试时曾因此浪费2小时排查"通讯不成功"的问题。
5. 触摸屏界面设计要点
5.1 HMI与PLC数据交互
威纶通MT6070iP通过Host Link协议与欧姆龙PLC通讯,关键配置:
-
通讯参数设置:
- 波特率:115200bps
- 数据位:7位
- 停止位:2位
- 校验:偶校验
-
地址映射规则:
- 位地址:CIO区对应0x0000开始
- 字地址:DM区对应0x1000开始
5.2 典型界面元素实现
频率设定输入框:
- 添加"数值输入"元件
- 地址类型选择"DM"
- 地址设为D100(对应PLC频率存储单元)
- 格式设置为"浮点,小数点后2位"
运行状态指示灯:
- 添加"指示灯"元件
- 正转状态绑定W0.10
- 反转状态绑定W0.11
- 设置不同颜色区分状态
报警历史记录:
- 使用"事件登录"功能
- 配置报警条件与对应信息
- 添加"报警条"显示实时报警
- 设置"报警历史"视图
6. 系统调试与故障排查
6.1 常见问题速查表
| 故障现象 | 可能原因 | 解决方案 |
|---|---|---|
| 通讯完全无响应 | 接线错误 | 检查A/B线是否反接,终端电阻是否接入 |
| 收到乱码 | 波特率不匹配 | 确认PLC与变频器波特率设置一致 |
| 偶发性通讯中断 | 干扰或接地不良 | 增加屏蔽层单端接地,降低波特率 |
| 指令执行但变频器不动作 | 运行指令来源参数设置错误 | 检查P00/P01参数是否为05 |
| 触摸屏数据显示不正常 | 地址映射错误 | 核对HMI与PLC的地址对应关系 |
6.2 高级调试技巧
-
通讯监控方法:
- 使用USB转RS485适配器连接PC
- 运行串口调试助手(如AccessPort)
- 实时捕获通讯数据帧
-
信号质量检测:
- 用示波器测量RS485差分信号
- 检查信号幅值(应大于1.5V)
- 观察信号波形是否干净
-
负载测试建议:
- 逐步增加通讯频率
- 长时间运行观察稳定性
- 记录异常发生时的环境条件
在实际项目中,我们通过上述方法发现了一个隐蔽问题:当变频器运行在35Hz以上时,通讯误码率明显上升。最终通过加装磁环滤波器和调整电缆走线路径解决了这个问题。