无法从传输连接中读取数据: net_io_connectionclosed。_实例讲解西门子300和200PLC通讯,通讯可能是PLC中最难应用的...

点击“蓝色字体”关注公众号获取最新信息

3000套PLC软件学习资料免费送!点击领取

通讯控制一直以来都是西门子不易学习,却很实用的功能,通过简单的线路连接以及软件编程,可以实现大量数据的传递,非常实用,但因使用通讯控制必须全面熟悉PLC,因此通讯控制也是PLC学习中的难点。

今天我们学习下西门子300和西门子200系列PLC的通讯。

S7-200 PLC本体没有以太网口,需要通过以太网模块CP243-1来扩展以太网通信,且一个S7-200PLC只能扩展一个CP243-1。

CP243-1最多8个以太网S7控制器通信,每个连接既可以是服务器连接也可以是客户机连接。

一个客户端(Client)可以包含1-32个数据传输操作,一个读写操作最多可以传输212个字节。如果CP243-1作为服务器运行,每个读操作可以传送222个字节。

S7-300做服务器,S7-200作为客户端

S7-200以太网向导配置

可以把S7-200的以太网模块CP243-1配置为CLIENT,使用STEP 7 Micro/WIN中的向导进行通信的配置即可。在命令菜单中选择工具--以太网向导。

f3f6dce24000b48c6feb169af005c00f.png

图1 打开以太网向导

第一步是对以太网通信的描述,点击下一步开始以太网配置。

a1ec2396c34dc92a8676540709bd6d29.png

图2 向导介绍

在此处选择模块的位置,CPU后的第一个模块位置为0,往后依次类推;或者在线的情况下,点击读取模块搜寻CP243-1模块(在线读取将该模块的命令字节载入模块命令字节向导屏幕)。点击下一步;

200d36d2e21dd347b5b6511f3333d3ec.png

图3 读取模块

选择模块相匹配的MLFB版本,本例中的CP243-1模块型号为6GK7243-1EX01-0XE0,如下图所示

3b9a2b32fee3bf78ce9decf5929b1f67.png

图4 模块版本选择

在此处填写IP地址和子网掩码。点击下一步;

9344d897a674faf9afcaf7d455bb819f.png

图5 地址设置

下面的对话框将组态CP243-1进行S7连接的连接数量的设置,通过S7连接可以与通信伙伴进行读写数据操作。点击“下一步”按钮继续进行S7连接组态。

f32388617dbe2555c2d181f8edfdccd9.png

图6 模块占用地址设置

选择此为客户机连接,远程属性TSAP (Transport Service Access Point)填写为03.02,输入S7-300侧的IP地址。点击数据传输按钮进入数据交换的定义。

注意:如果连接远程对象是 S7-300,TSAP为03.02;如果连接远程对象是 S7-400,TSAP为03.0x,其中x为CPU模块的槽位,可以从S7-400 站的硬件组态中找出PLC的槽号。

70a45e19c0d84e523ae4ffcd1c75a903.png

图7 连接设置

选择"数据传输"标记,并单击"新传输"按钮,进行配置:选择是读取数据还是写入数据,填写通讯数据的字节个数,填写发送数据区和接收数据区的起始地址。

本例中为从S7-300的MB200开始读取8个字节到VB1000开始的8个字节的区域中;从S7-200的VB2000开始的8个字节写到S7-300的QB0开始的8个字节的区域中,点击确认按钮:

注意:本地PLC中的地址必须是V内存字节地址,远程对象中的地址必须代表字节地址。当您为S7-300/ S7-400设备输入远程地址时,若是数据块请使用DBx.DBBy格式。

b62d1af2ef8c16a81a898e2ceea7c8d4.png

8437610803b046e22cfad1ea0876961c.png

图8 数据区域设置

选择CRC校验,使用缺省的时间间隔30秒,点击下一步按钮。

006b0385a889573b2e340a53f81fbbf9.png

图9 使用CRC

填写模块所占用的V存储区的起始地址。你也可以通过“建议地址”按钮来获得系统建议的V存储区的起始地址, 点击下一步按钮。

6c36330fdf8bf57428addf145800bec7.png

图10 配置存储区

S7-200侧编程

完成以太网向导配置后需要在程序中调用以太网向导所生成的ETHx_CTRL和ETH0_XFR, 然后,将整个项目下载到作客户端的S7-200 CPU上。

1. 调用向导生成的子程序,实现数据传输

对于S7-200的同一个连接的多个数据传输,不能同时激活,必须分时调用。下面的程序就是用前一个数据传输的完成位去激活下一个数据传输,如图11.图12.图13. 所示

e1b396d1dc204b7d3ee5bdd5910be6fb.png

图11 S7-200程序段1

2c398cda17491482c485e227a418ed88.png

图12 S7-200程序段2

affc819150711526117b2603f23658b1.png

图13 S7-200程序段3

如果通信未建立成功,可以对应查询子程序的错误代码。

S7-300作客户端,S7-200作服务器

S7-200以太网向导设置

通过以太网向导将以太网模块CP243-1配置为服务器,使用STEP 7 Micro/WIN中的向导进行通信的配置即可。在命令菜单中选择工具--以太网向导。

