一、背景概述
西门子S7-1200/1500系列PLC是当前工业自动化领域应用最广泛的中高端控制器之一。这些PLC采用TIA Portal进行编程,其中“数据块”(DB)又分为优化块和非优化块两种类型。非优化块支持传统的绝对地址寻址(如DB10.DBD20),而优化块则不支持绝对地址访问,必须通过符号名称(标签)进行数据读写。
在实际工程项目中,很多用户为简化编程和维护,会启用数据块的“优化块访问”功能。此时,传统的基于绝对地址的S7通讯方式将无法访问这些数据块。针对这一场景,埃和智能IGT-DSER型号的PLC通讯智能网关内置了S7 PLUS协议,原生支持西门子优化数据块的标签式访问,可以实现罗克韦尔AB、三菱、欧姆龙等其它品牌的PLC与西门子PLC之间毫秒级实时稳定的数据交换。

本文以IGT‑DSER 系列智能网关为通讯枢纽,实现CODESYS V3 TCP ↔ 西门子 S7‑PLUS 标签双向实时数据交换,全程不用 PLC 编程、不用硬件组态、不用地址换算,支持跨网段、多线程 ,断电断网后能自动恢复运行,完美适配汽车、新能源、装备制造、智能产线等场景。
二、S7 PLUS协议简介
西门子PLC的协议经历了三个主要版本:S7Comm(传统S7协议)、早期S7CommPlus、以及最新的S7CommPlus协议。S7 PLUS与传统S7协议的关键区别主要有以下几点:
寻址方式不同:传统S7协议基于物理内存地址进行通信(如DB10.DBD20或DB61.DBD0),读写数据时必须知道变量在数据块中的精确偏移位置。而S7 PLUS协议实现了真正的符号寻址能力,可以直接使用PLC中定义的变量名进行访问(如:数据块_2.Arr_Dint[50]),无需关心变量在内存中的物理布局。
支持优化块访问:S7 PLUS协议原生支持S7-1200/1500的优化数据块和符号标签寻址。传统S7协议要访问优化块,必须先在硬件配置中禁用优化块访问并启用PUT/GET通信访问权限,这给工程实施带来了额外的配置工作。
安全机制增强:S7 PLUS内置了TLS加密通信支持,确保数据传输的机密性和完整性,而传统S7协议则缺乏这一关键安全特性。要使用TLS加密,S7-1200需要固件版本V4.5或更高(S7-1200 G2全系支持),S7-1500需要V2.9及以上。
配置更灵活:S7 PLUS协议支持布尔、整数、浮点数、字符串等所有数据类型,以及数组元素、结构体成员等复杂数据类型的读写。通过与TIA Portal集成,可以实现标签的在线自动生成,无需手动导入标签。
三、设备连接与网络结构
CODESYS控制器与西门子PLC分别处于不同的子网,IGT-DSER智能网关充当路由转发的角色,实现跨网段设备之间的数据交互,如下图:

四、配置步骤
4.1 准备工作
1. 西门子PLC配置:在TIA Portal中,确保数据块启用“优化的块访问”功能;在CPU属性中勾选“允许来自远程对象的访问”及“PUT/GET通信激活”;CODESYS控制器配置:确保符号配置文件中已勾选相关变量的访问权限。
2. 确定两台PLC控制器的IP地址等网络参数,确保PLC与IGT-DSER智能网关网络连接正常。
3. 下载PLC通讯智能网关的参数配置软件和用户手册(下载地址:aihe-tech.com/col.jsp?id=107)。
4.2 网关参数配置
第一步:选择功能类型与设备驱动
打开参数配置软件,选择 功能 → 功能类型与设备驱动,选择“PLC(仪表)之间实时通讯”,点击“确定当前选择”。
第二步:配置通讯任务表
进入 功能 → PLC之间通讯配置,进入数据通讯表配置编辑窗口。每个通讯任务包含两行,分别配置来源设备地址和目标设备地址。以下是本案例4个任务的详细配置:

