☰
S7-1200与ABB机器人Profinet通信配置及8字节I/O避坑
2026/11/3 12:30:39 网站建设 项目流程

简介:《S7-1200PLC与ABB机器人Profinet通信》是一份面向工业自动化调试人员与设备集成学习者的技术文档,聚焦西门子S7-1200PLC与ABB机器人之间基于Profinet的实时通信配置。内容围绕硬件准备、博图V15组态、ABB机器人GSD文件安装与设备添加,以及双方IP设置、8字节收发数据包配置和映射地址展开,并给出PLC侧发送接收程序与机器人侧PN从站、组输入输出设置的具体思路,便于读者对照现场设备完成联调与排错。资源包仅含1个docx文档,大小约786KB,篇幅集中、查阅方便。目前已有4045人学习,适合需要掌握西门子PLC与ABB机器人Profinet通信流程的初、中级自动化工程师及院校实训人员参考。

1. 一条网线两套地址:S7-1200 与 ABB 机器人 Profinet 通信到底在配什么

做西门子 S7-1200 PLC 与 ABB 机器人 Profinet 通信,最反直觉的一点是:接线只花了五分钟,剩下两小时全耗在地址上。PLC 侧网络视图全绿,机器人侧也显示总线正常,可数据就是不动——不是 GSD 文件版本不对,就是 8 字节 I/O 的长度和信号地址没对齐。这份文档把整条链路拆成了三段:硬件连接与网段规划、TIA Portal V15 里的 PLC 组态、机器人控制面板里的 PN 从站配置,每一段都给了可核对的 IP、字节数和映射关系。它适合两类人:第一次给产线加机器人通信、需要照着抄参数把它点亮的人;以及已经能连上、但想把 IB100/QB100 这套地址吃透、以后自己排错的人。

2. 拓扑与 GSD:为什么设备名比 IP 更先被校验

2.1 三条网线和一个交换机:物理层先别省

文档给的硬件清单很朴素:一台装了博图 V15 的笔记本、一台带 Profinet 选项和 GSD 文件的 ABB 机器人、一台 S7-1200、三条网线、一台交换机。很多人看到“三台设备”会想省掉交换机,直接用两根网线串起来,或者把笔记本插到 PLC 的第二个网口上。这两种省法都会在调试阶段制造麻烦。

第一种,PLC 和机器人点对点直连,笔记本就没位置了。Profinet 的调试极度依赖在线监控,你得同时看到 PLC 的监控表和机器人的 I/O 状态,缺了笔记本这一端,等于闭着眼睛调参数。第二种,笔记本挂在 PLC 的第二个网口上,某些型号的第二个接口是交换机口,能通,但一旦 PLC 断电重启,笔记本的链路状态跟着抖,抓包和在线连接会莫名其妙断。

常见做法是老实上一台百兆工业交换机,三根线分别接 PLC、机器人 Profinet 接口、笔记本。这样三台设备处于同一个广播域,谁掉线都不影响另外两个,后面用 ping 和在线诊断都好操作。网线用带屏蔽的工业双绞线,长度控制在几十米内,别拿办公室里的成品跳线凑合——现场变频器一开,劣质跳线的误码率会教你做人。

2.2 网段规划:192.168.10.x 这个约定要提前定死

文档里 PLC 是 192.168.10.1,机器人是 192.168.10.2,子网掩码没说,按常规填 255.255.255.0。这个网段的选法不是随便定的:Profinet 设备出厂默认多半是 192.168.0.x 或 169.254.x.x,你选一个离它们远、又不和现场办公网冲突的段,能省掉一大半“IP 冲突”类的玄学问题。

规划的时候注意三件事。笔记本的网卡要手动设成同网段的一个空闲地址,比如 192.168.10.100,不要用 DHCP,现场交换机后面要是恰好挂了个路由器,笔记本拿到的地址会让你怀疑人生。PLC、机器人、笔记本三个地址在同一个 /24 里,且互不重复。第三条最容易被忽略:机器人如果有两个网口,一个走 Profinet、一个走别的用途,两个口的网段必须分开,否则机器人的路由表会不知道该从哪个口回包。

# 笔记本接入交换机后,先确认链路和地址都活着 ping 192.168.10.1 -n 4 # PLC ping 192.168.10.2 -n 4 # 机器人 Profinet 接口 arp -a | findstr 192.168.10 # 看 MAC 是否和学习到的一致