2f33d6e8c6fbc109526c3d0a0fa39d44.png

第一步是对以太网通信的描述,点击下一步开始以太网配置。

8a1ce4a3f20200ec5877ff20729b2d3c.png

在此处选择模块的位置,CPU后的第一个模块位置为0,往后依次类推;或者点击读取模块搜寻在线的CP243-1模块(且将该模块的命令字节载入模块命令字节向导屏幕)。点击下一步;

f9b561020ee5229e1f70e2891c83f96d.png

选择模块相匹配的MLFB版本,如下图所示:

f8d570019716b160d406c316ecefcc8e.png

在此处填写IP地址和子网掩码。本例中将IP地址设置为:140.80.0.60,点击下一步;

58abf0279a917712a3d1c5ec6846303c.png

下面的对话框将组态CP243-1进行S7连接的连接数量的设置。通过S7连接可以与通信伙伴进行读写数据操作,点击“下一步”按钮继续进行S7连接组态。本例中CP243-1的第三、四个连接分别为服务器连接。

4554e8197150a029e0ab44fda47ee569.png

组态一个到S7-300的服务器连接:

S7-200和S7-300的S7连接通过TSAP来定义。

注意:分别组态S7-200和S7-300时,本地和远程的TSAP号是必须完全对应的。通常本地TSAP是默认的,所以在组态此步骤时,需要两边确认一下。

本地TSAP为12.00无法更改,远程TSAP设置为10.04(这是在STEP7网络组态得到的参数)。激活“接受所有连接请求”复选框,点击“下一步”按钮继续组态。

287157c7b29c1f72dfed39b5c1c04c45.png

选择CRC校验,使用缺省的时间间隔30秒,点击下一步按钮。

f4474d9e5000a7ed475b0fba5e975179.png

填写模块所占用的V存储区的起始地址。你也可以通过建议地址按钮来获得系统建议的V存储区的起始地址, 点击下一步按钮。

3f0bfad27fdc371ec78edcf20dfce953.png

点击”完成”按钮完成以太网向导设置。

83009897897cad8d536fa812c72cd001.png

之后功能块ETHx_CTRL 和 ETHx_XFR将被创建,必须在STEP 7-MicroWIN的主循环块MAIN (OB1)中调用这些功能块。

功能块ETHx_CTRL 用于建立通讯。编写图中的通讯程序,保存组态并下载到S7-200 CPU上。

b0967618059c24a7f8aa5238fbe98444.png

注意:功能块ETHx_XFR 仅在用于客户端进行数据传送时才被调用。

S7-300侧组态

本例中使用S7-300作为样例建立S7连接,对于S7-400的组态步骤是一样的。

在STEP7中打开S7-300项目文件,通过Options--Configure Network或者是相对应的图标打开NetPro对话框。

a80bc404fef247d642cc09a174f04197.png

在NetPro中选中S7-300站的CPU并通过菜单命令,Insert--New Connection添加一个新连接。

aa1d43fbf9d69f1b76a6aa8224b2bf98.png

选择连接伙伴为“unspecified”及连接类型为“S7 connection”。点击“Apply”按钮,之后S7连接的属性对话框将打开。

668984383b9208b71aa74b3a7a63a417.png

由于S7连接是由S7-300创建,因此在S7连接的属性对话框中须激活“Establish an active connection“复选框。输入通信伙伴CP243-1的IP地址,之后点击“Address Details”按钮。

e4653a1f5b36c452a3df8c3ec41934a9.png

在“Address Details”对话框中,本地的TSAP通常选用默认,输入通信伙伴的TSAP,本例中S7-200的TSAP为12.00。

注意:分别组态S7-200和S7-300时,本地和远程的TSAP号是必须完全对应的。通常本地TSAP是默认的,所以在组态此步骤时,需要两边确认一下。

f5cc5e4ad034f734c3f6f3ec7d79de5e.png

在NetPro中选中S7-300站,保存及编译后下载到S7-300 中,此处注意需要下载网络组态。

接下来,在S7程序中调用功能块,进行编程。

STEP7编写PUT/GET程序

需要在S7-300程序中,调用功能块FB14 “GET” 和 FB15 “PUT”。可以在Standard Library--Communication Blocks--Blocks下找到这些功能块。

注意:

1. ID:为Netpro里组态S7连接属性窗口中的Block paramters-Local ID。

2.ADDR_1为伙伴PLC的数据区域,由于通信伙伴是S7-200的V区,V区与S7-300的DB1地址相对应。

3.RD_1为本地PLC的数据接收区;SD_1为本地PLC的数据发送区。

7892840dc22e05bb0f6c1314825752ef.png

如果通信无法建立,请查看“PUT”和“GET”指令的错误代码,STATUS仅在一个周期内有效,需要在ERROR=1时捕捉错误状态。如下图所示:

84ba7a2a5f27429f4a936f0af499748a.png

对于FB14 “GET” 和 FB15 “PUT”的输入参数'ID",也可通过鼠标右击功能块ID引脚,可以自动插入本地ID连接。如下图所示:

fafbbf9694e0105f1ee23f53027012dc.png

fb4c604f5e526cce623fa5d5fec2d911.png

a6be24ba307897429034d591f651e01b.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值