## S7-1200 CPU 与 CP343-1 S7 通信（S7-1200 作为客户端）

S7-1200 CPU 与 CP343-1 之间的以太网通信通过 S7 通信来实现。当 S7-1200 作为客户端，CP343-1 作为服务器，需在客户端单边组态连接和编程，而作为服务器端的 S7-300 CPU 只需准备好通信的数据就行。

### 硬件和软件需求及所完成的通信任务

所需条件：

① S7-1215 DC/DC/DC V4.5 / CPU 314C-2 PN/DP，V3.3 + CP343-1（6GK7 343-1EX30-0XE0），V3.0

② TIA Portal Step7 Professional V17/ Step7 V5.6 SP2

所完成的通信任务：

① S7-1200 CPU 将本地 DB3 中的数据通过 CP 卡写到 S7-300 CPU 中 DB4 中。

② S7-1200 CPU 通过 CP 卡将 S7-300 CPU 中 DB3 的数据读取到本地 DB4 中。

S7-1200 与 CP343-1 之间 S7 通讯，可以分 3 种情况具体如下：

1.  [第一种情况：S7-1200 与 CP343-1 在同一 TIA Portal项目中](03-S7-1200_Client.htm#a)
2.  [第二种情况：S7-1200 与 CP343-1 在不同 TIA Portal项目中](03-S7-1200_Client.htm#b)
3.  [第三种情况：CP343-1 在 STEP7 项目中](03-S7-1200_Client.htm#c)

### 一. 第一种情况（S7-1200 与 CP343-1 在同一 TIA Portal 项目中）

在 TIA Portal 同一项目中，新建一个 S7-1200 站点和一个 S7-300 站点，然后进行 S7 通信。

### 1.1 S7-1200 侧和 S7-300CP 侧硬件组态配置

**1\. 使用 TIA Portal 软件新建一个项目并完成硬件配置**

在 TIA Portal 的 “Portal 视图” 中选择 “创建新项目” 创建一个新项目。

**2\.** **添加 S7-1200 CPU 硬件并为命名 PLC**

然后进入 “项目视图”，在“项目树” 下双击 “添加新设备”，在对话框中选择所使用的 S7-1200 CPU 添加到机架上，命名为 PLC_1，如图 1 所示。

![](images/3-01.JPG)

图 1\. 添加 S7-1200 CPU 设备

为了编程方便，使用 CPU 属性中定义的时钟位，定义方法如下： 在 “项目树” > “PLC_1” > “设备组态” 中，选中 CPU ，然后在下面的属性窗口中，“属性” > “系统和时钟存储器” 下，将时钟字节定义在 MB0，如图 2 所示。 时钟位使用 M0.5，以 1Hz 的速率自动激活发送任务。

![](images/3-02.JPG)

图 2\. 设置系统和时钟存储器

**3\. 为 PROFINET 通信口分配以太网地址**

在 “设备视图”中点击 CPU 上代表 PROFINET 通信口的绿色小方块，在下方会出现 PROFINET 接口的属性，在 “以太网地址” 下分配 IP 地址为 192.168.0.15 ，子网掩码为 255.255.255.0，如图 3 所示。

![](images/3-03.JPG)

图 3\. 分配 S7-1200 CPU IP 地址

**4．添加 S7-300 CPU 和 CP343-1 硬件并命名 PLC**

然后进入 “项目视图”，在“项目树” 下双击 “添加新设备”，在对话框中选择所使用的 S7-300 CPU 添加到机架上，命名为 PLC_2，如图 4 所示。

![](images/3-04.JPG)

图 4\. 添加 S7-300 CPU 设备

**5\. 组态 CP343-1 并配以太网地址**

在 “设备视图”中点击 CP 上代表 PROFINET 通信口的绿色小方块，在下方会出现 PROFINET 接口的属性，在 “以太网地址” 下分配 IP 地址为 192.168.0.11，子网掩码为 255.255.255.0，如图 5 所示。

![](images/3-05.JPG)

图 5\. 分配 CP343-1 IP 地址

**6\. 创建 CPU 的逻辑网络连接（仅当S7-1200 和 S7-300 在同一 TIA 项目进行步骤 6）**

在 “项目树”>“设备和网络” >“网络视图” 视图下，创建两个设备的连接。用鼠标点中 S7-1200 上的 PROFINET 通信口的绿色小方框，然后拖拽出一条线，到另外一个 CP343-1 上的 PROFINET 通信口上，松开鼠标，PN/IE_1 的子网连接就建立起来了，如图 6 所示。

![](images/3-06.JPG)

图 6\. 建立伙伴间的网络子网连接

**注：当 S7-1200 和 S7-300 在不同项目时，无需操作此步骤。独立设置各自 PLC/CP 的子网连接即可。**

### 1.2 在 S7-1200 侧配置 S7 单边通信连接和编程

#### **1．创建 S7 单边通信连接**

① 打开 "网络视图" 配置网络，点中左上角的"连接"图标，这时所有 CPU 变成亮蓝色，选择 S7 连接，然后选中 S7-1200 CPU，右键选择添加新的连接， 如图 7 所示。

![](images/3-07.jpg)

图 7\. 网络视图配置

② 在连接列表里选择连接伙伴，并确认本地和伙伴的接口，确认连接类型为 S7 连接。S7-1200 侧因做 S7 单边通信客户端，确认 S7 连接属性为主动建立连接和单向，最后点击添加，如图 8 所示。

![](images/3-08.JPG)

图 8\. 添加指定伙伴的 S7 单边新连接

③ 在“网络视图”-“连接”内，查看新添加的 S7 单边连接。如图 9 所示，在“连接”下只有一个 S7 单边连接存在，然后进一步设置 S7 连接参数。

**![](images/3.gif)注意：**

如果不激活如图 8 所示“单向”设置，则会在 CPU 和 CP 生成两条连接，这样两个 CPU 需要分别编译下载组态。

![](images/3-09.JPG)

图 9\. 检查 S7 单边连接

#### **2．设置 S7 单边通信连接**属性

① 在“网络视图”-“连接”内选中新创建的 S7 单边连接，在常规-属性内设置 S7 单边连接参数。本地ID使用默认 ID 值 W#16#100，在调用 S7 指令时使用，如下图 10 所示。

![](images/3-10.JPG)

图 10\. S7 单边连接本地 ID

② 特殊连接属性内，确认客户端 S7 单边连接参数：“单向”、“主动建立连接”勾选，如图 11 所示。

![](images/3-11.JPG)

图 11\. S7 单边连接特殊连接属性

③ 地址详细信息内，设置本地和伙伴双方 TSAP，如图 12 所示。

![](images/3-12.JPG)

图 12\. S7 单边连接地址详细信息

**![](images/3.gif)注意：**对于同一项目组态连接，伙伴 TSAP 无需修改，使用默认即可。

#### **3．S7-1200 侧软件编程**

① 创建接收和发送数据块 ，接收 DB 10 字节数组，发送 DB 10 字节数组。如图 13、14 所示。

![](images/3-13.JPG)

图 13\. S7-1200 CPU 创建接收数据区 DB 块

![](images/3-14.JPG)

图 14\. S7-1200 CPU 创建发送数据区 DB 块

② S7 通信中 S7-1200 CPU 侧使用的 DB 块属性内取消“DB 块的优化块访问”，如图 15 所示。

![](images/3-15.jpg)

图 15\. 取消 DB 块的优化块访问

③在 OB1 中，从"指令">"通信">"S7 通信"下，调用 Get、Put 通信指令，如图 16 所示。

![](images/3-16.JPG)

图 16\. OB1 调用 S7 通信指令

**指令管脚参数说明：**

|     |     |     |
| --- | --- | --- |
| CALL “PUT” | ： %DB1 | //调用 PUT，使用背景 DB 块：DB1 |
| REQ | ：=%M0.5 | //系统时钟 1 秒脉冲 |
| ID  | ：=W#16#0100 | //连接号，要与连接配置中一致，创建连接时的连接号 |
| DONE | -   | // 为 1 时，发送完成 |
| ERROR | -   | // 为 1 时，有故障发生 |
| STATUS | -   | // 状态代码 |
| ADDR_1 | ：=P#DB4.DBX0.0 BYTE 10 | // 发送到通信伙伴数据区的地址 |
| SD_1 | ：=P#DB3.DBX0.0 BYTE 10 | // 本地发送数据区 |

|     |     |     |
| --- | --- | --- |
| CALL “GET” | ：%DB2 | //调用 GET，使用背景 DB 块：DB2 |
| REQ | ：=%M0.5 | //系统时钟 1 秒脉冲 |
| ID  | ：=W#16#0100 | //连接号，要与连接配置中一致，创建连接时的连接号 |
| NDR | -   | //为 1 时，接收到新数据 |
| ERROR | -   | //为 1 时，有故障发生 |
| STATUS | -   | //状态代码 |
| ADDR_1 | ：=P#DB3.DBX0.0 BYTE 10 | //从通信伙伴数据区读取数据的地址 |
| RD_1 | ：=P#DB4.DBX0.0 BYTE 10 | //本地接收数据地址 |

S7-1200 侧 S7 单边连接配置和编程完成，编译存盘并下载。

### 1.3 在 S7-300 侧配置和编程

创建接收和发送数据块 ，接收 DB 10 字节数组，发送 DB 10 字节数组。如图 17、18 所示。

![](images/3-17.JPG)

图 17\. S7-300 创建接收数据区 DB 块

![](images/3-18.JPG)

图 18\. S7-300 创建发送数据区 DB 块

**注：**进行 S7 单边通信，正常情况下对于 S7-300 侧（服务器侧）无需任何配置，只要 S7-300 内有 S7-1200 侧 PUT/GET 指令访问 DB 块即可，文档按照双方均为新建项目考虑测试。

### 1.4 监控通信结果

下载两个 CPU 中的所有硬件组态及程序，实现两个 CPU 之间数据交换，监控结果如图 19 所示。

![](images/3-19.JPG)

图 19\. 监控结果

### 二. 第二种情况（S7-1200 与 CP343-1 在不同 TIA Portal 项目中）

在两个不同的 TIA 项目内，分别创建 S7-1200 作为 S7 客户端和 S7-300 作为 S7 服务器，进行 S7 通信，详细步骤如下。

### 2.1 S7-1200 侧硬件组态配置

该部分内容和 1.1 章节内容相同，不再赘述。

### 2.2 在 S7-1200 侧配置 S7 单边通信连接和编程

#### **1\. 创建 S7 单边通信连接**

① 打开 "网络视图" 配置网络，点中左上角的"连接"图标，此时 CPU 变成亮蓝色，选择 S7 连接，然后选中 S7-1200 CPU，右键选择添加新的连接， 如图 20 所示。

![](images/3-20.jpg)

图 20\. 网络视图配置

② 在连接列表里选择未指定，并确认本地接口，确认连接类型为 S7 连接。S7-1200 侧因做 S7 单边通信客户端，确认 S7 连接属性为主动建立连接和单向，最后点击添加，如图 21 所示。

![](images/3-21.JPG)

图 21\. 添加未指定伙伴的 S7 单边新连接

③ 在“网络视图”-“连接”内，查看新添加的 S7 单边连接。在“连接”下只有一个 S7 单边连接存在，在 S7 连接常规-属性内，设置伙伴的 IP 地址，如图 22 所示。

![](images/3-22.JPG)

图 22\. 设置伙伴 IP 地址

#### **2．设置 S7 单边通信连接**属性

① 在“网络视图”-“连接”内选中新创建的 S7 单边连接，在常规-属性内设置 S7 单边连接参数。本地ID使用默认 ID 值 W#16#100，在调用 S7 指令时使用，如下图 23 所示。

![](images/3-23.JPG)

图 23\. S7 单边连接本地 ID

② 特殊连接属性内，确认客户端 S7 单边连接参数：“单向”、“主动建立连接”勾选，如图 24 所示。

![](images/3-24.JPG)

图 24\. S7 单边连接特殊连接属性

③ 地址详细信息内，设置本地和伙伴双方 TSAP，如图 25 所示。

![](images/3-25.JPG)

图25\. S7 单边连接地址详细信息

**![](images/3.gif)注意：**伙伴方如果是 CP343-1 ，伙伴 TSAP 一定是 03.02

#### **3．S7-1200 侧软件编程**

该部分内容和 1.2 章节第 3 部分内容相同，不再赘述。

### 2.3 在 S7-300 侧配置和编程

该部分内容和 1.3 章节内容相同，不再赘述。

### 2.4 监控通信结果

下载两个 CPU 中的所有硬件组态及程序，实现两个 CPU 之间数据交换，监控结果如图 26 所示。

![](images/3-26.JPG)

图 26\. 监控结果

### 三. 第三种情况（S7-1200 在 TIA Portal 项目中，CP343-1 在 Step7 项目中）

S7-1200 作为 S7 客户端，使用 TIA Portal 编程；CP343-1 作为 S7 服务器，使用 Step7 编程；详细步骤如下。

### 3.1 S7-1200 侧硬件组态配置

该部分内容和 1.1 章节内容相同，不再赘述。

### 3.2 在 S7-1200 侧配置S7单边通信连接和编程

该部分内容和 2.2 章节内容相同，不再赘述。

### 3.3 在 S7-300 侧配置和编程

#### **1 . 创建 PLC 项目**并进行硬件组态配置

在 STEP7 中创建一个项目并插入 CPU 314C-2 PN/DP 和 CP343-1 。操作步骤如下：

(1) 打开 STEP7，在 “File” 菜单中选择 “New…” 选项，如图 27 所示。

![](images/3-27.jpg)

图 27\. 新建项目

(2) 在弹出的创建新项目窗口里输入项目名为“CP343-1_S7”，然后点击“OK”按钮，如图 28 所示。

![](images/3-28.JPG)

图 28\. 输入项目名称

(3) 在 CP343-1_S7 下点击右键 “Insert New Object”，选择 “SIMATIC 300 Station”，如图 29 所示。

![](images/3-29.jpg)

图 29\. 插入 S7-300 站点

(4) 双击 “Hardware” 打开硬件组态，如图 30 所示。

![](images/3-30.JPG)

图 30\. 硬件组态

(5) 插入 S7-300 机架，如图 31 所示。

![](images/3-31.jpg)

图 31\. 插入 S7-300 机架

(6) 插入 CPU 314C-2 PN/DP 和 CP343-1，如图 32、33 所示。

![](images/3-32.JPG)

图 32\. 插入 S7-300 CPU

![](images/3-33.JPG)

图 33\. 插入 CP343-1

(7) 设置 CP343-1 的 IP 地址 192.168.0.11 和子网掩码 255.255.255.0，并添加新建子网。如图 34 所示。

![](images/3-34.JPG)

图 34\. 设置 IP 地址和添加子网

(8) 点击 “Save and Compile” 按钮。编译保存硬件组态信息，如图 35 所示。

![](images/3-35.jpg)

图 35\. 保存并编译硬件组态

#### **2．在 S7-300 侧软件编程**

创建接收和发送数据块 ，接收 DB 10 字节数组，发送 DB 10 字节数组。如图 36、37 所示。

![](images/3-36.JPG)

图 36\. S7-300 创建接收数据区 DB 块

![](images/3-37.JPG)

图 37\. S7-300 创建发送数据区 DB 块

**注：**进行 S7 单边通信，正常情况下对于 S7-300 侧（服务器侧）无需任何配置，只要 S7-300 内有 S7-1200 侧 PUT/GET 指令访问 DB 块即可，文档按照双方均为新建项目考虑测试。

### 3.4 监控通信结果

下载两个 CPU 中的所有硬件组态及程序，实现两个 CPU 之间数据交换，监控结果如图 38 所示。

![](images/3-38.JPG)

图 38\. 监控结果