任务①:读取CODESYS控制器的 GVL_TB1.S7_Int0 变量,经IGT-DSER智能网关写入西门子PLC的 数据块_1.Tag1 标签,总计2字节(1个INT类型的数据)。读写周期设定10ms。
任务②:读取西门子PLC的 数据块_1.Bool0 变量,经IGT-DSER智能网关写入CODESYS控制的 PLC_PRG.S7_State,总计1个BOOL位。读写周期设定为10ms。
任务③:读取西门子PLC的 数据块_2.Arr_Dint 数组 (索引0~9),经IGT-DSER智能网关写入CODESYS控制器的 GVL_TB2.Arr_Dint_50 数组(索引1~10),总计40字节/10个DINT数据。读写周期设定为10ms。
任务④:读取CODESYS控制器中 GVL_TB3.Arr_Real_20 数组(索引11~20),经IGT-DSER智能网关写入西门子PLC的 数据块_3.Arr_Real_5_10 二维数组(索引2,0~2,9),总计40字节/10个REAL数据。读写周期设定为10ms。
第三步:将参数写入网关并重启
完成配置后,点击 参数 → 参数写入到网关,将配置文件下载到IGT-DSER智能网关。写入成功后,点击 工具 → 重启网关,使新参数生效。
第四步:通讯状态监控
网关重启后,可通过 参数 → 从网关读取参数 读取配置参数,查看软件下方的“状态消息”区域的状态消息,根据状态消息调试,排查问题所在。通讯正常后可查看数据源的数据:工具→ 网关数据监控。
五、常见问题
Q1:为什么我访问西门子S7-1200/1500的数据块时显示无法连接?
A:首先确认数据块是否启用了“优化的块访问”。如果启用了优化块访问,必须使用S7 PLUS协议通过符号名称(标签)进行读写,传统的绝对地址方式将无法访问。其次,检查CPU属性中是否勾选了“允许来自远程对象的访问”及“PUT/GET通信激活”。
Q2:CODESYS控制器启用了用户名密码验证时如何配置?
A:在网关通讯配置表的“设备描述”一栏中,按格式[用户名:密码]填写。同一连接ID下的多行配置只需在第一个配置项中填写即可,如上图中的 [:Admin1921682222] ,表示匿名用户,密码为Admin1921682222。
Q3:CODESYS与西门子PLC的数据字节顺序不一致怎么办?
A:IGT-DSER网关支持字节顺序调整功能,可在通讯配置表中设置字节转换模式,无需在PLC内编程处理,参照上图表中的参数1,参数2设置,根据手册6.1章节的描述配置即可。
Q4:能否对多个不同品牌,不同型号的PLC控制器进行通讯?
A:可以。分配不同的“连接ID”给不同的通讯任务(可设置范围为1~255),IGT-DSER智能网关支持多个连接并行通讯,实现多线程高速数据交互。
六、结语
本案例通过IGT-DSER智能网关,实现了CODESYS控制器与西门子S7-1200 PLC之间基于S7 PLUS协议的标签方式数据通讯。该方案无需在PLC内编程开发,也无需组态复杂的通信程序,仅需在网关参数配置软件中定义数据标签映射关系即可。特别适用于CODESYS控制器与启用了优化块访问的西门子S7-1200/1500 PLC之间的跨平台数据交换场景。
IGT-DSER智能网关有多个网口、串口,也可选择WIFI无线通讯。无需PLC内编程开发,只需配置数据的起始地址和数量即可。毫秒级通讯速度快,支持热插拔,断电断网后能自动恢复运行。支持多个品牌的PLC之间多对多通讯,最多8000个字节的数据交互量。网关内每个连接采用独立的线程运行,毫秒级别的数据交互。相关参数在一个页面内配置,方便直观,在调试过程中有详细的状态反馈信息,以及完善的数据监控和通讯错误处理机制。因其实施起来简单快速,长期工作性能稳定出色,在玻璃建材、水泥钢铁、橡胶纺织、汽车新能源 等行业广泛应用。关于智能网关的更多功能,可访问官网查阅相关应用案例(aihe-tech.com/col.jsp?id=109)。
楼主最近还看过


客服
小程序
公众号