这段命令的作用是把“物理通不通”和“配置对不对”分开。ping 不通先查网线、交换机端口灯、本机防火墙;ping 得通但博图里看不到设备,那才是 GSD 和设备名的问题。arp 那一行是给后面留后手:Profinet 的 DCP 协议靠 MAC 寻址,如果 ARP 表里两个地址指向同一个 MAC,说明现场有人把 IP 配重了,这时候改多少次组态都没用。

2.3 GSD 文件不是驱动,是设备的“说明书”

GSD(General Station Description)文件在博图里的位置是:工具 → 选项 → 管理通用站描述文件 → 选择文件所在位置 → 安装。文档把这五步写得很清楚,但没解释它到底装了什么,导致很多人以为装完就万事大吉。

GSD 文件描述的是“这台从站长什么样”:它有几个插槽、支持哪些 I/O 模块、每个模块的字节长度、诊断数据怎么组织、支持的通信速率是多少。PLC 在组态阶段读的不是机器人本体,而是这份说明书。所以 GSD 版本选错,症状往往不是“连不上”,而是“连上了但 I/O 长度对不上”——你在网络视图里怎么改字节数,编译都过不去,或者过了但下载后模块报错。

ABB 机器人的 Profinet GSD 通常由机器人侧的选项包提供,文档里对应的是“robot device basic v1.3”这一项。装的时候注意两点:一是同一个设备不要重复装多个版本,博图的硬件目录里会同时出现 basic 的多个条目,拖错一个,后面输入输出长度就对不上;二是装完 GSD 要重新打开或刷新硬件目录,不然在“其他现场设备 → PROFINET IO → I/O → ABB ROBOTICS”这条路径下根本看不到新设备。

提示:GSD 文件装完先别急着拖设备,在硬件目录里找到对应条目,右键看一下属性里的 I/O 长度和版本号,和你手里的机器人选项包对一遍,这一步能省掉后面半小时的编译报错。

2.4 设备名优先于 IP:Profinet 的寻址顺序

这是整篇文章里最值得记住的一条原理。Profinet 建立连接的过程不是“我知道你 IP 是 2,我来找你”,而是“我知道你叫 robot-device-1,我广播问一圈谁叫这个名字,谁答应我就跟谁建立 ARAP 关系,然后再分配 IP”。

也就是说,设备名(Device Name)才是主键,IP 只是分配结果。你在网络视图里给机器人设的 IP,本质上是“等它按名字认亲成功之后,我再把这个 IP 塞给它”。这解释了两个常见现象:机器人换了台同型号备件,IP 设得一模一样,但就是连不上,因为新备件的设备名是出厂默认值;反过来,你把机器人的 IP 改成别的,只要设备名没变,重新上电后 PLC 还是能找到它,并把它掰回组态里配的那个 IP。

所以正确顺序是:先确认设备名,再确认 IP。博图里给设备分配名称的入口在网络视图的设备上右键 → 分配设备名称,走的是 DCP 协议,不需要 IP 通。这一步做通了,IP 那栏才有意义。文档里“双击机器人设备网口把 IP 设置为 PLC 同一网段”这个操作,前提就是设备名已经对上,否则你改的只是一个“期望值”。

3. PLC 端组态:8 字节 I/O 与 IB100/QB100 的映射落地

3.1 拖入 S7-1200 与网口 IP:先把主站站稳

打开博图 V15,新建项目,进入设备和网络,在硬件目录里拖一台 CPU 1200 到组态画面。型号按实际硬件选,选错了后面下载会提示固件不匹配。拖进来之后点 PLC 的网口(绿色小方块),在属性里设 IP 192.168.10.1、掩码 255.255.255.0,这个地址就是文档里那个。

这里有个细节值得说:S7-1200 的 PROFINET 接口属性里,除了 IP,还有“子网”这一项。新建项目时如果没有现成的子网,点一下“添加新子网”,起个名字,比如 PN_IO。PLC 和后面拖进来的机器人必须挂在同一个子网上,否则网络视图里连不出那条绿线。很多人卡在“设备拖进来了但连不上”,就是因为两个设备各自挂了一个自动生成的子网。

