这几年做设备改造,最怕接到“加几十个点位,还得接Profinet”的需求。机柜里塞得跟沙丁鱼罐头一样,主站PLC那边IP地址恨不得都排满了,再拉一堆硬线过去,调试工期直接翻倍。后来我用汇川EASY320搭配GL20系列模块做Profinet从站,一套组合拳把分布式IO扩展和协议转换全干完了,今天就把这套IO映射的完整流程拆开讲一遍,从选型思路到联调排错全盘托出,给正在做非标设备、老柜改造和分布式IO项目的朋友一个可以参考的实践案例。
先说清楚这套东西是干什么的。汇川EASY320是一台小型PLC,本身支持Profinet从站功能,可以挂到西门子S7-1500、S7-1200或者工控机加CP1604板卡的Profinet网络中。GL20是汇川的分布式IO系列模块,通过本地扩展总线挂在EASY320下边,负责采集数字量输入、控制数字量输出,还能接GL20-2HC这类高速计数模块来读脉冲传感器。两者组合起来,本质上是做了一个“智能从站”:上级主站看到的只是一个标准的Profinet IO设备,但底下实际挂着各种GL20模块,IO映射的工作就是把GL20模块的物理通道,一级一级映射到主站PLC的IO地址上。这套方案特别适合设备改造、OEM客户定制、以及点位分散又不想铺大量硬线的场合。下面按项目推进顺序来写,从方案论证到联调排错,尽量把每个坑都提前帮你踩掉。
1. 项目整体设计与方案选型思考
1.1 为什么是EASY320+GL20,而不是直接加一组ET200SP
很多人第一反应是:做Profinet从站,直接上一套西门子ET200SP远程IO不就行了,何必绕一圈用汇川的小PLC?这话在纯新项目、点位全部集中在一个电柜里的场景下确实没错,但实际项目里的约束条件往往没这么理想。
我这次遇到的需求是:主站是S7-1500,现场需要扩展48路DI、16路DO,同时还有一路编码器脉冲信号要送到主站去参与速度计算。如果全部用ET200SP,IO模块加接口模块、加服务器模块,再算上安装导轨和总线端子,成本不低。更关键的是,编码器信号如果走普通远程IO站,还得额外配高速计数模块,ET200SP的高速计数模块价格摆在那里,供货周期也不稳定。而GL20-2HC本来就是一个高速计数模块,把它挂在EASY320下边,EASY320既是Profinet从站,又承担了数据聚合和协议转换的角色,一个柜内小扩展加上一块PLC,就把远程IO站和特殊功能模块的活全包了。
另外还有一个重要的考虑因素:灵活性。用EASY320做从站,你其实是在“用PLC的思路做IO站”。GL20模块的通道映射不是死的,你可以在EASY320的程序里做逻辑处理,比如对输入信号做滤波、对输出做联锁保护,甚至可以在主站没来得及给命令的时候,本地做一些简单的逻辑动作。这是普通远程IO站做不到的,也是这套方案真正的附加值所在。
当然,这套方案的代价是你要同时维护EASY320的应用程序和GL20的硬件配置,对工程师的要求更高一些,调试的时候也要两头看数据。所以方案选型不是简单的元器件对比,而是要把成本、功能、灵活性、调试复杂度放在一起权衡。我的结论是:点位数量中等、含有特殊功能模块需求、或者需要从站侧做本地逻辑处理的场景,EASY320+GL20非常合适;如果是几十上百个普通数字量点位的大规模分布式IO,还是老老实实选专业远程IO站更划算。
1.2 网络拓扑与数据流向设计
方案确定之后,第一件事不是急着接线,而是把网络拓扑和数据流向画清楚。这套系统的拓扑结构不复杂,但每一层之间的数据关系必须事先想明白,后面做IO映射才不会乱。
整个系统分三层。第一层是Profinet主站,也就是S7-1500或者工控机上的CP1604板卡,它是整个总线的IO控制器,负责发送IO数据帧、管理从站状态。第二层是EASY320,它作为Profinet从站挂在主站下面,对上,它和主站之间按照标准Profinet IO协议进行周期性数据交换;对下,它通过自己的本地扩展总线与GL20系列模块通信,采集DI状态、控制DO输出、读取高速计数模块的数据。第三层就是GL20各个模块本身,它们直接连接现场的按钮、继电器、传感器、编码器等设备。
数据流向可以分成上行和下行两条。上行方向,GL20模块把现场采集到的数字量信号转换成位数据,通过扩展总线送到EASY320的内部映射区;EASY320再把这一堆数据按照你在工程里组态的IO模块顺序,填入Profinet报文对应的字节位置,最终由主站读取。下行方向同理,主站把输出数据写入Profinet报文,EASY320接收后解析出来,再通过扩展总线把某个位送到对应的GL20 DO模块通道上。
这个设计里最关键的一点是:主站根本不关心GL20模块的存在。在主站看来,EASY320就是一个拥有若干字节输入、若干字节输出的标准Profinet从站,至于这些字节背后是普通数字量、高速计数数据、甚至是EASY320程序里算出来的中间变量,主站一概不管。这种“透明化”设计让我可以在从站侧做很多文章,比如把编码器频率算好之后直接以浮点数塞进报文,主站拿去直接用,省去了在主站做复杂换算的工作。
1.3 器件清单与选型注意事项
设计完拓扑,就该列器件清单了。这里我把这次用的关键器件和选型注意点列出来,方便大家直接参考。
| 器件 | 规格 | 数量 | 用途说明 |
|---|---|---|---|
| EASY320 PLC | 本体带Profinet从站接口 | 1 | 作为Profinet智能从站,聚合GL20数据 |
| GL20-PN适配器 | Profinet总线适配器 | 1 | 将GL20扩展模块接入Profinet网络 |
| GL20-1600EN | 16路数字量输入模块 | 3 | 采集48路DI信号 |
| GL20-0016EN | 16路数字量输出模块 | 1 | 控制16路DO输出 |
| GL20-2HC | 高速计数模块 | 1 | 读取编码器脉冲信号 |
| 24V开关电源 | 4A/8A视负载而定 | 2 | 系统电源与现场传感器电源分离 |
| 工业交换机 | 非网管型 | 1 | 主站与从站之间的网络连接 |
选型时有几个细节要特别注意。第一是GL20-2HC高速计数模块的版本,不同版本支持的编码器类型和最高计数频率不一样,你要是接了差分输出的编码器,必须确认模块支持差分输入,否则光这一项就够你折腾半天了。第二是扩展总线的供电能力,GL20模块都是通过总线连接器供电的,模块多了以后要注意电流需求,我的习惯是把系统电源和现场传感器电源分开,避免现场接线短路把整个PLC系统拉垮。第三是EASY320的固件版本和InoProShop软件版本要匹配,太老的固件可能用不上某些Profinet通信功能,这个在项目开始前就先去官网确认好。
第三个选型注意点容易被忽略:EASY320作为从站接入Profinet网络时,需要给网络规划好IP地址和设备名称。Profinet IO设备在网络上不是通过IP识别的,而是通过设备名(Device Name)识别。也就是说,EASY320和主站之间通信的核心是“名字”,IP地址只是用来传送数据的辅助参数。这个机制和普通TCP/IP通信完全不同,很多人第一次接触Profinet都栽在这个地方。所以在布线、接线之前,先把设备名、IP地址、IO模块地址规划表做出来,后面每一步配置都对照着做,能省掉很多返工。
2. 硬件组态:从GSD文件到站点参数设置
2.1 GSD文件的下载与安装
Profinet之所以能接各种品牌的从站设备,靠的就是GSD文件机制。GSD文件本质上是一个XML格式的设备描述文件,里面写清楚了设备支持多少个模块、每个模块的输入输出字节数、支持的通信参数、设备标识等信息。主站组态软件(比如TIA Portal)读了这个文件之后,就知道怎么跟你这个从站设备打交道了。
EASY320的GSD文件可以从汇川官网的下载中心拿到,搜索EASY320或者EASY系列Profinet从站设备描述文件就行。下载的时候要注意GSD文件的版本号,最好和你EASY320固件版本对应。我有一次图省事,直接用了别人给的旧版本GSD,结果组态出来的输入输出区字节数和实际不一致,折腾了整整一个下午才发现是GSD版本和固件不匹配。所以这一步千万别偷懒,下载完GSD文件后,核对一下固件版本号再开始组态。
在TIA Portal里安装GSD文件的路径是:菜单栏“选项”→“管理GSD文件”,在弹出的窗口里选择源路径,然后点击“安装”。安装过程中TIA会解析GSD文件里的信息,如果文件没问题,会提示安装成功。安装完成之后,在右侧硬件目录的“其他现场设备”→“PROFINET IO”→“I/O”下面就能找到汇川EASY320的设备条目了。如果你的TIA版本比较老,可能提示无法识别较新版本的GSD文件,这种时候优先升级TIA版本,或者下载对应当前TIA版本范围的GSD文件。另外要养成一个好习惯:GSD文件不要放在中文路径下,某些版本的TIA对中文路径支持不好,安装会失败,这个坑我踩过,很没有技术含量但特别耗时间。
2.2 EASY320从站参数的逐项设置
安装完GSD文件之后,在主站工程里添加EASY320设备,关键参数设置主要有这么几个。
第一是设备名称(Device Name)。Profinet IO通信首要的标识就是设备名,必须在网络里唯一。比如我这台EASY320设备名称设为easy320-pn-01,这个名称要记好,后面在InoProShop里EASY320的Profinet参数配置要填同样的名字,两者不一致的话,主站始终找不到从站。设备名的命名建议用有含义的字符串,比如hw-l1-plc01这种,别用默认的一串数字,现场设备多了之后光靠IP根本分不清谁是谁。
第二是IP地址和子网掩码。Profinet IO在初次分配设备名和IP时,可以通过主站的“在线分配”功能把IP地址和名称写入从站,也可以直接在InoProShop里给EASY320设置固定的IP地址。我习惯在EASY320侧把IP设成固定值,比如192.168.0.31,主站侧在设备属性里也填成一样的IP。虽然Profinet通信的关键是设备名,但IP地址不一致会导致通信建立不了,这个道理和打电话一样:你手机通讯录里存了名字,但最终拨号还是要靠号码,名字和号码对不上,电话永远打不出去。
第三是更新时间和看门狗时间。更新时间决定了主站和从站之间多久交换一次数据,默认是16毫秒或者32毫秒,现场大多数需求都能满足。如果你有高速计数或者模拟量这样对实时性要求高的数据,可以把更新时间压到8毫秒甚至4毫秒,但要注意网络负载和CPU负载都会随之增加。看门狗时间则是用来监测通信是否中断的,一般默认就够了,我习惯设成更新时间的三倍以上,避免网络上偶尔的数据抖动导致从站掉线。
在EASY320侧,还需要在InoProShop工程里配置Profinet从站功能。具体路径是:在设备树中找到EASY320的Profinet配置界面,勾选“启用Profinet IO从站”,填入设备名称和IP地址,然后需要在IO映射表里把你要上传给主站的数据区关联起来。这里涉及一个核心概念:EASY320作为PLC,有自己独立的输入输出映射区,而作为Profinet从站时,它要把这些映射区中的数据通过周期通信发送给主站。说白了,EASY320既是“大脑”也是“快递员”,它得先把自己内存里的数据打包好,然后通过Profinet网络这个快递通道送到主站。
2.3 GL20扩展模块的硬件配置
GL20模块在硬件上通过扩展总线连接器一个接一个地串联在EASY320底下,顺序不能乱,什么模块先接、什么模块后接,必须和在软件里配置的顺序完全一致。
在EASY320的InoProShop工程里,打开设备组态界面,从模块库中按实际顺序依次添加GL20-PN适配器、GL20-1600EN输入模块、GL20-0016EN输出模块、GL20-2HC高速计数模块。每添加一个模块,软件会自动分配对应的IO地址,比如第一个GL20-1600EN会占用输入字节0和1,第二个占用输入字节2和3,第三个占用输入字节4和5,GL20-0016EN会占用输出字节0和1。这些地址就是EASY320内部映射区里的地址,后面做IO映射时,无论是EASY320内部程序还是Profinet报文映射,全都围绕这些地址展开。
关于GL20-2HC高速计数模块的接线,需要留意编码器类型。常见的增量编码器有NPN输出、PNP输出、差分输出等几种类型,GL20-2HC的接线端子一般会区分单端和差分输入。接线之前一定先查清楚模块手册,把编码器的A相、B相、Z相以及电源正负极接对。如果编码器是推挽输出而模块设置成了差分输入,或者反过来,轻则计数不准,重则直接烧掉模块输入电路。脉冲传感器的接线还有个共地问题,编码器的电源负极必须和模块输入的公共端连在一起,否则信号电平参考点不一致,计数器显示出来的数值会乱跳。
3. IO映射实现:从地址计算到映射落地
3.1 IO地址规划与模块字节对齐计算
IO映射是这套系统最核心的技术活,也是大家最容易做乱的环节。物理层有一个点位,中间层有一个模块通道号,再上层是EASY320的内部地址区,最上层是主站Profinet IO里的地址,四层对应关系必须理得清清楚楚。
以我这个项目为例,48路DI来自三块GL20-1600EN,每块16位,正好占2字节,三块就是6字节。16路DO来自一块GL20-0016EN,占2字节。GL20-2HC高速计数模块的数据占多少字节,取决于组态的数据格式,我习惯把计数值和状态字一起映射,用4字节作为输入端。把这些加起来,从站向主站传输的输入区数据总长度是10字节,主站向从站写入的输出区数据总长度是2字节。
这里要特别强调“字节对齐”的问题。Profinet IO报文中,每个子模块的数据在PLC地址区里必须按字长对齐。什么意思?如果有两个模块分别占2字节和4字节,4字节数据的起始地址一定要落在偶数地址上,不能出现奇数地址。虽然现代PLC大多能处理未对齐的数据,但工程师组态时还是尽量让每个子模块的数据长度都是2的倍数,否则后期在WinCC或者SCADA系统里做变量连接时,地址对不齐会让你头疼死。
规划好模块地址后,我还习惯在项目文档里画一张IO映射总表,把四层对应关系全部列出来。比如:主站输入地址I0.0对应EASY320内部输入区第0字节第0位,对应第二块GL20-1600EN的第0通道,对应现场柜内端子排第6号端子的按钮信号。这张表打印出来贴在电柜门内侧,调试时对着表找点,效率能提高一倍以上。表格里的信息要包括:主站地址、从站地址、模块通道、外部设备名称、线号、备注。
3.2 主站组态与映射关系建立
主站是S7-1500时,在TIA Portal里组态EASY320从站的步骤是这样的:先从硬件目录找到EASY320的设备条目,拖到网络视图里,然后在网络视图里把PLC的Profinet接口和EASY320的Profinet接口用鼠标连一条线,建立IO系统连接。双击EASY320设备,进入设备视图,你会发现它下面已经有根据GSD文件读出来的槽位结构。这里需要在对应槽位上添加IO子模块,每个子模块对应一段输入或输出数据区。
添加子模块时,TIA会自动给每个子模块分配一个IO地址。比如第一个输入子模块自动分配到I0到I1,第二个分配到I2到I3,第三个分配到I4到I5。这些地址就是你在主站PLC程序里实际使用的地址。我要提醒一点:TIA自动分配的地址不一定是让你最舒服的地址,你可以在“IO地址”选项卡里手动调整。我这次就把高速计数模块的4字节输入数据手动分配到了IW64,让它在地址表里单独空出一块区域,这样以后程序里做数据块转换时一眼就能找到。
主站用的是CP1604板卡加PC方案时,原理和TIA组态完全一样,只不过组态软件变成了板卡配套的Profinet配置工具。CP1604是西门子针对PC应用的Profinet控制器板卡,配套的通讯驱动和配置工具同样支持导入GSD文件、分配设备名、映射IO数据。区别在于,PLC方案中IO地址是物理地址,而PC方案中IO数据通常映射到共享内存区,你的上位机程序通过调用通讯库的接口函数读取这些共享内存中的数据。IP地址和设备名的设置逻辑是一致的,设备名仍然是最关键的标识。
映射关系建立之后,不要急着写业务逻辑,一定要先用监控表验证每个IO点的通断。TIA Portal的“在线监视”功能能看到每个IO地址的真实值,你让人在现场按一下按钮,看对应地址是不是从0变成1。这一步多花点时间,把每根接线都确认过一遍,后面调试业务逻辑时少受很多罪。
3.3 数据一致性、看门狗与备用点规划
IO映射不只是“点对点连上就完事”,数据一致性和通信故障行为的配置同样重要,这些配置在Profinet组态里叫“一致性(Consistency)”和“看门狗(Watchdog)”。
一致性选项影响的是多字节数据在多周期传输时的完整性问题。默认的“与IO周期一致”表示每个总线周期内的数据都是完整的一组,适合大多数情况。如果你的应用里有一个4字节的计数值,由高2字节和低2字节组成,而主站程序在第一次读取时拿到了高字节,第二次读取时才拿到低字节,两次读取拼接出来的值就是错的。为了避免这种问题,你可以把包含高速计数数据的所有字节设置为“与应用周期一致”,这样PLC在处理时会把多个周期的数据锁存成一个整体快照再交给用户程序。代价是数据刷新时间会有一个周期左右的延迟,但对于不是毫米级控制的应用来说完全够用。
看门狗这方面,要理解Profinet从站的一个机制:当现场通信正常时,主站周期性发送报文,从站收到后做应答,同时喂狗。一旦线路故障、从站断电或者数据拥堵导致看门狗超时,从站会认为通信中断,此时GL20输出模块需要决定输出信号的行为。这个行为在汇川EASY320的Profinet从站配置中可以通过模块的“故障安全值”来定义,通常是“保持当前值”或者“输出清零”。现场工艺有安全考虑的话,强烈建议故障时输出清零或者切换到一个预设的安全状态,不要保持原值——万一通信断了,现场执行机构保持在一个运动中的状态,那是很恐怖的事。
备用点的规划也是IO映射阶段就要做好的事情。系统设计时我除了48路DI和16路DO之外,还特意在IO映射中预留了2字节输入区和2字节输出区作为备用。这2字节不接任何硬件模块,只是占用了从站报文里的位置。将来客户说“再增加8个输入点”,我只需要在EASY320底下加一块16DI模块,修改EASY320的映射配置,把备用区变成实际数据区,主站那边地址完全不用动。虽然这种操作不是每天都有,但真遇上现场增量需求时,你会感谢自己当初多留了那几个字节。
4. 联调实录与常见问题排查
4.1 联调步骤与状态判断
联调之前先说一句经验总结:越是复杂的系统,越要分步验证。不要组态一做完就上电全网联调,出了问题光查故障点就能耗掉半天。我的联调顺序是“单站测试→扩展IO测试→全网通信测试→带载测试”四步走。
第一步,单站测试。EASY320上电,用网线把电脑和EASY320直连,打开InoProShop,先确认能在线监控PLC程序。如果连InoProShop都连不上EASY320,说明网口参数或者物理链路有问题,先把这个解决掉再谈Profinet。
第二步,扩展IO测试。在InoProShop里监视GL20模块的状态。GL20每个模块上都有状态指示灯,正常情况下运行灯常亮或者闪烁,故障灯熄灭。如果某个模块的状态灯异常,先用万用表检查扩展总线连接器的插头是否紧固、模块供电是否正常、模块终端电阻是否设置正确。扩展IO测试通过的标准是:程序里能读到所有DI模块的输入状态,输出模块的每个通道都能通过强制功能控制。
第三步,全网通信测试。把主站和EASY320接入同一台交换机,TIA Portal在线状态下,在“可访问设备”窗口里应该能看到EASY320设备。能看到设备但通信失败的话,多半是设备名或IP地址不匹配。通信正常后,先看EASY320的Profinet指示灯状态,通信建立成功后指示灯应该是绿色常亮,还没建链时是绿灯闪烁。主站侧,在TIA诊断缓冲区里如果不再报“设备故障”或“IO访问错误”,说明通信链路通了。
第四步,带载测试。把现场传感器和负载都接上,逐点验证IO映射的每个地址。验证输入点时,让现场人员逐个触发传感器,主站监控表里对应地址必须同步变化。验证输出点时,在主站程序里写一个简易测试块,逐个置位DO地址,现场模块上对应的LED灯应该亮起,继电器应该动作。这步还能顺手验证极性:如果模块输出已经动作但外部负载不动作,优先检查外部电源和“公共端”接线,DO模块的公共端接错了,整个输出区都不会有反应。
4.2 常见故障现象速查与解决方法
联调过程中最容易遇到的故障类型,我整理成了一张速查表,都是我实际踩过的坑,照着排查基本能解决90%的问题。
| 故障现象 | 可能原因 | 排查方法 |
|---|---|---|
| 主站找不到EASY320从站 | 设备名不一致 | 在TIA和InoProShop里核对设备名 |
| IP不在同一网段 | 检查主站接口与从站IP子网掩码 | |
| 从站上线后频繁掉线 | 看门狗时间过短 | 把看门狗时间改为更新时间的3-4倍 |
| 网线质量差或距离过长 | 更换屏蔽网线,检查水晶头压接 | |
| 输入点信号不变化 | 模块通道共地问题 | 检查24V电源负极端与模块负极端 |
| 组态槽位顺序和物理不一致 | 核对模块硬件顺序和软件组态顺序 | |
| 输出点信号保持但负载不动作 | 输出公共端电源未接 | 检查DO模块接线图,接好公共端 |
| 高速计数数据乱跳 | 编码器类型与模块配置不匹配 | 确认差分/单端类型、滤波时间设置 |
| 信号线屏蔽层未接地 | 屏蔽层单端接地处理 | |
| 数据出现错位 | GSD文件版本与固件不匹配 | 到官网下载匹配版本的GSD文件 |
这里挑两个最常见的问题展开讲。第一个是从站频繁掉线。有一次我在现场遇到EASY320每运行十几分钟就掉线一次,主站诊断缓冲区里报“看门狗超时”。一开始怀疑是网线问题,换了新网线还是不行。后来检查交换机,发现这个交换机上还挂了几台办公电脑,网上大流量传输的时候就会出现数据拥堵,本来32ms的更新时间偶尔会被延迟到100ms以上,直接触发看门狗。解决办法是把Profinet通信单独划了一个VLAN,和办公网络隔离开,问题再也没有出现过。所以做Profinet项目时,时间敏感网络还是尽量跟普通以太网分开,别在一台交换机上混着跑办公业务和实时通信。
第二个问题是高速计数模块的数据错位。第一次用GL20-2HC时,我按经验把它的4字节数据区放在输入区的末尾,结果主站那边读到的编码器值跟EASY320程序里监视到的对不上。排查到最后发现是两个原因叠加:一是GSD文件里的模块顺序和物理槽位顺序对应错了,导致数据区整体往后偏移了一个模块;二是我没有设置“与应用周期一致”,读取时高字和低字不在同一时刻快照。两个问题都修正之后,数据就完全正常了。所以模块的物理顺序、软件组态顺序、以及GSD里的模块排列,三方必须一致,有一方错了就是数据错位的后果。
4.3 现场调试的独家经验
最后分享几个我在大量Profinet从站项目中攒下的调试经验,这些是手册上不会写的东西,但真能让你在现场少走好几个弯路。
第一,IO映射表一定要做成文档,并且打印出来挂在电柜门上。可能有人觉得现在都无纸化了,看手机里的PDF不就行了。但现场调试时,一手拿万用表、一手拿螺丝刀,满手机械油,你很难再去翻手机找一份几百行的映射表。打印出来的A4纸,用透明文件袋挂在柜门内侧,对照着查线号、查地址,效率完全不一样。项目结束后再把表更新到竣工资料里,客户看了也觉得你专业。
第二,调试时多用“强制”功能,少用“短接”。在主站监控表里强制某个输出点位为1,比你在现场拿一根线去短接输出端安全得多。特别是在柜子里端子密集的情况下,拿线短接很容易碰到旁边的端子,轻则烧保险,重则撞坏输出模块。强制功能控制的是逻辑信号,不会造成物理短路,排查IO映射错位时特别好用。
第三,EASY320的PLC扫描周期不要设得太快也不要太慢。Profinet从站数据交换是由主站按更新周期发起的,EASY320执行完程序后把结果放到映射区,如果PLC扫描周期太快,数据放到映射区的频率远高于总线周期,资源浪费;如果扫描周期太慢,主站都来要数据了结果程序还没算出来,通信数据就是上一次的旧值。我一般把EASY320的扫描周期设置成和Profinet更新时间接近或者略短,比如更新时间16ms,扫描周期就设4ms到8ms,这样既保证数据新鲜度,也不过多消耗CPU。
第四,用CP1604板卡做主站时,建议先用TIA Portal的方案做一次链路验证。CP1604的组态逻辑和TIA是一样的,但底层驱动做数据交互时,你还需要理解共享内存的刷新机制。如果你对板卡的API函数不熟,就会花很多时间在“数据明明映射了但读不到”的坑里。我的做法是:先用S7-1500验证EASY320的从站配置没有问题,再切到CP1604板卡的工程,这样至少能保证问题出在板卡侧,而不会两头互相甩锅。
这套EASY320+GL20做Profinet从站的方案,我已经在两个项目里完整落地过,一次是给老产线加装数据采集点,一次是给非标设备做远程IO从站,效果都很稳定。整套流程的核心就一句话:物理层、模块层、从站映射层、主站地址层这四层对应关系务必锁死,每一层都单独验证通过之后再进下一步,IO映射就不可能乱。做现场这么多年,我越来越觉得技术方案没有绝对的最好,只有最适合当前场景的选择。EASY320+GL20这套组合,在中小点位、带特殊功能模块、需要从站本地逻辑的场景下,确实是性价比和灵活性都很能打的一套方案。