本文讲解一个实际的通信案例,S7-200组态为服务器端进行S7通讯,S7-300和S7-400将主动建立与S7-200的S7连接,S7-200将被动响应建立好的S7连接:
本例中, S7-200,S7-300 和 S7-400 各自用一个CPU 和一个通讯模板,其中CP243-1组态的第三、四个连接分别为服务器连接,与S7-300、S7-400进行S7通讯。具体操作步骤如下:
1、西门子PLC模块 项目硬件组态和定义通信数据区
2、组态S7-200 西门子PLC模块为服务器
3、组态S7-300/400 西门子PLC为客户端进行S7通讯
4、西门子PLC STEP7编写PUT/GET程序
1、西门子PLC模块 项目硬件组态和定义通信数据区
本例中使用的硬件配置如下:
网络组态概览图如下:
在本例中, S7-200, S7-300 和 S7-400的下列区域定义为发送和接收缓冲区:
2、组态S7-200 西门子PLC模块为服务器
通过以太网向导将以太网模块CP243-1配置为服务器,使用STEP 7 Micro/WIN中的向导进行通信的配置即可。在命令菜单中选择工具--以太网向导。
第.一步是对以太网通信的描述,点击下一步开始以太网配置。
在此处选择模块的位置,CPU后的第.一个模块位置为0,往后依次类推;或者点击读取模块搜寻在线的CP243-1模块(且将该模块的命令字节载入模块命令字节向导屏幕)。点击下一步;
选择模块相匹配的MLFB版本,如下图所示:
在此处填写IP地址和子网掩码。本例中将IP地址设置为:140.80.0.60,点击下一步;
下面的对话框将组态CP243-1进行S7连接的连接数量的设置。通过S7连接可以与通信伙伴进行读写数据操作,点击“下一步”按钮继续进行S7连接组态。本例中CP243-1的第三、四个连接分别为服务器连接。
组态一个到S7-300 西门子PLC的服务器连接:
本例中第三个S7连接将(S7-200)组态为服务器连接,带CP343-1的S7-300站将作为客户端用于服务器连接。 S7-200和S7-300的S7连接通过TSAP来定义。
注意:分别组态S7-200和S7-300时,本地和远程的TSAP号是必须完全对应的。通常本地TSAP是默认的,所以在组态此步骤时,需要两边确认一下。
本地TSAP为12.00无法更改,远程TSAP设置为10.04(这是在STEP7网络组态得到的参数)。激活“接受所有连接请求”复选框,点击“下一步”按钮继续组态。
组态一个到S7-400 西门子PLC的服务器连接:
组态步骤同上,注意远程TSAP的确定,需要与STEP7软件中网络组态里的属性设置保持一致。
选择CRC校验,使用缺省的时间间隔30秒,点击下一步按钮。
填写模块所占用的V存储区的起始地址。你也可以通过建议地址按钮来获得系统建议的V存储区的起始地址, 点击下一步按钮。
点击”完成”按钮完成以太网向导设置。
之后功能块ETHx_CTRL 和 ETHx_XFR将被创建,必须在STEP 7-MicroWIN的主循环块MAIN (OB1)中调用这些功能块。
功能块ETHx_CTRL 用于建立通讯。编写图中的通讯程序,保存组态并下载到S7-200 CPU上。
注意:功能块ETHx_XFR 仅在用于客户端进行数据传送时才被调用。
3、组态S7-300/400 西门子PLC为客户端进行S7通讯
S7连接组态
本例中使用S7-300 西门子PLC作为样例建立S7连接,对于S7-400 西门子PLC的组态步骤是一样的。
在STEP7中打开S7-300项目文件,通过Options--Configure Network或者是相对应的图标打开NetPro对话框。
在NetPro中选中S7-300站的CPU并通过菜单命令,Insert--New Connection添加一个新连接。
选择连接伙伴为“unspecified”及连接类型为“S7 connection”。点击“Apply”按钮,之后S7连接的属性对话框将打开。
由于S7连接是由S7-300 西门子PLC创建,因此在S7连接的属性对话框中须激活“Establish an active connection“复选框。输入通信伙伴CP243-1的IP地址,之后点击“Address Details”按钮。
在“Address Details”对话框中,本地的TSAP通常选用默认,输入通信伙伴的TSAP,本例中S7-200的TSAP为12.00。
注意:分别组态S7-200和S7-300时,本地和远程的TSAP号是必须完全对应的。通常本地TSAP是默认的,所以在组态此步骤时,需要两边确认一下。
在NetPro中选中S7-300站,保存及编译后下载到S7-300 中,此处注意需要下载网络组态。
对于S7-400 西门子PLC的组态步骤一样,需要对应本地TSAP及伙伴S7-200的TSAP (例子中为13.00)。
接下来,在S7程序中调用功能块,进行编程。
4、西门子PLC STEP7编写PUT/GET程序
需要在S7-300 西门子PLC程序中,调用功能块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的数据发送区。
如果通信无法建立,请查看“PUT”和“GET”指令的错误代码,STATUS仅在一个周期内有效,需要在ERROR=1时捕捉错误状态。如下图所示:
对于FB14 “GET” 和 FB15 “PUT”的输入参数'ID",也可通过鼠标右击功能块ID引脚,可以自动插入本地ID连接。如下图所示:
如果使用S7-400 西门子PLC必须调用功能块SFB14 “GET” 和 SFB15 “PUT”。可以在Standard Library--System Function Blocks--Blocks 找到这些功能块.
S7-300 西门子PLC中调用功能块FB14 “GET” 和FB15 “PUT”的例子程序
可以通过以下ID号找到S7-300中调用功能块FB14 “GET” 和 FB15 “PUT”的例子程序: 18610307。
S7-400 西门子PLC中调用功能块SFB14 “GET”和SFB15 “PUT”的例子程序
可以通过以下ID号找到S7-400中调用功能块SFB14 “GET” 和 SFB15 “PUT”的例子程序:: 1819293。
本文摘自:网络