IP 设完先别下载。博图里 PLC 的 IP 是组态值,实际硬件里可能还是出厂状态。第一次下载要用“下载到设备”里的“显示所有兼容设备”,按 MAC 找,找到之后勾选“分配 IP 地址”,让博图把这个 IP 写进去。这一步做完,笔记本 ping 192.168.10.1 应该能通。

3.2 添加 ABB 机器人:从 GSD 目录到网络视图

GSD 装好之后,路径是:其他现场设备 → PROFINET IO → I/O → ABB ROBOTICS → robot device → basic v1.3,把它拖到网络视图里。拖进来之后,用鼠标从 PLC 的网口拉一条线到机器人的网口,博图会自动建立 PROFINET IO 连接。

接下来是关键一步:双击机器人设备,在设备视图里看它的插槽。文档里说“配置发送与接收数据包,这里选择发 8 个字节,收 8 个字节”,对应的就是这里的 I/O 模块长度。ABB 的 GSD 通常提供几档可选长度,8 字节是最小的一档,够传几个命令字和状态字。

改长度的时候要注意:输入和输出是两个独立的方向,别只改一边。在博图的设备概览里,机器人作为 IO 设备,会列出“输入”和“输出”两组模块,每组都要设成 8 字节。只改一组,编译能过,下载后会出现一半数据通、一半不通的诡异现象——PLC 发得出去,收不回来。

改完之后编译一次。如果报“模块长度与 GSD 描述不符”,说明你在 GSD 里选的这个 basic 版本不支持 8 字节,得换一个条目重新拖。这是版本选错的典型症状。

3.3 地址映射表:IB100/QB100 与 QB256/IB256 的对称关系

组态编译通过后,博图会自动分配 I/O 地址。文档给出的结果是 PLC 侧 IB100~IB107 和 QB100~QB107,机器人侧 QB256~QB263 和 IB256~IB263。这个分配不是随机的,是博图按“第一个可用的连续 8 字节块”给的,你可以在设备概览的“地址”列里手动改,但一般不建议改,改了之后程序里的绝对地址全要跟着动。

数据方向PLC 侧地址机器人侧地址长度谁写谁读
机器人 → PLCIB100 ~ IB107QB256 ~ QB2638 字节机器人写,PLC 读
PLC → 机器人QB100 ~ QB107IB256 ~ IB2638 字节PLC 写,机器人读

这张表要贴在调试台前面。看表的诀窍是记一句话:I 是别人送进来的,Q 是我送出去的。PLC 的 IB100 是输入,所以数据来自机器人的输出 QB256;PLC 的 QB100 是输出,所以数据流向机器人的输入 IB256。两边地址数字不一样(100 对 256),是因为 PLC 和机器人各自有独立的地址空间,中间靠 Profinet 的 ARAP 关系做翻译,你在组态里看到的对应关系就是这张表。

机器人侧为什么从 256 开始?这是 ABB 控制器里 PROFINET Internal Device 的地址分配习惯,数字段留给别的 I/O 板卡了。知道这一点,后面在机器人示教器上找信号的时候就不会满世界找 100。

3.4 发送与接收程序:MOVE 指令和方向别搞反

文档第 9 步写“将 PLC 端 IW100 发送到机器人的 QW256,PLC 端 IW102 发送到机器人的 QW258”,这句话容易被误读成“把输入字发出去”。按 3.3 的映射表,IW100 是 PLC 的输入,数据来自机器人,方向反了。正确的写法是:PLC 把内部数据搬到 QW100 起始的输出区,机器人从 IB256 读;机器人把数据写到 QB256,PLC 从 IW100 读。

用梯形图的 MOVE 指令,或者用等效的 SCL,逻辑如下:

// OB1 每个扫描周期执行 // 发送方向:PLC 输出 QB100~QB107 → 机器人输入 IB256~IB263 "QB100" := "DB_Send".Cmd; // 字节0:动作命令 0=停止 1=启动 2=复位 "QB101" := "DB_Send".Seq; // 字节1:心跳序号,每周期自增 "QW102" := "DB_Send".Speed; // 字节2~3:速度设定,INT,单位按机器人约定 "QW104" := "DB_Send".Pos; // 字节4~5:目标位置,INT "QW106" := "DB_Send".Flag; // 字节6~7:状态字,留给握手位 // 接收方向:机器人输出 QB256~QB263 → PLC 输入 IB100~IB107 "DB_Recv".RobotState := "IB100"; // 字节0:机器人状态 0=空闲 1=运行 2=报警 "DB_Recv".RobotSeq := "IB101"; // 字节1:回传心跳,和 QB101 对比判断链路 "DB_Recv".CurSpeed := "IW102"; // 字节2~3:当前速度 "DB_Recv".CurPos := "IW104"; // 字节4~5:当前位置 "DB_Recv".RobotFlag := "IW106"; // 字节6~7:报警码/标志位

