1. 项目背景与核心价值
在工业自动化领域,PLC与HMI的协同控制一直是产线升级改造的关键环节。这次我们要探讨的汇川AC801/AM400/AM600系列PLC与威纶通HMI的组合方案,正是当前中小型自动化项目中的黄金搭档。这套系统最大的特点在于采用了Codesys作为开发平台,配合威纶通人机界面,实现了从逻辑控制到可视化操作的无缝衔接。
我去年在一条包装产线改造项目中首次尝试这种组合,实测下来发现几个突出优势:首先是开发效率提升明显,Codesys的标准化编程环境让AM600系列PLC的程序移植时间缩短了40%;其次是威纶通触摸屏的宏指令功能与Codesys的OPC UA通讯异常稳定,在连续72小时压力测试中通讯丢包率为零。这种组合特别适合需要快速部署且对成本敏感的项目,比如食品包装、电子装配等领域的自动化改造。
2. 硬件选型与拓扑设计
2.1 控制器性能对比
汇川这三款PLC各有定位:AC801属于紧凑型控制器,自带16点DI/DO和2路AI,适合简单单机设备;AM400系列模块化程度高,最大可扩展7个模块,典型配置下可控制32轴伺服;AM600则是高端型号,支持CODESYS SoftMotion功能,在多轴同步控制场景下表现突出。
在最近一个锂电池分选设备项目中,我们对比测试发现:AM402-1600T搭配威纶通MT8102iE触摸屏时,处理200ms周期的视觉信号+8轴控制任务,CPU负载稳定在65%左右。而同样任务下,AM600-1616T的负载仅38%,但成本高出约25%。这提醒我们:不是所有场景都需要上AM600,合理的选型能显著降低成本。
2.2 通讯拓扑搭建要点
典型的网络架构建议采用星型拓扑:
- PLC与HMI间通过交换机建立千兆以太网连接
- 运动控制总线建议使用EtherCAT(AM600原生支持)
- 第三方设备通过Modbus TCP接入
关键参数设置示例:
codesys复制// EtherCAT主站配置
MASTER_ETHERCAT(
NETWORK_ID := 1,
ADAPTER := 'ETH1',
CYCLE_TIME := T#500US,
SYNC_UNIT := SYNC_UNIT_0
);
特别注意:当使用AM400系列时,若需要EtherCAT功能必须额外添加CX5100总线耦合器,这个细节很多初用者容易忽略。
3. Codesys开发实战技巧
3.1 标准化编程框架
建议采用IEC61131-3的模块化编程方法,将项目分为以下库:
- IO映射层(硬件抽象)
- 工艺库(封装气缸、电机等标准动作)
- 配方管理(配合威纶通的配方功能)
- 报警处理(与HMI报警界面联动)
一个典型的气缸控制功能块实现:
st复制FUNCTION_BLOCK FB_Cylinder
VAR_INPUT
bExtend, bRetract : BOOL;
tExtendTime : TIME := T#1S;
END_VAR
VAR_OUTPUT
qExtended, qRetracted : BOOL;
END_VAR
VAR
tTimer : TON;
END_VAR
IF bExtend THEN
tTimer(IN:=TRUE, PT:=tExtendTime);
qExtended := NOT tTimer.Q;
qRetracted := FALSE;
ELSIF bRetract THEN
//...类似实现
END_IF
3.2 威纶通界面联动秘笈
在威纶通EasyBuilder Pro中建立高效数据交互的关键:
- 使用"直接窗口"组件实现弹出式参数设置
- 通过宏指令处理复杂逻辑(如配方切换)
- 报警界面绑定PLC的报警变量数组
一个实用的速度调节界面实现步骤:
- 在Codesys中声明全局变量:
st复制PROGRAM MAIN
VAR
nSpeedSetpoint : INT := 1000;
bSpeedConfirm : BOOL;
END_VAR
- 威纶通画面配置:
- 数值输入框绑定"nSpeedSetpoint"变量
- 确认按钮绑定"bSpeedConfirm"的上升沿
- 添加数值范围校验脚本:
vba复制Sub Macro1()
If nSpeedSetpoint > 2000 Then
ShowMessage("超速警告!")
nSpeedSetpoint = 2000
End If
End Sub
4. 典型问题排查指南
4.1 通讯中断问题
现象:HMI偶尔显示"PLC无响应"
排查步骤:
- 检查交换机端口指示灯状态
- 在Codesys中查看通讯统计:
codesys复制// 添加在任务配置中
COMMUNICATION_DIAGNOSIS(
ENABLE := TRUE,
INTERVAL := T#5S,
TIMEOUT := T#1S
);
- 威纶通侧检查Ping测试结果
常见原因:
- 网络电缆未使用屏蔽双绞线(建议采用CAT6)
- PLC IP地址与HMI不在同一网段
- 交换机未开启流量控制
4.2 运动控制抖动问题
在AM600控制伺服时出现定位抖动:
- 首先检查机械安装(联轴器、导轨等)
- 在Codesys中调整滤波器参数:
st复制// 位置环配置
MC_BR_AxisParaSet(
Axis := Axis1,
Parameters := [
(MC_BR_PARA_FILTER_POSITION, 50), // 位置滤波系数
(MC_BR_PARA_GAIN_POSITION, 12000) // 位置环增益
],
Execute := TRUE
);
- 使用Trace功能录制实际位置曲线:
codesys复制TRACE_ADD_SIGNAL(Axis1.ActualPosition);
TRACE_START(Duration := T#10S);
5. 性能优化实战经验
5.1 任务周期配置黄金法则
经过多个项目验证的任务周期建议:
- 快速任务:1ms(用于EtherCAT通讯)
- 主控制任务:2-5ms(运动控制算法)
- 慢速任务:10-20ms(逻辑处理)
- HMI通讯任务:50-100ms
在AM600上的典型配置:
codesys复制// 任务配置示例
TASK FAST_TASK(
INTERVAL := T#1MS,
PRIORITY := 20
);
TASK MAIN_TASK(
INTERVAL := T#2MS,
PRIORITY := 15
);
重要提示:AM400系列的最小任务周期为2ms,这点与AM600不同,过度设置会导致看门狗超时。
5.2 内存管理技巧
当处理大型数组时(如视觉坐标数据),推荐方法:
- 使用ARRAY[*] OF POINTER动态管理内存
- 关键数据区添加ECC校验
- 威纶通界面分页加载数据
一个视觉定位数据的处理示例:
st复制TYPE VisionPoint : STRUCT
X : LREAL;
Y : LREAL;
Quality : REAL;
END_STRUCT
VAR
pPoints : POINTER TO ARRAY[1..100] OF VisionPoint;
nPointCount : UINT;
END_VAR
// 分配内存
MEM_ALLOC(
pAddr := ADR(pPoints),
size := SIZEOF(pPoints^),
init := TRUE
);
6. 项目升级与扩展思路
当产线需要增加新功能时,这套系统的扩展性优势就体现出来了。最近我们给一个现有AM400系统增加了质量追溯功能,主要改动包括:
- 在威纶通新增追溯界面
- Codesys中添加SQLite数据库支持:
st复制// 数据库操作示例
FB_SQLiteOpen(
DBName := 'quality.db',
ConnectionID := 1
);
FB_SQLiteExec(
ConnectionID := 1,
SQL := 'CREATE TABLE IF NOT EXISTS records(timestamp TEXT, sn TEXT, result INT)'
);
- 通过OPC UA将数据同步到MES系统:
codesys复制// OPC UA服务器配置
UA_SERVER_ADD_VARIABLE(
NodeId := 'ns=1;s=QualityData',
BrowseName := 'QualityData',
Description := '质量追溯数据',
DataType := UA_TYPES_STRING,
AccessLevel := UA_ACCESSLEVELS_READ
);
这种渐进式升级方式既不影响现有生产,又能快速响应新需求。实测在AM600平台上,新增的数据库模块使CPU负载仅增加3-5%,完全在可控范围内。
