一、产品概述
IFM AL13xx系列简介
型号 | 产品名称 | 防护等级 | 接口类型 |
| AL1300 | IO-Link Master DL PN 4P IP67 | IP67 | PROFINET + TCP/IP JSON |
| AL1301 | IO-Link Master DL PN 4P IP69K | IP69K | PROFINET + MQTT JSON |
| AL1303 | IO-Link Master DL PN 4P | IP67 | PROFINET |
AL13xx主要功能
功能 | 说明 |
| IO-Link通道 | 最多4个IO-Link端口(A/B类可配置) |
| 通信协议 | PROFINET IO RT实时通信 |
| IT集成 | 独立TCP/IP JSON或MQTT接口 |
| 防护等级 | IP67/IP69K(适用于食品饮料行业) |
| 工作电压 | 20~30V DC(SELV/PELV) |
| 诊断功能 | 通道级诊断、参数备份、设备识别 |
通信架构
---
二、硬件与软件要求
1. 软件要求
软件 | 最低版本 | 推荐版本 |
TIA Portal(博途) | V15.1 | V17/V18/V19 |
IFM AL13xx固件 | 最新版本 | 官网下载更新 |
GSDML文件 | V2.3 | IFM官网下载 |
ifm Agent软件 | 可选 | 用于AL13xx参数配置 |
2. 硬件要求
设备 | 型号/订货号 | 说明 |
| S7-1200 | CPU 1214C/1215C/1217C V4.0及以上 | IO控制器 |
| IFM AL13xx | AL1300/AL1301/AL1303 | IO-Link主站(PROFINET接口) |
| IO-Link设备 | 支持IO-Link的传感器/执行器 | 最多4个通道 |
| 网线 | CAT5e及以上 | 标准工业以太网线 |
| 电源 | 24V DC | 为AL13xx和IO-Link设备供电 |
| 交换机 | 可选 | 多设备连接时使用 |
3. GSD文件下载
文件类型 | 说明 | 获取方式 |
GSDML | PROFINET设备描述文件 | IFM官网下载中心 |
版本 | GSDML V2.3 | 支持最新功能 |
下载链接 | https://www.ifm.cn | 产品页面→下载→GSD文件 |
---
三、配置步骤(TIA Portal)
第一步:下载并导入GSDML文件
这是最关键的第一步,因为AL13xx是第三方设备:
下载GSD文件:
访问IFM易福门官网(https://www.ifm.cn)
进入「产品」→「工业通信」→「IO-Link主站」
选择AL13xx型号,进入产品页面
点击「下载」→「GSDML文件」
保存GSDML文件到本地
导入GSD文件:
打开TIA Portal
点击「选项」→「管理通用站描述文件(GSD)」
选择GSDML文件所在文件夹
点击「安装」按钮
等待安装进度条完成
验证导入:
安装完成后,硬件目录会自动更新
在「其他现场设备」→「PROFINET IO」→「I/O」→「ifm electronic」中可查看AL13xx
第二步:创建TIA Portal项目
打开TIA Portal软件
点击「创建新项目」,输入项目名称
选择「添加新设备」
第三步:添加S7-1200 CPU(IO控制器)
添加PLC:
选择「控制器」→「SIMATIC S7-1200」→「CPU」
选择具体型号(如CPU 1215C DC/DC/DC)
选择固件版本(V4.0及以上)
配置PROFINET接口:
进入「设备视图」→ 点击CPU上的PROFINET接口
在「属性」→「以太网地址」中设置:
IP地址:如 192.168.0.1
子网掩码:255.255.255.0
勾选「自动生成PROFINET设备名称」
第四步:添加IFM AL13xx(IO设备)
添加AL13xx:
进入「网络视图」
在右侧「硬件目录」→「其他现场设备」→「PROFINET IO」→「I/O」→「ifm electronic」→「AL13xx」
选择对应型号(AL1300/AL1301/AL1303)
拖拽到网络视图中配置PROFINET接口:
双击网络视图中的AL13xx
在「属性」→「以太网地址」中设置:
IP地址:如 192.168.0.2(与PLC同一网段)
子网掩码:255.255.255.0
取消勾选「自动生成PROFINET设备名称」
手动设置设备名称(如:"ifm_al1300_station1")
分配IO控制器:
在网络视图中选中AL13xx
点击「未分配」
选择S7-1200作为Controller
第五步:配置数据交换区(过程映像)
这是最关键的配置,决定数据交换格式:
进入设备视图:
双击AL13xx图标
进入「设备视图」
配置子模块:
数据类型 | 长度 | 说明 |
| 输入数据 | 32~128字节 | IO-Link过程数据、状态字、诊断信息 |
| 输出数据 | 16~64字节 | 控制命令、参数设置 |
选择合适的子模块(过程数据区)
典型配置包括:
配置I/O地址:
输入地址(PLC读取):如 %IW0-%IW63
输出地址(PLC写入):如 %QW0-%QW31
IO-Link通道配置:
通道 | 模式 | 输入字节 | 输出字节 |
通道1 | IO-Link A/B | 8字节 | 4字节 |
通道2 | IO-Link A/B | 8字节 | 4字节 |
通道3 | IO-Link A/B | 8字节 | 4字节 |
通道4 | IO-Link A/B | 8字节 | 4字节 |
数字量输入 | DI | 4字节 | - |
数字量输出 | DO | - | 4字节 |
第六步:建立网络连接
进入「网络视图」
选中S7-1200的PROFINET接口(绿色方块)
拖拽连线到AL13xx的PROFINET接口连接成功后显示绿色实线
第七步:分配设备名称(关键步骤)
这是最关键的步骤,AL13xx需要正确的设备名称才能通信:
连接PLC:
使用网线连接PC与S7-1200
确保PC与PLC在同一网段
在线访问:
点击「在线」→「访问PG/PC」
选择连接的网卡
点击「更新」搜索网络设备
分配名称:
找到未分配名称的AL13xx(显示MAC地址)
输入配置的设备名称(如:"ifm_al1300_station1")
点击「分配名称」
验证:
点击「显示」确认名称已分配
设备名称必须与TIA Portal组态完全一致
第八步:AL13xx参数配置(可选)
使用ifm Agent软件或Web界面配置AL13xx参数:
参数 | 说明 | 推荐设置 |
| IO-Link模式 | 通道工作模式 | A类(传感器)/B类(执行器) |
| 过程数据长度 | 每个通道的数据长度 | 根据设备配置 |
| 通信周期 | PROFINET更新周期 | 4ms~10ms |
| 设备名称 | PROFINET设备名称 | 与TIA组态一致 |
| IP地址 | 网络IP地址 | 与TIA组态一致 |
| 诊断使能 | 启用诊断功能 | 建议启用 |
第九步:编译并下载
编译项目:
点击「编译」→「编译全部」
检查是否有错误
下载组态:
连接S7-1200 PLC
下载组态到PLC
将PLC切换到RUN模式
AL13xx上电:
AL13xx会自动从PLC获取组态
无需单独下载
---
四、数据交换格式详解
1. 输入数据(AL13xx→PLC)
偏移 | 数据类型 | 长度 | 说明 |
0 | 状态字 | 2字节 | 设备状态、就绪标志 |
2 | 通道1状态 | 2字节 | IO-Link通道1状态 |
4 | 通道1过程数据 | 8字节 | 传感器数据 |
12 | 通道2状态 | 2字节 | IO-Link通道2状态 |
14 | 通道2过程数据 | 8字节 | 传感器数据 |
22 | 通道3状态 | 2字节 | IO-Link通道3状态 |
24 | 通道3过程数据 | 8字节 | 传感器数据 |
32 | 通道4状态 | 2字节 | IO-Link通道4状态 |
34 | 通道4过程数据 | 8字节 | 传感器数据 |
42 | 诊断信息 | 4字节 | 错误代码、警告 |
2. 输出数据(PLC→AL13xx)
偏移 | 数据类型 | 长度 | 说明 |
0 | 控制字 | 2字节 | 启动/停止/复位命令 |
2 | 通道1控制 | 4字节 | 通道1参数/命令 |
6 | 通道2控制 | 4字节 | 通道2参数/命令 |
10 | 通道3控制 | 4字节 | 通道3参数/命令 |
14 | 通道4控制 | 4字节 | 通道4参数/命令 |
3. 状态字详解
位 | 名称 | 功能 | 0 | 1 |
0 | 就绪 | 设备就绪 | 未就绪 | 就绪 |
1 | 通信正常 | PROFINET通信 | 故障 | 正常 |
2 | 通道1有效 | IO-Link通道1 | 无效 | 有效 |
3 | 通道2有效 | IO-Link通道2 | 无效 | 有效 |
4 | 通道3有效 | IO-Link通道3 | 无效 | 有效 |
5 | 通道4有效 | IO-Link通道4 | 无效 | 有效 |
6 | 故障 | 故障状态 | 无故障 | 故障 |
7 | 报警 | 报警状态 | 无报警 | 报警 |
4. 控制字详解
位 | 名称 | 功能 | 0 | 1 |
0 | 启动 | 启动设备 | 停止 | 启动 |
1 | 复位 | 故障复位 | - | 复位 |
2 | 参数加载 | 加载参数 | - | 加载 |
3 | 数据复位 | 清除数据 | - | 清除 |
4-15 | 保留 | - | - | - |
---
五、编程示例
1. 标准PROFINET IO编程
// 定义数据块DATA_BLOCK "IFM_AL13xx_Data"STRUCT // 输入数据(从AL13xx读取) Status_Word : WORD; // 状态字 %IW0 Channel1_Status : WORD; // 通道1状态 %IW2 Channel1_Data : Array[0..7] OF BYTE; // 通道1数据 %IW4 Channel2_Status : WORD; // 通道2状态 %IW12 Channel2_Data : Array[0..7] OF BYTE; // 通道2数据 %IW14 Channel3_Status : WORD; // 通道3状态 %IW22 Channel3_Data : Array[0..7] OF BYTE; // 通道3数据 %IW24 Channel4_Status : WORD; // 通道4状态 %IW32 Channel4_Data : Array[0..7] OF BYTE; // 通道4数据 %IW34 Diagnostic : DWORD; // 诊断信息 %IW42 // 输出数据(写入AL13xx) Control_Word : WORD; // 控制字 %QW0 Channel1_Control : DWORD; // 通道1控制 %QW2 Channel2_Control : DWORD; // 通道2控制 %QW6 Channel3_Control : DWORD; // 通道3控制 %QW10 Channel4_Control : DWORD; // 通道4控制 %QW14END_STRUCTEND_DATA_BLOCK// 主程序OB1// 读取AL13xx状态"IFM_AL13xx_Data".Status_Word := %IW0;"IFM_AL13xx_Data".Channel1_Status := %IW2;"IFM_AL13xx_Data".Channel2_Status := %IW12;"IFM_AL13xx_Data".Channel3_Status := %IW22;"IFM_AL13xx_Data".Channel4_Status := %IW32;// 判断设备就绪IF ("IFM_AL13xx_Data".Status_Word AND 160001) <> 0 THEN "Device_Ready" := TRUE;ELSE "Device_Ready" := FALSE;END_IF;// 判断通信正常IF ("IFM_AL13xx_Data".Status_Word AND 160002) <> 0 THEN "Communication_OK" := TRUE;ELSE "Communication_OK" := FALSE;END_IF;// 读取通道1传感器数据(示例:温度传感器)"Temperature_Value" := REAL("IFM_AL13xx_Data".Channel1_Data[0]) * 0.1;// 读取通道2传感器数据(示例:压力传感器)"Pressure_Value" := REAL("IFM_AL13xx_Data".Channel2_Data[0]) * 0.01;// 设备启动IF "System_Start" AND NOT "System_Stop" AND "Device_Ready" THEN "IFM_AL13xx_Data".Control_Word := 160001; // 启动命令 %QW0 := "IFM_AL13xx_Data".Control_Word;END_IF;// 故障复位IF "Reset_Button" AND ("IFM_AL13xx_Data".Status_Word AND 160040) <> 0 THEN "IFM_AL13xx_Data".Control_Word := 160002; // 复位命令 %QW0 := "IFM_AL13xx_Data".Control_Word;END_IF;2. IO-Link设备参数读写(通过AL13xx)
// 读取IO-Link设备参数(ISDU读)"Read_ISDU"( Enable := "Read_Trigger", Channel := 1, // IO-Link通道1 Index := 160020, // 参数索引 SubIndex := 0, // 子索引 Done => "Read_Done", Error => "Read_Error", Data => "Read_Data");// 写入IO-Link设备参数(ISDU写)"Write_ISDU"( Enable := "Write_Trigger", Channel := 1, // IO-Link通道1 Index := 160021, // 参数索引 SubIndex := 0, // 子索引 Data := "Write_Data", Done => "Write_Done", Error => "Write_Error");// 读取设备标识(厂商ID、设备ID等)"Read_DeviceID"( Enable := "ID_Read_Trigger", Channel := 1, VendorID => "Vendor_ID", DeviceID => "Device_ID", Done => "ID_Read_Done");3. 完整控制程序示例
// 主程序OB1// 初始化IF "First_Scan" THEN "IFM_AL13xx_Data".Control_Word := 160001; // 启动命令 %QW0 := "IFM_AL13xx_Data".Control_Word; "First_Scan" := FALSE;END_IF;// 读取状态"IFM_AL13xx_Data".Status_Word := %IW0;"IFM_AL13xx_Data".Diagnostic := %ID42;// 设备就绪判断IF ("IFM_AL13xx_Data".Status_Word AND 160001) <> 0 THEN "Device_Ready" := TRUE;ELSE "Device_Ready" := FALSE;END_IF;// 通信状态判断IF ("IFM_AL13xx_Data".Status_Word AND 160002) <> 0 THEN "Communication_OK" := TRUE;ELSE "Communication_Fault" := TRUE;END_IF;// 通道状态监控FOR ch := 1 TO 4 DO CASE ch OF 1: "Channel_Status" := "IFM_AL13xx_Data".Channel1_Status; 2: "Channel_Status" := "IFM_AL13xx_Data".Channel2_Status; 3: "Channel_Status" := "IFM_AL13xx_Data".Channel3_Status; 4: "Channel_Status" := "IFM_AL13xx_Data".Channel4_Status; END_CASE; // 判断通道有效 IF ("Channel_Status" AND 160001) <> 0 THEN "Channel_Valid"[ch] := TRUE; ELSE "Channel_Valid"[ch] := FALSE; END_IF;END_FOR;// 传感器数据采集IF "Channel_Valid"[1] THEN // 通道1:温度传感器 "Temperature_Raw" := WORD("IFM_AL13xx_Data".Channel1_Data[0]); "Temperature_Value" := REAL("Temperature_Raw") * 0.1;END_IF;IF "Channel_Valid"[2] THEN // 通道2:压力传感器 "Pressure_Raw" := WORD("IFM_AL13xx_Data".Channel2_Data[0]); "Pressure_Value" := REAL("Pressure_Raw") * 0.01;END_IF;// 故障处理IF ("IFM_AL13xx_Data".Status_Word AND 160040) <> 0 THEN "Device_Fault" := TRUE; // 输出故障信号 %QX0.0 := TRUE; // 自动复位尝试 IF "Auto_Reset_Enable" THEN "Reset_Timer"(IN := TRUE, PT := T5S); IF "Reset_Timer".Q THEN "IFM_AL13xx_Data".Control_Word := 160002; // 复位 %QW0 := "IFM_AL13xx_Data".Control_Word; "Reset_Timer"(IN := FALSE); END_IF; END_IF;ELSE "Device_Fault" := FALSE; %QX0.0 := FALSE;END_IF;// 诊断信息记录IF "Device_Fault" THEN "Fault_Code" := "IFM_AL13xx_Data".Diagnostic; "Fault_Time" := LOCAL_TIME;END_IF;---
六、通信状态监控与诊断
1. AL13xx LED状态指示
LED | 颜色/状态 | 含义 |
| RUN | 绿色常亮 | 运行正常 |
| RUN | 黄色闪烁 | 启动中/待机 |
| RUN | 红色 | 故障 |
| LINK | 绿色 | 网络连接正常 |
| LINK | 熄灭 | 网络连接断开 |
| PORT1-4 | 绿色 | IO-Link通道正常 |
| PORT1-4 | 黄色 | IO-Link通道待机 |
| PORT1-4 | 红色 | IO-Link通道故障 |
2. TIA Portal在线监控
状态指示 | 颜色 | 含义 |
通信正常 | 绿色 | PROFINET连接建立成功 |
通信故障 | 红色 | 连接中断或配置错误 |
正在连接 | 黄色 | 设备正在建立连接 |
3. 诊断缓冲区
在TIA Portal中查看CPU的「诊断缓冲区」
可获取详细的通信错误信息
常见错误:设备名称不匹配、IP冲突、网线故障等
4. 常见错误代码
错误码 | 含义 | 解决方案 |
0x0000 | 无错误 | 正常 |
0x0001 | 通信超时 | 检查网络连接 |
0x0002 | 配置错误 | 检查PROFINET配置 |
0x0003 | 设备名称不匹配 | 重新分配设备名称 |
0x0100 | IO-Link通道故障 | 检查传感器接线 |
0x0101 | 设备未识别 | 检查IO-Link设备 |
0x0102 | 参数读写失败 | 检查参数索引 |
0x0200 | 电源故障 | 检查24V供电 |
---
七、常见问题与解决方案
问题现象 | 可能原因 | 解决方案 |
AL13xx无法识别 | GSD文件未导入 | 在TIA Portal中导入GSDML文件 |
设备名称分配失败 | 未在线操作 | 点击「在线」→「访问PG/PC」分配名称 |
通信超时 | IP地址不在同一网段 | 检查并统一IP网段 |
IO-Link通道无数据 | 传感器未连接 | 检查IO-Link设备接线 |
连接显示红色 | PLC未运行 | 将PLC切换到RUN模式 |
设备名称不匹配 | 名称不一致 | 确保TIA组态与实际分配一致 |
过程数据不更新 | 通信周期配置错误 | 检查PROFINET更新周期 |
诊断信息为空 | 诊断功能未启用 | 在AL13xx参数中启用诊断 |
频繁通信中断 | 网线质量差 | 更换高质量网线 |
Web界面无法访问 | IP地址错误 | 确认AL13xx的IP地址 |
IO-Link设备不识别 | 通道模式配置错误 | 检查A/B类模式设置 |
参数读写失败 | 索引/子索引错误 | 查阅IO-Link设备手册 |
---
八、配置要点总结
配置项 | 关键要点 |
软件版本 | TIA Portal V15.1及以上 |
GSD文件 | 必须从IFM官网下载并导入 |
IP地址 | 同一网段,不能冲突 |
设备名称 | 必须在线分配且与组态一致 |
数据交换区 | 正确配置输入/输出地址 |
IO-Link通道 | 配置A/B类模式 |
通信周期 | 根据应用选择4ms~10ms |
诊断功能 | 启用诊断便于故障排查 |
网络连接 | 使用标准网线,确保连接可靠 |
电源供电 | 24V DC稳定供电 |
---
九、推荐参考资料
资料名称 | 来源 | 链接 |
AL13xx产品手册 | IFM易福门官网 | 下载 |
AL13xx PROFINET配置指南 | IFM易福门官网 | 下载 |
AL13xx GSD文件下载 | IFM易福门官网 | 下载 |
IO-Link技术白皮书 | IO-Link组织 | 下载 |
TIA Portal PROFINET配置指南 | 西门子工业支持中心 | 查看 |
---
十、总结
S7-1200与IFM AL13xx IO-Link主站的PROFINET IO通信是工业自动化的经典传感器集成方案,具有以下优势:
优势 | 说明 |
高速实时 | PROFINET RT通信,周期可达4ms |
数据丰富 | IO-Link提供过程数据+参数+诊断 |
配置简单 | TIA Portal统一组态+导入GSD |
诊断完善 | 通道级诊断和设备级诊断 |
扩展灵活 | 支持多AL13xx、多站点连接 |
成本优化 | 减少布线,简化安装 |
即插即用 | IO-Link设备自动识别和参数备份 |
防护等级高 | IP67/IP69K适用于严苛环境 |
配置流程简图
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!