这段代码的逻辑很直白,但有三处参数需要注意。第一,QB100 和 QW102 是过程映像区的绝对地址,写它们等于直接操作 Profinet 的发送缓冲区,扫描周期结束时统一刷新,不要在同一个周期里既写又判断它。第二,QW 是字访问,占两个字节,所以 QW102 覆盖的是 QB102 和 QB103,写的时候别和 QB101 的字节操作打架。第三,字节序问题:S7-1200 的字是高位字节在前,ABB 控制器内部按什么顺序解释这两个字节,取决于你在机器人侧建信号时选的数据类型,两边必须约定一致,否则 1200 送过去会变成 4712。

接收侧同理,"IB100"读的是 8 位无符号字节,"IW102"读的是 16 位有符号整数。如果机器人发的是无符号的速度值,PLC 侧要用 UINT 或者自己做个判断,别直接用 INT 接,超过 32767 会翻成负数。

4. 机器人端配置:PN Internal Device 的 8 字节与信号组对齐

4.1 机器人侧 IP:控制面板里的 ProfiNet 网络

机器人示教器上的路径是:控制面板 → 配置 → 主题 → Communication → IP Setting → 显示全部 → ProfiNetwork → 编辑,把 IP 设成 192.168.10.2。这一步和 PLC 侧设 IP 是两回事,但意义一样:给 Profinet 接口一个同网段的地址。

有几个现场经验。第一,“显示全部”这一步不能省,默认视图里只显示已配置的网络,ProfiNetwork 这个接口在没配置之前是不出现的。第二,改完 IP 要重启网络或者重启控制器才生效,文档没写,但实际不重启的话,示教器上显示已改,底层还是旧地址。第三,机器人如果有多个网络接口,确认你改的是 ProfiNetwork,不是 Service 口或者别的以太网口,改错了端口,PLC 永远 ping 不通。

改完在示教器里通常能直接 ping,或者从笔记本 ping 192.168.10.2 验证。这一步通了,再往下走。

4.2 添加 PROFINET Internal Device:input/output size 都填 8

路径是:控制面板 → 配置 → 主题 → I/O → PROFINET Internal device → 显示全部 → 添加 → 使用来自模板的值 → 选择 PN-internal-device,然后把 input size 和 output size 都改成 8,确定。

这里最容易翻车的地方是单位。文档括号里特意写了“(一个字节)”,但这个注释本身有歧义:input size 填的 8,单位到底是字节还是位?在 ABB 的这个配置项里,8 指的是 8 个字节,也就是 64 位。如果你按 8 个位去理解,配完之后 PLC 侧组态是 8 字节、机器人侧只有 1 字节,两边长度不匹配,连接建立不起来,或者建立了但只有第一个字节能通。

第二个坑是模板选择。PN-internal-device 是 ABB 提供的标准模板,选它之后会自动生成一批默认信号。如果你不选模板、手动加一个空的 Profinet 设备,后面信号地址要自己从头排,容易和 PLC 侧的 100/256 对不上。用模板,然后改长度,是最省事的路径。

第三个细节:input 和 output 的方向要从机器人视角看。机器人的 input 是“别人送给我的”,对应 PLC 的输出 QB100;机器人的 output 是“我送给别人的”,对应 PLC 的输入 IB100。填反了,现象是两边都能连上,但数据全在反方向,你在 PLC 监控表里看到的永远是 0。

4.3 组输入组输出:0-15、16-31 与信号定义

长度配好之后,下一步是把这 8 个字节切成能用的信号。路径是:控制面板 → 配置 → 主题 → I/O → Signal → 添加,文档给的是地址 0-15、16-31 两组。

8 字节等于 64 位,按 16 位一组切,正好四组:0-15、16-31、32-47、48-63。文档只写了前两组,剩下两组按同样的规律往下排就行。每组对应两个字节,落到 PLC 侧就是 QW100、QW102、QW104、QW106 四个字。

机器人信号组地址范围位宽对应 PLC 发送区用途建议
GroupInput_10-1516 bitQB100 ~ QB101命令字 + 心跳
GroupInput_216-3116 bitQW102速度设定
GroupInput_332-4716 bitQW104位置/参数
GroupInput_448-6316 bitQW106状态字/标志位
GroupOutput_10-1516 bitIB100 ~ IB101机器人状态 + 回传心跳
GroupOutput_216-3116 bitIW102当前速度
GroupOutput_332-4716 bitIW104当前位置
GroupOutput_448-6316 bitIW106报警码

建信号的时候,数据类型要选对。16 位的组信号在 ABB 里通常建成 Group Input / Group Output,数据类型是 Digital 的组,或者直接建成 Analog 的 16 位整型。如果你打算传速度、位置这类数值,建成整型最省事;如果只是开关量打包,建成 16 位数字组,然后在机器人程序里按位拆。

命名要有规矩。见过太多现场,信号名全是 gi1、gi2、go1、go2,调试的时候对着表查半天。建议直接按用途命名,比如 gi_Cmd、gi_Speed、go_State、go_Alarm,后面写机器人程序和排查的时候,看一眼名字就知道方向。

4.4 两端地址换算:机器人 256 与 PLC 100 的对应关系

这里要澄清一个容易混淆的点。机器人的 PROFINET Internal Device 里,信号地址是从 0 开始排的(0-15、16-31……),但文档里又说“PLC 端的 IB100 到 IB107 对应机器人端的 QB256 到 QB263”。这两个数字体系不是矛盾的,是两套不同的编号。

0-15、16-31 是机器人内部 I/O 系统的信号地址,是你在示教器上看到的、机器人程序里引用的地址。256 是 Profinet 网络侧映射到机器人 I/O 系统里的起始地址,由控制器在建立 PN 从站时自动分配。也就是说,机器人的第 0 号组输入,在网络侧可能落在 256 这个偏移上,具体偏移量取决于控制器里已经占用了多少地址空间。

实际调试时不用去算这个偏移,用示教器上的 I/O 列表看就行:找到 Profinet Internal Device 下面的信号,它会同时显示信号名和网络地址。你在 PLC 侧强制一个值,示教器上对应的信号变了,说明映射对上了。对不上的时候,优先怀疑 4.2 里的长度填错,而不是地址算错——长度错了,整个地址空间会平移,怎么算都对不上。

注意:机器人和 PLC 两端的地址表要各存一份,改任何一端之前先对照。现场最常见的事故是有人为了加一个信号,把 8 字节改成了 16 字节,PLC 侧没跟着改,结果整条链路静默失效,没有任何报错。

5. 避坑排查:五类连不上、对不齐、传错值的现场记录

5.1 现象:网络视图里机器人图标一直是红的,编译不报错

原因通常不在组态,在设备名。Profinet 建链靠 DCP 按名字找设备,博图里组态的设备名和机器人实际的名字不一致,PLC 就会一直等在“正在建立连接”的状态。新设备出厂名是出厂默认值,换备件之后尤其容易出这个问题。

解决方法是右键设备 → 分配设备名称,走 DCP 扫描,找到在线设备后把组态里的名字写进去。做完这一步,再回来看 IP 那一栏是不是变成了组态里配的值。如果分配名称的时候扫描不到任何设备,退回去查 2.1 的物理连接和 2.2 的网段,别在组态里反复改。

5.2 现象:PLC 侧 8 字节配好了,机器人侧也填了 8,连接建立但只有前两个字节有数据

原因是字节和位的单位混淆。ABB 侧的 input size / output size 填 8,指的是 8 个字节;但有些 GSD 版本或者模板里,长度单位是按字(word)算的,填 8 就变成 16 字节。两边长度不一致时,Profinet 有时不会直接报错,而是建立一个“缩水”的连接,只交换双方都认可的那部分。

解决办法是回 3.2 和 4.2 各看一遍:PLC 侧在设备概览里看模块的“长度”列,单位写的是 byte;机器人侧在 PN Internal Device 的属性里看 size 后面跟的单位。两边都是 8 byte 才算对齐。改完必须重新编译、重新下载,只改一边不重新建立连接是没用的。

5.3 现象:PLC 监控表里 IW100 有值,但数值明显不对,比如设定 1000 收到 4712

这是字节序问题。S7-1200 的字访问是高字节在前(大端),如果机器人侧把两个字节按低字节在前解释,1000(0x03E8)就会被读成 0xE803,也就是 59395,取整或截断之后就是你看到的怪数。

解决办法是在机器人侧建信号时确认数据类型和字节顺序,或者在 PLC 侧做一次交换:

// 字节交换:把 IW 的高低位对调后再用 "DB_Recv".CurSpeed := SWAP("IW102");

SWAP 指令在博图里对 WORD 类型有效,作用是把高低字节互换。用之前先确认到底是字节序问题还是数据类型问题——如果机器人发的是无符号数而 PLC 按有符号解释,SWAP 救不了,得改数据类型。

5.4 现象:跑了一段时间都正常,某次断电重启后通信断了,重新下载又好了

原因是设备名和 IP 没有持久化,或者被现场的其他 Profinet 主站抢了。Profinet 的设备名存在设备本体的非易失存储里,正常情况下断电不丢,但如果现场有第二台主站(比如另一台 PLC 或者调试用的软件)也在做 DCP 分配,两边的名字会互相覆盖。

解决办法是给每台设备的名字加唯一前缀,不要用默认的 robot-device-1 这种通用名;调试完成后把笔记本上的博图关掉或者拔掉网线,避免它作为第二个主站干扰。另外,机器人侧的 PN Internal Device 配置改完要保存到控制器,只改不存,重启就回到旧配置。

5.5 现象:数据偶尔跳变,或者通信时断时续,没有规律

这类问题多半不在配置,在物理层和实时性。常见原因有三个:网线走线跟变频器动力线捆在一起,屏蔽层没接地;交换机是非管理型的民用交换机,广播风暴一来就顶不住;PLC 的扫描周期太短,MOVE 指令在一个周期内读写同一块过程映像区,读到的是半新半旧的数据。

解决办法按顺序来:先换屏蔽网线、把通信线和动力线分开走、屏蔽层单端接地;再把交换机换成工业级的;最后检查程序,把发送和接收的逻辑分开到不同的 Network,中间加一个握手位,确认对方写完再读。最后这条听着麻烦,但它是唯一能让“偶尔跳变”变成“可复现”的办法——不可复现的问题,没有后悔药可吃。

6. 从点亮到可维护:用监控表把 8 字节跑成一套自检流程

把通信点亮只是第一步。真正省时间的是在第一次调试时就把一套自检流程固化下来,后面换备件、改程序、产线搬迁,照着跑一遍就知道链路好不好。

我的做法是建一张监控表,把 QB100 到 QB107、IB100 到 IB107 这 16 个字节全部拉进去,按字节和按字两种视图各看一遍。然后在机器人侧手动改一个输出信号的值,看 PLC 侧对应字节是否同步变化;反过来在 PLC 侧强制一个值,看示教器上的信号是否跟着动。这个来回测试比任何诊断工具都直接,因为它验证的是端到端的映射,不是某一层的状态。

再进一步,在两边各做一个心跳。PLC 侧每个周期把 QB101 加一,机器人侧把收到的值原样回传到 IB101;PLC 程序里判断 QB101 和 IB101 是否相等,连续若干个周期不相等就置一个通信故障位。这个心跳只占两个字节,但能覆盖 90% 的“悄悄断线”场景——Profinet 的连接状态在博图里看可能是绿的,实际数据早就停了。

自检项检查位置合格标准
物理链路笔记本 ping 两端 IP均有回应,延迟稳定
设备名博图分配设备名称能扫到且名称与组态一致
I/O 长度PLC 设备概览 + 机器人 PN 属性两边均为 8 byte
映射方向强制 QB100,看机器人 IB256数值同步变化
心跳QB101 与 IB101 对比连续 10 周期相等

最后说个习惯。我现在做任何 Profinet 项目,第一次连上之后都会把这张地址映射表和自检表截图存进项目文件夹,文件名带上日期。吃过一次亏:半年前调好的一条线,换了个备件之后通信断了,现场没人记得当时 8 字节是怎么分的,翻遍聊天记录才找到一张模糊的照片。从那以后我每次配完都强制走一遍这张表,存一份,再让现场的人也在手机里留一份。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询